V4L/DVB fixes and small improvements
Subsystems (2)
cover V4L/DVB fixes and small improvements
patch series for -mm is also available at:
http://linuxtv.org/downloads/quilt.
It contains the following stuff:
- USB hot unplug Oops fix.
- TTUSB DEC driver patch roundup
- Replaces MAX()/MIN() by kernel.h max()/min() macros
- Updates to the tveeprom eeprom checking
- ir-kbd-gpio is now part of bttv
- "Philips 1236D ATSC/NTSC dual in" - fix typo.
---------
Documentation/video4linux/CARDLIST.tuner | 2 drivers/media/dvb/cinergyT2/cinergyT2.c | 71 +- drivers/media/dvb/ttusb-dec/ttusb_dec.c | 15 drivers/media/dvb/ttusb-dec/ttusbdecfe.c | 53 + drivers/media/video/Makefile | 5 drivers/media/video/bttv-cards.c | 3 drivers/media/video/bttv-driver.c | 13 drivers/media/video/bttv-gpio.c | 18 drivers/media/video/bttv-input.c | 688 ++++++++++++++++++++ drivers/media/video/bttv.h | 36 + drivers/media/video/bttvp.h | 6 drivers/media/video/ir-kbd-gpio.c | 766 ----------------------- drivers/media/video/msp3400.c | 26 drivers/media/video/tuner-simple.c | 2 drivers/media/video/tveeprom.c | 2 15 files changed, 854 insertions(+), 852 deletions(-)
PATCH 1/6 DVB (2401): USB hot unplug Oops fix.
From: Deti Fliegl <[email protected]>
- USB hot unplug Oops fix.
---
drivers/media/dvb/cinergyT2/cinergyT2.c | 71 +++++++++++++++++++++----------- 1 file changed, 47 insertions(+), 24 deletions(-)
drivers/media/dvb/cinergyT2/cinergyT2.c +47 -24
@@ -131,6 +131,8 @@ struct cinergyt2 {wait_queue_head_t poll_wq;int pending_fe_events; +int disconnect_pending; +atomic_t inuse;void *streambuf;dma_addr_t streambuf_dmahandle;
@@ -343,7 +345,7 @@ static int cinergyt2_start_feed(struct dstruct dvb_demux *demux = dvbdmxfeed->demux;struct cinergyt2 *cinergyt2 = demux->priv; -if (down_interruptible (&cinergyt2->sem)) +if (cinergyt2->disconnect_pending ||down_interruptible (&cinergyt2->sem))return -ERESTARTSYS ;if (cinergyt2->streaming ==0 )
@@ -359,7 +361,7 @@ static int cinergyt2_stop_feed(struct dvstruct dvb_demux *demux = dvbdmxfeed->demux;struct cinergyt2 *cinergyt2 = demux->priv; -if (down_interruptible (&cinergyt2->sem)) +if (cinergyt2->disconnect_pending ||down_interruptible (&cinergyt2->sem))return -ERESTARTSYS ;if (--cinergyt2->streaming ==0 )
@@ -479,23 +481,37 @@ static int cinergyt2_open (struct inode {struct dvb_device *dvbdev = file->private_data;struct cinergyt2 *cinergyt2 = dvbdev->priv; -int err; +int err = -ERESTARTSYS ; -if ((err =dvb_generic_open (inode, file))) +if (cinergyt2->disconnect_pending ||down_interruptible (&cinergyt2->sem)) +return -ERESTARTSYS ; + +if ((err =dvb_generic_open (inode, file))) { +up (&cinergyt2->sem);return err; + } -if (down_interruptible (&cinergyt2->sem)) -return -ERESTARTSYS ;if ((file->f_flags &O_ACCMODE ) !=O_RDONLY ) {cinergyt2_sleep (cinergyt2,0 );schedule_delayed_work (&cinergyt2->query_work,HZ /2 ); } +atomic_inc (&cinergyt2->inuse); +up (&cinergyt2->sem);return 0 ; } +static void cinergyt2_unregister (struct cinergyt2 *cinergyt2) +{ +dvb_unregister_device (cinergyt2->fedev); +dvb_unregister_adapter (&cinergyt2->adapter); + +cinergyt2_free_stream_urbs (cinergyt2); +kfree (cinergyt2); +} +static int cinergyt2_release (struct inode *inode,struct file *file) {struct dvb_device *dvbdev = file->private_data;
@@ -504,7 +520,7 @@ static int cinergyt2_release (struct inoif (down_interruptible (&cinergyt2->sem))return -ERESTARTSYS ; -if ((file->f_flags &O_ACCMODE ) !=O_RDONLY ) { +if (!cinergyt2->disconnect_pending && (file->f_flags &O_ACCMODE ) !=O_RDONLY ) {cancel_delayed_work (&cinergyt2->query_work);flush_scheduled_work ();cinergyt2_sleep (cinergyt2,1 );
@@ -512,6 +528,11 @@ static int cinergyt2_release (struct inoup (&cinergyt2->sem); +if (atomic_dec_and_test (&cinergyt2->inuse) && cinergyt2->disconnect_pending) { +warn ("delayed unregister in release" ); +cinergyt2_unregister (cinergyt2); + } +return dvb_generic_release (inode, file); }
@@ -519,7 +540,14 @@ static unsigned int cinergyt2_poll (stru {struct dvb_device *dvbdev = file->private_data;struct cinergyt2 *cinergyt2 = dvbdev->priv; + +if (cinergyt2->disconnect_pending ||down_interruptible (&cinergyt2->sem)) +return -ERESTARTSYS ; +poll_wait (file, &cinergyt2->poll_wq, wait); + +up (&cinergyt2->sem); +return (POLLIN |POLLRDNORM |POLLPRI ); }
@@ -585,7 +613,7 @@ static int cinergyt2_ioctl (struct inodeif (copy_from_user (&p, (void __user *) arg,sizeof (p)))return -EFAULT ; -if (down_interruptible (&cinergyt2->sem)) +if (cinergyt2->disconnect_pending ||down_interruptible (&cinergyt2->sem))return -ERESTARTSYS ; param->cmd =CINERGYT2_EP1_SET_TUNER_PARAMETERS ;
@@ -696,7 +724,7 @@ static void cinergyt2_query_rc (void *dastruct cinergyt2_rc_event rc_events[12 ];int n, len, i; -if (down_interruptible (&cinergyt2->sem)) +if (cinergyt2->disconnect_pending ||down_interruptible (&cinergyt2->sem))return ; len = cinergyt2_command(cinergyt2, buf, sizeof(buf),
@@ -791,7 +819,6 @@ static int cinergyt2_register_rc(structstatic void cinergyt2_unregister_rc (struct cinergyt2 *cinergyt2) {cancel_delayed_work (&cinergyt2->rc_query_work); -flush_scheduled_work ();input_unregister_device (cinergyt2->rc_input_dev); }
@@ -822,7 +849,7 @@ static void cinergyt2_query (void *data)uint8_t lock_bits;uint32_t unc; -if (down_interruptible (&cinergyt2->sem)) +if (cinergyt2->disconnect_pending ||down_interruptible (&cinergyt2->sem))return ; unc = s->uncorrected_block_count;
@@ -922,28 +949,25 @@ static void cinergyt2_disconnect (struct {struct cinergyt2 *cinergyt2 =usb_get_intfdata (intf); -if (down_interruptible (&cinergyt2->sem)) -return ; +flush_scheduled_work ();cinergyt2_unregister_rc (cinergyt2); +cancel_delayed_work (&cinergyt2->query_work); +wake_up_interruptible (&cinergyt2->poll_wq); + cinergyt2->demux.dmx.close (&cinergyt2->demux.dmx); -dvb_net_release (&cinergyt2->dvbnet); -dvb_dmxdev_release (&cinergyt2->dmxdev); -dvb_dmx_release (&cinergyt2->demux); -dvb_unregister_device (cinergyt2->fedev); -dvb_unregister_adapter (&cinergyt2->adapter); + cinergyt2->disconnect_pending =1 ; -cinergyt2_free_stream_urbs (cinergyt2); -up (&cinergyt2->sem); -kfree (cinergyt2); +if (!atomic_read (&cinergyt2->inuse)) +cinergyt2_unregister (cinergyt2); }static int cinergyt2_suspend (struct usb_interface *intf,pm_message_t state) {struct cinergyt2 *cinergyt2 =usb_get_intfdata (intf); -if (down_interruptible (&cinergyt2->sem)) +if (cinergyt2->disconnect_pending ||down_interruptible (&cinergyt2->sem))return -ERESTARTSYS ;if (state.event >PM_EVENT_ON ) {
@@ -966,7 +990,7 @@ static int cinergyt2_resume (struct usb_struct cinergyt2 *cinergyt2 =usb_get_intfdata (intf);struct dvbt_set_parameters_msg *param = &cinergyt2->param; -if (down_interruptible (&cinergyt2->sem)) +if (cinergyt2->disconnect_pending ||down_interruptible (&cinergyt2->sem))return -ERESTARTSYS ;if (!cinergyt2->sleeping) {
@@ -1020,4 +1044,3 @@ module_exit (cinergyt2_exit);MODULE_LICENSE ("GPL" );MODULE_AUTHOR ("Holger Waechtler, Daniel Mack" ); -
--
PATCH 2/6 V4L/DVB (3154): TTUSB DEC driver patch roundup
In reply to [email protected]From: Alex Woods <[email protected]>
- Collection of patches from Peter Beutner addressing:
- add symbolrates to the DVB-S frontend description
- fix capability flags in DVB-S frontend describtion
- remove some void casts
- disable zig-zag scanning as it makes no sense for DVB-T
- set sensible min_delay value
- return an error for requested filter types the driver can't handle
drivers/media/dvb/ttusb-dec/ttusb_dec.c | 15 ++++---- drivers/media/dvb/ttusb-dec/ttusbdecfe.c | 53 ++++++++++++++++++++++++++++--- 2 files changed, 56 insertions(+), 12 deletions(-)
drivers/media/dvb/ttusb-dec/ttusb_dec.c +8 -7
@@ -369,7 +369,7 @@ static int ttusb_dec_get_stb_state (strustatic int ttusb_dec_audio_pes2ts_cb (void *priv,unsigned char *data) { -struct ttusb_dec *dec = (struct ttusb_dec *)priv; +struct ttusb_dec *dec = priv; dec->audio_filter->feed->cb.ts(data, 188, NULL, 0, &dec->audio_filter->feed->feed.ts,
@@ -380,7 +380,7 @@ static int ttusb_dec_audio_pes2ts_cb(voistatic int ttusb_dec_video_pes2ts_cb (void *priv,unsigned char *data) { -struct ttusb_dec *dec = (struct ttusb_dec *)priv; +struct ttusb_dec *dec = priv; dec->video_filter->feed->cb.ts(data, 188, NULL, 0, &dec->video_filter->feed->feed.ts,
@@ -965,8 +965,8 @@ static int ttusb_dec_start_ts_feed(struccase DMX_TS_PES_TELETEXT : dec->pid[DMX_PES_TELETEXT ] = dvbdmxfeed->pid; -dprintk (" pes_type: DMX_TS_PES_TELETEXT\n" ); -break ; +dprintk (" pes_type: DMX_TS_PES_TELETEXT(not supported)\n" ); +return -ENOSYS ;case DMX_TS_PES_PCR :dprintk (" pes_type: DMX_TS_PES_PCR\n" );
@@ -975,8 +975,8 @@ static int ttusb_dec_start_ts_feed(strucbreak ;case DMX_TS_PES_OTHER : -dprintk (" pes_type: DMX_TS_PES_OTHER\n" ); -break ; +dprintk (" pes_type: DMX_TS_PES_OTHER(not supported)\n" ); +return -ENOSYS ;default :dprintk (" pes_type: unknown (%d)\n" , dvbdmxfeed->pes_type);
@@ -1395,6 +1395,7 @@ static int ttusb_dec_init_stb(struct ttu/* We can't trust the USB IDs that some firmwares give the box */ switch (model) { +case 0x00070001 :case 0x00070008 :case 0x0007000c :ttusb_dec_set_model (dec,TTUSB_DEC3000S );
@@ -1588,7 +1589,7 @@ static int fe_send_command(struct dvb_fr int param_length, const u8 params[], int *result_length, u8 cmd_result[]) { - struct ttusb_dec* dec = (struct ttusb_dec*) fe->dvb->priv; + struct ttusb_dec* dec = fe->dvb->priv;return ttusb_dec_send_command (dec, command, param_length, params, result_length, cmd_result); }
drivers/media/dvb/ttusb-dec/ttusbdecfe.c +48 -5
79 lines not on this page · raw message
--
PATCH 3/6 V4L/DVB (3159): Replaces MAX()/MIN() by kernel.h max()/min() macros
In reply to [email protected]From: Mauro Carvalho Chehab <[email protected]>
- Replaces MAX()/MIN() by kernel.h max()/min() macros
drivers/media/video/msp3400.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-)
drivers/media/video/msp3400.c +12 -14
@@ -163,8 +163,6 @@ struct msp3400c { int watch_stereo:1; }; -#define MIN (a,b) (((a)>(b))?(b):(a)) -#define MAX (a,b) (((a)>(b))?(a):(b))#define HAVE_NICAM (msp) (((msp->rev2>>8) & 0xff) != 00)#define HAVE_SIMPLE (msp) ((msp->rev1 & 0xff) >= 'D'-'@')#define HAVE_SIMPLER (msp) ((msp->rev1 & 0xff) >= 'G'-'@')
@@ -1667,9 +1665,9 @@ static int msp_get_ctrl(struct i2c_clienreturn 0 ;case V4L2_CID_AUDIO_BALANCE : { -int volume =MAX (msp->left, msp->right); +int volume =max (msp->left, msp->right); - ctrl->value = (32768 *MIN (msp->left, msp->right)) / + ctrl->value = (32768 *min (msp->left, msp->right)) / (volume ? volume :1 ); ctrl->value = (msp->left < msp->right) ? (65535 - ctrl->value) : ctrl->value;
@@ -1684,7 +1682,7 @@ static int msp_get_ctrl(struct i2c_clien ctrl->value = msp->treble;return 0 ;case V4L2_CID_AUDIO_VOLUME : - ctrl->value =MAX (msp->left, msp->right); + ctrl->value =max (msp->left, msp->right);return 0 ;default :return -EINVAL ;
@@ -1707,7 +1705,7 @@ static int msp_set_ctrl(struct i2c_clienreturn 0 ;case V4L2_CID_AUDIO_BALANCE : balance=ctrl->value; - volume =MAX (msp->left, msp->right); + volume =max (msp->left, msp->right); set_volume=1 ;break ;case V4L2_CID_AUDIO_BASS :
@@ -1719,9 +1717,9 @@ static int msp_set_ctrl(struct i2c_clienmsp3400c_settreble (client, msp->treble);return 0 ;case V4L2_CID_AUDIO_VOLUME : - volume =MAX (msp->left, msp->right); + volume =max (msp->left, msp->right); - balance = (32768 *MIN (msp->left, msp->right)) / + balance = (32768 *min (msp->left, msp->right)) / (volume ? volume :1 ); balance = (msp->left < msp->right) ? (65535 - balance) : balance;
@@ -1736,8 +1734,8 @@ static int msp_set_ctrl(struct i2c_clien }if (set_volume) { - msp->left = (MIN (65536 - balance,32768 ) * volume) /32768 ; - msp->right = (MIN (balance,32768 ) * volume) /32768 ; + msp->left = (min (65536 - balance,32768 ) * volume) /32768 ; + msp->right = (min (balance,32768 ) * volume) /32768 ;msp3400_dbg ("volume=%d, balance=%d, left=%d, right=%d" , volume,balance,msp->left,msp->right);
@@ -1858,8 +1856,8 @@ static int msp_command(struct i2c_clientif (msp->muted) va->flags |=VIDEO_AUDIO_MUTE ; - va->volume =MAX (msp->left, msp->right); - va->balance = (32768 *MIN (msp->left, msp->right)) / + va->volume =max (msp->left, msp->right); + va->balance = (32768 *min (msp->left, msp->right)) / (va->volume ? va->volume :1 ); va->balance = (msp->left < msp->right) ? (65535 - va->balance) : va->balance;
@@ -1878,9 +1876,9 @@ static int msp_command(struct i2c_clientmsp3400_dbg ("VIDIOCSAUDIO\n" ); msp->muted = (va->flags &VIDEO_AUDIO_MUTE ); - msp->left = (MIN (65536 - va->balance,32768 ) * + msp->left = (min (65536 - va->balance,32768 ) * va->volume) /32768 ; - msp->right = (MIN (va->balance,32768 ) * va->volume) /32768 ; + msp->right = (min ((int )va->balance,32768 ) * va->volume) /32768 ; msp->bass = va->bass; msp->treble = va->treble; msp3400_dbg("VIDIOCSAUDIO setting va->volume to %d\n",
--
PATCH 4/6 V4L/DVB (3160): Updates to the tveeprom eeprom checking
In reply to [email protected]From: Steven Toth <[email protected]>
Updates to the tveeprom eeprom checking
drivers/media/video/tveeprom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/media/video/tveeprom.c +1 -1
@@ -387,7 +387,7 @@ void tveeprom_hauppauge_analog(struct i2if ((eeprom_data[0 ] ==0x1a ) && (eeprom_data[1 ] ==0xeb ) && (eeprom_data[2 ] ==0x67 ) && (eeprom_data[3 ] ==0x95 )) start=0xa0 ;/* Generic em28xx offset */ -else if (((eeprom_data[0 ] &0xf0 ) ==0x10 ) && +else if (((eeprom_data[0 ] &0xe1 ) ==0x01 ) && (eeprom_data[1 ] ==0x00 ) && (eeprom_data[2 ] ==0x00 ) && (eeprom_data[8 ] ==0x84 ))
--
PATCH 5/6 V4L/DVB (3161): ir-kbd-gpio is now part of bttv
In reply to [email protected]From: Ricardo Cerqueira <[email protected]>
- Merged ir-kbd-gpio into bttv as bttv-input, for consistency with other input modules
drivers/media/video/Makefile | 5 drivers/media/video/bttv-cards.c | 3 drivers/media/video/bttv-driver.c | 13 drivers/media/video/bttv-gpio.c | 18 drivers/media/video/bttv-input.c | 688 ++++++++++++++++++++++++++++++++++ drivers/media/video/bttv.h | 36 + drivers/media/video/bttvp.h | 6 drivers/media/video/ir-kbd-gpio.c | 766 -------------------------------------- 8 files changed, 736 insertions(+), 799 deletions(-)
drivers/media/video/bttv-cards.c +0 -3
@@ -2139,7 +2139,6 @@ struct tvcard bttv_tvcards[] = { .has_remote = 1, .gpiomask = 0x1b, .no_gpioirq = 1, - .any_irq = 1, }, [BTTV_BOARD_PV143] = {/* Jorge Boncompte - DTI2 <[email protected]> */
@@ -3412,8 +3411,6 @@ void __devinit bttv_init_card2(struct bt btv->has_remote=1 ;if (!bttv_tvcards[btv->c.type].no_gpioirq) btv->gpioirq=1 ; -if (bttv_tvcards[btv->c.type].any_irq) - btv->any_irq =1 ;if (bttv_tvcards[btv->c.type].audio_hook) btv->audio_hook=bttv_tvcards[btv->c.type].audio_hook;
drivers/media/video/bttv-driver.c +8 -5
@@ -3702,8 +3702,8 @@ static irqreturn_t bttv_irq(int irq, voi btv=(struct bttv *)dev_id; -if (btv->any_irq) - handled =bttv_any_irq (&btv->c); +if (btv->custom_irq) + handled = btv->custom_irq (btv); count=0 ;while (1 ) {
@@ -3739,9 +3739,9 @@ static irqreturn_t bttv_irq(int irq, voiif (astat&BT848_INT_VSYNC ) btv->field_count++; -if (astat &BT848_INT_GPINT ) { +if ((astat &BT848_INT_GPINT ) && btv->remote) {wake_up (&btv->gpioq); -bttv_gpio_irq (&btv->c); +bttv_input_irq (btv); }if (astat &BT848_INT_I2CDONE ) {
@@ -4070,6 +4070,8 @@ static int __devinit bttv_probe(struct pif (bttv_tvcards[btv->c.type].has_dvb)bttv_sub_add_device (&btv->c,"dvb" ); +bttv_input_init (btv); +/* everything is fine */ bttv_num++;return 0 ;
@@ -4104,7 +4106,8 @@ static void __devexit bttv_remove(struct/* tell gpio modules we are leaving ... */ btv->shutdown=1 ;wake_up (&btv->gpioq); -bttv_sub_del_devices (&btv->c); +bttv_input_fini (btv); +//bttv_sub_del_devices(&btv->c); /* unregister i2c_bus + input */ fini_bttv_i2c (btv);
drivers/media/video/bttv-gpio.c +0 -18
@@ -113,24 +113,6 @@ void bttv_gpio_irq(struct bttv_core *cor } } -int bttv_any_irq (struct bttv_core *core) -{ -struct bttv_sub_driver *drv; -struct bttv_sub_device *dev; -struct list_head *item; -int handled =0 ; - -list_for_each (item,&core->subs) { - dev = list_entry(item,struct bttv_sub_device,list); - drv =to_bttv_sub_drv (dev->dev.driver); -if (drv && drv->any_irq) { -if (drv->any_irq (dev)) - handled =1 ; - } - } -return handled; -} -/* ----------------------------------------------------------------------- */ /* external: sub-driver register/unregister */
drivers/media/video/bttv.h +34 -2
@@ -16,6 +16,8 @@#include <linux/videodev.h> #include <linux/i2c.h> +#include <media/ir-common.h> +#include <media/ir-kbd-i2c.h> /* ---------------------------------------------------------- */ /* exported by bttv-cards.c */
@@ -211,6 +213,34 @@ struct bttv_core {struct bttv ; + +struct bttv_ir { +struct input_dev *dev; +struct ir_input_state ir; +char name[32 ]; +char phys[32 ]; + +/* Usual gpio signalling */ + +u32 mask_keycode; +u32 mask_keydown; +u32 mask_keyup; +u32 polling; +u32 last_gpio; +struct work_struct work; +struct timer_list timer; + +/* RC5 gpio */ +u32 rc5_gpio; +struct timer_list timer_end;/* timer_end for code completion */ +struct timer_list timer_keyup;/* timer_end for key release */ +u32 last_rc5;/* last good rc5 code */ +u32 last_bit;/* last raw bit seen */ +u32 code;/* raw code under construction */ +struct timeval base_time;/* time of last seen code */ +int active;/* building raw code */ +}; +struct tvcard {char *name;
@@ -236,7 +266,6 @@ struct tvcard unsigned int has_dvb:1; unsigned int has_remote:1; unsigned int no_gpioirq:1; - unsigned int any_irq:1;/* other settings */ unsigned int pll;
@@ -336,7 +365,6 @@ struct bttv_sub_driver {struct device_driver drv;char wanted[BUS_ID_SIZE ];void (*gpio_irq)(struct bttv_sub_device *sub); -int (*any_irq)(struct bttv_sub_device *sub); };#define to_bttv_sub_drv (x) container_of((x), struct bttv_sub_driver, drv)
@@ -364,6 +392,10 @@ extern int bttv_I2CWrite(struct bttv *bt unsigned char b2, int both);extern void bttv_readee (struct bttv *btv,unsigned char *eedata,int addr); +extern int bttv_input_init (struct bttv *dev); +extern void bttv_input_fini (struct bttv *dev); +extern void bttv_input_irq (struct bttv *dev); +#endif /* _BTTV_H_ */ /* * Local variables:
drivers/media/video/bttv-input.c new file +688 -0
688 lines not on this page · raw message
drivers/media/video/bttvp.h +3 -3
@@ -209,7 +209,6 @@ extern struct bus_type bttv_sub_bus_typeint bttv_sub_add_device (struct bttv_core *core,char *name);int bttv_sub_del_devices (struct bttv_core *core);void bttv_gpio_irq (struct bttv_core *core); -int bttv_any_irq (struct bttv_core *core);/* ---------------------------------------------------------- */
@@ -275,7 +274,8 @@ struct bttv {struct bttv_pll_info pll;int triton1;int gpioirq; -int any_irq; +int (*custom_irq)(struct bttv *btv); +int use_i2c_hw;/* old gpio interface */
@@ -300,7 +300,7 @@ struct bttv {/* infrared remote */ int has_remote; -struct bttv_input *remote; +struct bttv_ir *remote;/* locking */ spinlock_t s_lock;
drivers/media/video/ir-kbd-gpio.c deleted +0 -766
766 lines not on this page · raw message
drivers/media/video/Makefile +3 -2
@@ -3,7 +3,8 @@ # bttv-objs := bttv-driver.o bttv-cards.o bttv-if.o \ - bttv-risc.o bttv-vbi.o bttv-i2c.o bttv-gpio.o + bttv-risc.o bttv-vbi.o bttv-i2c.o bttv-gpio.o \ + bttv-input.o zoran-objs := zr36120.o zr36120_i2c.o zr36120_mem.o zr36067-objs := zoran_procfs.o zoran_device.o \ zoran_driver.o zoran_card.o
@@ -12,7 +13,7 @@ tuner-objs := tuner-core.o tuner-simple. obj-$(CONFIG_VIDEO_DEV) += videodev.o v4l2-common.o v4l1-compat.o compat_ioctl32.o obj-$(CONFIG_VIDEO_BT848) += bttv.o msp3400.o tvaudio.o \ - tda7432.o tda9875.o ir-kbd-i2c.o ir-kbd-gpio.o + tda7432.o tda9875.o ir-kbd-i2c.o obj-$(CONFIG_SOUND_TVMIXER) += tvmixer.o obj-$(CONFIG_VIDEO_ZR36120) += zoran.o
--
PATCH 6/6 V4L/DVB (3166): "Philips 1236D ATSC/NTSC dual in" - fix typo.
In reply to [email protected]From: Michael Krufky <[email protected]>
- "Philips 1236D ATSC/NTSC dual in" - fix typo.
Documentation/video4linux/CARDLIST.tuner | 2 +- drivers/media/video/tuner-simple.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
Documentation/video4linux/CARDLIST.tuner +1 -1
@@ -40,7 +40,7 @@ tuner=38 - Philips PAL/SECAM multi (FM12 tuner=39 - LG NTSC (newer TAPC series) tuner=40 - HITACHI V7-J180AT tuner=41 - Philips PAL_MK (FI1216 MK) -tuner=42 - Philips 1236D ATSC/NTSC daul in +tuner=42 - Philips 1236D ATSC/NTSC dual in tuner=43 - Philips NTSC MK3 (FM1236MK3 or FM1236/F) tuner=44 - Philips 4 in 1 (ATI TV Wonder Pro/Conexant) tuner=45 - Microtune 4049 FM5
drivers/media/video/tuner-simple.c +1 -1
@@ -481,7 +481,7 @@ static struct tunertype tuners[] = { .config = 0x8e, }, [TUNER_PHILIPS_ATSC] = { /* Philips ATSC */ - .name = "Philips 1236D ATSC/NTSC daul in", + .name = "Philips 1236D ATSC/NTSC dual in", .thresh1= 16 * 157.25 /*MHz*/, .thresh2= 16 * 454.00 /*MHz*/, .VHF_L = 0xa0,
--