diff options
author | Holger Waechtler <devnull@localhost> | 2003-12-01 08:28:49 +0000 |
---|---|---|
committer | Holger Waechtler <devnull@localhost> | 2003-12-01 08:28:49 +0000 |
commit | 3680ccbf9a8c098794b1de328049ff9fe8c2cf55 (patch) | |
tree | 9e98cfd74558ac374fefcd763bf14ff0ce7fc317 /linux/drivers/media/dvb/b2c2/skystar2.c | |
parent | 819173108ff264ac976ae6184b612719a6648b2c (diff) | |
download | mediapointer-dvb-s2-3680ccbf9a8c098794b1de328049ff9fe8c2cf55.tar.gz mediapointer-dvb-s2-3680ccbf9a8c098794b1de328049ff9fe8c2cf55.tar.bz2 |
add support for the FCIII. Contributed by Augusto Cardoso.
Diffstat (limited to 'linux/drivers/media/dvb/b2c2/skystar2.c')
-rw-r--r-- | linux/drivers/media/dvb/b2c2/skystar2.c | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/linux/drivers/media/dvb/b2c2/skystar2.c b/linux/drivers/media/dvb/b2c2/skystar2.c index 87d9e2115..2566898f8 100644 --- a/linux/drivers/media/dvb/b2c2/skystar2.c +++ b/linux/drivers/media/dvb/b2c2/skystar2.c @@ -2096,15 +2096,25 @@ static int driver_initialize(struct pci_dev * pdev) adapter->b2c2_revision = (read_reg_dw(adapter, 0x204) >> 0x18); - if ((adapter->b2c2_revision != 0x82) && (adapter->b2c2_revision != 0xC3)) - if (adapter->b2c2_revision != 0x82) { - dprintk("%s: The revision of the FlexCopII chip on your card is - %d\n", __FUNCTION__, adapter->b2c2_revision); - dprintk("%s: This driver works now only with FlexCopII(rev.130) and FlexCopIIB(rev.195).\n", __FUNCTION__); - - free_adapter_object(adapter); - - return -ENODEV; - } + switch(adapter->b2c2_revision) { + case 0x82: + printk("%s: FlexCopII(rev.130) chip found\n", __FILE__); + break; + case 0xC3: + printk("%s: FlexCopIIB(rev.195) chip found\n", __FILE__); + break; + case 0xC0: + printk("%s: FlexCopIII(rev.192) chip found\n", __FILE__); + break; + default: + printk("%s: The revision of the FlexCop chip on your card is %d\n", __FILE__, adapter->b2c2_revision); + printk("%s: This driver works only with FlexCopII(rev.130), FlexCopIIB(rev.195) and FlexCopIII(rev. 192).\n", __FILE__); + free_adapter_object(adapter); + pci_set_drvdata(pdev, NULL); + release_region(pci_resource_start(pdev,1), pci_resource_len(pdev,1)); + release_mem_region(pci_resource_start(pdev,0), pci_resource_len(pdev,0)); + return -ENODEV; + } tmp = read_reg_dw(adapter, 0x204); @@ -2501,8 +2511,9 @@ static void skystar2_remove(struct pci_dev *pdev) } static struct pci_device_id skystar2_pci_tbl[] = { - {0x000013D0, 0x00002103, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000}, - {0,}, + { 0x000013D0, 0x00002103, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000 }, + { 0x000013D0, 0x00002200, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000 }, //FCIII + { 0, }, }; static struct pci_driver skystar2_pci_driver = { |