re: Re: how to develop driver for cy7c68013(fx2 lp)?
Hi Liu, (please avoid top-posts on this list) On Tue, 22 Sep 2009, liu.yao...@zte.com.cn wrote: hi,Mauro: thanks for replying. i am not sure the dtv api can be used in my project.because cmmb's protocol is different to dmb :( Then the API needs to be extended. Maybe by you. Correct me if I'm wrong, but CMMB does not have standard MPEG2-TS and the configuration really needs real-time constraints. How does it work for your device? To have proper support for non-MPEG2-TS DTV streams we could add a new demuxer-type which handles it. To tune a CMMB device we'd need to add the DTV_PROPERTIES to frontend.h in Windows, we download firmware using windows driver,config fx2 as bulk transfer,and read the TS stream,finally decode it and display. I also read this post: http://www.linuxjournal.com/article/7466 Writing a Real Driver?In User Space. if i just want to read the ts stream,should i use this method? or another way? This option is rather useful for debugging/prototyping, IMO. In the future we will have to support several CMMB device from different manufacturers. Up to now, we have used the kernel-user-interface to have stable API for different standards - we should continue to do so. It would be nice to start the RFC-process for CMMB's extension to DVB API 5 . regards, -- Patrick Boettcher - Kernel Labs http://www.kernellabs.com/ -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[linux-dvb] pcie dvb-c
Hello, I know of some dvb-s pcie cards but what about dvb-c. Do we have a working pcie dvb-c card?? with kind regards Halim -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
re: re: Re: how to develop driver for cy7c68013(fx2 lp)?
hi Patrick: the data stream is multiplex with h264 and acc-plus. we have ourself SDK to demultiplex it. i use my device in this way: 1、search for valid channel(read/write through ep0) 2、read stream continuously(read through ep6(out) ) - demultiplex -display. so,i think the important way is how to operate CY7C68013.correct me if wrong. Hi Liu, (please avoid top-posts on this list) On Tue, 22 Sep 2009, liu.yao...@zte.com.cn wrote: hi,Mauro: thanks for replying. i am not sure the dtv api can be used in my project.because cmmb's protocol is different to dmb :( Then the API needs to be extended. Maybe by you. Correct me if I'm wrong, but CMMB does not have standard MPEG2-TS and the configuration really needs real-time constraints. How does it work for your device? To have proper support for non-MPEG2-TS DTV streams we could add a new demuxer-type which handles it. To tune a CMMB device we'd need to add the DTV_PROPERTIES to frontend.h in Windows, we download firmware using windows driver,config fx2 as bulk transfer,and read the TS stream,finally decode it and display. I also read this post: http://www.linuxjournal.com/article/7466 Writing a Real Driver?In User Space. if i just want to read the ts stream,should i use this method? or another way? This option is rather useful for debugging/prototyping, IMO. In the future we will have to support several CMMB device from different manufacturers. Up to now, we have used the kernel-user-interface to have stable API for different standards - we should continue to do so. It would be nice to start the RFC-process for CMMB's extension to DVB API 5 . regards, -- Patrick Boettcher - Kernel Labs http://www.kernellabs.com/ -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ZTE Information Security Notice: The information contained in this mail is solely property of the sender's organization. This mail communication is confidential. Recipients named above are obligated to maintain secrecy and are not permitted to disclose the contents of this communication to others. This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the originator of the message. Any views expressed in this message are those of the individual sender. This message has been scanned for viruses and Spam by ZTE Anti-Spam system.
Re: [origin tree build failure] [PATCH] media: video: Fix build in saa7164
* Mauro Carvalho Chehab mche...@redhat.com wrote: Em Mon, 21 Sep 2009 20:23:45 +0200 Ingo Molnar mi...@elte.hu escreveu: * Mauro Carvalho Chehab mche...@redhat.com wrote: This series also contains several new drivers: - new driver for NXP saa7164; -tip testing found that an allyesconfig build buglet found its way into this driver - find the fix below. diff --git a/drivers/media/video/saa7164/saa7164-core.c b/drivers/media/video/saa7164/saa7164-core.c index f0dbead..60f3214 100644 --- a/drivers/media/video/saa7164/saa7164-core.c +++ b/drivers/media/video/saa7164/saa7164-core.c @@ -45,8 +45,8 @@ MODULE_LICENSE(GPL); 32 bus */ -unsigned int debug; -module_param(debug, int, 0644); +unsigned int saa_debug; +module_param(saa_debug, int, 0644); Hmm... it is better to use module_param_named(debug, saa_debug, int, 0644), to keep presenting the parameter as just debug to userspace. ah, yes, fully agreed - i thought i did that but apparently modified it in this instance. This is because recent saa7164 changes introduced a global symbol named 'debug'. The x86 platform code already defines a 'debug' symbol. (which is named in a too generic way as well - but it can be used nicely to weed out too generic symbols in drivers ;- Agreed. Btw, I suggest to do a similar patch also for x86, to avoid such future conflicts. Actually, Andrew considers it a feature that allows us to filter out too generic names early on :-) Ingo -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PULL] http://linuxtv.org/hg/~anttip/af9015/
On Tue, Sep 22, 2009 at 03:34:11AM +0300, Antti Palosaari wrote: Hei Mauro, Please pull from http://linuxtv.org/hg/~anttip/af9015/ for the following: af9015: add USB ID for KWorld PlusTV DVB-T PCI Pro Card (DVB-T PC160-T) af9015: fix few typos af9015: add LeadTek Y04G0051 remote buttons af9015: add MSI DIGIVOX mini III remote af9015: enable remote polling when eeprom contains 0x04 Thank you Antti, MSI DIGIVOX mini III remote is now being detected and working as expected. Tested-by: Aleksandr V. Piskunov alexandr.v.pisku...@gmail.com -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 0/4] adv7180 updates
To follow is a series of patches against the adv7180 in the linux-media tree. 1. support for getting input status. 2. support for setting video standard 3. support for interrupt driven update of the video standard 4. usage of the __devinit and __devexit macros --Richard -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/4] adv7180: Support for getting input status
This patch adds support to the ADV7180 driver to check the input status. Since the status is held in the same register as the input standard a small restructuring of the code is done to reuse the code for reading the register Signed-off-by: Richard Röjfors richard.rojf...@mocean-labs.com --- diff --git a/drivers/media/video/adv7180.c b/drivers/media/video/adv7180.c index 1b3cbd0..f3fce39 100644 --- a/drivers/media/video/adv7180.c +++ b/drivers/media/video/adv7180.c @@ -30,14 +30,31 @@ #define DRIVER_NAME adv7180 -#define ADV7180_INPUT_CONTROL_REG 0x00 -#define ADV7180_INPUT_CONTROL_PAL_BG_NTSC_J_SECAM 0x00 +#define ADV7180_INPUT_CONTROL_REG 0x00 +#define ADV7180_INPUT_CONTROL_AD_PAL_BG_NTSC_J_SECAM 0x00 +#define ADV7180_INPUT_CONTROL_AD_PAL_BG_NTSC_J_SECAM_PED 0x10 +#define ADV7180_INPUT_CONTROL_AD_PAL_N_NTSC_J_SECAM0x20 +#define ADV7180_INPUT_CONTROL_AD_PAL_N_NTSC_M_SECAM0x30 +#define ADV7180_INPUT_CONTROL_NTSC_J 0x40 +#define ADV7180_INPUT_CONTROL_NTSC_M 0x50 +#define ADV7180_INPUT_CONTROL_PAL600x60 +#define ADV7180_INPUT_CONTROL_NTSC_443 0x70 +#define ADV7180_INPUT_CONTROL_PAL_BG 0x80 +#define ADV7180_INPUT_CONTROL_PAL_N0x90 +#define ADV7180_INPUT_CONTROL_PAL_M0xa0 +#define ADV7180_INPUT_CONTROL_PAL_M_PED0xb0 +#define ADV7180_INPUT_CONTROL_PAL_COMB_N 0xc0 +#define ADV7180_INPUT_CONTROL_PAL_COMB_N_PED 0xd0 +#define ADV7180_INPUT_CONTROL_PAL_SECAM0xe0 +#define ADV7180_INPUT_CONTROL_PAL_SECAM_PED0xf0 + #define ADV7180_AUTODETECT_ENABLE_REG 0x07 #define ADV7180_AUTODETECT_DEFAULT 0x7f -#define ADV7180_STATUS1_REG 0x10 -#define ADV7180_STATUS1_AUTOD_MASK 0x70 +#define ADV7180_STATUS1_REG0x10 +#define ADV7180_STATUS1_IN_LOCK0x01 +#define ADV7180_STATUS1_AUTOD_MASK 0x70 #define ADV7180_STATUS1_AUTOD_NTSM_M_J 0x00 #define ADV7180_STATUS1_AUTOD_NTSC_4_43 0x10 #define ADV7180_STATUS1_AUTOD_PAL_M0x20 @@ -55,13 +72,11 @@ struct adv7180_state { struct v4l2_subdev sd; }; -static v4l2_std_id determine_norm(struct i2c_client *client) +static v4l2_std_id adv7180_std_to_v4l2(u8 status1) { - u8 status1 = i2c_smbus_read_byte_data(client, ADV7180_STATUS1_REG); - switch (status1 ADV7180_STATUS1_AUTOD_MASK) { case ADV7180_STATUS1_AUTOD_NTSM_M_J: - return V4L2_STD_NTSC_M_JP; + return V4L2_STD_NTSC; case ADV7180_STATUS1_AUTOD_NTSC_4_43: return V4L2_STD_NTSC_443; case ADV7180_STATUS1_AUTOD_PAL_M: @@ -81,6 +96,30 @@ static v4l2_std_id determine_norm(struct i2c_client *client) } } +static u32 adv7180_status_to_v4l2(u8 status1) +{ + if (!(status1 ADV7180_STATUS1_IN_LOCK)) + return V4L2_IN_ST_NO_SIGNAL; + + return 0; +} + +static int __adv7180_status(struct i2c_client *client, u32 *status, + v4l2_std_id *std) +{ + int status1 = i2c_smbus_read_byte_data(client, ADV7180_STATUS1_REG); + + if (status1 0) + return status1; + + if (status) + *status = adv7180_status_to_v4l2(status1); + if (std) + *std = adv7180_std_to_v4l2(status1); + + return 0; +} + static inline struct adv7180_state *to_state(struct v4l2_subdev *sd) { return container_of(sd, struct adv7180_state, sd); @@ -88,10 +127,12 @@ static inline struct adv7180_state *to_state(struct v4l2_subdev *sd) static int adv7180_querystd(struct v4l2_subdev *sd, v4l2_std_id *std) { - struct i2c_client *client = v4l2_get_subdevdata(sd); + return __adv7180_status(v4l2_get_subdevdata(sd), NULL, std); +} - *std = determine_norm(client); - return 0; +static int adv7180_g_input_status(struct v4l2_subdev *sd, u32 *status) +{ + return __adv7180_status(v4l2_get_subdevdata(sd), status, NULL); } static int adv7180_g_chip_ident(struct v4l2_subdev *sd, @@ -104,6 +145,7 @@ static int adv7180_g_chip_ident(struct v4l2_subdev *sd, static const struct v4l2_subdev_video_ops adv7180_video_ops = { .querystd = adv7180_querystd, + .g_input_status = adv7180_g_input_status, }; static const struct v4l2_subdev_core_ops adv7180_core_ops = { @@ -143,7 +185,7 @@ static int adv7180_probe(struct i2c_client *client, /* Initialize adv7180 */ /* enable autodetection */ ret = i2c_smbus_write_byte_data(client, ADV7180_INPUT_CONTROL_REG, - ADV7180_INPUT_CONTROL_PAL_BG_NTSC_J_SECAM); + ADV7180_INPUT_CONTROL_AD_PAL_BG_NTSC_J_SECAM); if (ret 0) ret = i2c_smbus_write_byte_data(client, ADV7180_AUTODETECT_ENABLE_REG, -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org
[PATCH 2/4] adv7180: Support for setting input status
Support for settings the input standard of the ADV7180. When the input standard is set there is no use to ask the chip for standard, therefore it is cached in the driver. Signed-off-by: Richard Röjfors richard.rojf...@mocean-labs.com --- diff --git a/drivers/media/video/adv7180.c b/drivers/media/video/adv7180.c index f3fce39..8b199a8 100644 --- a/drivers/media/video/adv7180.c +++ b/drivers/media/video/adv7180.c @@ -69,7 +69,9 @@ struct adv7180_state { - struct v4l2_subdev sd; + struct v4l2_subdev sd; + v4l2_std_id curr_norm; + boolautodetect; }; static v4l2_std_id adv7180_std_to_v4l2(u8 status1) @@ -96,6 +98,29 @@ static v4l2_std_id adv7180_std_to_v4l2(u8 status1) } } +static int v4l2_std_to_adv7180(v4l2_std_id std) +{ + if (std == V4L2_STD_PAL_60) + return ADV7180_INPUT_CONTROL_PAL60; + if (std == V4L2_STD_NTSC_443) + return ADV7180_INPUT_CONTROL_NTSC_443; + if (std == V4L2_STD_PAL_N) + return ADV7180_INPUT_CONTROL_PAL_N; + if (std == V4L2_STD_PAL_M) + return ADV7180_INPUT_CONTROL_PAL_M; + if (std == V4L2_STD_PAL_Nc) + return ADV7180_INPUT_CONTROL_PAL_COMB_N; + + if (std V4L2_STD_PAL) + return ADV7180_INPUT_CONTROL_PAL_BG; + if (std V4L2_STD_NTSC) + return ADV7180_INPUT_CONTROL_NTSC_M; + if (std V4L2_STD_SECAM) + return ADV7180_INPUT_CONTROL_PAL_SECAM; + + return -EINVAL; +} + static u32 adv7180_status_to_v4l2(u8 status1) { if (!(status1 ADV7180_STATUS1_IN_LOCK)) @@ -127,7 +152,15 @@ static inline struct adv7180_state *to_state(struct v4l2_subdev *sd) static int adv7180_querystd(struct v4l2_subdev *sd, v4l2_std_id *std) { - return __adv7180_status(v4l2_get_subdevdata(sd), NULL, std); + struct adv7180_state *state = to_state(sd); + int err = 0; + + if (!state-autodetect) + *std = state-curr_norm; + else + err = __adv7180_status(v4l2_get_subdevdata(sd), NULL, std); + + return err; } static int adv7180_g_input_status(struct v4l2_subdev *sd, u32 *status) @@ -143,6 +176,39 @@ static int adv7180_g_chip_ident(struct v4l2_subdev *sd, return v4l2_chip_ident_i2c_client(client, chip, V4L2_IDENT_ADV7180, 0); } +static int adv7180_s_std(struct v4l2_subdev *sd, v4l2_std_id std) +{ + struct adv7180_state *state = to_state(sd); + struct i2c_client *client = v4l2_get_subdevdata(sd); + int ret; + + /* all standards - autodetect */ + if (std == V4L2_STD_ALL) { + ret = i2c_smbus_write_byte_data(client, + ADV7180_INPUT_CONTROL_REG, + ADV7180_INPUT_CONTROL_AD_PAL_BG_NTSC_J_SECAM); + if (ret 0) + goto out; + + state-autodetect = true; + } else { + ret = v4l2_std_to_adv7180(std); + if (ret 0) + goto out; + + ret = i2c_smbus_write_byte_data(client, + ADV7180_INPUT_CONTROL_REG, ret); + if (ret 0) + goto out; + + state-curr_norm = std; + state-autodetect = false; + } + ret = 0; +out: + return ret; +} + static const struct v4l2_subdev_video_ops adv7180_video_ops = { .querystd = adv7180_querystd, .g_input_status = adv7180_g_input_status, @@ -150,6 +216,7 @@ static const struct v4l2_subdev_video_ops adv7180_video_ops = { static const struct v4l2_subdev_core_ops adv7180_core_ops = { .g_chip_ident = adv7180_g_chip_ident, + .s_std = adv7180_s_std, }; static const struct v4l2_subdev_ops adv7180_ops = { @@ -179,6 +246,7 @@ static int adv7180_probe(struct i2c_client *client, state = kzalloc(sizeof(struct adv7180_state), GFP_KERNEL); if (state == NULL) return -ENOMEM; + state-autodetect = true; sd = state-sd; v4l2_i2c_subdev_init(sd, client, adv7180_ops); -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Questions about Terratec Hybrid XS (em2882) [0ccd:005e]
On 21.09.09 18:29, Devin Heitmueller wrote: On Mon, Sep 21, 2009 at 6:15 PM, Uros Vampl mobile.leec...@gmail.com wrote: I tried arecord/aplay and sox with tvtime, and also mplayer (which has built-in audio support). I know about these tricks, I've used them successfully with Markus' em28xx-new driver. But with v4l-dvb it's as I said, audio is there but it's extremely quiet. If you have suggestions how I should try to diagnoze this, I'm all ears. Regards, Uroš If the audio is present but very quiet, then it's probably some issue you are having with your mixer. I would check your ALSA and PulseAudio configuration (in particular the mixer volume controls). Devin No PulseAudio here. And I've played plenty with the ALSA mixer, all the sliders that are there. Using em28xx-new instead of v4l-dvb, all else being equal, tv volume is fine. So there's gotta be a difference somewhere in the way em28xx-new sets up audio compared to how v4l-dvb does it. Regards, Uroš -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 4/4] adv7180: Use __devinit and __devexit macros
This patch defines the probe and remove function as __devinit and __devexit. Signed-off-by: Richard Röjfors richard.rojf...@mocean-labs.com --- diff --git a/drivers/media/video/adv7180.c b/drivers/media/video/adv7180.c index d9e897d..0826f0d 100644 --- a/drivers/media/video/adv7180.c +++ b/drivers/media/video/adv7180.c @@ -302,7 +302,7 @@ static irqreturn_t adv7180_irq(int irq, void *devid) * concerning the addresses: i2c wants 7 bit (without the r/w bit), so '1' */ -static int adv7180_probe(struct i2c_client *client, +static __devinit int adv7180_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct adv7180_state *state; @@ -404,7 +404,7 @@ err: return ret; } -static int adv7180_remove(struct i2c_client *client) +static __devexit int adv7180_remove(struct i2c_client *client) { struct v4l2_subdev *sd = i2c_get_clientdata(client); struct adv7180_state *state = to_state(sd); @@ -440,7 +440,7 @@ static struct i2c_driver adv7180_driver = { .name = DRIVER_NAME, }, .probe = adv7180_probe, - .remove = adv7180_remove, + .remove = __devexit_p(adv7180_remove), .id_table = adv7180_id, }; -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 3/4] adv7180: Support checking standard via interrupts
If the I2C device provides an interrupt it is registered and the standard is updated via interrupts rather than polling. Since I2C communication is needed, the interrupt handler fires off a work which will check the new standard, and store it in the internal structure. To handle mutual exclusion a mutex is introduced. Signed-off-by: Richard Röjfors richard.rojf...@mocean-labs.com --- diff --git a/drivers/media/video/adv7180.c b/drivers/media/video/adv7180.c index 8b199a8..d9e897d 100644 --- a/drivers/media/video/adv7180.c +++ b/drivers/media/video/adv7180.c @@ -27,6 +27,7 @@ #include linux/videodev2.h #include media/v4l2-device.h #include media/v4l2-chip-ident.h +#include linux/mutex.h #define DRIVER_NAME adv7180 @@ -48,9 +49,14 @@ #define ADV7180_INPUT_CONTROL_PAL_SECAM0xe0 #define ADV7180_INPUT_CONTROL_PAL_SECAM_PED0xf0 -#define ADV7180_AUTODETECT_ENABLE_REG 0x07 -#define ADV7180_AUTODETECT_DEFAULT 0x7f +#define ADV7180_EXTENDED_OUTPUT_CONTROL_REG0x04 +#define ADV7180_EXTENDED_OUTPUT_CONTROL_NTSCDIS0xC5 +#define ADV7180_AUTODETECT_ENABLE_REG 0x07 +#define ADV7180_AUTODETECT_DEFAULT 0x7f + +#define ADV7180_ADI_CTRL_REG 0x0e +#define ADV7180_ADI_CTRL_IRQ_SPACE 0x20 #define ADV7180_STATUS1_REG0x10 #define ADV7180_STATUS1_IN_LOCK0x01 @@ -67,9 +73,28 @@ #define ADV7180_IDENT_REG 0x11 #define ADV7180_ID_7180 0x18 +#define ADV7180_ICONF1_ADI 0x40 +#define ADV7180_ICONF1_ACTIVE_LOW 0x01 +#define ADV7180_ICONF1_PSYNC_ONLY 0x10 +#define ADV7180_ICONF1_ACTIVE_TO_CLR 0xC0 + +#define ADV7180_IRQ1_LOCK 0x01 +#define ADV7180_IRQ1_UNLOCK0x02 +#define ADV7180_ISR1_ADI 0x42 +#define ADV7180_ICR1_ADI 0x43 +#define ADV7180_IMR1_ADI 0x44 +#define ADV7180_IMR2_ADI 0x48 +#define ADV7180_IRQ3_AD_CHANGE 0x08 +#define ADV7180_ISR3_ADI 0x4A +#define ADV7180_ICR3_ADI 0x4B +#define ADV7180_IMR3_ADI 0x4C +#define ADV7180_IMR4_ADI 0x50 struct adv7180_state { struct v4l2_subdev sd; + struct work_struct work; + struct mutexmutex; /* mutual excl. when accessing chip */ + int irq; v4l2_std_id curr_norm; boolautodetect; }; @@ -153,19 +178,30 @@ static inline struct adv7180_state *to_state(struct v4l2_subdev *sd) static int adv7180_querystd(struct v4l2_subdev *sd, v4l2_std_id *std) { struct adv7180_state *state = to_state(sd); - int err = 0; + int err = mutex_lock_interruptible(state-mutex); + if (err) + return err; - if (!state-autodetect) + /* when we are interrupt driven we know the state */ + if (!state-autodetect || state-irq 0) *std = state-curr_norm; else err = __adv7180_status(v4l2_get_subdevdata(sd), NULL, std); + mutex_unlock(state-mutex); return err; } static int adv7180_g_input_status(struct v4l2_subdev *sd, u32 *status) { - return __adv7180_status(v4l2_get_subdevdata(sd), status, NULL); + struct adv7180_state *state = to_state(sd); + int ret = mutex_lock_interruptible(state-mutex); + if (ret) + return ret; + + ret = __adv7180_status(v4l2_get_subdevdata(sd), status, NULL); + mutex_unlock(state-mutex); + return ret; } static int adv7180_g_chip_ident(struct v4l2_subdev *sd, @@ -180,7 +216,9 @@ static int adv7180_s_std(struct v4l2_subdev *sd, v4l2_std_id std) { struct adv7180_state *state = to_state(sd); struct i2c_client *client = v4l2_get_subdevdata(sd); - int ret; + int ret = mutex_lock_interruptible(state-mutex); + if (ret) + return ret; /* all standards - autodetect */ if (std == V4L2_STD_ALL) { @@ -190,6 +228,7 @@ static int adv7180_s_std(struct v4l2_subdev *sd, v4l2_std_id std) if (ret 0) goto out; + __adv7180_status(client, NULL, state-curr_norm); state-autodetect = true; } else { ret = v4l2_std_to_adv7180(std); @@ -206,6 +245,7 @@ static int adv7180_s_std(struct v4l2_subdev *sd, v4l2_std_id std) } ret = 0; out: + mutex_unlock(state-mutex); return ret; } @@ -224,6 +264,39 @@ static const struct v4l2_subdev_ops adv7180_ops = { .video = adv7180_video_ops, }; +static void adv7180_work(struct work_struct *work) +{ + struct adv7180_state *state = container_of(work, struct adv7180_state, + work); + struct i2c_client *client = v4l2_get_subdevdata(state-sd); + u8 isr3; + + mutex_lock(state-mutex); + i2c_smbus_write_byte_data(client, ADV7180_ADI_CTRL_REG, + ADV7180_ADI_CTRL_IRQ_SPACE);
Re: [PULL] http://linuxtv.org/hg/~anttip/af9015/
Am Tuesday 22 September 2009 10:33:47 schrieb Aleksandr V. Piskunov: Thank you Antti, MSI DIGIVOX mini III remote is now being detected and working as expected. Tested-by: Aleksandr V. Piskunov alexandr.v.pisku...@gmail.com I can confirm this. Many thanks Antti! Now i just need to find out how to map the other keys with xmodmap, but that shouldn't be too hard. Just as a note, the reply from MSI came today: ... Sorry, but this device isn't supported in any way for linux. ... I can't believe this, they have a linux-driver (kernels =2.6.22) on their homepage, but don't support it*aargh* greetings, Roman -- wc red dye causes cancer, haven't you heard? (; Knghtbrd fucking everything causes cancer, haven't you heard? Knghtbrd = archon no, that causes aids -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[cron job] v4l-dvb daily build 2.6.22 and up: ERRORS, 2.6.16-2.6.21: ERRORS
This message is generated daily by a cron job that builds v4l-dvb for the kernels and architectures in the list below. Results of the daily build of v4l-dvb: date:Tue Sep 22 19:00:03 CEST 2009 path:http://www.linuxtv.org/hg/v4l-dvb changeset: 13038:29e4ba1a09bc gcc version: gcc (GCC) 4.3.1 hardware:x86_64 host os: 2.6.26 linux-2.6.22.19-armv5: OK linux-2.6.23.12-armv5: OK linux-2.6.24.7-armv5: OK linux-2.6.25.11-armv5: OK linux-2.6.26-armv5: OK linux-2.6.27-armv5: OK linux-2.6.28-armv5: OK linux-2.6.29.1-armv5: OK linux-2.6.30-armv5: OK linux-2.6.31-armv5: OK linux-2.6.27-armv5-ixp: ERRORS linux-2.6.28-armv5-ixp: ERRORS linux-2.6.29.1-armv5-ixp: ERRORS linux-2.6.30-armv5-ixp: ERRORS linux-2.6.31-armv5-ixp: ERRORS linux-2.6.28-armv5-omap2: OK linux-2.6.29.1-armv5-omap2: OK linux-2.6.30-armv5-omap2: OK linux-2.6.31-armv5-omap2: ERRORS linux-2.6.22.19-i686: ERRORS linux-2.6.23.12-i686: ERRORS linux-2.6.24.7-i686: ERRORS linux-2.6.25.11-i686: ERRORS linux-2.6.26-i686: OK linux-2.6.27-i686: OK linux-2.6.28-i686: OK linux-2.6.29.1-i686: WARNINGS linux-2.6.30-i686: WARNINGS linux-2.6.31-i686: WARNINGS linux-2.6.23.12-m32r: OK linux-2.6.24.7-m32r: OK linux-2.6.25.11-m32r: OK linux-2.6.26-m32r: OK linux-2.6.27-m32r: OK linux-2.6.28-m32r: OK linux-2.6.29.1-m32r: OK linux-2.6.30-m32r: OK linux-2.6.31-m32r: OK linux-2.6.30-mips: WARNINGS linux-2.6.31-mips: OK linux-2.6.27-powerpc64: ERRORS linux-2.6.28-powerpc64: ERRORS linux-2.6.29.1-powerpc64: ERRORS linux-2.6.30-powerpc64: ERRORS linux-2.6.31-powerpc64: ERRORS linux-2.6.22.19-x86_64: ERRORS linux-2.6.23.12-x86_64: ERRORS linux-2.6.24.7-x86_64: ERRORS linux-2.6.25.11-x86_64: ERRORS linux-2.6.26-x86_64: OK linux-2.6.27-x86_64: OK linux-2.6.28-x86_64: OK linux-2.6.29.1-x86_64: WARNINGS linux-2.6.30-x86_64: WARNINGS linux-2.6.31-x86_64: WARNINGS sparse (linux-2.6.31): OK linux-2.6.16.61-i686: ERRORS linux-2.6.17.14-i686: ERRORS linux-2.6.18.8-i686: ERRORS linux-2.6.19.5-i686: ERRORS linux-2.6.20.21-i686: ERRORS linux-2.6.21.7-i686: ERRORS linux-2.6.16.61-x86_64: ERRORS linux-2.6.17.14-x86_64: ERRORS linux-2.6.18.8-x86_64: ERRORS linux-2.6.19.5-x86_64: ERRORS linux-2.6.20.21-x86_64: ERRORS linux-2.6.21.7-x86_64: ERRORS Detailed results are available here: http://www.xs4all.nl/~hverkuil/logs/Tuesday.log Full logs are available here: http://www.xs4all.nl/~hverkuil/logs/Tuesday.tar.bz2 The V4L2 specification failed to build, but the last compiled spec is here: http://www.xs4all.nl/~hverkuil/spec/v4l2.html The DVB API specification from this daily build is here: http://www.xs4all.nl/~hverkuil/spec/dvbapi.pdf -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: RFCv2: Media controller proposal
Mauro Carvalho Chehab wrote: Em Fri, 11 Sep 2009 22:15:15 +0200 Hans Verkuil hverk...@xs4all.nl escreveu: On Friday 11 September 2009 21:59:37 Mauro Carvalho Chehab wrote: Em Fri, 11 Sep 2009 21:23:44 +0200 Hans Verkuil hverk...@xs4all.nl escreveu: The second problem is that this will pollute the 'namespace' of a v4l device node. Device drivers need to pass all those private ioctls to the right sub-device. But they shouldn't have to care about that. If someone wants to tweak the resizer (e.g. scaling coefficients), then pass it straight to the resizer component. Sorry, I missed your point here Example: a sub-device can produce certain statistics. You want to have an ioctl to obtain those statistics. If you call that through /dev/videoX, then that main driver has to handle that ioctl in vidioc_default and pass it on to the right subdev. So you have to write that vidioc_default handler, know about the sub-devices that you have and which sub-device is linked to the device node. You really don't want to have to do that. Especially not when you are dealing with i2c devices that are loaded from platform code. If a video encoder supports private ioctls, then an omap3 driver doesn't want to know about that. Oh, and before you ask: just broadcasting that ioctl is not a solution if you have multiple identical video encoders. This can be as easy as reading from /sys/class/media/dsp:stat0/stats In general, the H3A block producing the statistics is configured first, after which it starts producing statistics. Statistics buffers are usually smallish, the maximum size is half MiB or so. For such a buffer you'd have to ask the data for a number of times since the sysfs show() limit is one page (4 kiB usually). Statistics are also often available before the actual frame since the whole frame is not used to compute them. The statistics are used by e.g. the AEWB algorithm which then comes up with the new exposure and gain values. Applying them to the sensor in time is important since the sensor may start exposing a new frame already before the last one has ended. This requires event delivery to userspace (Laurent has written about it under subject [RFC] Video events). -- Sakari Ailus sakari.ai...@maxwell.research.nokia.com -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Media controller: sysfs vs ioctl
Hans Verkuil wrote: On Sunday 13 September 2009 08:13:04 Nathaniel Kim wrote: 2009. 9. 12., 오전 7:21, Hans Verkuil 작성: Hans, First of all I'm very sorry that I had not enough time to go through your new RFC. I'll checkout right after posting this mail. I think this is a good approach and I also had in my mind that sysfs might be a good method if we could control and monitor through this. Recalling memory when we had a talk in San Francisco, I was frustrated that there is no way to catch events from sort of sub-devices like lens actuator (I mean pizeo motors in camera module). As you know lens actuator is an extremely slow device in comparison with common v4l2 devices we are using and we need to know whether it has succeeded or not in moving to expected position. So I considered sysfs and udev as candidates for catching events from sub-devices. events like success/failure of lens movement, change of status of subdevices. Does anybody experiencing same issue? I think I've seen a lens controller driver in omap3 kernel from TI but not sure how did they control that. My point is that we need a kind of framework to give and event to user space and catching them properly just like udev does. When I was talking to Laurent Pinchart and Sakari and his team at Nokia we discussed just such a framework. It actually exists already, although it is poorly implemented. Look at include/linux/dvb/video.h, struct video_event and ioctl VIDEO_GET_EVENT. It is used in ivtv (ivtv-ioctl.c, look for VIDEO_GET_EVENT). The idea is that you can either call VIDEO_GET_EVENT to wait for an event or use select() and wait for an exception to arrive, and then call VIDEO_GET_EVENT to find which event it was. This is ideal for streaming-related events. In ivtv it is used to report VSYNCs and to report when the MPEG decoder stopped (there is a delay between stopping sending new data to the decoder and when it actually processed all its internal buffers). Laurent is going to look into this to clean it up and present it as a new proper official V4L2 event mechanism. For events completely specific to a subdev I wonder whether it wouldn't be a good idea to use the media controller device for that. I like the select() mechanism since in an application you can just select() on a whole bunch of filehandles. If you can't use select() then you are forced to do awkward coding (e.g. make a separate thread just to handle that other event mechanism). Agree. There's no reasonable way to use video devices here since the events may be connected to non-video related issues --- like the statistics. One possible approach could be allocating a device node for each subdev and use them and leave the media controller device with just the media controller specific ioctls. Then there would be no need to set current subdev nor bind the subdev to file handle either. Just an idea. So with the media controller we can easily let sub-devices notify the media controller when an event is ready and the media controller can then generate an exception. An application can just select() on the mc filehandle. There are two ways of implementing this. One is that the media controller keeps a global queue of pending events and subdevices just queue events to that when they arrive (with some queue size limit to prevent run-away events). With the above arrangement, the events could be easily subdev specific. The mechanism should be generic still, though. So when you call some GET_EVENT type ioctl it should return the ID of the subdevice (aka entity) as well. What makes me slightly uncomfortable is that you still want to use that same ioctl on a normal video node. And the subdev ID has really no meaning there. But making two different ioctls doesn't sit well with me either. The alternative implementation is that the mc will only wait for events from the currently selected sub-device. So if you want to wait on events from different sub-devices, then you have to open the mc multiple times, once for each subdev that you want to receive events from. I think I would probably go for the second implementation because it is consistent with the way ioctls are passed to sub-devices. I like the idea that you can just pass regular V4L2 ioctls to sub-devices. Not all ioctls make sense, obviously (e.g. any of the streaming I/O ioctls), but a surprisingly large number of ioctls can be used in that way. I agree with this. There are just a few ioctls that probably don't make sense (e.g. the steaming related ones). IMO even the format setting ioctls could be nice since the possible input and output formats of the subdevs should be enumerable, too. ENUM_FRAMESIZES and ENUM_FRAMEINTERVALS are missing the v4l2_buf_type, but there are reserved fields... -- Sakari Ailus sakari.ai...@maxwell.research.nokia.com -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org
[PATCH] media/tvp514x: recognize the error case in tvp514x_read_reg()
From: Sebastian Andrzej Siewior bige...@linutronix.de i2c_smbus_read_byte_data() returns a negative value on error. It is very likely to be != -1 (-EPERM). Signed-off-by: Sebastian Andrzej Siewior bige...@linutronix.de --- Noticed by strange results during signal beeing pending. drivers/media/video/tvp514x.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/media/video/tvp514x.c b/drivers/media/video/tvp514x.c index 2443726..26b4e71 100644 --- a/drivers/media/video/tvp514x.c +++ b/drivers/media/video/tvp514x.c @@ -272,7 +272,7 @@ static int tvp514x_read_reg(struct v4l2_subdev *sd, u8 reg) read_again: err = i2c_smbus_read_byte_data(client, reg); - if (err == -1) { + if (err 0) { if (retry = I2C_RETRY_COUNT) { v4l2_warn(sd, Read: retry ... %d\n, retry); retry++; -- 1.6.3.3 -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
docbooks fatal build error (v4l dvb)
2.6.31-git11: this prevents other docbooks from being built. mkdir -p /linux-2.6.31-git11/Documentation/DocBook/media/ cp /linux-2.6.31-git11/Documentation/DocBook/dvb/*.png /linux-2.6.31-git11/Documentation/DocBook/v4l/*.gif /linux-2.6.31-git11/Documentation/DocBook/media/ cp: cannot stat `/linux-2.6.31-git11/Documentation/DocBook/dvb/*.png': No such file or directory cp: cannot stat `/linux-2.6.31-git11/Documentation/DocBook/v4l/*.gif': No such file or directory make[1]: *** [media] Error 1 --- ~Randy -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/4] tda18271_set_analog_params major bugfix
Multiplication by 62500 causes an overflow in the 32 bits freq register when using radio. FM radio reception on a Zolid Hybrid PCI is now working. Other tda18271 configurations may also benefit from this change ;) Signed-off-by: henk.vergo...@gmail.com diff -r 29e4ba1a09bc linux/drivers/media/common/tuners/tda18271-fe.c --- a/linux/drivers/media/common/tuners/tda18271-fe.c Sat Sep 19 09:45:22 2009 -0300 +++ b/linux/drivers/media/common/tuners/tda18271-fe.c Tue Sep 22 22:06:31 2009 +0200 @@ -1001,38 +1020,43 @@ struct tda18271_std_map_item *map; char *mode; int ret; - u32 freq = params-frequency * 62500; + u32 freq; priv-mode = TDA18271_ANALOG; if (params-mode == V4L2_TUNER_RADIO) { - freq = freq / 1000; + freq = params-frequency * 625; + freq = freq / 10; map = std_map-fm_radio; mode = fm; - } else if (params-std V4L2_STD_MN) { - map = std_map-atv_mn; - mode = MN; - } else if (params-std V4L2_STD_B) { - map = std_map-atv_b; - mode = B; - } else if (params-std V4L2_STD_GH) { - map = std_map-atv_gh; - mode = GH; - } else if (params-std V4L2_STD_PAL_I) { - map = std_map-atv_i; - mode = I; - } else if (params-std V4L2_STD_DK) { - map = std_map-atv_dk; - mode = DK; - } else if (params-std V4L2_STD_SECAM_L) { - map = std_map-atv_l; - mode = L; - } else if (params-std V4L2_STD_SECAM_LC) { - map = std_map-atv_lc; - mode = L'; } else { - map = std_map-atv_i; - mode = xx; + freq = params-frequency * 62500; + + if (params-std V4L2_STD_MN) { + map = std_map-atv_mn; + mode = MN; + } else if (params-std V4L2_STD_B) { + map = std_map-atv_b; + mode = B; + } else if (params-std V4L2_STD_GH) { + map = std_map-atv_gh; + mode = GH; + } else if (params-std V4L2_STD_PAL_I) { + map = std_map-atv_i; + mode = I; + } else if (params-std V4L2_STD_DK) { + map = std_map-atv_dk; + mode = DK; + } else if (params-std V4L2_STD_SECAM_L) { + map = std_map-atv_l; + mode = L; + } else if (params-std V4L2_STD_SECAM_LC) { + map = std_map-atv_lc; + mode = L'; + } else { + map = std_map-atv_i; + mode = xx; + } } tda_dbg(setting tda18271 to system %s\n, mode); -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/4] 18271_calc_main_pll small bugfix
Removed code fragment that is not part of the (C2) specs. Possibly an early remnant of an attempted if_notch filter configuration. It is already handled correctly in the tda18271_set_if_notch function. Signed-off-by: henk.vergo...@gmail.com diff -r 29e4ba1a09bc linux/drivers/media/common/tuners/tda18271-common.c --- a/linux/drivers/media/common/tuners/tda18271-common.c Sat Sep 19 09:45:22 2009 -0300 +++ b/linux/drivers/media/common/tuners/tda18271-common.c Tue Sep 22 22:06:31 2009 +0200 @@ -582,15 +582,6 @@ regs[R_MPD] = (0x77 pd); - switch (priv-mode) { - case TDA18271_ANALOG: - regs[R_MPD] = ~0x08; - break; - case TDA18271_DIGITAL: - regs[R_MPD] |= 0x08; - break; - } - div = ((d * (freq / 1000)) 7) / 125; regs[R_MD1] = 0x7f (div 16); -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 3/4] tda8290 enable deemphasis_50 module parameter.
This adds a forgotten module_param macro needed to set a deemphasis of 50us. It is the standard setting for commercial FM radio broadcasts outside the US. Signed-off-by: henk.vergo...@gmail.com diff -r 29e4ba1a09bc linux/drivers/media/common/tuners/tda8290.c --- a/linux/drivers/media/common/tuners/tda8290.c Sat Sep 19 09:45:22 2009 -0300 +++ b/linux/drivers/media/common/tuners/tda8290.c Tue Sep 22 22:06:31 2009 +0200 @@ -34,6 +34,7 @@ MODULE_PARM_DESC(debug, enable verbose debug messages); static int deemphasis_50; +module_param(deemphasis_50, int, 0644); MODULE_PARM_DESC(deemphasis_50, 0 - 75us deemphasis; 1 - 50us deemphasis); /* -- */ -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 4/4] Zolid Hybrid PCI card add AGC control
Switches IF AGC control via GPIO 21 of the saa7134. Improves DTV reception and FM radio reception. Signed-off-by: henk.vergo...@gmail.com diff -r 29e4ba1a09bc linux/drivers/media/video/saa7134/saa7134-cards.c --- a/linux/drivers/media/video/saa7134/saa7134-cards.c Sat Sep 19 09:45:22 2009 -0300 +++ b/linux/drivers/media/video/saa7134/saa7134-cards.c Tue Sep 22 22:06:31 2009 +0200 @@ -6651,6 +6651,22 @@ return 0; } +static inline int saa7134_tda18271_zolid_toggle_agc(struct saa7134_dev *dev, + enum tda18271_mode mode) +{ + switch (mode) { + case TDA18271_ANALOG: + saa7134_set_gpio(dev, 21, 0); + break; + case TDA18271_DIGITAL: + saa7134_set_gpio(dev, 21, 1); + break; + default: + return -EINVAL; + } + return 0; +} + static int saa7134_tda8290_18271_callback(struct saa7134_dev *dev, int command, int arg) { @@ -6663,7 +6679,8 @@ case SAA7134_BOARD_HAUPPAUGE_HVR1120: ret = saa7134_tda18271_hvr11x0_toggle_agc(dev, arg); break; - default: + case SAA7134_BOARD_ZOLID_HYBRID_PCI: + ret = saa7134_tda18271_zolid_toggle_agc(dev, arg); break; } break; @@ -6682,6 +6699,7 @@ switch (dev-board) { case SAA7134_BOARD_HAUPPAUGE_HVR1150: case SAA7134_BOARD_HAUPPAUGE_HVR1120: + case SAA7134_BOARD_ZOLID_HYBRID_PCI: /* tda8290 + tda18271 */ ret = saa7134_tda8290_18271_callback(dev, command, arg); break; @@ -6985,6 +7003,11 @@ saa_andorl(SAA7134_GPIO_GPMODE0 2, 0x8000, 0x8000); saa_andorl(SAA7134_GPIO_GPSTATUS0 2, 0x8000, 0x8000); break; + case SAA7134_BOARD_ZOLID_HYBRID_PCI: + saa7134_set_gpio(dev, 21, 0); /* s0 HC4052 */ + saa7134_set_gpio(dev, 22, 0); /* vsync tda18271 - TODO implement saa713x driven sync in analog TV modes */ + saa7134_set_gpio(dev, 23, 0); /* s1 HC4052 */ + break; } return 0; } diff -r 29e4ba1a09bc linux/drivers/media/video/saa7134/saa7134-dvb.c --- a/linux/drivers/media/video/saa7134/saa7134-dvb.c Sat Sep 19 09:45:22 2009 -0300 +++ b/linux/drivers/media/video/saa7134/saa7134-dvb.c Tue Sep 22 22:06:31 2009 +0200 @@ -1026,8 +1026,17 @@ .disable_gate_access = 1, }; +static struct tda18271_std_map zolid_tda18271_std_map = { + /* FM reception via RF_IN */ + .fm_radio = { .if_freq = 1250, .fm_rfn = 0, .agc_mode = 3, .std = 0, + .if_lvl = 0, .rfagc_top = 0x2c, }, +}; + static struct tda18271_config zolid_tda18271_config = { + .std_map = zolid_tda18271_std_map, .gate= TDA18271_GATE_ANALOG, + .config = 3, + .output_opt = TDA18271_OUTPUT_LT_OFF, }; /* == -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: docbooks fatal build error (v4l dvb)
Hi Randy, Em Tue, 22 Sep 2009 12:42:48 -0700 Randy Dunlap randy.dun...@oracle.com escreveu: 2.6.31-git11: this prevents other docbooks from being built. mkdir -p /linux-2.6.31-git11/Documentation/DocBook/media/ cp /linux-2.6.31-git11/Documentation/DocBook/dvb/*.png /linux-2.6.31-git11/Documentation/DocBook/v4l/*.gif /linux-2.6.31-git11/Documentation/DocBook/media/ cp: cannot stat `/linux-2.6.31-git11/Documentation/DocBook/dvb/*.png': No such file or directory cp: cannot stat `/linux-2.6.31-git11/Documentation/DocBook/v4l/*.gif': No such file or directory make[1]: *** [media] Error 1 Hmm... here, it is working fine. I've did it on a newer tree, cloned from Linus one. This is the last patch on it: commit 7fa07729e439a6184bd824746d06a49cca553f15 Merge: 991d79b a8f90e9 Author: Linus Torvalds torva...@linux-foundation.org Date: Tue Sep 22 08:11:04 2009 -0700 $ make htmldocs mkdir -p /home/v4l/tokernel/wrk/linux-2.6/Documentation/DocBook/media/ cp /home/v4l/tokernel/wrk/linux-2.6/Documentation/DocBook/dvb/*.png /home/v4l/tokernel/wrk/linux-2.6/Documentation/DocBook/v4l/*.gif /home/v4l/tokernel/wrk/linux-2.6/Documentation/DocBook/media/ rm -rf Documentation/DocBook/index.html echo 'h1Linux Kernel HTML Documentation/h1' Documentation/DocBook/index.html echo 'h2Kernel Version: 2.6.31/h2' Documentation/DocBook/index.html cat Documentation/DocBook/alsa-driver-api.html Documentation/DocBook/debugobjects.html Documentation/DocBook/device-drivers.html Documentation/DocBook/deviceiobook.html Documentation/DocBook/filesystems.html Documentation/DocBook/gadget.html Documentation/DocBook/genericirq.html Documentation/DocBook/kernel-api.html Documentation/DocBook/kernel-hacking.html Documentation/DocBook/kernel-locking.html Documentation/DocBook/kgdb.html Documentation/DocBook/libata.html Documentation/DocBook/librs.html Documentation/DocBook/lsm.html Documentation/DocBook/mac80211.html Documentation/DocBook/mcabook.html Documentation/DocBook/media.html Documentation/DocBook/mtdnand.html Documentation/DocBook/networking.html Documentation/DocBook/procfs-guide.html Documentation/DocBook/rapidio.html Documentation/DocBook/regulator.html Documentation/DocBook/s390-drivers.html Documentation/DocBook/scsi.html Documentation/DocBook/sh.html Documentation/DocBook/tracepoint.html Documentation/DocBook/uio-howto.html Documentation/DocBook/usb.html Documentation/DocBook/writing-an-alsa-driver.html Documentation/DocBook/writing_usb_driver.html Documentation/DocBook/z8530book.html Documentation/DocBook/index.html I also double checked that the files are there: $ git log Documentation/DocBook/v4l/fieldseq_bt.gif commit 8e080c2e6cadada82a6b520e0c23a1cb974822d5 Author: Mauro Carvalho Chehab mche...@redhat.com Date: Sun Sep 13 22:16:04 2009 -0300 V4L/DVB (12761): DocBook: add media API specs The V4L and DVB API's are there for a long time. however, up to now, no efforts were done to merge them to kernel DocBook. This patch adds the current versions of the specs as an unique compendium. Signed-off-by: Mauro Carvalho Chehab mche...@redhat.com Cheers, Mauro -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: docbooks fatal build error (v4l dvb)
On Tue, 22 Sep 2009 18:28:27 -0300 Mauro Carvalho Chehab wrote: Hi Randy, Em Tue, 22 Sep 2009 12:42:48 -0700 Randy Dunlap randy.dun...@oracle.com escreveu: 2.6.31-git11: this prevents other docbooks from being built. mkdir -p /linux-2.6.31-git11/Documentation/DocBook/media/ cp /linux-2.6.31-git11/Documentation/DocBook/dvb/*.png /linux-2.6.31-git11/Documentation/DocBook/v4l/*.gif /linux-2.6.31-git11/Documentation/DocBook/media/ cp: cannot stat `/linux-2.6.31-git11/Documentation/DocBook/dvb/*.png': No such file or directory cp: cannot stat `/linux-2.6.31-git11/Documentation/DocBook/v4l/*.gif': No such file or directory make[1]: *** [media] Error 1 Hmm... here, it is working fine. I've did it on a newer tree, cloned from Linus one. This is the last patch on it: OK, it's probably just because I used a git snapshot (-git11). Sorry for the noise. commit 7fa07729e439a6184bd824746d06a49cca553f15 Merge: 991d79b a8f90e9 Author: Linus Torvalds torva...@linux-foundation.org Date: Tue Sep 22 08:11:04 2009 -0700 $ make htmldocs mkdir -p /home/v4l/tokernel/wrk/linux-2.6/Documentation/DocBook/media/ cp /home/v4l/tokernel/wrk/linux-2.6/Documentation/DocBook/dvb/*.png /home/v4l/tokernel/wrk/linux-2.6/Documentation/DocBook/v4l/*.gif /home/v4l/tokernel/wrk/linux-2.6/Documentation/DocBook/media/ rm -rf Documentation/DocBook/index.html echo 'h1Linux Kernel HTML Documentation/h1' Documentation/DocBook/index.html echo 'h2Kernel Version: 2.6.31/h2' Documentation/DocBook/index.html cat Documentation/DocBook/alsa-driver-api.html Documentation/DocBook/debugobjects.html Documentation/DocBook/device-drivers.html Documentation/DocBook/deviceiobook.html Documentation/DocBook/filesystems.html Documentation/DocBook/gadget.html Documentation/DocBook/genericirq.html Documentation/DocBook/kernel-api.html Documentation/DocBook/kernel-hacking.html Documentation/DocBook/kernel-locking.html Documentation/DocBook/kgdb.html Documentation/DocBook/libata.html Documentation/DocBook/librs.html Documentation/DocBook/lsm.html Documentation/DocBook/mac80211.html Documentation/DocBook/mcabook.html Documentation/DocBook/media.html Documentation/DocBook/mtdnand.html Documentation/DocBook/networking.html Documentation/DocBook/procfs-guide.html Documentation/DocBook/rapidio.html Documentation/DocBook/regulator.html Documentation/DocBook/s390-drivers.html Documentation/DocBook/scsi.html Documentation/DocBook/sh.html Documentation/DocBook/tracepoint.html Documentation/DocBook/uio-howto.html Documentation/DocBook/usb.html Documentation/DocBook/writing-an-alsa-driver.html Documentation/DocBook/writing_usb_driver.html Documentation/DocBook/z8530book.html Documentation/DocBook/index.html I also double checked that the files are there: $ git log Documentation/DocBook/v4l/fieldseq_bt.gif commit 8e080c2e6cadada82a6b520e0c23a1cb974822d5 Author: Mauro Carvalho Chehab mche...@redhat.com Date: Sun Sep 13 22:16:04 2009 -0300 V4L/DVB (12761): DocBook: add media API specs The V4L and DVB API's are there for a long time. however, up to now, no efforts were done to merge them to kernel DocBook. This patch adds the current versions of the specs as an unique compendium. Signed-off-by: Mauro Carvalho Chehab mche...@redhat.com Cheers, Mauro --- ~Randy -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Fwd: ATI HDTV Wonder not always recognized
I am need of opinions on whether this is a driver or motherboard issue (or something else). I originally had an ATI HDTV Wonder card working perfectly along with a PVR-150 in my two PCI slots of a Asus M2NPV-VM motherboard. Driver for the HDTV Wonder is cx88_dvb, and the PVR, ivtv The PVR-150 recently started to deteriorate with a poor picture quality ( I can describe more if relevant). So I purchased a replacement PVR-150 and popped into place. The new PVR-150 worked without a hitch itself. But...the HDTV Wonder isn't even recognized. Does not show up in lspci. modprobe cx88_dvb reports no such device I have tried swapping PCI slots with no luck, replaced the old PVR-150 with no luck. But the HDTV Wonder is recognized in one slot only with the other slot empty. So I can currently run with either card, but not both. Motherboard has the most recent firmware. I've updated Ubuntu to 9.10 and v4l-dvb drivers to most recent 0.0.7. (No noticable difference from 0.0.6 as far as what I need). Is my logic correct in blaming the motherboard? Any suggestions? Thanks, Eric -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: docbooks fatal build error (v4l dvb)
On Tue, 22 Sep 2009 14:36:01 -0700 Randy Dunlap wrote: On Tue, 22 Sep 2009 18:28:27 -0300 Mauro Carvalho Chehab wrote: Hi Randy, Em Tue, 22 Sep 2009 12:42:48 -0700 Randy Dunlap randy.dun...@oracle.com escreveu: 2.6.31-git11: this prevents other docbooks from being built. mkdir -p /linux-2.6.31-git11/Documentation/DocBook/media/ cp /linux-2.6.31-git11/Documentation/DocBook/dvb/*.png /linux-2.6.31-git11/Documentation/DocBook/v4l/*.gif /linux-2.6.31-git11/Documentation/DocBook/media/ cp: cannot stat `/linux-2.6.31-git11/Documentation/DocBook/dvb/*.png': No such file or directory cp: cannot stat `/linux-2.6.31-git11/Documentation/DocBook/v4l/*.gif': No such file or directory make[1]: *** [media] Error 1 Hmm... here, it is working fine. I've did it on a newer tree, cloned from Linus one. This is the last patch on it: OK, it's probably just because I used a git snapshot (-git11). Sorry for the noise. Confirmed, linus.git works fine. --- ~Randy -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC/RFT 0/14] radio-mr800 patch series
On Tue, Sep 22, 2009 at 5:06 AM, David Ellingsworth da...@identd.dyndns.org wrote: On Mon, Sep 21, 2009 at 8:03 PM, Alexey Klimov klimov.li...@gmail.com wrote: Hello, David On Mon, Sep 14, 2009 at 11:09 PM, Alexey Klimov klimov.li...@gmail.com wrote: Hello David, On Sun, Sep 13, 2009 at 7:22 AM, David Ellingsworth da...@identd.dyndns.org wrote: What follow is a series of patches to clean up the radio-mr800 driver. I do _not_ have access to this device so these patches need to be tested. These patches should apply to Mauro's git tree and against the 2.6.31 release kernel. The patches in this series are as follows: 01. radio-mr800: implement proper locking 02. radio-mr800: simplify video_device allocation 03. radio-mr800: simplify error paths in usb probe callback 04. radio-mr800: remove an unnecessary local variable 05. radio-mr800: simplify access to amradio_device 06. radio-mr800: simplify locking in ioctl callbacks 07. radio-mr800: remove device-removed indicator 08. radio-mr800: fix potential use after free 09. radio-mr800: remove device initialization from open/close 10. radio-mr800: ensure the radio is initialized to a consistent state 11. radio-mr800: fix behavior of set_radio function 12. radio-mr800: preserve radio state during suspend/resume 13. radio-mr800: simplify device warnings 14. radio-mr800: set radio frequency only upon success The first 7 in this series are the same as those submitted in my last series and will not be resent. The remaining 7 patches in this series will be sent separately for review. I applied your patches and tested radio device. Radio works fine, but unfortunately sudden disconnect while playing radio with gnomeradio creates troubles. I see such oops in dmesg: radio_mr800: version 0.11-david AverMedia MR 800 USB FM radio driver usb 2-2: new low speed USB device using ohci_hcd and address 16 usb 2-2: New USB device found, idVendor=07ca, idProduct=b800 usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 2-2: Product: AVerMedia USB Radio usb 2-2: Manufacturer: AVerMedia Technologies usb 2-2: configuration #1 chosen from 1 choice radio-mr800 2-2:1.0: Non-NULL drvdata on register usb 2-2: USB disconnect, address 16 BUG: unable to handle kernel NULL pointer dereference at 009f IP: [8119222b] dev_set_drvdata+0x25/0x30 PGD 3c0e1067 PUD 33b1d067 PMD 0 Oops: 0002 [#1] SMP last sysfs file: /sys/devices/pci:00/:00:02.0/usb2/2-2/2-2:1.0/uevent CPU 1 Modules linked in: radio_mr800 v4l2_common videodev v4l1_compat v4l2_compat_ioctl32 nls_iso8859_1 nls_cp437 vfat fat usb_storage nls_utf8 cifs ext2 ipt_MASQUERADE iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 ip_tables x_tables ppp_async crc_ccitt ppp_generic slhc cpufreq_powersave powernow_k8 freq_table snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss reiserfs usbhid hid snd_hda_codec_analog snd_hda_intel ohci_hcd ehci_hcd snd_hda_codec snd_hwdep snd_pcm snd_timer nvidia(P) snd usbcore soundcore snd_page_alloc rtc_cmos sg rtc_core rtc_lib i2c_nforce2 forcedeth e100 nls_base k8temp mii i2c_core hwmon thermal button [last unloaded: v4l2_compat_ioctl32] Pid: 11790, comm: gnomeradio Tainted: P 2.6.31 #12 System Product Name RIP: 0010:[8119222b] [8119222b] dev_set_drvdata+0x25/0x30 RSP: 0018:880031741e28 EFLAGS: 00010206 RAX: 0017 RBX: 88003c3a4030 RCX: 8109458a RDX: RSI: RDI: 88003c3a4030 RBP: R08: R09: R10: 880029391e70 R11: 0246 R12: 81349ec0 R13: 880029391e70 R14: 8800173d7000 R15: 88003fac8300 FS: 7fa0f88e3750() GS:88000290() knlGS:f7327a10 CS: 0010 DS: ES: CR0: 80050033 CR2: 009f CR3: 3165c000 CR4: 06e0 DR0: DR1: DR2: DR3: DR6: 0ff0 DR7: 0400 Process gnomeradio (pid: 11790, threadinfo 88003174, task 88003bcc5820) Stack: 8800173d7000 88003c3a5a60 88003c3a5a60 a0c603cb 0 88003c3a5800 a0c603e5 88003c3a5800 88003e400890 0 81349ec0 a000d5c7 8800331593c0 8118fb37 Call Trace: [a0c603cb] ? v4l2_device_disconnect+0x13/0x1c [videodev] [a0c603e5] ? v4l2_device_unregister+0x11/0x4b [videodev] [a000d5c7] ? usb_amradio_video_device_release+0x11/0x26 [radio_mr800] [8118fb37] ? device_release+0x41/0x6a [81118bf3] ? kobject_release+0x48/0x5e [81118bab] ? kobject_release+0x0/0x5e [811198ad] ? kref_put+0x41/0x4a [a0c5c2f3] ? v4l2_release+0x33/0x37 [videodev] [81092dfd] ? __fput+0x100/0x1c9 [81090538] ? filp_close+0x5f/0x6a
Re: driver for Cinergy Hybrid T USB XS FM
On Tue, Sep 22, 2009 at 7:45 AM, fogna fogna fogn...@gmail.com wrote: Hi Devin thanks for the reply, this means we need to contact Terratec asking them to donate a device to developers ? or do the community have to donate one ? thanks Well, if Terratec were willing to donate some hardware, that would probably grease the wheels. I don't have any contacts there though. Devin -- Devin J. Heitmueller - Kernel Labs http://www.kernellabs.com -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Questions about Terratec Hybrid XS (em2882) [0ccd:005e]
On Tue, Sep 22, 2009 at 5:12 AM, Uros Vampl mobile.leec...@gmail.com wrote: On 21.09.09 18:29, Devin Heitmueller wrote: On Mon, Sep 21, 2009 at 6:15 PM, Uros Vampl mobile.leec...@gmail.com wrote: I tried arecord/aplay and sox with tvtime, and also mplayer (which has built-in audio support). I know about these tricks, I've used them successfully with Markus' em28xx-new driver. But with v4l-dvb it's as I said, audio is there but it's extremely quiet. If you have suggestions how I should try to diagnoze this, I'm all ears. Regards, Uroš If the audio is present but very quiet, then it's probably some issue you are having with your mixer. I would check your ALSA and PulseAudio configuration (in particular the mixer volume controls). Devin No PulseAudio here. And I've played plenty with the ALSA mixer, all the sliders that are there. Using em28xx-new instead of v4l-dvb, all else being equal, tv volume is fine. So there's gotta be a difference somewhere in the way em28xx-new sets up audio compared to how v4l-dvb does it. Interesting. Have you tried the A/V inputs (as opposed to the tuner)? That might help us identify whether it's an issue with the xc3028 tuner chip extracting the audio carrier or whether it's something about the way we are programming the emp202. Devin -- Devin J. Heitmueller - Kernel Labs http://www.kernellabs.com -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Audio drop on saa7134
Hi David, Am Montag, den 21.09.2009, 00:53 -0700 schrieb David Liontooth: hermann pitton wrote: Hi, Am Sonntag, den 20.09.2009, 06:02 -0300 schrieb Mauro Carvalho Chehab: Em Sun, 20 Sep 2009 01:24:12 -0700 David Liontooth lionte...@cogweb.net escreveu: Sep 18 07:00:01 prato kernel: saa7133[4]/audio: dsp write reg 0x464 = 0x00 Sep 18 07:00:01 prato kernel: saa7133[4]/audio: dsp write reg 0x46c = 0xbb This means mute. With this, audio will stop. Sep 18 07:00:01 prato kernel: saa7133[4]/audio: dsp write reg 0x464 = 0x00 Sep 18 07:00:01 prato kernel: saa7133[4]/audio: dsp write reg 0x46c = 0x10 This means unmute. It seems that the auto-mute code is doing some bad things for you. What happens if you disable automute? This is a control that you can access via v4l2ctl or on your userspace application. Are you using the last version of the driver? I'm not seeing some debug log messages that should be there... Cheers, Mauro despite of still 1001 messages unread, Mauro is right here. You are also for sure not on a saa7134, likely you would not ever had a reason to come up here on such. But the much better is to have you now. lspci says 00:07.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev 10) The cards apparently have the saa7133HL-v101 chip. Are you suggesting the saa7134 would be better? no, you can't use a saa7134 on System-M without additional audio decoder. You should know better, since you helped a lot to get Closed Captions working on saa7133/35/31e. Means, you are at least on a saa7133, not able to decode stereo TV sound on PAL and SECAM systems, vice versa counts for the saa7134 on SYSTEM-M. I'm recording NTSC -- are you saying the saa7133 should be able to decode stereo on NTSC? Yes, of course, but a saa7134 can't. Only the saa7135 and saa7131e chips can do global stereo audio on that driver. If vice versa for the saa7134, does that mean this chip is not able to decode stereo on NTSC? Yes. Sorry, I don't know what SYSTEM-M is in this context. You will find NTSC tuners also in South America. For video they use some PAL, but for audio System-M. A different example you can find in South Korea. For video they use NTSC, but for audio dual FM (A2). If you could help me find a chip that avoids this audio drop problem, that would be great. The automute is for convenience of the users, say not to have loud noise on channel switching. I see. That's irrelevant for my purposes; the channels are switched before the recording starts. It is also controlled by different registers for analog sound and PCI dma sound. I'm using PCI dma sound. If debugging those issues, one more thing to mention is that external video in without audio will kick in mute on those cards too at the first round. It should be possible to disable all such funny stuff on production systems, pleasant for the average user's conditions, and then see if anything should still remain. On bad mobos, needing PCI quirks and other such stuff, we are likely not any further than what you have seen on bttv previously, but in 99.9 percent of the known cases it seems to work. Else Mauro again is right, even audio_debug = 1 should deliver the related mute ioctl prints. I see -- it may be a couple of weeks before I can run tests on a more recent kernel, but I'll do that if turning off audiomute doesn't solve the problem. Cheers, Dave Is it really still over the air? We don't have any such anymore, only cable TV from satellites back modulated as RF input into their network in best case. Is very stable. We are not alone and depend also of work done by others. Generally speaking, your stuff should be sufficient already, but without having NTSC here, hm maybe some AFN stuff is still active, you are somewhat on your own again. To back up your kernel's modules media folder, install recent stuff for some testing, and if not pleased, delete the recent media folder, copy the old media folder back into place and run depmod -a once should be not that hard. Lots of small bugs in between ;) Cheers, Hermann -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[GIT PATCHES for 2.6.32] V4L/DVB fixes
Linus, Please pull from: ssh://master.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git for_linus For 4 build fix patches: - saa7134: fix build; - dvbdev: Remove an annoying/uneeded warning that happens when DVB_CORE is disabled but some V4L drivers are enabled; - dib0700: not building CONFIG_DVB_TUNER_DIB0070 breaks compilation; - staging/go7007: Revert compatibility code added at the wrong place preventing compilation. Cheers, Mauro. --- drivers/media/dvb/dvb-core/dvbdev.h|5 ++--- drivers/media/dvb/dvb-usb/Kconfig |2 +- drivers/media/video/saa7164/saa7164-api.c |8 drivers/media/video/saa7164/saa7164-cmd.c |2 +- drivers/media/video/saa7164/saa7164-core.c |6 +++--- drivers/media/video/saa7164/saa7164.h |4 ++-- drivers/staging/go7007/Makefile|5 - 7 files changed, 13 insertions(+), 19 deletions(-) Ingo Molnar (1): media: video: Fix build in saa7164 Mauro Carvalho Chehab (3): V4L/DVB (13037): go7007: Revert compatibility code added at the wrong place V4L/DVB (13038): dvbdev: Remove an anoying/uneeded warning V4L/DVB (13039): dib0700: not building CONFIG_DVB_TUNER_DIB0070 breaks compilation --- V4L/DVB development is hosted at http://linuxtv.org -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC/RFT 0/14] radio-mr800 patch series
Hello Alexey, On Wed, 23 Sep 2009 03:43:55 +0400 Alexey Klimov klimov.li...@gmail.com wrote: On Tue, Sep 22, 2009 at 5:06 AM, David Ellingsworth da...@identd.dyndns.org wrote: On Mon, Sep 21, 2009 at 8:03 PM, Alexey Klimov klimov.li...@gmail.com wrote: Hello, David On Mon, Sep 14, 2009 at 11:09 PM, Alexey Klimov klimov.li...@gmail.com wrote: Hello David, On Sun, Sep 13, 2009 at 7:22 AM, David Ellingsworth da...@identd.dyndns.org wrote: What follow is a series of patches to clean up the radio-mr800 driver. I do _not_ have access to this device so these patches need to be tested. These patches should apply to Mauro's git tree and against the 2.6.31 release kernel. The patches in this series are as follows: 01. radio-mr800: implement proper locking 02. radio-mr800: simplify video_device allocation 03. radio-mr800: simplify error paths in usb probe callback 04. radio-mr800: remove an unnecessary local variable 05. radio-mr800: simplify access to amradio_device 06. radio-mr800: simplify locking in ioctl callbacks 07. radio-mr800: remove device-removed indicator 08. radio-mr800: fix potential use after free 09. radio-mr800: remove device initialization from open/close 10. radio-mr800: ensure the radio is initialized to a consistent state 11. radio-mr800: fix behavior of set_radio function 12. radio-mr800: preserve radio state during suspend/resume 13. radio-mr800: simplify device warnings 14. radio-mr800: set radio frequency only upon success The first 7 in this series are the same as those submitted in my last series and will not be resent. The remaining 7 patches in this series will be sent separately for review. I applied your patches and tested radio device. Radio works fine, but unfortunately sudden disconnect while playing radio with gnomeradio creates troubles. I see such oops in dmesg: radio_mr800: version 0.11-david AverMedia MR 800 USB FM radio driver usb 2-2: new low speed USB device using ohci_hcd and address 16 usb 2-2: New USB device found, idVendor=07ca, idProduct=b800 usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 2-2: Product: AVerMedia USB Radio usb 2-2: Manufacturer: AVerMedia Technologies usb 2-2: configuration #1 chosen from 1 choice radio-mr800 2-2:1.0: Non-NULL drvdata on register usb 2-2: USB disconnect, address 16 BUG: unable to handle kernel NULL pointer dereference at 009f IP: [8119222b] dev_set_drvdata+0x25/0x30 PGD 3c0e1067 PUD 33b1d067 PMD 0 Oops: 0002 [#1] SMP last sysfs file: /sys/devices/pci:00/:00:02.0/usb2/2-2/2-2:1.0/uevent CPU 1 Modules linked in: radio_mr800 v4l2_common videodev v4l1_compat v4l2_compat_ioctl32 nls_iso8859_1 nls_cp437 vfat fat usb_storage nls_utf8 cifs ext2 ipt_MASQUERADE iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 ip_tables x_tables ppp_async crc_ccitt ppp_generic slhc cpufreq_powersave powernow_k8 freq_table snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss reiserfs usbhid hid snd_hda_codec_analog snd_hda_intel ohci_hcd ehci_hcd snd_hda_codec snd_hwdep snd_pcm snd_timer nvidia(P) snd usbcore soundcore snd_page_alloc rtc_cmos sg rtc_core rtc_lib i2c_nforce2 forcedeth e100 nls_base k8temp mii i2c_core hwmon thermal button [last unloaded: v4l2_compat_ioctl32] Pid: 11790, comm: gnomeradio Tainted: P 2.6.31 #12 System Product Name RIP: 0010:[8119222b] [8119222b] dev_set_drvdata+0x25/0x30 RSP: 0018:880031741e28 EFLAGS: 00010206 RAX: 0017 RBX: 88003c3a4030 RCX: 8109458a RDX: RSI: RDI: 88003c3a4030 RBP: R08: R09: R10: 880029391e70 R11: 0246 R12: 81349ec0 R13: 880029391e70 R14: 8800173d7000 R15: 88003fac8300 FS: 7fa0f88e3750() GS:88000290() knlGS:f7327a10 CS: 0010 DS: ES: CR0: 80050033 CR2: 009f CR3: 3165c000 CR4: 06e0 DR0: DR1: DR2: DR3: DR6: 0ff0 DR7: 0400 Process gnomeradio (pid: 11790, threadinfo 88003174, task 88003bcc5820) Stack: 8800173d7000 88003c3a5a60 88003c3a5a60 a0c603cb 0 88003c3a5800 a0c603e5 88003c3a5800 88003e400890 0 81349ec0 a000d5c7 8800331593c0 8118fb37 Call Trace: [a0c603cb] ? v4l2_device_disconnect+0x13/0x1c [videodev] [a0c603e5] ? v4l2_device_unregister+0x11/0x4b [videodev] [a000d5c7] ? usb_amradio_video_device_release+0x11/0x26 [radio_mr800] [8118fb37] ? device_release+0x41/0x6a [81118bf3] ? kobject_release+0x48/0x5e [81118bab] ? kobject_release+0x0/0x5e