update i2c chip drivers
PATCH 1/1 update i2c chip drivers
Hi Linus,
This patch updates the i2c helper modules needed by various tv cards. Most important is the new tda9887.o module. There are also small fixes in tvaudio.c and tda7432.c.
Gerd
drivers/media/video/Makefile +1 -1
@@ -15,7 +15,7 @@ obj-$(CONFIG_VIDEO_DEV) += videodev.o v4l2-common.o v4l1-compat.o obj-$(CONFIG_VIDEO_BT848) += bttv.o msp3400.o tvaudio.o \ - tda7432.o tda9875.o tuner.o video-buf.o + tda7432.o tda9875.o tuner.o video-buf.o tda9887.o obj-$(CONFIG_SOUND_TVMIXER) += tvmixer.o obj-$(CONFIG_VIDEO_ZR36120) += zoran.o
drivers/media/video/audiochip.h +2 -36
@@ -30,41 +30,7 @@* make sense in v4l context only. So I think that's acceptable... */ -#if 0 - -/* TODO (if it is ever [to be] accessible in the V4L[2] spec): -* maybe fade? (back/front) -* notes: -* NEWCHANNEL and SWITCH_MUTE are here because the MSP3400 has a special -* routine to go through when it tunes in to a new channel before turning -* back on the sound. -* Either SET_RADIO, NEWCHANNEL, and SWITCH_MUTE or SET_INPUT need to be -* implemented (MSP3400 uses SET_RADIO to select inputs, and SWITCH_MUTE for -* channel-change mute -- TEA6300 et al use SET_AUDIO to select input [TV, -* radio, external, or MUTE]). If both methods are implemented, you get a -* cookie for doing such a good job! :) -*/ - -#define AUDC_SET_TVNORM _IOW('m',1,int)/* TV mode + PAL/SECAM/NTSC */ -#define AUDC_NEWCHANNEL _IO('m',3)/* indicate new chan - off mute */ - -#define AUDC_GET_VOLUME_LEFT _IOR('m',4,__u16) -#define AUDC_GET_VOLUME_RIGHT _IOR('m',5,__u16) -#define AUDC_SET_VOLUME_LEFT _IOW('m',6,__u16) -#define AUDC_SET_VOLUME_RIGHT _IOW('m',7,__u16) - -#define AUDC_GET_STEREO _IOR('m',8,__u16) -#define AUDC_SET_STEREO _IOW('m',9,__u16) - -#define AUDC_GET_DC _IOR('m',10,__u16)/* ??? */ - -#define AUDC_GET_BASS _IOR('m',11,__u16) -#define AUDC_SET_BASS _IOW('m',12,__u16) -#define AUDC_GET_TREBLE _IOR('m',13,__u16) -#define AUDC_SET_TREBLE _IOW('m',14,__u16) - -#define AUDC_GET_UNIT _IOR('m',15,int)/* ??? - unimplemented in MSP3400 */ -#define AUDC_SWITCH_MUTE _IO('m',16)/* turn on mute */ -#endif +/* misc stuff to pass around config info to i2c chips */ +#define AUDC_CONFIG_PINNACLE _IOW('m',32,int)#endif /* AUDIOCHIP_H */
drivers/media/video/tda7432.c +47 -21
166 lines not on this page · raw message
drivers/media/video/tda9887.c +493 -0
493 lines not on this page · raw message
drivers/media/video/tvaudio.c +16 -2
@@ -1088,6 +1088,19 @@static int tda8425_shift10 (int val) {return (val >>10 ) |0xc0 ; }static int tda8425_shift12 (int val) {return (val >>12 ) |0xf0 ; } +static int tda8425_initialize (struct CHIPSTATE *chip) +{ +struct CHIPDESC *desc = chiplist + chip->type; +int inputmap[8 ] = {/* tuner */ TDA8425_S1_CH2 ,/* radio */ TDA8425_S1_CH1 , +/* extern */ TDA8425_S1_CH1 ,/* intern */ TDA8425_S1_OFF , +/* off */ TDA8425_S1_OFF ,/* on */ TDA8425_S1_CH2 }; + +if (chip->c.adapter->id == (I2C_ALGO_BIT |I2C_HW_B_RIVA )) { +memcpy (desc->inputmap, inputmap,sizeof (inputmap)); + } +return 0 ; +} +static void tda8425_setmode (struct CHIPSTATE *chip,int mode) {int s1 = chip->shadow.bytes[TDA8425_S1 +1 ] &0xe1 ;
@@ -1285,8 +1298,8 @@ registers: 9, flags: CHIP_HAS_VOLUME | CHIP_HAS_BASSTREBLE | CHIP_HAS_INPUTSEL, - leftreg: TDA8425_VR, - rightreg: TDA8425_VL, + leftreg: TDA8425_VL, + rightreg: TDA8425_VR, bassreg: TDA8425_BA, treblereg: TDA8425_TR, volfunc: tda8425_shift10,
@@ -1298,6 +1311,7 @@ inputmute: TDA8425_S1_OFF, setmode: tda8425_setmode, + initialize: tda8425_initialize, }, { name: "pic16c54 (PV951)",
drivers/media/video/tvmixer.c +0 -1
@@ -215,7 +215,6 @@return 0 ; } -static struct i2c_driver driver = { name:"tv card mixer driver" , id:I2C_DRIVERID_TVMIXER ,
Signature · 3 lines
You can't please everybody. And usually if you _try_ to please everybody, the end result is one big mess. -- Linus Torvalds, 2002-04-20