aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video')
-rw-r--r--drivers/media/video/Kconfig14
-rw-r--r--drivers/media/video/bt832.c14
-rw-r--r--drivers/media/video/bttv-driver.c82
-rw-r--r--drivers/media/video/bttvp.h1
-rw-r--r--drivers/media/video/cx88/cx88-blackbird.c2
-rw-r--r--drivers/media/video/cx88/cx88-input.c2
-rw-r--r--drivers/media/video/cx88/cx88.h1
-rw-r--r--drivers/media/video/em28xx/em28xx-core.c54
-rw-r--r--drivers/media/video/em28xx/em28xx-i2c.c4
-rw-r--r--drivers/media/video/em28xx/em28xx-video.c23
-rw-r--r--drivers/media/video/em28xx/em28xx.h8
-rw-r--r--drivers/media/video/ir-kbd-gpio.c8
-rw-r--r--drivers/media/video/ir-kbd-i2c.c11
-rw-r--r--drivers/media/video/msp3400.c18
-rw-r--r--drivers/media/video/saa6588.c1
-rw-r--r--drivers/media/video/saa711x.c2
-rw-r--r--drivers/media/video/saa7134/saa6752hs.c17
-rw-r--r--drivers/media/video/saa7134/saa7134-alsa.c16
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c2
-rw-r--r--drivers/media/video/saa7134/saa7134-core.c1
-rw-r--r--drivers/media/video/saa7134/saa7134-empress.c1
-rw-r--r--drivers/media/video/saa7134/saa7134-i2c.c2
-rw-r--r--drivers/media/video/saa7134/saa7134-oss.c93
-rw-r--r--drivers/media/video/tda9887.c15
-rw-r--r--drivers/media/video/tvaudio.c30
-rw-r--r--drivers/media/video/tveeprom.c3
-rw-r--r--drivers/media/video/tvp5150.c3
-rw-r--r--drivers/media/video/video-buf-dvb.c2
28 files changed, 199 insertions, 231 deletions
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index cc4a723e24db..fc87efc5049c 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -188,7 +188,7 @@ config VIDEO_ZORAN
188 188
189 To compile this driver as a module, choose M here: the 189 To compile this driver as a module, choose M here: the
190 module will be called zr36067. 190 module will be called zr36067.
191 191
192config VIDEO_ZORAN_BUZ 192config VIDEO_ZORAN_BUZ
193 tristate "Iomega Buz support" 193 tristate "Iomega Buz support"
194 depends on VIDEO_ZORAN 194 depends on VIDEO_ZORAN
@@ -204,8 +204,8 @@ config VIDEO_ZORAN_DC10
204 204
205config VIDEO_ZORAN_DC30 205config VIDEO_ZORAN_DC30
206 tristate "Pinnacle/Miro DC30(+) support" 206 tristate "Pinnacle/Miro DC30(+) support"
207 depends on VIDEO_ZORAN 207 depends on VIDEO_ZORAN
208 help 208 help
209 Support for the Pinnacle/Miro DC30(+) MJPEG capture/playback 209 Support for the Pinnacle/Miro DC30(+) MJPEG capture/playback
210 card. This also supports really old DC10 cards based on the 210 card. This also supports really old DC10 cards based on the
211 zr36050 MJPEG codec and zr36016 VFE. 211 zr36050 MJPEG codec and zr36016 VFE.
@@ -260,7 +260,7 @@ config VIDEO_MXB
260 ---help--- 260 ---help---
261 This is a video4linux driver for the 'Multimedia eXtension Board' 261 This is a video4linux driver for the 'Multimedia eXtension Board'
262 TV card by Siemens-Nixdorf. 262 TV card by Siemens-Nixdorf.
263 263
264 To compile this driver as a module, choose M here: the 264 To compile this driver as a module, choose M here: the
265 module will be called mxb. 265 module will be called mxb.
266 266
@@ -274,7 +274,7 @@ config VIDEO_DPC
274 for SAA7146 bases boards, so if you have some unsupported 274 for SAA7146 bases boards, so if you have some unsupported
275 saa7146 based, analog video card, chances are good that it 275 saa7146 based, analog video card, chances are good that it
276 will work with this skeleton driver. 276 will work with this skeleton driver.
277 277
278 To compile this driver as a module, choose M here: the 278 To compile this driver as a module, choose M here: the
279 module will be called dpc7146. 279 module will be called dpc7146.
280 280
@@ -285,7 +285,7 @@ config VIDEO_HEXIUM_ORION
285 ---help--- 285 ---help---
286 This is a video4linux driver for the Hexium HV-PCI6 and 286 This is a video4linux driver for the Hexium HV-PCI6 and
287 Orion frame grabber cards by Hexium. 287 Orion frame grabber cards by Hexium.
288 288
289 To compile this driver as a module, choose M here: the 289 To compile this driver as a module, choose M here: the
290 module will be called hexium_orion. 290 module will be called hexium_orion.
291 291
@@ -297,7 +297,7 @@ config VIDEO_HEXIUM_GEMINI
297 This is a video4linux driver for the Hexium Gemini frame 297 This is a video4linux driver for the Hexium Gemini frame
298 grabber card by Hexium. Please note that the Gemini Dual 298 grabber card by Hexium. Please note that the Gemini Dual
299 card is *not* fully supported. 299 card is *not* fully supported.
300 300
301 To compile this driver as a module, choose M here: the 301 To compile this driver as a module, choose M here: the
302 module will be called hexium_gemini. 302 module will be called hexium_gemini.
303 303
diff --git a/drivers/media/video/bt832.c b/drivers/media/video/bt832.c
index e4063950ae57..3ca1d768bfd3 100644
--- a/drivers/media/video/bt832.c
+++ b/drivers/media/video/bt832.c
@@ -231,18 +231,18 @@ bt832_command(struct i2c_client *client, unsigned int cmd, void *arg)
231 231
232static struct i2c_driver driver = { 232static struct i2c_driver driver = {
233 .owner = THIS_MODULE, 233 .owner = THIS_MODULE,
234 .name = "i2c bt832 driver", 234 .name = "i2c bt832 driver",
235 .id = -1, /* FIXME */ 235 .id = -1, /* FIXME */
236 .flags = I2C_DF_NOTIFY, 236 .flags = I2C_DF_NOTIFY,
237 .attach_adapter = bt832_probe, 237 .attach_adapter = bt832_probe,
238 .detach_client = bt832_detach, 238 .detach_client = bt832_detach,
239 .command = bt832_command, 239 .command = bt832_command,
240}; 240};
241static struct i2c_client client_template = 241static struct i2c_client client_template =
242{ 242{
243 .name = "bt832", 243 .name = "bt832",
244 .flags = I2C_CLIENT_ALLOW_USE, 244 .flags = I2C_CLIENT_ALLOW_USE,
245 .driver = &driver, 245 .driver = &driver,
246}; 246};
247 247
248 248
diff --git a/drivers/media/video/bttv-driver.c b/drivers/media/video/bttv-driver.c
index 3c58a2a68906..1ddf9ba613ef 100644
--- a/drivers/media/video/bttv-driver.c
+++ b/drivers/media/video/bttv-driver.c
@@ -727,71 +727,71 @@ void free_btres(struct bttv *btv, struct bttv_fh *fh, int bits)
727 727
728static void set_pll_freq(struct bttv *btv, unsigned int fin, unsigned int fout) 728static void set_pll_freq(struct bttv *btv, unsigned int fin, unsigned int fout)
729{ 729{
730 unsigned char fl, fh, fi; 730 unsigned char fl, fh, fi;
731 731
732 /* prevent overflows */ 732 /* prevent overflows */
733 fin/=4; 733 fin/=4;
734 fout/=4; 734 fout/=4;
735 735
736 fout*=12; 736 fout*=12;
737 fi=fout/fin; 737 fi=fout/fin;
738 738
739 fout=(fout%fin)*256; 739 fout=(fout%fin)*256;
740 fh=fout/fin; 740 fh=fout/fin;
741 741
742 fout=(fout%fin)*256; 742 fout=(fout%fin)*256;
743 fl=fout/fin; 743 fl=fout/fin;
744 744
745 btwrite(fl, BT848_PLL_F_LO); 745 btwrite(fl, BT848_PLL_F_LO);
746 btwrite(fh, BT848_PLL_F_HI); 746 btwrite(fh, BT848_PLL_F_HI);
747 btwrite(fi|BT848_PLL_X, BT848_PLL_XCI); 747 btwrite(fi|BT848_PLL_X, BT848_PLL_XCI);
748} 748}
749 749
750static void set_pll(struct bttv *btv) 750static void set_pll(struct bttv *btv)
751{ 751{
752 int i; 752 int i;
753 753
754 if (!btv->pll.pll_crystal) 754 if (!btv->pll.pll_crystal)
755 return; 755 return;
756 756
757 if (btv->pll.pll_ofreq == btv->pll.pll_current) { 757 if (btv->pll.pll_ofreq == btv->pll.pll_current) {
758 dprintk("bttv%d: PLL: no change required\n",btv->c.nr); 758 dprintk("bttv%d: PLL: no change required\n",btv->c.nr);
759 return; 759 return;
760 } 760 }
761 761
762 if (btv->pll.pll_ifreq == btv->pll.pll_ofreq) { 762 if (btv->pll.pll_ifreq == btv->pll.pll_ofreq) {
763 /* no PLL needed */ 763 /* no PLL needed */
764 if (btv->pll.pll_current == 0) 764 if (btv->pll.pll_current == 0)
765 return; 765 return;
766 bttv_printk(KERN_INFO "bttv%d: PLL can sleep, using XTAL (%d).\n", 766 bttv_printk(KERN_INFO "bttv%d: PLL can sleep, using XTAL (%d).\n",
767 btv->c.nr,btv->pll.pll_ifreq); 767 btv->c.nr,btv->pll.pll_ifreq);
768 btwrite(0x00,BT848_TGCTRL); 768 btwrite(0x00,BT848_TGCTRL);
769 btwrite(0x00,BT848_PLL_XCI); 769 btwrite(0x00,BT848_PLL_XCI);
770 btv->pll.pll_current = 0; 770 btv->pll.pll_current = 0;
771 return; 771 return;
772 } 772 }
773 773
774 bttv_printk(KERN_INFO "bttv%d: PLL: %d => %d ",btv->c.nr, 774 bttv_printk(KERN_INFO "bttv%d: PLL: %d => %d ",btv->c.nr,
775 btv->pll.pll_ifreq, btv->pll.pll_ofreq); 775 btv->pll.pll_ifreq, btv->pll.pll_ofreq);
776 set_pll_freq(btv, btv->pll.pll_ifreq, btv->pll.pll_ofreq); 776 set_pll_freq(btv, btv->pll.pll_ifreq, btv->pll.pll_ofreq);
777 777
778 for (i=0; i<10; i++) { 778 for (i=0; i<10; i++) {
779 /* Let other people run while the PLL stabilizes */ 779 /* Let other people run while the PLL stabilizes */
780 bttv_printk("."); 780 bttv_printk(".");
781 msleep(10); 781 msleep(10);
782 782
783 if (btread(BT848_DSTATUS) & BT848_DSTATUS_PLOCK) { 783 if (btread(BT848_DSTATUS) & BT848_DSTATUS_PLOCK) {
784 btwrite(0,BT848_DSTATUS); 784 btwrite(0,BT848_DSTATUS);
785 } else { 785 } else {
786 btwrite(0x08,BT848_TGCTRL); 786 btwrite(0x08,BT848_TGCTRL);
787 btv->pll.pll_current = btv->pll.pll_ofreq; 787 btv->pll.pll_current = btv->pll.pll_ofreq;
788 bttv_printk(" ok\n"); 788 bttv_printk(" ok\n");
789 return; 789 return;
790 } 790 }
791 } 791 }
792 btv->pll.pll_current = -1; 792 btv->pll.pll_current = -1;
793 bttv_printk("failed\n"); 793 bttv_printk("failed\n");
794 return; 794 return;
795} 795}
796 796
797/* used to switch between the bt848's analog/digital video capture modes */ 797/* used to switch between the bt848's analog/digital video capture modes */
@@ -1964,7 +1964,7 @@ static int setup_window(struct bttv_fh *fh, struct bttv *btv,
1964 } 1964 }
1965 1965
1966 down(&fh->cap.lock); 1966 down(&fh->cap.lock);
1967 kfree(fh->ov.clips); 1967 kfree(fh->ov.clips);
1968 fh->ov.clips = clips; 1968 fh->ov.clips = clips;
1969 fh->ov.nclips = n; 1969 fh->ov.nclips = n;
1970 1970
@@ -2758,7 +2758,7 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file,
2758 fh->ov.w.height = fb->fmt.height; 2758 fh->ov.w.height = fb->fmt.height;
2759 btv->init.ov.w.width = fb->fmt.width; 2759 btv->init.ov.w.width = fb->fmt.width;
2760 btv->init.ov.w.height = fb->fmt.height; 2760 btv->init.ov.w.height = fb->fmt.height;
2761 kfree(fh->ov.clips); 2761 kfree(fh->ov.clips);
2762 fh->ov.clips = NULL; 2762 fh->ov.clips = NULL;
2763 fh->ov.nclips = 0; 2763 fh->ov.nclips = 0;
2764 2764
diff --git a/drivers/media/video/bttvp.h b/drivers/media/video/bttvp.h
index 3aa9c6e4fc33..1e6a5632c3c7 100644
--- a/drivers/media/video/bttvp.h
+++ b/drivers/media/video/bttvp.h
@@ -45,6 +45,7 @@
45#include <media/tveeprom.h> 45#include <media/tveeprom.h>
46#include <media/ir-common.h> 46#include <media/ir-common.h>
47 47
48
48#include "bt848.h" 49#include "bt848.h"
49#include "bttv.h" 50#include "bttv.h"
50#include "btcx-risc.h" 51#include "btcx-risc.h"
diff --git a/drivers/media/video/cx88/cx88-blackbird.c b/drivers/media/video/cx88/cx88-blackbird.c
index 4ae3f78cccf2..74e57a53116f 100644
--- a/drivers/media/video/cx88/cx88-blackbird.c
+++ b/drivers/media/video/cx88/cx88-blackbird.c
@@ -616,6 +616,8 @@ static int blackbird_load_firmware(struct cx8802_dev *dev)
616 616
617 retval = request_firmware(&firmware, BLACKBIRD_FIRM_ENC_FILENAME, 617 retval = request_firmware(&firmware, BLACKBIRD_FIRM_ENC_FILENAME,
618 &dev->pci->dev); 618 &dev->pci->dev);
619
620
619 if (retval != 0) { 621 if (retval != 0) {
620 dprintk(0, "ERROR: Hotplug firmware request failed (%s).\n", 622 dprintk(0, "ERROR: Hotplug firmware request failed (%s).\n",
621 BLACKBIRD_FIRM_ENC_FILENAME); 623 BLACKBIRD_FIRM_ENC_FILENAME);
diff --git a/drivers/media/video/cx88/cx88-input.c b/drivers/media/video/cx88/cx88-input.c
index 38b12ebaa49e..461019dca901 100644
--- a/drivers/media/video/cx88/cx88-input.c
+++ b/drivers/media/video/cx88/cx88-input.c
@@ -453,7 +453,6 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
453 input_dev->id.product = pci->device; 453 input_dev->id.product = pci->device;
454 } 454 }
455 input_dev->cdev.dev = &pci->dev; 455 input_dev->cdev.dev = &pci->dev;
456
457 /* record handles to ourself */ 456 /* record handles to ourself */
458 ir->core = core; 457 ir->core = core;
459 core->ir = ir; 458 core->ir = ir;
@@ -586,7 +585,6 @@ void cx88_ir_irq(struct cx88_core *core)
586MODULE_AUTHOR("Gerd Knorr, Pavel Machek, Chris Pascoe"); 585MODULE_AUTHOR("Gerd Knorr, Pavel Machek, Chris Pascoe");
587MODULE_DESCRIPTION("input driver for cx88 GPIO-based IR remote controls"); 586MODULE_DESCRIPTION("input driver for cx88 GPIO-based IR remote controls");
588MODULE_LICENSE("GPL"); 587MODULE_LICENSE("GPL");
589
590/* 588/*
591 * Local variables: 589 * Local variables:
592 * c-basic-offset: 8 590 * c-basic-offset: 8
diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h
index 27fb080fd7aa..77beafc5c327 100644
--- a/drivers/media/video/cx88/cx88.h
+++ b/drivers/media/video/cx88/cx88.h
@@ -411,7 +411,6 @@ struct cx8802_dev {
411 struct videobuf_dvb dvb; 411 struct videobuf_dvb dvb;
412 void* fe_handle; 412 void* fe_handle;
413 int (*fe_release)(void *handle); 413 int (*fe_release)(void *handle);
414
415 /* for switching modulation types */ 414 /* for switching modulation types */
416 unsigned char ts_gen_cntrl; 415 unsigned char ts_gen_cntrl;
417 416
diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c
index 9f6e5e5355a1..e8a1c2247567 100644
--- a/drivers/media/video/em28xx/em28xx-core.c
+++ b/drivers/media/video/em28xx/em28xx-core.c
@@ -39,7 +39,7 @@ MODULE_PARM_DESC(core_debug,"enable debug messages [core]");
39#define em28xx_coredbg(fmt, arg...) do {\ 39#define em28xx_coredbg(fmt, arg...) do {\
40 if (core_debug) \ 40 if (core_debug) \
41 printk(KERN_INFO "%s %s :"fmt, \ 41 printk(KERN_INFO "%s %s :"fmt, \
42 dev->name, __FUNCTION__ , ##arg); } while (0) 42 dev->name, __FUNCTION__, ##arg); } while (0)
43 43
44static unsigned int reg_debug; 44static unsigned int reg_debug;
45module_param(reg_debug,int,0644); 45module_param(reg_debug,int,0644);
@@ -48,7 +48,7 @@ MODULE_PARM_DESC(reg_debug,"enable debug messages [URB reg]");
48#define em28xx_regdbg(fmt, arg...) do {\ 48#define em28xx_regdbg(fmt, arg...) do {\
49 if (reg_debug) \ 49 if (reg_debug) \
50 printk(KERN_INFO "%s %s :"fmt, \ 50 printk(KERN_INFO "%s %s :"fmt, \
51 dev->name, __FUNCTION__ , ##arg); } while (0) 51 dev->name, __FUNCTION__, ##arg); } while (0)
52 52
53static unsigned int isoc_debug; 53static unsigned int isoc_debug;
54module_param(isoc_debug,int,0644); 54module_param(isoc_debug,int,0644);
@@ -57,7 +57,7 @@ MODULE_PARM_DESC(isoc_debug,"enable debug messages [isoc transfers]");
57#define em28xx_isocdbg(fmt, arg...) do {\ 57#define em28xx_isocdbg(fmt, arg...) do {\
58 if (isoc_debug) \ 58 if (isoc_debug) \
59 printk(KERN_INFO "%s %s :"fmt, \ 59 printk(KERN_INFO "%s %s :"fmt, \
60 dev->name, __FUNCTION__ , ##arg); } while (0) 60 dev->name, __FUNCTION__, ##arg); } while (0)
61 61
62static int alt = EM28XX_PINOUT; 62static int alt = EM28XX_PINOUT;
63module_param(alt, int, 0644); 63module_param(alt, int, 0644);
@@ -116,47 +116,6 @@ void em28xx_print_ioctl(char *name, unsigned int cmd)
116 } 116 }
117} 117}
118 118
119static void *rvmalloc(size_t size)
120{
121 void *mem;
122 unsigned long adr;
123
124 size = PAGE_ALIGN(size);
125
126 mem = vmalloc_32((unsigned long)size);
127 if (!mem)
128 return NULL;
129
130 memset(mem, 0, size);
131
132 adr = (unsigned long)mem;
133 while (size > 0) {
134 SetPageReserved(vmalloc_to_page((void *)adr));
135 adr += PAGE_SIZE;
136 size -= PAGE_SIZE;
137 }
138
139 return mem;
140}
141
142static void rvfree(void *mem, size_t size)
143{
144 unsigned long adr;
145
146 if (!mem)
147 return;
148
149 size = PAGE_ALIGN(size);
150
151 adr = (unsigned long)mem;
152 while (size > 0) {
153 ClearPageReserved(vmalloc_to_page((void *)adr));
154 adr += PAGE_SIZE;
155 size -= PAGE_SIZE;
156 }
157
158 vfree(mem);
159}
160 119
161/* 120/*
162 * em28xx_request_buffers() 121 * em28xx_request_buffers()
@@ -173,8 +132,10 @@ u32 em28xx_request_buffers(struct em28xx *dev, u32 count)
173 132
174 dev->num_frames = count; 133 dev->num_frames = count;
175 while (dev->num_frames > 0) { 134 while (dev->num_frames > 0) {
176 if ((buff = rvmalloc(dev->num_frames * imagesize))) 135 if ((buff = vmalloc_32(dev->num_frames * imagesize))) {
136 memset(buff, 0, dev->num_frames * imagesize);
177 break; 137 break;
138 }
178 dev->num_frames--; 139 dev->num_frames--;
179 } 140 }
180 141
@@ -217,8 +178,7 @@ void em28xx_queue_unusedframes(struct em28xx *dev)
217void em28xx_release_buffers(struct em28xx *dev) 178void em28xx_release_buffers(struct em28xx *dev)
218{ 179{
219 if (dev->num_frames) { 180 if (dev->num_frames) {
220 rvfree(dev->frame[0].bufmem, 181 vfree(dev->frame[0].bufmem);
221 dev->num_frames * PAGE_ALIGN(dev->frame[0].buf.length));
222 dev->num_frames = 0; 182 dev->num_frames = 0;
223 } 183 }
224} 184}
diff --git a/drivers/media/video/em28xx/em28xx-i2c.c b/drivers/media/video/em28xx/em28xx-i2c.c
index b32d9852f34c..29e21ad187cc 100644
--- a/drivers/media/video/em28xx/em28xx-i2c.c
+++ b/drivers/media/video/em28xx/em28xx-i2c.c
@@ -41,10 +41,10 @@ module_param(i2c_debug, int, 0644);
41MODULE_PARM_DESC(i2c_debug, "enable debug messages [i2c]"); 41MODULE_PARM_DESC(i2c_debug, "enable debug messages [i2c]");
42 42
43#define dprintk1(lvl,fmt, args...) if (i2c_debug>=lvl) do {\ 43#define dprintk1(lvl,fmt, args...) if (i2c_debug>=lvl) do {\
44 printk(fmt , ##args); } while (0) 44 printk(fmt, ##args); } while (0)
45#define dprintk2(lvl,fmt, args...) if (i2c_debug>=lvl) do{ \ 45#define dprintk2(lvl,fmt, args...) if (i2c_debug>=lvl) do{ \
46 printk(KERN_DEBUG "%s at %s: " fmt, \ 46 printk(KERN_DEBUG "%s at %s: " fmt, \
47 dev->name, __FUNCTION__ , ##args); } while (0) 47 dev->name, __FUNCTION__, ##args); } while (0)
48 48
49/* 49/*
50 * em2800_i2c_send_max4() 50 * em2800_i2c_send_max4()
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c
index abec32c175aa..8ecaa0803e08 100644
--- a/drivers/media/video/em28xx/em28xx-video.c
+++ b/drivers/media/video/em28xx/em28xx-video.c
@@ -45,7 +45,7 @@
45#define em28xx_videodbg(fmt, arg...) do {\ 45#define em28xx_videodbg(fmt, arg...) do {\
46 if (video_debug) \ 46 if (video_debug) \
47 printk(KERN_INFO "%s %s :"fmt, \ 47 printk(KERN_INFO "%s %s :"fmt, \
48 dev->name, __FUNCTION__ , ##arg); } while (0) 48 dev->name, __FUNCTION__, ##arg); } while (0)
49 49
50MODULE_AUTHOR(DRIVER_AUTHOR); 50MODULE_AUTHOR(DRIVER_AUTHOR);
51MODULE_DESCRIPTION(DRIVER_DESC); 51MODULE_DESCRIPTION(DRIVER_DESC);
@@ -189,16 +189,6 @@ static DECLARE_RWSEM(em28xx_disconnect);
189 189
190/********************* v4l2 interface ******************************************/ 190/********************* v4l2 interface ******************************************/
191 191
192static inline unsigned long kvirt_to_pa(unsigned long adr)
193{
194 unsigned long kva, ret;
195
196 kva = (unsigned long)page_address(vmalloc_to_page((void *)adr));
197 kva |= adr & (PAGE_SIZE - 1);
198 ret = __pa(kva);
199 return ret;
200}
201
202/* 192/*
203 * em28xx_config() 193 * em28xx_config()
204 * inits registers with sane defaults 194 * inits registers with sane defaults
@@ -616,7 +606,8 @@ static struct vm_operations_struct em28xx_vm_ops = {
616static int em28xx_v4l2_mmap(struct file *filp, struct vm_area_struct *vma) 606static int em28xx_v4l2_mmap(struct file *filp, struct vm_area_struct *vma)
617{ 607{
618 unsigned long size = vma->vm_end - vma->vm_start, 608 unsigned long size = vma->vm_end - vma->vm_start,
619 start = vma->vm_start, pos, page; 609 start = vma->vm_start;
610 void *pos;
620 u32 i; 611 u32 i;
621 612
622 struct em28xx *dev = filp->private_data; 613 struct em28xx *dev = filp->private_data;
@@ -657,12 +648,10 @@ static int em28xx_v4l2_mmap(struct file *filp, struct vm_area_struct *vma)
657 vma->vm_flags |= VM_IO; 648 vma->vm_flags |= VM_IO;
658 vma->vm_flags |= VM_RESERVED; /* avoid to swap out this VMA */ 649 vma->vm_flags |= VM_RESERVED; /* avoid to swap out this VMA */
659 650
660 pos = (unsigned long)dev->frame[i].bufmem; 651 pos = dev->frame[i].bufmem;
661 while (size > 0) { /* size is page-aligned */ 652 while (size > 0) { /* size is page-aligned */
662 page = vmalloc_to_pfn((void *)pos); 653 if (vm_insert_page(vma, start, vmalloc_to_page(pos))) {
663 if (remap_pfn_range(vma, start, page, PAGE_SIZE, 654 em28xx_videodbg("mmap: vm_insert_page failed\n");
664 vma->vm_page_prot)) {
665 em28xx_videodbg("mmap: rename page map failed\n");
666 up(&dev->fileop_lock); 655 up(&dev->fileop_lock);
667 return -EAGAIN; 656 return -EAGAIN;
668 } 657 }
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h
index 5c7a41ce69f3..1e2ee43db394 100644
--- a/drivers/media/video/em28xx/em28xx.h
+++ b/drivers/media/video/em28xx/em28xx.h
@@ -392,18 +392,18 @@ extern const unsigned int em28xx_bcount;
392/* printk macros */ 392/* printk macros */
393 393
394#define em28xx_err(fmt, arg...) do {\ 394#define em28xx_err(fmt, arg...) do {\
395 printk(KERN_ERR fmt , ##arg); } while (0) 395 printk(KERN_ERR fmt, ##arg); } while (0)
396 396
397#define em28xx_errdev(fmt, arg...) do {\ 397#define em28xx_errdev(fmt, arg...) do {\
398 printk(KERN_ERR "%s: "fmt,\ 398 printk(KERN_ERR "%s: "fmt,\
399 dev->name , ##arg); } while (0) 399 dev->name, ##arg); } while (0)
400 400
401#define em28xx_info(fmt, arg...) do {\ 401#define em28xx_info(fmt, arg...) do {\
402 printk(KERN_INFO "%s: "fmt,\ 402 printk(KERN_INFO "%s: "fmt,\
403 dev->name , ##arg); } while (0) 403 dev->name, ##arg); } while (0)
404#define em28xx_warn(fmt, arg...) do {\ 404#define em28xx_warn(fmt, arg...) do {\
405 printk(KERN_WARNING "%s: "fmt,\ 405 printk(KERN_WARNING "%s: "fmt,\
406 dev->name , ##arg); } while (0) 406 dev->name, ##arg); } while (0)
407 407
408inline static int em28xx_audio_source(struct em28xx *dev, int input) 408inline static int em28xx_audio_source(struct em28xx *dev, int input)
409{ 409{
diff --git a/drivers/media/video/ir-kbd-gpio.c b/drivers/media/video/ir-kbd-gpio.c
index 6345e29e4951..de1385e5d05e 100644
--- a/drivers/media/video/ir-kbd-gpio.c
+++ b/drivers/media/video/ir-kbd-gpio.c
@@ -291,13 +291,12 @@ struct IR {
291 u32 mask_keycode; 291 u32 mask_keycode;
292 u32 mask_keydown; 292 u32 mask_keydown;
293 u32 mask_keyup; 293 u32 mask_keyup;
294 u32 polling; 294 u32 polling;
295 u32 last_gpio; 295 u32 last_gpio;
296 struct work_struct work; 296 struct work_struct work;
297 struct timer_list timer; 297 struct timer_list timer;
298 298
299 /* RC5 gpio */ 299 /* RC5 gpio */
300
301 u32 rc5_gpio; 300 u32 rc5_gpio;
302 struct timer_list timer_end; /* timer_end for code completion */ 301 struct timer_list timer_end; /* timer_end for code completion */
303 struct timer_list timer_keyup; /* timer_end for key release */ 302 struct timer_list timer_keyup; /* timer_end for key release */
@@ -647,7 +646,7 @@ static int ir_probe(struct device *dev)
647 driver.any_irq = ir_rc5_irq; 646 driver.any_irq = ir_rc5_irq;
648 driver.gpio_irq = NULL; 647 driver.gpio_irq = NULL;
649 ir->rc5_gpio = 1; 648 ir->rc5_gpio = 1;
650 break; 649 break;
651 } 650 }
652 if (NULL == ir_codes) { 651 if (NULL == ir_codes) {
653 kfree(ir); 652 kfree(ir);
@@ -657,7 +656,7 @@ static int ir_probe(struct device *dev)
657 656
658 if (ir->rc5_gpio) { 657 if (ir->rc5_gpio) {
659 u32 gpio; 658 u32 gpio;
660 /* enable remote irq */ 659 /* enable remote irq */
661 bttv_gpio_inout(sub->core, (1 << 4), 1 << 4); 660 bttv_gpio_inout(sub->core, (1 << 4), 1 << 4);
662 gpio = bttv_gpio_read(sub->core); 661 gpio = bttv_gpio_read(sub->core);
663 bttv_gpio_write(sub->core, gpio & ~(1 << 4)); 662 bttv_gpio_write(sub->core, gpio & ~(1 << 4));
@@ -726,6 +725,7 @@ static int ir_remove(struct device *dev)
726 del_timer(&ir->timer); 725 del_timer(&ir->timer);
727 flush_scheduled_work(); 726 flush_scheduled_work();
728 } 727 }
728
729 if (ir->rc5_gpio) { 729 if (ir->rc5_gpio) {
730 u32 gpio; 730 u32 gpio;
731 731
diff --git a/drivers/media/video/ir-kbd-i2c.c b/drivers/media/video/ir-kbd-i2c.c
index 124c502ea1f3..740e543311af 100644
--- a/drivers/media/video/ir-kbd-i2c.c
+++ b/drivers/media/video/ir-kbd-i2c.c
@@ -40,6 +40,7 @@
40#include <linux/i2c.h> 40#include <linux/i2c.h>
41#include <linux/workqueue.h> 41#include <linux/workqueue.h>
42#include <asm/semaphore.h> 42#include <asm/semaphore.h>
43
43#include <media/ir-common.h> 44#include <media/ir-common.h>
44#include <media/ir-kbd-i2c.h> 45#include <media/ir-kbd-i2c.h>
45 46
@@ -278,7 +279,7 @@ static int ir_probe(struct i2c_adapter *adap);
278 279
279static struct i2c_driver driver = { 280static struct i2c_driver driver = {
280 .name = "ir remote kbd driver", 281 .name = "ir remote kbd driver",
281 .id = I2C_DRIVERID_I2C_IR, 282 .id = I2C_DRIVERID_INFRARED,
282 .flags = I2C_DF_NOTIFY, 283 .flags = I2C_DF_NOTIFY,
283 .attach_adapter = ir_probe, 284 .attach_adapter = ir_probe,
284 .detach_client = ir_detach, 285 .detach_client = ir_detach,
@@ -296,15 +297,15 @@ static int ir_attach(struct i2c_adapter *adap, int addr,
296 IR_KEYTAB_TYPE *ir_codes = NULL; 297 IR_KEYTAB_TYPE *ir_codes = NULL;
297 char *name; 298 char *name;
298 int ir_type; 299 int ir_type;
299 struct IR_i2c *ir; 300 struct IR_i2c *ir;
300 struct input_dev *input_dev; 301 struct input_dev *input_dev;
301 302
302 ir = kzalloc(sizeof(struct IR_i2c), GFP_KERNEL); 303 ir = kzalloc(sizeof(struct IR_i2c),GFP_KERNEL);
303 input_dev = input_allocate_device(); 304 input_dev = input_allocate_device();
304 if (!ir || !input_dev) { 305 if (!ir || !input_dev) {
305 kfree(ir); 306 kfree(ir);
306 input_free_device(input_dev); 307 input_free_device(input_dev);
307 return -ENOMEM; 308 return -ENOMEM;
308 } 309 }
309 310
310 ir->c = client_template; 311 ir->c = client_template;
@@ -360,7 +361,7 @@ static int ir_attach(struct i2c_adapter *adap, int addr,
360 /* register i2c device 361 /* register i2c device
361 * At device register, IR codes may be changed to be 362 * At device register, IR codes may be changed to be
362 * board dependent. 363 * board dependent.
363 */ 364 */
364 i2c_attach_client(&ir->c); 365 i2c_attach_client(&ir->c);
365 366
366 /* If IR not supported or disabled, unregisters driver */ 367 /* If IR not supported or disabled, unregisters driver */
diff --git a/drivers/media/video/msp3400.c b/drivers/media/video/msp3400.c
index a23fb0338986..d86f8e92e534 100644
--- a/drivers/media/video/msp3400.c
+++ b/drivers/media/video/msp3400.c
@@ -134,7 +134,7 @@ struct msp3400c {
134 int rxsubchans; 134 int rxsubchans;
135 135
136 int muted; 136 int muted;
137 int left, right; /* volume */ 137 int left, right; /* volume */
138 int bass, treble; 138 int bass, treble;
139 139
140 /* shadow register set */ 140 /* shadow register set */
@@ -882,6 +882,7 @@ static void watch_stereo(struct i2c_client *client)
882 msp->watch_stereo = 0; 882 msp->watch_stereo = 0;
883} 883}
884 884
885
885static int msp3400c_thread(void *data) 886static int msp3400c_thread(void *data)
886{ 887{
887 struct i2c_client *client = data; 888 struct i2c_client *client = data;
@@ -889,6 +890,7 @@ static int msp3400c_thread(void *data)
889 struct CARRIER_DETECT *cd; 890 struct CARRIER_DETECT *cd;
890 int count, max1,max2,val1,val2, val,this; 891 int count, max1,max2,val1,val2, val,this;
891 892
893
892 msp3400_info("msp3400 daemon started\n"); 894 msp3400_info("msp3400 daemon started\n");
893 for (;;) { 895 for (;;) {
894 msp3400_dbg_mediumvol("msp3400 thread: sleep\n"); 896 msp3400_dbg_mediumvol("msp3400 thread: sleep\n");
@@ -1162,6 +1164,7 @@ static int msp3410d_thread(void *data)
1162 int mode,val,i,std; 1164 int mode,val,i,std;
1163 1165
1164 msp3400_info("msp3410 daemon started\n"); 1166 msp3400_info("msp3410 daemon started\n");
1167
1165 for (;;) { 1168 for (;;) {
1166 msp3400_dbg_mediumvol("msp3410 thread: sleep\n"); 1169 msp3400_dbg_mediumvol("msp3410 thread: sleep\n");
1167 msp34xx_sleep(msp,-1); 1170 msp34xx_sleep(msp,-1);
@@ -1384,6 +1387,7 @@ static int msp34xxg_thread(void *data)
1384 int val, std, i; 1387 int val, std, i;
1385 1388
1386 msp3400_info("msp34xxg daemon started\n"); 1389 msp3400_info("msp34xxg daemon started\n");
1390
1387 msp->source = 1; /* default */ 1391 msp->source = 1; /* default */
1388 for (;;) { 1392 for (;;) {
1389 msp3400_dbg_mediumvol("msp34xxg thread: sleep\n"); 1393 msp3400_dbg_mediumvol("msp34xxg thread: sleep\n");
@@ -1559,11 +1563,11 @@ static void msp_wake_thread(struct i2c_client *client);
1559static struct i2c_driver driver = { 1563static struct i2c_driver driver = {
1560 .owner = THIS_MODULE, 1564 .owner = THIS_MODULE,
1561 .name = "msp3400", 1565 .name = "msp3400",
1562 .id = I2C_DRIVERID_MSP3400, 1566 .id = I2C_DRIVERID_MSP3400,
1563 .flags = I2C_DF_NOTIFY, 1567 .flags = I2C_DF_NOTIFY,
1564 .attach_adapter = msp_probe, 1568 .attach_adapter = msp_probe,
1565 .detach_client = msp_detach, 1569 .detach_client = msp_detach,
1566 .command = msp_command, 1570 .command = msp_command,
1567 .driver = { 1571 .driver = {
1568 .suspend = msp_suspend, 1572 .suspend = msp_suspend,
1569 .resume = msp_resume, 1573 .resume = msp_resume,
@@ -1574,7 +1578,7 @@ static struct i2c_client client_template =
1574{ 1578{
1575 .name = "(unset)", 1579 .name = "(unset)",
1576 .flags = I2C_CLIENT_ALLOW_USE, 1580 .flags = I2C_CLIENT_ALLOW_USE,
1577 .driver = &driver, 1581 .driver = &driver,
1578}; 1582};
1579 1583
1580static int msp_attach(struct i2c_adapter *adap, int addr, int kind) 1584static int msp_attach(struct i2c_adapter *adap, int addr, int kind)
diff --git a/drivers/media/video/saa6588.c b/drivers/media/video/saa6588.c
index dca3ddfd510f..923322503e8f 100644
--- a/drivers/media/video/saa6588.c
+++ b/drivers/media/video/saa6588.c
@@ -422,7 +422,6 @@ static int saa6588_attach(struct i2c_adapter *adap, int addr, int kind)
422 s->timer.function = saa6588_timer; 422 s->timer.function = saa6588_timer;
423 s->timer.data = (unsigned long)s; 423 s->timer.data = (unsigned long)s;
424 schedule_work(&s->work); 424 schedule_work(&s->work);
425
426 return 0; 425 return 0;
427} 426}
428 427
diff --git a/drivers/media/video/saa711x.c b/drivers/media/video/saa711x.c
index 59e13fdea780..31f7b950b01c 100644
--- a/drivers/media/video/saa711x.c
+++ b/drivers/media/video/saa711x.c
@@ -59,7 +59,7 @@ MODULE_PARM_DESC(debug, " Set the default Debug level. Default: 0 (Off) - (0-1)
59#define dprintk(num, format, args...) \ 59#define dprintk(num, format, args...) \
60 do { \ 60 do { \
61 if (debug >= num) \ 61 if (debug >= num) \
62 printk(format , ##args); \ 62 printk(format, ##args); \
63 } while (0) 63 } while (0)
64 64
65/* ----------------------------------------------------------------------- */ 65/* ----------------------------------------------------------------------- */
diff --git a/drivers/media/video/saa7134/saa6752hs.c b/drivers/media/video/saa7134/saa6752hs.c
index cdd1ed9c8065..a61d24f588f7 100644
--- a/drivers/media/video/saa7134/saa6752hs.c
+++ b/drivers/media/video/saa7134/saa6752hs.c
@@ -523,7 +523,8 @@ static int saa6752hs_attach(struct i2c_adapter *adap, int addr, int kind)
523 h->standard = 0; 523 h->standard = 0;
524 524
525 i2c_set_clientdata(&h->client, h); 525 i2c_set_clientdata(&h->client, h);
526 i2c_attach_client(&h->client); 526 i2c_attach_client(&h->client);
527
527 return 0; 528 return 0;
528} 529}
529 530
@@ -597,19 +598,19 @@ saa6752hs_command(struct i2c_client *client, unsigned int cmd, void *arg)
597 598
598static struct i2c_driver driver = { 599static struct i2c_driver driver = {
599 .owner = THIS_MODULE, 600 .owner = THIS_MODULE,
600 .name = "i2c saa6752hs MPEG encoder", 601 .name = "i2c saa6752hs MPEG encoder",
601 .id = I2C_DRIVERID_SAA6752HS, 602 .id = I2C_DRIVERID_SAA6752HS,
602 .flags = I2C_DF_NOTIFY, 603 .flags = I2C_DF_NOTIFY,
603 .attach_adapter = saa6752hs_probe, 604 .attach_adapter = saa6752hs_probe,
604 .detach_client = saa6752hs_detach, 605 .detach_client = saa6752hs_detach,
605 .command = saa6752hs_command, 606 .command = saa6752hs_command,
606}; 607};
607 608
608static struct i2c_client client_template = 609static struct i2c_client client_template =
609{ 610{
610 .name = "saa6752hs", 611 .name = "saa6752hs",
611 .flags = I2C_CLIENT_ALLOW_USE, 612 .flags = I2C_CLIENT_ALLOW_USE,
612 .driver = &driver, 613 .driver = &driver,
613}; 614};
614 615
615static int __init saa6752hs_init_module(void) 616static int __init saa6752hs_init_module(void)
diff --git a/drivers/media/video/saa7134/saa7134-alsa.c b/drivers/media/video/saa7134/saa7134-alsa.c
index 263c6e2e3e8e..b24a26b065c2 100644
--- a/drivers/media/video/saa7134/saa7134-alsa.c
+++ b/drivers/media/video/saa7134/saa7134-alsa.c
@@ -51,6 +51,7 @@ MODULE_PARM_DESC(debug,"enable debug messages [alsa]");
51#define MIXER_ADDR_LINE2 2 51#define MIXER_ADDR_LINE2 2
52#define MIXER_ADDR_LAST 2 52#define MIXER_ADDR_LAST 2
53 53
54
54static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ 55static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
55static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ 56static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */
56static int enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 0}; 57static int enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 0};
@@ -59,11 +60,14 @@ module_param_array(index, int, NULL, 0444);
59MODULE_PARM_DESC(index, "Index value for SAA7134 capture interface(s)."); 60MODULE_PARM_DESC(index, "Index value for SAA7134 capture interface(s).");
60 61
61#define dprintk(fmt, arg...) if (debug) \ 62#define dprintk(fmt, arg...) if (debug) \
62 printk(KERN_DEBUG "%s/alsa: " fmt, dev->name , ## arg) 63 printk(KERN_DEBUG "%s/alsa: " fmt, dev->name, ## arg)
64
65
63 66
64/* 67/*
65 * Main chip structure 68 * Main chip structure
66 */ 69 */
70
67typedef struct snd_card_saa7134 { 71typedef struct snd_card_saa7134 {
68 snd_card_t *card; 72 snd_card_t *card;
69 spinlock_t mixer_lock; 73 spinlock_t mixer_lock;
@@ -208,8 +212,8 @@ static void saa7134_irq_alsa_done(struct saa7134_dev *dev,
208 212
209static irqreturn_t saa7134_alsa_irq(int irq, void *dev_id, struct pt_regs *regs) 213static irqreturn_t saa7134_alsa_irq(int irq, void *dev_id, struct pt_regs *regs)
210{ 214{
211 struct saa7134_dmasound *dmasound = dev_id; 215 struct saa7134_dmasound *dmasound = dev_id;
212 struct saa7134_dev *dev = dmasound->priv_data; 216 struct saa7134_dev *dev = dmasound->priv_data;
213 217
214 unsigned long report, status; 218 unsigned long report, status;
215 int loop, handled = 0; 219 int loop, handled = 0;
@@ -985,7 +989,7 @@ static int saa7134_alsa_init(void)
985 struct saa7134_dev *dev = NULL; 989 struct saa7134_dev *dev = NULL;
986 struct list_head *list; 990 struct list_head *list;
987 991
988 printk(KERN_INFO "saa7134 ALSA driver for DMA sound loaded\n"); 992 printk(KERN_INFO "saa7134 ALSA driver for DMA sound loaded\n");
989 993
990 list_for_each(list,&saa7134_devlist) { 994 list_for_each(list,&saa7134_devlist) {
991 dev = list_entry(list, struct saa7134_dev, devlist); 995 dev = list_entry(list, struct saa7134_dev, devlist);
@@ -1004,6 +1008,7 @@ static int saa7134_alsa_init(void)
1004 printk(KERN_INFO "saa7134 ALSA: no saa7134 cards found\n"); 1008 printk(KERN_INFO "saa7134 ALSA: no saa7134 cards found\n");
1005 1009
1006 return 0; 1010 return 0;
1011
1007} 1012}
1008 1013
1009/* 1014/*
@@ -1027,3 +1032,6 @@ module_init(saa7134_alsa_init);
1027module_exit(saa7134_alsa_exit); 1032module_exit(saa7134_alsa_exit);
1028MODULE_LICENSE("GPL"); 1033MODULE_LICENSE("GPL");
1029MODULE_AUTHOR("Ricardo Cerqueira"); 1034MODULE_AUTHOR("Ricardo Cerqueira");
1035
1036
1037
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index 75abc20b0ccd..672fb205959f 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -976,7 +976,7 @@ struct saa7134_board saa7134_boards[] = {
976 .radio_type = UNSET, 976 .radio_type = UNSET,
977 .tuner_addr = ADDR_UNSET, 977 .tuner_addr = ADDR_UNSET,
978 .radio_addr = ADDR_UNSET, 978 .radio_addr = ADDR_UNSET,
979 .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER, 979 .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_ACTIVE,
980 .inputs = {{ 980 .inputs = {{
981 .name = name_tv, 981 .name = name_tv,
982 .vmux = 3, 982 .vmux = 3,
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c
index 1a093bf176f3..23d8747338ed 100644
--- a/drivers/media/video/saa7134/saa7134-core.c
+++ b/drivers/media/video/saa7134/saa7134-core.c
@@ -71,6 +71,7 @@ static unsigned int radio_nr[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET };
71static unsigned int tuner[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET }; 71static unsigned int tuner[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET };
72static unsigned int card[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET }; 72static unsigned int card[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET };
73 73
74
74module_param_array(video_nr, int, NULL, 0444); 75module_param_array(video_nr, int, NULL, 0444);
75module_param_array(vbi_nr, int, NULL, 0444); 76module_param_array(vbi_nr, int, NULL, 0444);
76module_param_array(radio_nr, int, NULL, 0444); 77module_param_array(radio_nr, int, NULL, 0444);
diff --git a/drivers/media/video/saa7134/saa7134-empress.c b/drivers/media/video/saa7134/saa7134-empress.c
index e9ec69efb4c9..575f3e835f91 100644
--- a/drivers/media/video/saa7134/saa7134-empress.c
+++ b/drivers/media/video/saa7134/saa7134-empress.c
@@ -36,6 +36,7 @@ MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]");
36MODULE_LICENSE("GPL"); 36MODULE_LICENSE("GPL");
37 37
38static unsigned int empress_nr[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET }; 38static unsigned int empress_nr[] = {[0 ... (SAA7134_MAXBOARDS - 1)] = UNSET };
39
39module_param_array(empress_nr, int, NULL, 0444); 40module_param_array(empress_nr, int, NULL, 0444);
40MODULE_PARM_DESC(empress_nr,"ts device number"); 41MODULE_PARM_DESC(empress_nr,"ts device number");
41 42
diff --git a/drivers/media/video/saa7134/saa7134-i2c.c b/drivers/media/video/saa7134/saa7134-i2c.c
index 7575043f0874..df9dd36721e0 100644
--- a/drivers/media/video/saa7134/saa7134-i2c.c
+++ b/drivers/media/video/saa7134/saa7134-i2c.c
@@ -333,7 +333,7 @@ static int attach_inform(struct i2c_client *client)
333 struct tuner_setup tun_setup; 333 struct tuner_setup tun_setup;
334 334
335 d1printk( "%s i2c attach [addr=0x%x,client=%s]\n", 335 d1printk( "%s i2c attach [addr=0x%x,client=%s]\n",
336 client->driver->name, client->addr, client->name); 336 client->driver->name, client->addr, client->name);
337 337
338 /* Am I an i2c remote control? */ 338 /* Am I an i2c remote control? */
339 339
diff --git a/drivers/media/video/saa7134/saa7134-oss.c b/drivers/media/video/saa7134/saa7134-oss.c
index 5a579194e455..513a699a6df2 100644
--- a/drivers/media/video/saa7134/saa7134-oss.c
+++ b/drivers/media/video/saa7134/saa7134-oss.c
@@ -782,36 +782,36 @@ struct file_operations saa7134_mixer_fops = {
782 782
783static irqreturn_t saa7134_oss_irq(int irq, void *dev_id, struct pt_regs *regs) 783static irqreturn_t saa7134_oss_irq(int irq, void *dev_id, struct pt_regs *regs)
784{ 784{
785 struct saa7134_dmasound *dmasound = dev_id; 785 struct saa7134_dmasound *dmasound = dev_id;
786 struct saa7134_dev *dev = dmasound->priv_data; 786 struct saa7134_dev *dev = dmasound->priv_data;
787 unsigned long report, status; 787 unsigned long report, status;
788 int loop, handled = 0; 788 int loop, handled = 0;
789 789
790 for (loop = 0; loop < 10; loop++) { 790 for (loop = 0; loop < 10; loop++) {
791 report = saa_readl(SAA7134_IRQ_REPORT); 791 report = saa_readl(SAA7134_IRQ_REPORT);
792 status = saa_readl(SAA7134_IRQ_STATUS); 792 status = saa_readl(SAA7134_IRQ_STATUS);
793 793
794 if (report & SAA7134_IRQ_REPORT_DONE_RA3) { 794 if (report & SAA7134_IRQ_REPORT_DONE_RA3) {
795 handled = 1; 795 handled = 1;
796 saa_writel(SAA7134_IRQ_REPORT,report); 796 saa_writel(SAA7134_IRQ_REPORT,report);
797 saa7134_irq_oss_done(dev, status); 797 saa7134_irq_oss_done(dev, status);
798 } else { 798 } else {
799 goto out; 799 goto out;
800 } 800 }
801 } 801 }
802 802
803 if (loop == 10) { 803 if (loop == 10) {
804 dprintk("error! looping IRQ!"); 804 dprintk("error! looping IRQ!");
805 } 805 }
806out: 806out:
807 return IRQ_RETVAL(handled); 807 return IRQ_RETVAL(handled);
808} 808}
809 809
810int saa7134_oss_init1(struct saa7134_dev *dev) 810int saa7134_oss_init1(struct saa7134_dev *dev)
811{ 811{
812 812
813 if ((request_irq(dev->pci->irq, saa7134_oss_irq, 813 if ((request_irq(dev->pci->irq, saa7134_oss_irq,
814 SA_SHIRQ | SA_INTERRUPT, dev->name, 814 SA_SHIRQ | SA_INTERRUPT, dev->name,
815 (void*) &dev->dmasound)) < 0) 815 (void*) &dev->dmasound)) < 0)
816 return -1; 816 return -1;
817 817
@@ -905,25 +905,25 @@ static int saa7134_dsp_create(struct saa7134_dev *dev)
905 905
906 err = dev->dmasound.minor_dsp = 906 err = dev->dmasound.minor_dsp =
907 register_sound_dsp(&saa7134_dsp_fops, 907 register_sound_dsp(&saa7134_dsp_fops,
908 dsp_nr[dev->nr]); 908 dsp_nr[dev->nr]);
909 if (err < 0) { 909 if (err < 0) {
910 goto fail; 910 goto fail;
911 } 911 }
912 printk(KERN_INFO "%s: registered device dsp%d\n", 912 printk(KERN_INFO "%s: registered device dsp%d\n",
913 dev->name,dev->dmasound.minor_dsp >> 4); 913 dev->name,dev->dmasound.minor_dsp >> 4);
914 914
915 err = dev->dmasound.minor_mixer = 915 err = dev->dmasound.minor_mixer =
916 register_sound_mixer(&saa7134_mixer_fops, 916 register_sound_mixer(&saa7134_mixer_fops,
917 mixer_nr[dev->nr]); 917 mixer_nr[dev->nr]);
918 if (err < 0) 918 if (err < 0)
919 goto fail; 919 goto fail;
920 printk(KERN_INFO "%s: registered device mixer%d\n", 920 printk(KERN_INFO "%s: registered device mixer%d\n",
921 dev->name,dev->dmasound.minor_mixer >> 4); 921 dev->name,dev->dmasound.minor_mixer >> 4);
922 922
923 return 0; 923 return 0;
924 924
925fail: 925fail:
926 unregister_sound_dsp(dev->dmasound.minor_dsp); 926 unregister_sound_dsp(dev->dmasound.minor_dsp);
927 return 0; 927 return 0;
928 928
929 929
@@ -956,49 +956,50 @@ static int oss_device_exit(struct saa7134_dev *dev)
956 956
957static int saa7134_oss_init(void) 957static int saa7134_oss_init(void)
958{ 958{
959 struct saa7134_dev *dev = NULL; 959 struct saa7134_dev *dev = NULL;
960 struct list_head *list; 960 struct list_head *list;
961 961
962 printk(KERN_INFO "saa7134 OSS driver for DMA sound loaded\n"); 962 printk(KERN_INFO "saa7134 OSS driver for DMA sound loaded\n");
963 963
964 list_for_each(list,&saa7134_devlist) { 964 list_for_each(list,&saa7134_devlist) {
965 dev = list_entry(list, struct saa7134_dev, devlist); 965 dev = list_entry(list, struct saa7134_dev, devlist);
966 if (dev->dmasound.priv_data == NULL) { 966 if (dev->dmasound.priv_data == NULL) {
967 oss_device_init(dev); 967 oss_device_init(dev);
968 } else { 968 } else {
969 printk(KERN_ERR "saa7134 OSS: DMA sound is being handled by ALSA, ignoring %s\n",dev->name); 969 printk(KERN_ERR "saa7134 OSS: DMA sound is being handled by ALSA, ignoring %s\n",dev->name);
970 return -EBUSY; 970 return -EBUSY;
971 } 971 }
972 } 972 }
973 973
974 if (dev == NULL) 974 if (dev == NULL)
975 printk(KERN_INFO "saa7134 OSS: no saa7134 cards found\n"); 975 printk(KERN_INFO "saa7134 OSS: no saa7134 cards found\n");
976 976
977 dmasound_init = oss_device_init; 977 dmasound_init = oss_device_init;
978 dmasound_exit = oss_device_exit; 978 dmasound_exit = oss_device_exit;
979 979
980 return 0; 980 return 0;
981 981
982} 982}
983 983
984static void saa7134_oss_exit(void) 984static void saa7134_oss_exit(void)
985{ 985{
986 struct saa7134_dev *dev = NULL; 986 struct saa7134_dev *dev = NULL;
987 struct list_head *list; 987 struct list_head *list;
988 988
989 list_for_each(list,&saa7134_devlist) { 989 list_for_each(list,&saa7134_devlist) {
990 dev = list_entry(list, struct saa7134_dev, devlist); 990 dev = list_entry(list, struct saa7134_dev, devlist);
991 991
992 /* Device isn't registered by OSS, probably ALSA's */ 992 /* Device isn't registered by OSS, probably ALSA's */
993 if (!dev->dmasound.minor_dsp) 993 if (!dev->dmasound.minor_dsp)
994 continue; 994 continue;
995 995
996 oss_device_exit(dev); 996 oss_device_exit(dev);
997 }
998 997
999 printk(KERN_INFO "saa7134 OSS driver for DMA sound unloaded\n"); 998 }
999
1000 printk(KERN_INFO "saa7134 OSS driver for DMA sound unloaded\n");
1000 1001
1001 return; 1002 return;
1002} 1003}
1003 1004
1004module_init(saa7134_oss_init); 1005module_init(saa7134_oss_init);
diff --git a/drivers/media/video/tda9887.c b/drivers/media/video/tda9887.c
index 4249127c0a1d..2f2414e90e8b 100644
--- a/drivers/media/video/tda9887.c
+++ b/drivers/media/video/tda9887.c
@@ -12,6 +12,7 @@
12#include <media/audiochip.h> 12#include <media/audiochip.h>
13#include <media/tuner.h> 13#include <media/tuner.h>
14 14
15
15/* Chips: 16/* Chips:
16 TDA9885 (PAL, NTSC) 17 TDA9885 (PAL, NTSC)
17 TDA9886 (PAL, SECAM, NTSC) 18 TDA9886 (PAL, SECAM, NTSC)
@@ -819,12 +820,12 @@ static int tda9887_resume(struct device * dev)
819 820
820static struct i2c_driver driver = { 821static struct i2c_driver driver = {
821 .owner = THIS_MODULE, 822 .owner = THIS_MODULE,
822 .name = "i2c tda9887 driver", 823 .name = "i2c tda9887 driver",
823 .id = -1, /* FIXME */ 824 .id = -1, /* FIXME */
824 .flags = I2C_DF_NOTIFY, 825 .flags = I2C_DF_NOTIFY,
825 .attach_adapter = tda9887_probe, 826 .attach_adapter = tda9887_probe,
826 .detach_client = tda9887_detach, 827 .detach_client = tda9887_detach,
827 .command = tda9887_command, 828 .command = tda9887_command,
828 .driver = { 829 .driver = {
829 .suspend = tda9887_suspend, 830 .suspend = tda9887_suspend,
830 .resume = tda9887_resume, 831 .resume = tda9887_resume,
@@ -834,7 +835,7 @@ static struct i2c_client client_template =
834{ 835{
835 .name = "tda9887", 836 .name = "tda9887",
836 .flags = I2C_CLIENT_ALLOW_USE, 837 .flags = I2C_CLIENT_ALLOW_USE,
837 .driver = &driver, 838 .driver = &driver,
838}; 839};
839 840
840static int __init tda9887_init_module(void) 841static int __init tda9887_init_module(void)
diff --git a/drivers/media/video/tvaudio.c b/drivers/media/video/tvaudio.c
index c31bf28b73fe..5b20e8177cad 100644
--- a/drivers/media/video/tvaudio.c
+++ b/drivers/media/video/tvaudio.c
@@ -188,7 +188,7 @@ static int chip_write(struct CHIPSTATE *chip, int subaddr, int val)
188 buffer[1] = val; 188 buffer[1] = val;
189 if (2 != i2c_master_send(&chip->c,buffer,2)) { 189 if (2 != i2c_master_send(&chip->c,buffer,2)) {
190 tvaudio_warn("%s: I/O error (write reg%d=0x%x)\n", 190 tvaudio_warn("%s: I/O error (write reg%d=0x%x)\n",
191 chip->c.name, subaddr, val); 191 chip->c.name, subaddr, val);
192 return -1; 192 return -1;
193 } 193 }
194 } 194 }
@@ -216,7 +216,7 @@ static int chip_read(struct CHIPSTATE *chip)
216 chip->c.name); 216 chip->c.name);
217 return -1; 217 return -1;
218 } 218 }
219 tvaudio_dbg("%s: chip_read: 0x%x\n",chip->c.name,buffer); 219 tvaudio_dbg("%s: chip_read: 0x%x\n",chip->c.name, buffer);
220 return buffer; 220 return buffer;
221} 221}
222 222
@@ -235,7 +235,7 @@ static int chip_read2(struct CHIPSTATE *chip, int subaddr)
235 return -1; 235 return -1;
236 } 236 }
237 tvaudio_dbg("%s: chip_read2: reg%d=0x%x\n", 237 tvaudio_dbg("%s: chip_read2: reg%d=0x%x\n",
238 chip->c.name,subaddr,read[0]); 238 chip->c.name, subaddr,read[0]);
239 return read[0]; 239 return read[0];
240} 240}
241 241
@@ -248,7 +248,7 @@ static int chip_cmd(struct CHIPSTATE *chip, char *name, audiocmd *cmd)
248 248
249 /* update our shadow register set; print bytes if (debug > 0) */ 249 /* update our shadow register set; print bytes if (debug > 0) */
250 tvaudio_dbg("%s: chip_cmd(%s): reg=%d, data:", 250 tvaudio_dbg("%s: chip_cmd(%s): reg=%d, data:",
251 chip->c.name,name,cmd->bytes[0]); 251 chip->c.name, name,cmd->bytes[0]);
252 for (i = 1; i < cmd->count; i++) { 252 for (i = 1; i < cmd->count; i++) {
253 if (debug) 253 if (debug)
254 printk(" 0x%x",cmd->bytes[i]); 254 printk(" 0x%x",cmd->bytes[i]);
@@ -322,7 +322,7 @@ static void generic_checkmode(struct CHIPSTATE *chip)
322 int mode = desc->getmode(chip); 322 int mode = desc->getmode(chip);
323 323
324 if (mode == chip->prevmode) 324 if (mode == chip->prevmode)
325 return; 325 return;
326 326
327 tvaudio_dbg("%s: thread checkmode\n", chip->c.name); 327 tvaudio_dbg("%s: thread checkmode\n", chip->c.name);
328 chip->prevmode = mode; 328 chip->prevmode = mode;
@@ -1506,18 +1506,18 @@ static int chip_attach(struct i2c_adapter *adap, int addr, int kind)
1506 return -EIO; 1506 return -EIO;
1507 } 1507 }
1508 tvaudio_info("%s found @ 0x%x (%s)\n", desc->name, addr<<1, adap->name); 1508 tvaudio_info("%s found @ 0x%x (%s)\n", desc->name, addr<<1, adap->name);
1509 if (desc->flags) { 1509 if (desc->flags) {
1510 tvaudio_dbg("matches:%s%s%s.\n", 1510 tvaudio_dbg("matches:%s%s%s.\n",
1511 (desc->flags & CHIP_HAS_VOLUME) ? " volume" : "", 1511 (desc->flags & CHIP_HAS_VOLUME) ? " volume" : "",
1512 (desc->flags & CHIP_HAS_BASSTREBLE) ? " bass/treble" : "", 1512 (desc->flags & CHIP_HAS_BASSTREBLE) ? " bass/treble" : "",
1513 (desc->flags & CHIP_HAS_INPUTSEL) ? " audiomux" : ""); 1513 (desc->flags & CHIP_HAS_INPUTSEL) ? " audiomux" : "");
1514 } 1514 }
1515 1515
1516 /* fill required data structures */ 1516 /* fill required data structures */
1517 strcpy(chip->c.name,desc->name); 1517 strcpy(chip->c.name, desc->name);
1518 chip->type = desc-chiplist; 1518 chip->type = desc-chiplist;
1519 chip->shadow.count = desc->registers+1; 1519 chip->shadow.count = desc->registers+1;
1520 chip->prevmode = -1; 1520 chip->prevmode = -1;
1521 /* register */ 1521 /* register */
1522 i2c_attach_client(&chip->c); 1522 i2c_attach_client(&chip->c);
1523 1523
@@ -1604,7 +1604,7 @@ static int chip_command(struct i2c_client *client,
1604 struct CHIPSTATE *chip = i2c_get_clientdata(client); 1604 struct CHIPSTATE *chip = i2c_get_clientdata(client);
1605 struct CHIPDESC *desc = chiplist + chip->type; 1605 struct CHIPDESC *desc = chiplist + chip->type;
1606 1606
1607 tvaudio_dbg("%s: chip_command 0x%x\n",chip->c.name,cmd); 1607 tvaudio_dbg("%s: chip_command 0x%x\n", chip->c.name, cmd);
1608 1608
1609 switch (cmd) { 1609 switch (cmd) {
1610 case AUDC_SET_INPUT: 1610 case AUDC_SET_INPUT:
@@ -1624,7 +1624,7 @@ static int chip_command(struct i2c_client *client,
1624 1624
1625 /* --- v4l ioctls --- */ 1625 /* --- v4l ioctls --- */
1626 /* take care: bttv does userspace copying, we'll get a 1626 /* take care: bttv does userspace copying, we'll get a
1627 kernel pointer here... */ 1627 kernel pointer here... */
1628 case VIDIOCGAUDIO: 1628 case VIDIOCGAUDIO:
1629 { 1629 {
1630 struct video_audio *va = arg; 1630 struct video_audio *va = arg;
diff --git a/drivers/media/video/tveeprom.c b/drivers/media/video/tveeprom.c
index d95aecebbda3..cd7cf1bd12b4 100644
--- a/drivers/media/video/tveeprom.c
+++ b/drivers/media/video/tveeprom.c
@@ -753,7 +753,8 @@ tveeprom_detect_client(struct i2c_adapter *adapter,
753 client->driver = &i2c_driver_tveeprom; 753 client->driver = &i2c_driver_tveeprom;
754 client->flags = I2C_CLIENT_ALLOW_USE; 754 client->flags = I2C_CLIENT_ALLOW_USE;
755 snprintf(client->name, sizeof(client->name), "tveeprom"); 755 snprintf(client->name, sizeof(client->name), "tveeprom");
756 i2c_attach_client(client); 756 i2c_attach_client(client);
757
757 return 0; 758 return 0;
758} 759}
759 760
diff --git a/drivers/media/video/tvp5150.c b/drivers/media/video/tvp5150.c
index 81e6d4494e7d..97431e26d229 100644
--- a/drivers/media/video/tvp5150.c
+++ b/drivers/media/video/tvp5150.c
@@ -31,7 +31,7 @@ MODULE_PARM_DESC(debug, "Debug level (0-1)");
31#define dprintk(num, format, args...) \ 31#define dprintk(num, format, args...) \
32 do { \ 32 do { \
33 if (debug >= num) \ 33 if (debug >= num) \
34 printk(format , ##args); \ 34 printk(format, ##args); \
35 } while (0) 35 } while (0)
36 36
37/* supported controls */ 37/* supported controls */
@@ -770,7 +770,6 @@ static int tvp5150_detect_client(struct i2c_adapter *adapter,
770 770
771 if (debug > 1) 771 if (debug > 1)
772 dump_reg(client); 772 dump_reg(client);
773
774 return 0; 773 return 0;
775} 774}
776 775
diff --git a/drivers/media/video/video-buf-dvb.c b/drivers/media/video/video-buf-dvb.c
index 55f129e964eb..0a4004a4393c 100644
--- a/drivers/media/video/video-buf-dvb.c
+++ b/drivers/media/video/video-buf-dvb.c
@@ -13,6 +13,7 @@
13 * (at your option) any later version. 13 * (at your option) any later version.
14 */ 14 */
15 15
16
16#include <linux/module.h> 17#include <linux/module.h>
17#include <linux/init.h> 18#include <linux/init.h>
18#include <linux/device.h> 19#include <linux/device.h>
@@ -247,3 +248,4 @@ EXPORT_SYMBOL(videobuf_dvb_unregister);
247 * compile-command: "make DVB=1" 248 * compile-command: "make DVB=1"
248 * End: 249 * End:
249 */ 250 */
251