diff options
author | Paul Mackerras <paulus@samba.org> | 2007-04-29 22:38:01 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-04-29 22:38:01 -0400 |
commit | 49e1900d4cc2e7bcecb681fe60f0990bec2dcce8 (patch) | |
tree | 253801ebf57e0a23856a2c7be129c2c178f62fdf /drivers/media/video/bt8xx | |
parent | 34f6d749c0a328817d5e36274e53121c1db734dc (diff) | |
parent | b9099ff63c75216d6ca10bce5a1abcd9293c27e6 (diff) |
Merge branch 'linux-2.6' into for-2.6.22
Diffstat (limited to 'drivers/media/video/bt8xx')
-rw-r--r-- | drivers/media/video/bt8xx/bttv-cards.c | 53 | ||||
-rw-r--r-- | drivers/media/video/bt8xx/bttv-driver.c | 24 | ||||
-rw-r--r-- | drivers/media/video/bt8xx/bttv-gpio.c | 5 | ||||
-rw-r--r-- | drivers/media/video/bt8xx/bttv-i2c.c | 2 | ||||
-rw-r--r-- | drivers/media/video/bt8xx/bttv-if.c | 48 | ||||
-rw-r--r-- | drivers/media/video/bt8xx/bttv.h | 25 | ||||
-rw-r--r-- | drivers/media/video/bt8xx/bttvp.h | 3 |
7 files changed, 66 insertions, 94 deletions
diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c index 6addc42df045..6b31e50fb951 100644 --- a/drivers/media/video/bt8xx/bttv-cards.c +++ b/drivers/media/video/bt8xx/bttv-cards.c | |||
@@ -291,6 +291,9 @@ static struct CARD { | |||
291 | 291 | ||
292 | { 0x15409511, BTTV_BOARD_ACORP_Y878F, "Acorp Y878F" }, | 292 | { 0x15409511, BTTV_BOARD_ACORP_Y878F, "Acorp Y878F" }, |
293 | 293 | ||
294 | { 0x53534149, BTTV_BOARD_SSAI_SECURITY, "SSAI Security Video Interface" }, | ||
295 | { 0x5353414a, BTTV_BOARD_SSAI_ULTRASOUND, "SSAI Ultrasound Video Interface" }, | ||
296 | |||
294 | /* likely broken, vendor id doesn't match the other magic views ... | 297 | /* likely broken, vendor id doesn't match the other magic views ... |
295 | * { 0xa0fca04f, BTTV_BOARD_MAGICTVIEW063, "Guillemot Maxi TV Video 3" }, */ | 298 | * { 0xa0fca04f, BTTV_BOARD_MAGICTVIEW063, "Guillemot Maxi TV Video 3" }, */ |
296 | 299 | ||
@@ -2907,6 +2910,28 @@ struct tvcard bttv_tvcards[] = { | |||
2907 | .has_radio = 1, | 2910 | .has_radio = 1, |
2908 | .has_remote = 1, | 2911 | .has_remote = 1, |
2909 | }, | 2912 | }, |
2913 | [BTTV_BOARD_SSAI_SECURITY] = { | ||
2914 | .name = "SSAI Security Video Interface", | ||
2915 | .video_inputs = 4, | ||
2916 | .audio_inputs = 0, | ||
2917 | .tuner = -1, | ||
2918 | .svhs = -1, | ||
2919 | .muxsel = { 0, 1, 2, 3 }, | ||
2920 | .tuner_type = -1, | ||
2921 | .tuner_addr = ADDR_UNSET, | ||
2922 | .radio_addr = ADDR_UNSET, | ||
2923 | }, | ||
2924 | [BTTV_BOARD_SSAI_ULTRASOUND] = { | ||
2925 | .name = "SSAI Ultrasound Video Interface", | ||
2926 | .video_inputs = 2, | ||
2927 | .audio_inputs = 0, | ||
2928 | .tuner = -1, | ||
2929 | .svhs = 1, | ||
2930 | .muxsel = { 2, 0, 1, 3 }, | ||
2931 | .tuner_type = -1, | ||
2932 | .tuner_addr = ADDR_UNSET, | ||
2933 | .radio_addr = ADDR_UNSET, | ||
2934 | }, | ||
2910 | }; | 2935 | }; |
2911 | 2936 | ||
2912 | static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); | 2937 | static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards); |
@@ -2970,20 +2995,20 @@ void __devinit bttv_idcard(struct bttv *btv) | |||
2970 | 2995 | ||
2971 | if (UNSET != audiomux[0]) { | 2996 | if (UNSET != audiomux[0]) { |
2972 | gpiobits = 0; | 2997 | gpiobits = 0; |
2973 | for (i = 0; i < 4; i++) { | 2998 | for (i = 0; i < ARRAY_SIZE(bttv_tvcards->gpiomux); i++) { |
2974 | bttv_tvcards[btv->c.type].gpiomux[i] = audiomux[i]; | 2999 | bttv_tvcards[btv->c.type].gpiomux[i] = audiomux[i]; |
2975 | gpiobits |= audiomux[i]; | 3000 | gpiobits |= audiomux[i]; |
2976 | } | 3001 | } |
2977 | } else { | 3002 | } else { |
2978 | gpiobits = audioall; | 3003 | gpiobits = audioall; |
2979 | for (i = 0; i < 4; i++) { | 3004 | for (i = 0; i < ARRAY_SIZE(bttv_tvcards->gpiomux); i++) { |
2980 | bttv_tvcards[btv->c.type].gpiomux[i] = audioall; | 3005 | bttv_tvcards[btv->c.type].gpiomux[i] = audioall; |
2981 | } | 3006 | } |
2982 | } | 3007 | } |
2983 | bttv_tvcards[btv->c.type].gpiomask = (UNSET != gpiomask) ? gpiomask : gpiobits; | 3008 | bttv_tvcards[btv->c.type].gpiomask = (UNSET != gpiomask) ? gpiomask : gpiobits; |
2984 | printk(KERN_INFO "bttv%d: gpio config override: mask=0x%x, mux=", | 3009 | printk(KERN_INFO "bttv%d: gpio config override: mask=0x%x, mux=", |
2985 | btv->c.nr,bttv_tvcards[btv->c.type].gpiomask); | 3010 | btv->c.nr,bttv_tvcards[btv->c.type].gpiomask); |
2986 | for (i = 0; i < 5; i++) { | 3011 | for (i = 0; i < ARRAY_SIZE(bttv_tvcards->gpiomux); i++) { |
2987 | printk("%s0x%x", i ? "," : "", bttv_tvcards[btv->c.type].gpiomux[i]); | 3012 | printk("%s0x%x", i ? "," : "", bttv_tvcards[btv->c.type].gpiomux[i]); |
2988 | } | 3013 | } |
2989 | printk("\n"); | 3014 | printk("\n"); |
@@ -3638,7 +3663,7 @@ static int __devinit pvr_altera_load(struct bttv *btv, u8 *micro, u32 microlen) | |||
3638 | 3663 | ||
3639 | for (n = 0; n < microlen; n++) { | 3664 | for (n = 0; n < microlen; n++) { |
3640 | bits = micro[n]; | 3665 | bits = micro[n]; |
3641 | for ( i = 0 ; i < 8 ; i++ ) { | 3666 | for (i = 0 ; i < 8 ; i++) { |
3642 | gpio_bits(BTTV_ALT_DCLK,0); | 3667 | gpio_bits(BTTV_ALT_DCLK,0); |
3643 | if (bits & 0x01) | 3668 | if (bits & 0x01) |
3644 | gpio_bits(BTTV_ALT_DATA,BTTV_ALT_DATA); | 3669 | gpio_bits(BTTV_ALT_DATA,BTTV_ALT_DATA); |
@@ -3691,7 +3716,7 @@ static void __devinit osprey_eeprom(struct bttv *btv) | |||
3691 | /* this might be an antique... check for MMAC label in eeprom */ | 3716 | /* this might be an antique... check for MMAC label in eeprom */ |
3692 | if ((ee[0]=='M') && (ee[1]=='M') && (ee[2]=='A') && (ee[3]=='C')) { | 3717 | if ((ee[0]=='M') && (ee[1]=='M') && (ee[2]=='A') && (ee[3]=='C')) { |
3693 | unsigned char checksum = 0; | 3718 | unsigned char checksum = 0; |
3694 | for (i =0; i<21; i++) | 3719 | for (i = 0; i < 21; i++) |
3695 | checksum += ee[i]; | 3720 | checksum += ee[i]; |
3696 | if (checksum != ee[21]) | 3721 | if (checksum != ee[21]) |
3697 | return; | 3722 | return; |
@@ -3703,12 +3728,13 @@ static void __devinit osprey_eeprom(struct bttv *btv) | |||
3703 | unsigned short type; | 3728 | unsigned short type; |
3704 | int offset = 4*16; | 3729 | int offset = 4*16; |
3705 | 3730 | ||
3706 | for(; offset < 8*16; offset += 16) { | 3731 | for (; offset < 8*16; offset += 16) { |
3707 | unsigned short checksum = 0; | 3732 | unsigned short checksum = 0; |
3708 | /* verify the checksum */ | 3733 | /* verify the checksum */ |
3709 | for(i = 0; i<14; i++) checksum += ee[i+offset]; | 3734 | for (i = 0; i < 14; i++) |
3710 | checksum = ~checksum; /* no idea why */ | 3735 | checksum += ee[i+offset]; |
3711 | if ((((checksum>>8)&0x0FF) == ee[offset+14]) && | 3736 | checksum = ~checksum; /* no idea why */ |
3737 | if ((((checksum>>8)&0x0FF) == ee[offset+14]) && | ||
3712 | ((checksum & 0x0FF) == ee[offset+15])) { | 3738 | ((checksum & 0x0FF) == ee[offset+15])) { |
3713 | break; | 3739 | break; |
3714 | } | 3740 | } |
@@ -3721,7 +3747,6 @@ static void __devinit osprey_eeprom(struct bttv *btv) | |||
3721 | type = (ee[offset+4]<<8) | (ee[offset+5]); | 3747 | type = (ee[offset+4]<<8) | (ee[offset+5]); |
3722 | 3748 | ||
3723 | switch(type) { | 3749 | switch(type) { |
3724 | |||
3725 | /* 848 based */ | 3750 | /* 848 based */ |
3726 | case 0x0004: | 3751 | case 0x0004: |
3727 | btv->c.type = BTTV_BOARD_OSPREY1x0_848; | 3752 | btv->c.type = BTTV_BOARD_OSPREY1x0_848; |
@@ -4149,8 +4174,7 @@ static int tea5757_read(struct bttv *btv) | |||
4149 | } | 4174 | } |
4150 | 4175 | ||
4151 | dprintk("bttv%d: tea5757:",btv->c.nr); | 4176 | dprintk("bttv%d: tea5757:",btv->c.nr); |
4152 | for(i = 0; i < 24; i++) | 4177 | for (i = 0; i < 24; i++) { |
4153 | { | ||
4154 | udelay(5); | 4178 | udelay(5); |
4155 | bus_high(btv,btv->mbox_clk); | 4179 | bus_high(btv,btv->mbox_clk); |
4156 | udelay(5); | 4180 | udelay(5); |
@@ -4182,8 +4206,7 @@ static int tea5757_write(struct bttv *btv, int value) | |||
4182 | dprintk("bttv%d: tea5757: write 0x%X\n", btv->c.nr, value); | 4206 | dprintk("bttv%d: tea5757: write 0x%X\n", btv->c.nr, value); |
4183 | bus_low(btv,btv->mbox_clk); | 4207 | bus_low(btv,btv->mbox_clk); |
4184 | bus_high(btv,btv->mbox_we); | 4208 | bus_high(btv,btv->mbox_we); |
4185 | for(i = 0; i < 25; i++) | 4209 | for (i = 0; i < 25; i++) { |
4186 | { | ||
4187 | if (reg & 0x1000000) | 4210 | if (reg & 0x1000000) |
4188 | bus_high(btv,btv->mbox_data); | 4211 | bus_high(btv,btv->mbox_data); |
4189 | else | 4212 | else |
@@ -4755,7 +4778,7 @@ static void kodicom4400r_init(struct bttv *btv) | |||
4755 | gpio_write(1 << 9); /* reset MUX */ | 4778 | gpio_write(1 << 9); /* reset MUX */ |
4756 | gpio_write(0); | 4779 | gpio_write(0); |
4757 | /* Preset camera 0 to the 4 controllers */ | 4780 | /* Preset camera 0 to the 4 controllers */ |
4758 | for (ix=0; ix<4; ix++) { | 4781 | for (ix = 0; ix < 4; ix++) { |
4759 | sw_status[ix] = ix; | 4782 | sw_status[ix] = ix; |
4760 | kodicom4400r_write(btv, ix, ix, 1); | 4783 | kodicom4400r_write(btv, ix, ix, 1); |
4761 | } | 4784 | } |
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c index 5720b77ac9a7..1c38723d3169 100644 --- a/drivers/media/video/bt8xx/bttv-driver.c +++ b/drivers/media/video/bt8xx/bttv-driver.c | |||
@@ -164,6 +164,24 @@ static ssize_t show_card(struct class_device *cd, char *buf) | |||
164 | static CLASS_DEVICE_ATTR(card, S_IRUGO, show_card, NULL); | 164 | static CLASS_DEVICE_ATTR(card, S_IRUGO, show_card, NULL); |
165 | 165 | ||
166 | /* ----------------------------------------------------------------------- */ | 166 | /* ----------------------------------------------------------------------- */ |
167 | /* dvb auto-load setup */ | ||
168 | #if defined(CONFIG_MODULES) && defined(MODULE) | ||
169 | static void request_module_async(struct work_struct *work) | ||
170 | { | ||
171 | request_module("dvb-bt8xx"); | ||
172 | } | ||
173 | |||
174 | static void request_modules(struct bttv *dev) | ||
175 | { | ||
176 | INIT_WORK(&dev->request_module_wk, request_module_async); | ||
177 | schedule_work(&dev->request_module_wk); | ||
178 | } | ||
179 | #else | ||
180 | #define request_modules(dev) | ||
181 | #endif /* CONFIG_MODULES */ | ||
182 | |||
183 | |||
184 | /* ----------------------------------------------------------------------- */ | ||
167 | /* static data */ | 185 | /* static data */ |
168 | 186 | ||
169 | /* special timing tables from conexant... */ | 187 | /* special timing tables from conexant... */ |
@@ -4769,9 +4787,11 @@ static int __devinit bttv_probe(struct pci_dev *dev, | |||
4769 | disclaim_video_lines(btv); | 4787 | disclaim_video_lines(btv); |
4770 | } | 4788 | } |
4771 | 4789 | ||
4772 | /* add subdevices */ | 4790 | /* add subdevices and autoload dvb-bt8xx if needed */ |
4773 | if (bttv_tvcards[btv->c.type].has_dvb) | 4791 | if (bttv_tvcards[btv->c.type].has_dvb) { |
4774 | bttv_sub_add_device(&btv->c, "dvb"); | 4792 | bttv_sub_add_device(&btv->c, "dvb"); |
4793 | request_modules(btv); | ||
4794 | } | ||
4775 | 4795 | ||
4776 | bttv_input_init(btv); | 4796 | bttv_input_init(btv); |
4777 | 4797 | ||
diff --git a/drivers/media/video/bt8xx/bttv-gpio.c b/drivers/media/video/bt8xx/bttv-gpio.c index ba081f6f8c82..84154c26f9c5 100644 --- a/drivers/media/video/bt8xx/bttv-gpio.c +++ b/drivers/media/video/bt8xx/bttv-gpio.c | |||
@@ -71,7 +71,6 @@ struct bus_type bttv_sub_bus_type = { | |||
71 | .probe = bttv_sub_probe, | 71 | .probe = bttv_sub_probe, |
72 | .remove = bttv_sub_remove, | 72 | .remove = bttv_sub_remove, |
73 | }; | 73 | }; |
74 | EXPORT_SYMBOL(bttv_sub_bus_type); | ||
75 | 74 | ||
76 | static void release_sub_device(struct device *dev) | 75 | static void release_sub_device(struct device *dev) |
77 | { | 76 | { |
@@ -152,7 +151,6 @@ void bttv_gpio_inout(struct bttv_core *core, u32 mask, u32 outbits) | |||
152 | btwrite(data,BT848_GPIO_OUT_EN); | 151 | btwrite(data,BT848_GPIO_OUT_EN); |
153 | spin_unlock_irqrestore(&btv->gpio_lock,flags); | 152 | spin_unlock_irqrestore(&btv->gpio_lock,flags); |
154 | } | 153 | } |
155 | EXPORT_SYMBOL(bttv_gpio_inout); | ||
156 | 154 | ||
157 | u32 bttv_gpio_read(struct bttv_core *core) | 155 | u32 bttv_gpio_read(struct bttv_core *core) |
158 | { | 156 | { |
@@ -162,7 +160,6 @@ u32 bttv_gpio_read(struct bttv_core *core) | |||
162 | value = btread(BT848_GPIO_DATA); | 160 | value = btread(BT848_GPIO_DATA); |
163 | return value; | 161 | return value; |
164 | } | 162 | } |
165 | EXPORT_SYMBOL(bttv_gpio_read); | ||
166 | 163 | ||
167 | void bttv_gpio_write(struct bttv_core *core, u32 value) | 164 | void bttv_gpio_write(struct bttv_core *core, u32 value) |
168 | { | 165 | { |
@@ -170,7 +167,6 @@ void bttv_gpio_write(struct bttv_core *core, u32 value) | |||
170 | 167 | ||
171 | btwrite(value,BT848_GPIO_DATA); | 168 | btwrite(value,BT848_GPIO_DATA); |
172 | } | 169 | } |
173 | EXPORT_SYMBOL(bttv_gpio_write); | ||
174 | 170 | ||
175 | void bttv_gpio_bits(struct bttv_core *core, u32 mask, u32 bits) | 171 | void bttv_gpio_bits(struct bttv_core *core, u32 mask, u32 bits) |
176 | { | 172 | { |
@@ -185,7 +181,6 @@ void bttv_gpio_bits(struct bttv_core *core, u32 mask, u32 bits) | |||
185 | btwrite(data,BT848_GPIO_DATA); | 181 | btwrite(data,BT848_GPIO_DATA); |
186 | spin_unlock_irqrestore(&btv->gpio_lock,flags); | 182 | spin_unlock_irqrestore(&btv->gpio_lock,flags); |
187 | } | 183 | } |
188 | EXPORT_SYMBOL(bttv_gpio_bits); | ||
189 | 184 | ||
190 | /* | 185 | /* |
191 | * Local variables: | 186 | * Local variables: |
diff --git a/drivers/media/video/bt8xx/bttv-i2c.c b/drivers/media/video/bt8xx/bttv-i2c.c index 62b873076e09..0dfa49b66418 100644 --- a/drivers/media/video/bt8xx/bttv-i2c.c +++ b/drivers/media/video/bt8xx/bttv-i2c.c | |||
@@ -412,7 +412,7 @@ static void do_i2c_scan(char *name, struct i2c_client *c) | |||
412 | unsigned char buf; | 412 | unsigned char buf; |
413 | int i,rc; | 413 | int i,rc; |
414 | 414 | ||
415 | for (i = 0; i < 128; i++) { | 415 | for (i = 0; i < ARRAY_SIZE(i2c_devs); i++) { |
416 | c->addr = i; | 416 | c->addr = i; |
417 | rc = i2c_master_recv(c,&buf,0); | 417 | rc = i2c_master_recv(c,&buf,0); |
418 | if (rc < 0) | 418 | if (rc < 0) |
diff --git a/drivers/media/video/bt8xx/bttv-if.c b/drivers/media/video/bt8xx/bttv-if.c index 19b564ab0e92..ecf07988cd33 100644 --- a/drivers/media/video/bt8xx/bttv-if.c +++ b/drivers/media/video/bt8xx/bttv-if.c | |||
@@ -33,32 +33,16 @@ | |||
33 | 33 | ||
34 | #include "bttvp.h" | 34 | #include "bttvp.h" |
35 | 35 | ||
36 | EXPORT_SYMBOL(bttv_get_cardinfo); | ||
37 | EXPORT_SYMBOL(bttv_get_pcidev); | 36 | EXPORT_SYMBOL(bttv_get_pcidev); |
38 | EXPORT_SYMBOL(bttv_get_id); | ||
39 | EXPORT_SYMBOL(bttv_gpio_enable); | 37 | EXPORT_SYMBOL(bttv_gpio_enable); |
40 | EXPORT_SYMBOL(bttv_read_gpio); | 38 | EXPORT_SYMBOL(bttv_read_gpio); |
41 | EXPORT_SYMBOL(bttv_write_gpio); | 39 | EXPORT_SYMBOL(bttv_write_gpio); |
42 | EXPORT_SYMBOL(bttv_get_gpio_queue); | ||
43 | EXPORT_SYMBOL(bttv_i2c_call); | ||
44 | 40 | ||
45 | /* ----------------------------------------------------------------------- */ | 41 | /* ----------------------------------------------------------------------- */ |
46 | /* Exported functions - for other modules which want to access the */ | 42 | /* Exported functions - for other modules which want to access the */ |
47 | /* gpio ports (IR for example) */ | 43 | /* gpio ports (IR for example) */ |
48 | /* see bttv.h for comments */ | 44 | /* see bttv.h for comments */ |
49 | 45 | ||
50 | int bttv_get_cardinfo(unsigned int card, int *type, unsigned *cardid) | ||
51 | { | ||
52 | printk("The bttv_* interface is obsolete and will go away,\n" | ||
53 | "please use the new, sysfs based interface instead.\n"); | ||
54 | if (card >= bttv_num) { | ||
55 | return -1; | ||
56 | } | ||
57 | *type = bttvs[card].c.type; | ||
58 | *cardid = bttvs[card].cardid; | ||
59 | return 0; | ||
60 | } | ||
61 | |||
62 | struct pci_dev* bttv_get_pcidev(unsigned int card) | 46 | struct pci_dev* bttv_get_pcidev(unsigned int card) |
63 | { | 47 | { |
64 | if (card >= bttv_num) | 48 | if (card >= bttv_num) |
@@ -66,16 +50,6 @@ struct pci_dev* bttv_get_pcidev(unsigned int card) | |||
66 | return bttvs[card].c.pci; | 50 | return bttvs[card].c.pci; |
67 | } | 51 | } |
68 | 52 | ||
69 | int bttv_get_id(unsigned int card) | ||
70 | { | ||
71 | printk("The bttv_* interface is obsolete and will go away,\n" | ||
72 | "please use the new, sysfs based interface instead.\n"); | ||
73 | if (card >= bttv_num) { | ||
74 | return -1; | ||
75 | } | ||
76 | return bttvs[card].c.type; | ||
77 | } | ||
78 | |||
79 | 53 | ||
80 | int bttv_gpio_enable(unsigned int card, unsigned long mask, unsigned long data) | 54 | int bttv_gpio_enable(unsigned int card, unsigned long mask, unsigned long data) |
81 | { | 55 | { |
@@ -130,28 +104,6 @@ int bttv_write_gpio(unsigned int card, unsigned long mask, unsigned long data) | |||
130 | return 0; | 104 | return 0; |
131 | } | 105 | } |
132 | 106 | ||
133 | wait_queue_head_t* bttv_get_gpio_queue(unsigned int card) | ||
134 | { | ||
135 | struct bttv *btv; | ||
136 | |||
137 | if (card >= bttv_num) { | ||
138 | return NULL; | ||
139 | } | ||
140 | |||
141 | btv = &bttvs[card]; | ||
142 | if (bttvs[card].shutdown) { | ||
143 | return NULL; | ||
144 | } | ||
145 | return &btv->gpioq; | ||
146 | } | ||
147 | |||
148 | void bttv_i2c_call(unsigned int card, unsigned int cmd, void *arg) | ||
149 | { | ||
150 | if (card >= bttv_num) | ||
151 | return; | ||
152 | bttv_call_i2c_clients(&bttvs[card], cmd, arg); | ||
153 | } | ||
154 | |||
155 | /* | 107 | /* |
156 | * Local variables: | 108 | * Local variables: |
157 | * c-basic-offset: 8 | 109 | * c-basic-offset: 8 |
diff --git a/drivers/media/video/bt8xx/bttv.h b/drivers/media/video/bt8xx/bttv.h index 5491acbdaf63..f821ba69db99 100644 --- a/drivers/media/video/bt8xx/bttv.h +++ b/drivers/media/video/bt8xx/bttv.h | |||
@@ -168,6 +168,8 @@ | |||
168 | #define BTTV_BOARD_SABRENT_TVFM 0x8e | 168 | #define BTTV_BOARD_SABRENT_TVFM 0x8e |
169 | #define BTTV_BOARD_HAUPPAUGE_IMPACTVCB 0x8f | 169 | #define BTTV_BOARD_HAUPPAUGE_IMPACTVCB 0x8f |
170 | #define BTTV_BOARD_MACHTV_MAGICTV 0x90 | 170 | #define BTTV_BOARD_MACHTV_MAGICTV 0x90 |
171 | #define BTTV_BOARD_SSAI_SECURITY 0x91 | ||
172 | #define BTTV_BOARD_SSAI_ULTRASOUND 0x92 | ||
171 | 173 | ||
172 | /* more card-specific defines */ | 174 | /* more card-specific defines */ |
173 | #define PT2254_L_CHANNEL 0x10 | 175 | #define PT2254_L_CHANNEL 0x10 |
@@ -260,17 +262,8 @@ extern int bttv_handle_chipset(struct bttv *btv); | |||
260 | /* this obsolete -- please use the sysfs-based | 262 | /* this obsolete -- please use the sysfs-based |
261 | interface below for new code */ | 263 | interface below for new code */ |
262 | 264 | ||
263 | /* returns card type + card ID (for bt878-based ones) | ||
264 | for possible values see lines below beginning with #define BTTV_BOARD_UNKNOWN | ||
265 | returns negative value if error occurred | ||
266 | */ | ||
267 | extern int bttv_get_cardinfo(unsigned int card, int *type, | ||
268 | unsigned int *cardid); | ||
269 | extern struct pci_dev* bttv_get_pcidev(unsigned int card); | 265 | extern struct pci_dev* bttv_get_pcidev(unsigned int card); |
270 | 266 | ||
271 | /* obsolete, use bttv_get_cardinfo instead */ | ||
272 | extern int bttv_get_id(unsigned int card); | ||
273 | |||
274 | /* sets GPOE register (BT848_GPIO_OUT_EN) to new value: | 267 | /* sets GPOE register (BT848_GPIO_OUT_EN) to new value: |
275 | data | (current_GPOE_value & ~mask) | 268 | data | (current_GPOE_value & ~mask) |
276 | returns negative value if error occurred | 269 | returns negative value if error occurred |
@@ -290,20 +283,6 @@ extern int bttv_read_gpio(unsigned int card, unsigned long *data); | |||
290 | extern int bttv_write_gpio(unsigned int card, | 283 | extern int bttv_write_gpio(unsigned int card, |
291 | unsigned long mask, unsigned long data); | 284 | unsigned long mask, unsigned long data); |
292 | 285 | ||
293 | /* returns pointer to task queue which can be used as parameter to | ||
294 | interruptible_sleep_on | ||
295 | in interrupt handler if BT848_INT_GPINT bit is set - this queue is activated | ||
296 | (wake_up_interruptible) and following call to the function bttv_read_gpio | ||
297 | should return new value of GPDATA, | ||
298 | returns NULL value if error occurred or queue is not available | ||
299 | WARNING: because there is no buffer for GPIO data, one MUST | ||
300 | process data ASAP | ||
301 | */ | ||
302 | extern wait_queue_head_t* bttv_get_gpio_queue(unsigned int card); | ||
303 | |||
304 | /* call i2c clients | ||
305 | */ | ||
306 | extern void bttv_i2c_call(unsigned int card, unsigned int cmd, void *arg); | ||
307 | 286 | ||
308 | 287 | ||
309 | 288 | ||
diff --git a/drivers/media/video/bt8xx/bttvp.h b/drivers/media/video/bt8xx/bttvp.h index ad79b8d53430..8f44f02029be 100644 --- a/drivers/media/video/bt8xx/bttvp.h +++ b/drivers/media/video/bt8xx/bttvp.h | |||
@@ -434,6 +434,9 @@ struct bttv { | |||
434 | unsigned int users; | 434 | unsigned int users; |
435 | struct bttv_fh init; | 435 | struct bttv_fh init; |
436 | 436 | ||
437 | /* used to make dvb-bt8xx autoloadable */ | ||
438 | struct work_struct request_module_wk; | ||
439 | |||
437 | /* Default (0) and current (1) video capturing and overlay | 440 | /* Default (0) and current (1) video capturing and overlay |
438 | cropping parameters in bttv_tvnorm.cropcap units. Protected | 441 | cropping parameters in bttv_tvnorm.cropcap units. Protected |
439 | by bttv.lock. */ | 442 | by bttv.lock. */ |