Error message about cross-compile linux-dvb-app
Dear all: I download the latest linux_dvb_apps from http://packages.debian.org/source/stable/linuxtv-dvb-apps, but find the compile error message below: Desktop/dvb-apps-63dae165ffe8# make CROSS_COMPILE=mipsel-linux- V=1 make -C lib all make[1]: Entering directory `/home/cc/Desktop/dvb-apps-63dae165ffe8/lib' make -C libdvbapi all make[2]: Entering directory `/home/cc/Desktop/dvb-apps-63dae165ffe8/lib/libdvbapi' mipsel-linux-gcc -c -I../../lib -g -Wall -W -Wshadow -Wpointer-arith -Wstrict-prototypes -fPIC -MMD -o dvbaudio.o dvbaudio.c In file included from dvbaudio.c:28: /media/sda6/uclinux/toolchain/mips/temp/buildroot-2009.05/uclibc_0_9_30_build_mipsel/staging_dir/usr/include/linux/dvb/audio.h:79: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'audio_attributes_t' make[2]: *** [dvbaudio.o] Error 1 I google the problem and I find someone has reported this bug before, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=525580. It seems fixed at 25th Apri 2009. Did I get the wrong version or something I forget to set? If someone knows where the problem come from or have any idea, please let me know. Appreciate your help, miloody -- 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: Lenovo webcam problem which using gspca's vc032x driver
Hi Acelan Kao, I got news from a person who has the sensor mi1320_soc and had a vertical flip problem. She found that the sensor register 0x20 sets the image flips: bit 0 = vertical, bit 1 = horizontal. Comparing the sequences of the mi1310_soc, the bit 0 is inverted in the sxga (0x0303 instead of 0x0302). May you change it and see if the image is normal? (line ~ 706 {0x20, 0x03, 0x03, 0xbb}, - 0x03, 0x02) Best regards. -- Ken ar c'hentañ | ** Breizh ha Linux atav! ** Jef | http://moinejf.free.fr/ -- 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] dibusb-mc: New USB ID for Humax/Coex DVB-T USB Stick 2.0 High Speed
Signed-off-by: Pham Thanh Nam phamthanhnam@gmail.com Add new USB ID for Humax/Coex DVB-T USB Stick 2.0 High Speed diff -ur a/linux/drivers/media/dvb/dvb-usb/dibusb-mc.c b/linux/drivers/media/dvb/dvb-usb/dibusb-mc.c --- a/linux/drivers/media/dvb/dvb-usb/dibusb-mc.c 2009-07-12 20:52:32.0 +0700 +++ b/linux/drivers/media/dvb/dvb-usb/dibusb-mc.c 2009-07-12 20:12:56.0 +0700 @@ -42,6 +42,8 @@ /* 11 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ARTEC_T14_WARM) }, /* 12 */ { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_COLD) }, /* 13 */ { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_WARM) }, +/* 14 */ { USB_DEVICE(USB_VID_HUMAX_COEX, USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD) }, +/* 15 */ { USB_DEVICE(USB_VID_HUMAX_COEX, USB_PID_DVB_T_USB_STICK_HIGH_SPEED_WARM) }, { } /* Terminating entry */ }; MODULE_DEVICE_TABLE (usb, dibusb_dib3000mc_table); @@ -66,7 +68,7 @@ /* parameter for the MPEG2-data transfer */ .stream = { .type = USB_BULK, - .count = 7, + .count = 8, .endpoint = 0x06, .u = { .bulk = { @@ -88,7 +90,7 @@ .generic_bulk_ctrl_endpoint = 0x01, - .num_device_descs = 7, + .num_device_descs = 8, .devices = { { DiBcom USB2.0 DVB-T reference design (MOD3000P), { dibusb_dib3000mc_table[0], NULL }, @@ -119,6 +121,10 @@ { dibusb_dib3000mc_table[12], NULL }, { dibusb_dib3000mc_table[13], NULL }, }, + { Humax/Coex DVB-T USB Stick 2.0 High Speed, + { dibusb_dib3000mc_table[14], NULL }, + { dibusb_dib3000mc_table[15], NULL }, + }, { NULL }, } }; diff -ur a/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h b/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h --- a/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h 2009-07-12 20:52:32.0 +0700 +++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h 2009-07-12 21:23:29.0 +0700 @@ -58,6 +58,7 @@ #define USB_VID_GIGABYTE 0x1044 #define USB_VID_YUAN 0x1164 #define USB_VID_XTENSIONS 0x1ae7 +#define USB_VID_HUMAX_COEX 0x10b9 /* Product IDs */ #define USB_PID_ADSTECH_USB2_COLD 0xa333 @@ -259,5 +260,7 @@ #define USB_PID_SONY_PLAYTV0x0003 #define USB_PID_ELGATO_EYETV_DTT 0x0021 #define USB_PID_ELGATO_EYETV_DTT_Dlx 0x0020 +#define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD0x5000 +#define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_WARM0x5001 #endif -- 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: em28xx driver crashes device
Simon Kenyon wrote: i see that mcentral.de/hg has disappeared i have a copy of em28xx-new from 22nd may if anyone needs it -- simon -- 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: [PATCH] V4L/DVB: af9015: add new USB ID for KWorld PlusTV Dual DVB-T Stick (DVB-T 399U)
Mart Raudsepp wrote: Add new USB ID (1b80:e400) for KWorld PlusTV Dual DVB-T Stick (DVB-T 399U). The model number on the devices sticker label is KW-DVB-T 399UR. Signed-off-by: Mart Raudsepp mart.rauds...@artecdesign.ee Acked-by: Antti Palosaari cr...@iki.fi thanks! -- http://palosaari.fi/ -- 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
double unlock in bttv_poll() and in saa7134-video.c
Hello, My source code checker, smatch (http://repo.or.cz/w/smatch.git), complains about a double unlock in bttv_poll() from drivers/media/video/bt8xx/bttv-driver.c. It unlocks on line 3190 and again on 3201. 3190 mutex_unlock(fh-cap.vb_lock); 3191 buf = (struct bttv_buffer*)fh-cap.read_buf; 3192 } 3193 3194 poll_wait(file, buf-vb.done, wait); 3195 if (buf-vb.state == VIDEOBUF_DONE || 3196 buf-vb.state == VIDEOBUF_ERROR) 3197 rc = POLLIN|POLLRDNORM; 3198 else 3199 rc = 0; 3200 err: 3201 mutex_unlock(fh-cap.vb_lock); I looked at the code but I wasn't sure what the correct way to fix it is. video_poll() from drivers/media/video/saa7134/saa7134-video.c has the same issue. regards, dan carpenter -- 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: [PATCHv10 3/8] v4l2: video device: Add FM_TX controls default configurations
On Friday 24 July 2009 18:37:23 Eduardo Valentin wrote: Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com --- linux/drivers/media/video/v4l2-common.c | 63 ++- 1 files changed, 62 insertions(+), 1 deletions(-) diff --git a/linux/drivers/media/video/v4l2-common.c b/linux/drivers/media/video/v4l2-common.c index bd13702..6fc0559 100644 --- a/linux/drivers/media/video/v4l2-common.c +++ b/linux/drivers/media/video/v4l2-common.c @@ -343,6 +343,12 @@ const char **v4l2_ctrl_get_menu(u32 id) Sepia, NULL }; + static const char *fm_tx_preemphasis[] = { + No preemphasis, + 50 useconds, + 75 useconds, + NULL, + }; switch (id) { case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ: @@ -381,6 +387,8 @@ const char **v4l2_ctrl_get_menu(u32 id) return camera_exposure_auto; case V4L2_CID_COLORFX: return colorfx; + case V4L2_CID_FM_TX_PREEMPHASIS: + return fm_tx_preemphasis; default: return NULL; } @@ -479,6 +487,28 @@ const char *v4l2_ctrl_get_name(u32 id) case V4L2_CID_ZOOM_CONTINUOUS: return Zoom, Continuous; case V4L2_CID_PRIVACY: return Privacy; + /* FM Radio Modulator control */ + case V4L2_CID_FM_TX_CLASS: return FM Radio Modulator Controls; + case V4L2_CID_RDS_TX_PI:return RDS Program ID; + case V4L2_CID_RDS_TX_PTY: return RDS Program Type; + case V4L2_CID_RDS_TX_DEVIATION: return RDS Signal Deviation; + case V4L2_CID_RDS_TX_PS_NAME: return RDS PS Name; + case V4L2_CID_RDS_TX_RADIO_TEXT:return RDS Radio Text; + case V4L2_CID_AUDIO_LIMITER_ENABLED:return Audio Limiter Feature Enabled; + case V4L2_CID_AUDIO_LIMITER_RELEASE_TIME: return Audio Limiter Release Time; + case V4L2_CID_AUDIO_LIMITER_DEVIATION: return Audio Limiter Deviation; + case V4L2_CID_AUDIO_COMPRESSION_ENABLED: return Audio Compression Feature Enabled; + case V4L2_CID_AUDIO_COMPRESSION_GAIN: return Audio Compression Gain; + case V4L2_CID_AUDIO_COMPRESSION_THRESHOLD: return Audio Compression Threshold; + case V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME: return Audio Compression Attack Time; + case V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME: return Audio Compression Release Time; + case V4L2_CID_PILOT_TONE_ENABLED: return Pilot Tone Feature Enabled; + case V4L2_CID_PILOT_TONE_DEVIATION: return Pilot Tone Deviation; + case V4L2_CID_PILOT_TONE_FREQUENCY: return Pilot Tone Frequency; + case V4L2_CID_FM_TX_PREEMPHASIS:return Pre-emphasis settings; + case V4L2_CID_TUNE_POWER_LEVEL: return Tune Power Level; + case V4L2_CID_TUNE_ANTENNA_CAPACITOR: return Tune Antenna Capacitor; + default: return NULL; } @@ -500,7 +530,18 @@ EXPORT_SYMBOL(v4l2_ctrl_is_value64); * This information is used inside v4l2_compat_ioctl32. */ int v4l2_ctrl_is_pointer(u32 id) { - return 0; + int is_pointer; + + switch (id) { + case V4L2_CID_RDS_TX_PS_NAME: + case V4L2_CID_RDS_TX_RADIO_TEXT: + is_pointer = 1; + break; + default: + is_pointer = 0; + } + + return is_pointer; } There is no need for a temp variable. Just do this: int v4l2_ctrl_is_pointer(u32 id) { switch (id) { case V4L2_CID_RDS_TX_PS_NAME: case V4L2_CID_RDS_TX_RADIO_TEXT: return 1; default: return 0; } } Regards, Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- 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: [PATCHv10 3/8] v4l2: video device: Add FM_TX controls default configurations
On Sat, Jul 25, 2009 at 03:03:33PM +0200, ext Hans Verkuil wrote: On Friday 24 July 2009 18:37:23 Eduardo Valentin wrote: Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com --- linux/drivers/media/video/v4l2-common.c | 63 ++- 1 files changed, 62 insertions(+), 1 deletions(-) diff --git a/linux/drivers/media/video/v4l2-common.c b/linux/drivers/media/video/v4l2-common.c index bd13702..6fc0559 100644 --- a/linux/drivers/media/video/v4l2-common.c +++ b/linux/drivers/media/video/v4l2-common.c @@ -343,6 +343,12 @@ const char **v4l2_ctrl_get_menu(u32 id) Sepia, NULL }; + static const char *fm_tx_preemphasis[] = { + No preemphasis, + 50 useconds, + 75 useconds, + NULL, + }; switch (id) { case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ: @@ -381,6 +387,8 @@ const char **v4l2_ctrl_get_menu(u32 id) return camera_exposure_auto; case V4L2_CID_COLORFX: return colorfx; + case V4L2_CID_FM_TX_PREEMPHASIS: + return fm_tx_preemphasis; default: return NULL; } @@ -479,6 +487,28 @@ const char *v4l2_ctrl_get_name(u32 id) case V4L2_CID_ZOOM_CONTINUOUS: return Zoom, Continuous; case V4L2_CID_PRIVACY: return Privacy; + /* FM Radio Modulator control */ + case V4L2_CID_FM_TX_CLASS: return FM Radio Modulator Controls; + case V4L2_CID_RDS_TX_PI:return RDS Program ID; + case V4L2_CID_RDS_TX_PTY: return RDS Program Type; + case V4L2_CID_RDS_TX_DEVIATION: return RDS Signal Deviation; + case V4L2_CID_RDS_TX_PS_NAME: return RDS PS Name; + case V4L2_CID_RDS_TX_RADIO_TEXT:return RDS Radio Text; + case V4L2_CID_AUDIO_LIMITER_ENABLED:return Audio Limiter Feature Enabled; + case V4L2_CID_AUDIO_LIMITER_RELEASE_TIME: return Audio Limiter Release Time; + case V4L2_CID_AUDIO_LIMITER_DEVIATION: return Audio Limiter Deviation; + case V4L2_CID_AUDIO_COMPRESSION_ENABLED: return Audio Compression Feature Enabled; + case V4L2_CID_AUDIO_COMPRESSION_GAIN: return Audio Compression Gain; + case V4L2_CID_AUDIO_COMPRESSION_THRESHOLD: return Audio Compression Threshold; + case V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME: return Audio Compression Attack Time; + case V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME: return Audio Compression Release Time; + case V4L2_CID_PILOT_TONE_ENABLED: return Pilot Tone Feature Enabled; + case V4L2_CID_PILOT_TONE_DEVIATION: return Pilot Tone Deviation; + case V4L2_CID_PILOT_TONE_FREQUENCY: return Pilot Tone Frequency; + case V4L2_CID_FM_TX_PREEMPHASIS:return Pre-emphasis settings; + case V4L2_CID_TUNE_POWER_LEVEL: return Tune Power Level; + case V4L2_CID_TUNE_ANTENNA_CAPACITOR: return Tune Antenna Capacitor; + default: return NULL; } @@ -500,7 +530,18 @@ EXPORT_SYMBOL(v4l2_ctrl_is_value64); * This information is used inside v4l2_compat_ioctl32. */ int v4l2_ctrl_is_pointer(u32 id) { - return 0; + int is_pointer; + + switch (id) { + case V4L2_CID_RDS_TX_PS_NAME: + case V4L2_CID_RDS_TX_RADIO_TEXT: + is_pointer = 1; + break; + default: + is_pointer = 0; + } + + return is_pointer; } There is no need for a temp variable. Just do this: int v4l2_ctrl_is_pointer(u32 id) { switch (id) { case V4L2_CID_RDS_TX_PS_NAME: case V4L2_CID_RDS_TX_RADIO_TEXT: return 1; default: return 0; } } Regards, Hans Right, resending v11 with this minor change. -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- Eduardo Valentin -- 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: [PATCHv10 8/8] FMTx: si4713: Add document file
On Friday 24 July 2009 18:37:28 Eduardo Valentin wrote: This patch adds a document file for si4713 device driver. It describes the driver interfaces and organization. Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com --- linux/Documentation/video4linux/si4713.txt | 175 1 files changed, 175 insertions(+), 0 deletions(-) create mode 100644 linux/Documentation/video4linux/si4713.txt diff --git a/linux/Documentation/video4linux/si4713.txt b/linux/Documentation/video4linux/si4713.txt new file mode 100644 index 000..3843af5 --- /dev/null +++ b/linux/Documentation/video4linux/si4713.txt @@ -0,0 +1,175 @@ +Driver for I2C radios for the Silicon Labs Si4713 FM Radio Transmitters + +Copyright (c) 2009 Nokia Corporation +Contact: Eduardo Valentin eduardo.valen...@nokia.com + + +Information about the Device + +This chip is a Silicon Labs product. It is a I2C device, currently on 0Ã63 address. +Basically, it has transmission and signal noise level measurement features. + +The Si4713 integrates transmit functions for FM broadcast stereo transmission. +The chip also allows integrated receive power scanning to identify low signal +power FM channels. + +The chip is programmed using commands and responses. There are also several +properties which can change the behavior of this chip. + +Users must comply with local regulations on radio frequency (RF) transmission. + +Device driver description += +There are two modules to handle this device. One is a I2C device driver +and the other is a platform driver. + +The I2C device driver exports a v4l2-subdev interface to the kernel. +All properties can also be accessed by v4l2 extended controls interface, by +using the v4l2-subdev calls (g_ext_ctrls, s_ext_ctrls). + +The platform device driver exports a v4l2 radio device interface to user land. +So, it uses the I2C device driver as a sub device in order to send the user +commands to the actual device. Basically it is a wrapper to the I2C device driver. + +Applications can use v4l2 radio API to specify frequency of operation, mute state, +etc. But mostly of its properties will be present in the extended controls. + +When the v4l2 mute property is set to 1 (true), the driver will turn the chip off. + +Properties description +== + +The properties can be accessed using v4l2 extended controls. +Here is an output from v4l2-ctl util: + +# v4l2-ctl -d /dev/radio0 --all -l +Driver Info: +Driver name : radio-si4713 +Card type : Silicon Labs Si4713 Modulator +Bus info : +Driver version: 0 +Capabilities : 0x00080800 +RDS Output +Modulator +Audio output: 0 (FM Modulator Audio Out) +Frequency: 1545600 (96.60 MHz) +Video Standard = 0x +Modulator: +Name : FM Modulator +Capabilities : 62.5 Hz stereo rds +Frequency range : 76.0 MHz - 108.0 MHz +Available subchannels: mono rds + +User Controls + + mute (bool) : default=1 value=0 + +FM Radio Modulator Controls + + rds_program_id (int) : min=0 max=65535 step=1 default=0 value=0 + rds_program_type (int) : min=0 max=31 step=1 default=0 value=0 +rds_ps_name (str) : value='Si4713 ' len=1024 +' len=1024 rds_radio_text (str) : value='Si4713 This doesn't look right. I think this output is from an old v4l2-ctl version. I'd like to see this output anyway using the latest v4l2-ctl version as I haven't been able to test it myself. Based on this output it also looks as if the rds_radio_text string has a \r at the end. If so, is it supposed to be there? Regards, Hans + audio_limiter_feature_enabled (bool) : default=1 value=1 + audio_limiter_release_time (int) : min=250 max=102390 step=50 default=5010 value=5010 flags=slider +audio_limiter_deviation (int) : min=0 max=9 step=10 default=66250 value=1020 flags=slider +audio_compression_feature_enabl (bool) : default=1 value=1 + audio_compression_gain (int) : min=0 max=20 step=1 default=15 value=15 flags=slider +audio_compression_threshold (int) : min=-40 max=0 step=1 default=-40 value=-40 flags=slider + audio_compression_attack_time (int) : min=0 max=5000 step=500 default=0 value=0 flags=slider + audio_compression_release_time (int) : min=10 max=100 step=10 default=100 value=100 flags=slider + pilot_tone_feature_enabled (bool) : default=1 value=1 + pilot_tone_deviation (int) : min=0 max=9 step=10 default=6750 value=6750 flags=slider + pilot_tone_frequency (int) : min=0 max=19000 step=1 default=19000 value=19000 flags=slider + pre_emphasis_settings (menu) : min=0
RE: [PATCHv10 6/8] FMTx: si4713: Add files to handle si4713 i2c device
I'm surprised at these MAX string lengths. Looking at the RDS standard it seems that the max length for the PS_NAME is 8 and for RADIO_TEXT it is either 32 (2A group) or 64 (2B group). I don't know which group the si4713 uses. Can you clarify how this is used? Regards, Hans Well, PS_NAME can be 8 x n, but only 8 bytes are shown at once... so it keeps 'scrolling', or changes periodically. There's even commercial radio stations that do so. - Eero-- 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: [PATCHv10 6/8] FMTx: si4713: Add files to handle si4713 i2c device
On Saturday 25 July 2009 15:15:24 Eduardo Valentin wrote: On Sat, Jul 25, 2009 at 03:20:53PM +0200, ext Hans Verkuil wrote: + switch (control-id) { + case V4L2_CID_RDS_TX_PS_NAME: + if (strlen(sdev-rds_info.ps_name) + 1 control-length) { + control-length = strlen(sdev-rds_info.ps_name) + 1; I recommend setting length to the actual maximum MAX_RDS_PS_NAME+1. + rval = -ENOSPC; + goto exit; + } + rval = copy_to_user(control-string, sdev-rds_info.ps_name, + strlen(sdev-rds_info.ps_name) + 1); + break; + + case V4L2_CID_RDS_TX_RADIO_TEXT: + if (strlen(sdev-rds_info.radio_text) + 1 control-length) { + control-length = strlen(sdev-rds_info.radio_text) + 1; Ditto. Right, I think doing the way you are proposing is to avoid changes that may generate failures in the following reads. I 'll change this in the v11 as well. OK. +struct rds_info { + u32 pi; +#define MAX_RDS_PTY 31 + u32 pty; +#define MAX_RDS_DEVIATION9 + u32 deviation; +#define MAX_RDS_PS_NAME 96 + u8 ps_name[MAX_RDS_PS_NAME + 1]; +#define MAX_RDS_RADIO_TEXT 384 I'm surprised at these MAX string lengths. Looking at the RDS standard it seems that the max length for the PS_NAME is 8 and for RADIO_TEXT it is either 32 (2A group) or 64 (2B group). I don't know which group the si4713 uses. Can you clarify how this is used? Did you see this comment as well? I'm quite interested in this. Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- 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: [PATCHv10 6/8] FMTx: si4713: Add files to handle si4713 i2c device
On Sat, Jul 25, 2009 at 03:31:29PM +0200, ext Hans Verkuil wrote: On Saturday 25 July 2009 15:15:24 Eduardo Valentin wrote: On Sat, Jul 25, 2009 at 03:20:53PM +0200, ext Hans Verkuil wrote: + switch (control-id) { + case V4L2_CID_RDS_TX_PS_NAME: + if (strlen(sdev-rds_info.ps_name) + 1 control-length) { + control-length = strlen(sdev-rds_info.ps_name) + 1; I recommend setting length to the actual maximum MAX_RDS_PS_NAME+1. + rval = -ENOSPC; + goto exit; + } + rval = copy_to_user(control-string, sdev-rds_info.ps_name, + strlen(sdev-rds_info.ps_name) + 1); + break; + + case V4L2_CID_RDS_TX_RADIO_TEXT: + if (strlen(sdev-rds_info.radio_text) + 1 control-length) { + control-length = strlen(sdev-rds_info.radio_text) + 1; Ditto. Right, I think doing the way you are proposing is to avoid changes that may generate failures in the following reads. I 'll change this in the v11 as well. OK. +struct rds_info { + u32 pi; +#define MAX_RDS_PTY 31 + u32 pty; +#define MAX_RDS_DEVIATION9 + u32 deviation; +#define MAX_RDS_PS_NAME 96 + u8 ps_name[MAX_RDS_PS_NAME + 1]; +#define MAX_RDS_RADIO_TEXT 384 I'm surprised at these MAX string lengths. Looking at the RDS standard it seems that the max length for the PS_NAME is 8 and for RADIO_TEXT it is either 32 (2A group) or 64 (2B group). I don't know which group the si4713 uses. Can you clarify how this is used? Did you see this comment as well? I'm quite interested in this. I missed this one. But is basically what Eero said. Receivers scroll it with 8xn sized PS names. Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- Eduardo Valentin -- 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: [PATCHv10 6/8] FMTx: si4713: Add files to handle si4713 i2c device
On Saturday 25 July 2009 15:29:38 ext-eero.nurkk...@nokia.com wrote: I'm surprised at these MAX string lengths. Looking at the RDS standard it seems that the max length for the PS_NAME is 8 and for RADIO_TEXT it is either 32 (2A group) or 64 (2B group). I don't know which group the si4713 uses. Can you clarify how this is used? Regards, Hans Well, PS_NAME can be 8 x n, but only 8 bytes are shown at once... so it keeps 'scrolling', or changes periodically. There's even commercial radio stations that do so. And I'm assuming that the same is true for radio text. However, this behavior contradicts the control description in the spec, so that should be clarified. Regards, Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- 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: [PATCHv10 6/8] FMTx: si4713: Add files to handle si4713 i2c device
On Sat, Jul 25, 2009 at 03:33:55PM +0200, ext Hans Verkuil wrote: On Saturday 25 July 2009 15:29:38 ext-eero.nurkk...@nokia.com wrote: I'm surprised at these MAX string lengths. Looking at the RDS standard it seems that the max length for the PS_NAME is 8 and for RADIO_TEXT it is either 32 (2A group) or 64 (2B group). I don't know which group the si4713 uses. Can you clarify how this is used? Regards, Hans Well, PS_NAME can be 8 x n, but only 8 bytes are shown at once... so it keeps 'scrolling', or changes periodically. There's even commercial radio stations that do so. And I'm assuming that the same is true for radio text. However, this behavior contradicts the control description in the spec, so that should be clarified. Yes, I'll add a comment explaining this for those defines. Regards, Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- Eduardo Valentin -- 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: [PATCHv10 8/8] FMTx: si4713: Add document file
On Saturday 25 July 2009 15:48:58 Eduardo Valentin wrote: On Sat, Jul 25, 2009 at 03:17:05PM +0200, Valentin Eduardo (Nokia-D/Helsinki) wrote: On Sat, Jul 25, 2009 at 03:25:25PM +0200, ext Hans Verkuil wrote: On Friday 24 July 2009 18:37:28 Eduardo Valentin wrote: This patch adds a document file for si4713 device driver. It describes the driver interfaces and organization. Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com --- linux/Documentation/video4linux/si4713.txt | 175 1 files changed, 175 insertions(+), 0 deletions(-) create mode 100644 linux/Documentation/video4linux/si4713.txt diff --git a/linux/Documentation/video4linux/si4713.txt b/linux/Documentation/video4linux/si4713.txt new file mode 100644 index 000..3843af5 --- /dev/null +++ b/linux/Documentation/video4linux/si4713.txt @@ -0,0 +1,175 @@ +Driver for I2C radios for the Silicon Labs Si4713 FM Radio Transmitters + +Copyright (c) 2009 Nokia Corporation +Contact: Eduardo Valentin eduardo.valen...@nokia.com + + +Information about the Device + +This chip is a Silicon Labs product. It is a I2C device, currently on 0×63 address. +Basically, it has transmission and signal noise level measurement features. + +The Si4713 integrates transmit functions for FM broadcast stereo transmission. +The chip also allows integrated receive power scanning to identify low signal +power FM channels. + +The chip is programmed using commands and responses. There are also several +properties which can change the behavior of this chip. + +Users must comply with local regulations on radio frequency (RF) transmission. + +Device driver description += +There are two modules to handle this device. One is a I2C device driver +and the other is a platform driver. + +The I2C device driver exports a v4l2-subdev interface to the kernel. +All properties can also be accessed by v4l2 extended controls interface, by +using the v4l2-subdev calls (g_ext_ctrls, s_ext_ctrls). + +The platform device driver exports a v4l2 radio device interface to user land. +So, it uses the I2C device driver as a sub device in order to send the user +commands to the actual device. Basically it is a wrapper to the I2C device driver. + +Applications can use v4l2 radio API to specify frequency of operation, mute state, +etc. But mostly of its properties will be present in the extended controls. + +When the v4l2 mute property is set to 1 (true), the driver will turn the chip off. + +Properties description +== + +The properties can be accessed using v4l2 extended controls. +Here is an output from v4l2-ctl util: + +# v4l2-ctl -d /dev/radio0 --all -l +Driver Info: +Driver name : radio-si4713 +Card type : Silicon Labs Si4713 Modulator +Bus info : +Driver version: 0 +Capabilities : 0x00080800 +RDS Output +Modulator +Audio output: 0 (FM Modulator Audio Out) +Frequency: 1545600 (96.60 MHz) +Video Standard = 0x +Modulator: +Name : FM Modulator +Capabilities : 62.5 Hz stereo rds +Frequency range : 76.0 MHz - 108.0 MHz +Available subchannels: mono rds + +User Controls + + mute (bool) : default=1 value=0 + +FM Radio Modulator Controls + + rds_program_id (int) : min=0 max=65535 step=1 default=0 value=0 + rds_program_type (int) : min=0 max=31 step=1 default=0 value=0 +rds_ps_name (str) : value='Si4713 ' len=1024 +' len=1024 rds_radio_text (str) : value='Si4713 This doesn't look right. I think this output is from an old v4l2-ctl version. I'd like to see this output anyway using the latest v4l2-ctl version as I haven't been able to test it myself. Yeah. My bad, forgot to update here. This is the output from the older version. I've just checked that now v4l2-ctl does not report rds subchannel for txsubchannel. Just to confirm this is something which is missing right? Yes, that was missing. I've just added it to my tree. Thanks for the report. Regards, Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- 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: [PATCH 1/1] v4l2-ctl: Add G_MODULATOR before set/get frequency
On Sat, Jul 25, 2009 at 04:10:53PM +0200, ext Hans Verkuil wrote: On Friday 24 July 2009 18:42:12 Eduardo Valentin wrote: As there can be modulator devices with get/set frequency callbacks, this patch adds support to them in v4l2-ctl utility. Thanks for this patch. I've implemented it somewhat differently (using the new V4L2_CAP_MODULATOR to decide whether to call G_TUNER or G_MODULATOR) and pushed it to my v4l-dvb-strctrl tree. I've also improved the string print function so things like newlines and carriage returns are printed as \r and \n. Can you mail me the output of 'v4l2-ctl --all -L' based on this updated version of v4l2-ctl? I'd like to check whether everything is now reported correctly. Yes sure. But there is also the RDS output for txsubchannel. This is missing now for G_MODULATOR. RDS is also missing in S_MODULATOR. S_MODULATOR is also confusing to me. The strings can be set only with one value? I though I could do something like: v4l2-ctl -d /dev/radio0 --set-modulator=rds,stereo Regards, Hans Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com --- v4l2-apps/util/v4l2-ctl.cpp | 10 +- 1 files changed, 9 insertions(+), 1 deletions(-) diff --git a/v4l2-apps/util/v4l2-ctl.cpp b/v4l2-apps/util/v4l2-ctl.cpp index fc9e459..ff74177 100644 --- a/v4l2-apps/util/v4l2-ctl.cpp +++ b/v4l2-apps/util/v4l2-ctl.cpp @@ -1962,12 +1962,16 @@ int main(int argc, char **argv) if (options[OptSetFreq]) { double fac = 16; + struct v4l2_modulator mt; + memset(mt, 0, sizeof(struct v4l2_modulator)); if (doioctl(fd, VIDIOC_G_TUNER, tuner, VIDIOC_G_TUNER) == 0) { fac = (tuner.capability V4L2_TUNER_CAP_LOW) ? 16000 : 16; + vf.type = tuner.type; + } else if (doioctl(fd, VIDIOC_G_MODULATOR, mt, VIDIOC_G_MODULATOR) == 0) { + fac = (mt.capability V4L2_TUNER_CAP_LOW) ? 16000 : 16; } vf.tuner = 0; - vf.type = tuner.type; vf.frequency = __u32(freq * fac); if (doioctl(fd, VIDIOC_S_FREQUENCY, vf, VIDIOC_S_FREQUENCY) == 0) @@ -2418,9 +2422,13 @@ set_vid_fmt_error: if (options[OptGetFreq]) { double fac = 16; + struct v4l2_modulator mt; + memset(mt, 0, sizeof(struct v4l2_modulator)); if (doioctl(fd, VIDIOC_G_TUNER, tuner, VIDIOC_G_TUNER) == 0) { fac = (tuner.capability V4L2_TUNER_CAP_LOW) ? 16000 : 16; + } else if (doioctl(fd, VIDIOC_G_MODULATOR, mt, VIDIOC_G_MODULATOR) == 0) { + fac = (mt.capability V4L2_TUNER_CAP_LOW) ? 16000 : 16; } vf.tuner = 0; if (doioctl(fd, VIDIOC_G_FREQUENCY, vf, VIDIOC_G_FREQUENCY) == 0) -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- Eduardo Valentin -- 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: [PATCH 1/1] v4l2-ctl: Add G_MODULATOR before set/get frequency
On Saturday 25 July 2009 16:08:01 Eduardo Valentin wrote: On Sat, Jul 25, 2009 at 04:10:53PM +0200, ext Hans Verkuil wrote: On Friday 24 July 2009 18:42:12 Eduardo Valentin wrote: As there can be modulator devices with get/set frequency callbacks, this patch adds support to them in v4l2-ctl utility. Thanks for this patch. I've implemented it somewhat differently (using the new V4L2_CAP_MODULATOR to decide whether to call G_TUNER or G_MODULATOR) and pushed it to my v4l-dvb-strctrl tree. I've also improved the string print function so things like newlines and carriage returns are printed as \r and \n. Can you mail me the output of 'v4l2-ctl --all -L' based on this updated version of v4l2-ctl? I'd like to check whether everything is now reported correctly. Yes sure. But there is also the RDS output for txsubchannel. This is missing now for G_MODULATOR. RDS is also missing in S_MODULATOR. Added both. S_MODULATOR is also confusing to me. The strings can be set only with one value? I though I could do something like: v4l2-ctl -d /dev/radio0 --set-modulator=rds,stereo The reason I did that is that txsubchans only supports specific flag combinations. So rather than having to make all sorts of verification code I decided to make these combinations explicit. Regards, Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- 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: [PATCH 1/1] v4l2-ctl: Add G_MODULATOR before set/get frequency
On Saturday 25 July 2009 16:23:51 Eduardo Valentin wrote: On Sat, Jul 25, 2009 at 04:08:01PM +0200, Valentin Eduardo (Nokia-D/Helsinki) wrote: On Sat, Jul 25, 2009 at 04:10:53PM +0200, ext Hans Verkuil wrote: On Friday 24 July 2009 18:42:12 Eduardo Valentin wrote: As there can be modulator devices with get/set frequency callbacks, this patch adds support to them in v4l2-ctl utility. Thanks for this patch. I've implemented it somewhat differently (using the new V4L2_CAP_MODULATOR to decide whether to call G_TUNER or G_MODULATOR) and pushed it to my v4l-dvb-strctrl tree. I've also improved the string print function so things like newlines and carriage returns are printed as \r and \n. Can you mail me the output of 'v4l2-ctl --all -L' based on this updated version of v4l2-ctl? I'd like to check whether everything is now reported correctly. Yes sure. But there is also the RDS output for txsubchannel. This is missing now for G_MODULATOR. RDS is also missing in S_MODULATOR. S_MODULATOR is also confusing to me. The strings can be set only with one value? I though I could do something like: v4l2-ctl -d /dev/radio0 --set-modulator=rds,stereo Here is an output with you new version: / # v4l2-ctl -d /dev/radio0 --all -L Driver Info: Driver name : radio-si4713 Card type : Silicon Labs Si4713 Modulator Bus info : Driver version: 0 Capabilities : 0x00080800 RDS Output Modulator Audio output: 0 (FM Modulator Audio Out) Frequency: 1408000 (88.00 MHz) Video Standard = 0x Modulator: Name : FM Modulator Capabilities : 62.5 Hz stereo rds Frequency range : 76.0 MHz - 108.0 MHz Subchannel modulation: stereo+rds User Controls mute (bool) : default=1 value=0 FM Radio Modulator Controls rds_program_id (int) : min=0 max=65535 step=1 default=0 value=0 rds_program_type (int) : min=0 max=31 step=1 default=0 value=0 rds_signal_deviation (int) : min=0 max=9 step=10 default=200 value=200 flags=slider rds_ps_name (str) : min=0 max=97 value='Si4713 ' len=97 rds_radio_text (str) : min=0 max=385 value='Si4713 \r' len=385 audio_limiter_feature_enabled (bool) : default=1 value=1 audio_limiter_release_time (int) : min=250 max=102390 step=50 default=5010 value=5010 flags=slider audio_limiter_deviation (int) : min=0 max=9 step=10 default=66250 value=66250 flags=slider audio_compression_feature_enabl (bool) : default=1 value=1 audio_compression_gain (int) : min=0 max=20 step=1 default=15 value=15 flags=slider audio_compression_threshold (int) : min=-40 max=0 step=1 default=-40 value=-40 flags=slider audio_compression_attack_time (int) : min=0 max=5000 step=500 default=0 value=0 flags=slider audio_compression_release_time (int) : min=10 max=100 step=10 default=100 value=100 flags=slider pilot_tone_feature_enabled (bool) : default=1 value=1 pilot_tone_deviation (int) : min=0 max=9 step=10 default=6750 value=6750 flags=slider pilot_tone_frequency (int) : min=0 max=19000 step=1 default=19000 value=19000 flags=slider pre_emphasis_settings (menu) : min=0 max=2 default=1 value=1 tune_power_level (int) : min=0 max=120 step=1 default=88 value=88 flags=slider tune_antenna_capacitor (int) : min=0 max=191 step=1 default=0 value=109 flags=slider So far so good for G_MODULATOR and for String with escaped characters. I also tried S_MODULATOR. Looks good but there is a bug: else if (!strcmp(optarg, stereo-rds)) txsubchans = V4L2_TUNER_SUB_MONO | V4L2_TUNER_SUB_RDS; else if (!strcmp(optarg, mono-rds)) txsubchans = V4L2_TUNER_SUB_MONO | V4L2_TUNER_SUB_RDS; As you can see, you cannot properly set stereo-rds, it will keep it mono. Otherwise it is fine to me. Oops, fixed. I've also removed the 'len=' part for strings since that does not add anything useful. Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- 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
[PATCHv11 7/8] FM TX: si4713: Add Kconfig and Makefile entries
Simple add Makefile and Kconfig entries. Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com --- linux/drivers/media/radio/Kconfig | 22 ++ linux/drivers/media/radio/Makefile |2 ++ 2 files changed, 24 insertions(+), 0 deletions(-) diff --git a/linux/drivers/media/radio/Kconfig b/linux/drivers/media/radio/Kconfig index 3315cac..6c6a409 100644 --- a/linux/drivers/media/radio/Kconfig +++ b/linux/drivers/media/radio/Kconfig @@ -339,6 +339,28 @@ config RADIO_ZOLTRIX_PORT help Enter the I/O port of your Zoltrix radio card. +config I2C_SI4713 + tristate I2C driver for Silicon Labs Si4713 device + depends on I2C VIDEO_V4L2 + ---help--- + Say Y here if you want support to Si4713 I2C device. + This device driver supports only i2c bus. + + To compile this driver as a module, choose M here: the + module will be called si4713. + +config RADIO_SI4713 + tristate Silicon Labs Si4713 FM Radio Transmitter support + depends on I2C VIDEO_V4L2 + ---help--- + Say Y here if you want support to Si4713 FM Radio Transmitter. + This device can transmit audio through FM. It can transmit + EDS and EBDS signals as well. This module is the v4l2 radio + interface for the i2c driver of this device. + + To compile this driver as a module, choose M here: the + module will be called radio-si4713. + config USB_DSBR tristate D-Link/GemTek USB FM radio support depends on USB VIDEO_V4L2 diff --git a/linux/drivers/media/radio/Makefile b/linux/drivers/media/radio/Makefile index 0f2b35b..34ae761 100644 --- a/linux/drivers/media/radio/Makefile +++ b/linux/drivers/media/radio/Makefile @@ -15,6 +15,8 @@ obj-$(CONFIG_RADIO_ZOLTRIX) += radio-zoltrix.o obj-$(CONFIG_RADIO_GEMTEK) += radio-gemtek.o obj-$(CONFIG_RADIO_GEMTEK_PCI) += radio-gemtek-pci.o obj-$(CONFIG_RADIO_TRUST) += radio-trust.o +obj-$(CONFIG_I2C_SI4713) += si4713-i2c.o +obj-$(CONFIG_RADIO_SI4713) += radio-si4713.o obj-$(CONFIG_RADIO_MAESTRO) += radio-maestro.o obj-$(CONFIG_USB_DSBR) += dsbr100.o obj-$(CONFIG_USB_SI470X) += radio-si470x.o -- 1.6.2.GIT -- 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: [PATCHv11 8/8] FM TX: si4713: Add document file
On Saturday 25 July 2009 16:57:42 Eduardo Valentin wrote: This patch adds a document file for si4713 device driver. It describes the driver interfaces and organization. Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com --- linux/Documentation/video4linux/si4713.txt | 176 1 files changed, 176 insertions(+), 0 deletions(-) create mode 100644 linux/Documentation/video4linux/si4713.txt diff --git a/linux/Documentation/video4linux/si4713.txt b/linux/Documentation/video4linux/si4713.txt new file mode 100644 index 000..8b97fb6 --- /dev/null +++ b/linux/Documentation/video4linux/si4713.txt @@ -0,0 +1,176 @@ +Driver for I2C radios for the Silicon Labs Si4713 FM Radio Transmitters + +Copyright (c) 2009 Nokia Corporation +Contact: Eduardo Valentin eduardo.valen...@nokia.com + + +Information about the Device + +This chip is a Silicon Labs product. It is a I2C device, currently on 0Ã63 address. Something went wrong here with the i2c address, it should probably be '0x63'. I don't know whether this is in your original text or whether it got messed up in some mailer. Regards, Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- 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: [PATCHv11 8/8] FM TX: si4713: Add document file
On Sat, Jul 25, 2009 at 05:19:29PM +0200, ext Hans Verkuil wrote: On Saturday 25 July 2009 16:57:42 Eduardo Valentin wrote: This patch adds a document file for si4713 device driver. It describes the driver interfaces and organization. Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com --- linux/Documentation/video4linux/si4713.txt | 176 1 files changed, 176 insertions(+), 0 deletions(-) create mode 100644 linux/Documentation/video4linux/si4713.txt diff --git a/linux/Documentation/video4linux/si4713.txt b/linux/Documentation/video4linux/si4713.txt new file mode 100644 index 000..8b97fb6 --- /dev/null +++ b/linux/Documentation/video4linux/si4713.txt @@ -0,0 +1,176 @@ +Driver for I2C radios for the Silicon Labs Si4713 FM Radio Transmitters + +Copyright (c) 2009 Nokia Corporation +Contact: Eduardo Valentin eduardo.valen...@nokia.com + + +Information about the Device + +This chip is a Silicon Labs product. It is a I2C device, currently on 0Ã63 address. Something went wrong here with the i2c address, it should probably be '0x63'. I don't know whether this is in your original text or whether it got messed up in some mailer. It got messed during the mailing processes somehow. I'll resend only this one. Regards, Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- Eduardo Valentin -- 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
[PATCHv11 8/8] FM TX: si4713: Add document file
This patch adds a document file for si4713 device driver. It describes the driver interfaces and organization. Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com --- linux/Documentation/video4linux/si4713.txt | 176 1 files changed, 176 insertions(+), 0 deletions(-) create mode 100644 linux/Documentation/video4linux/si4713.txt diff --git a/linux/Documentation/video4linux/si4713.txt b/linux/Documentation/video4linux/si4713.txt new file mode 100644 index 000..8b97fb6 --- /dev/null +++ b/linux/Documentation/video4linux/si4713.txt @@ -0,0 +1,176 @@ +Driver for I2C radios for the Silicon Labs Si4713 FM Radio Transmitters + +Copyright (c) 2009 Nokia Corporation +Contact: Eduardo Valentin eduardo.valen...@nokia.com + + +Information about the Device + +This chip is a Silicon Labs product. It is a I2C device, currently on 0x63 address. +Basically, it has transmission and signal noise level measurement features. + +The Si4713 integrates transmit functions for FM broadcast stereo transmission. +The chip also allows integrated receive power scanning to identify low signal +power FM channels. + +The chip is programmed using commands and responses. There are also several +properties which can change the behavior of this chip. + +Users must comply with local regulations on radio frequency (RF) transmission. + +Device driver description += +There are two modules to handle this device. One is a I2C device driver +and the other is a platform driver. + +The I2C device driver exports a v4l2-subdev interface to the kernel. +All properties can also be accessed by v4l2 extended controls interface, by +using the v4l2-subdev calls (g_ext_ctrls, s_ext_ctrls). + +The platform device driver exports a v4l2 radio device interface to user land. +So, it uses the I2C device driver as a sub device in order to send the user +commands to the actual device. Basically it is a wrapper to the I2C device driver. + +Applications can use v4l2 radio API to specify frequency of operation, mute state, +etc. But mostly of its properties will be present in the extended controls. + +When the v4l2 mute property is set to 1 (true), the driver will turn the chip off. + +Properties description +== + +The properties can be accessed using v4l2 extended controls. +Here is an output from v4l2-ctl util: +/ # v4l2-ctl -d /dev/radio0 --all -L +Driver Info: +Driver name : radio-si4713 +Card type : Silicon Labs Si4713 Modulator +Bus info : +Driver version: 0 +Capabilities : 0x00080800 +RDS Output +Modulator +Audio output: 0 (FM Modulator Audio Out) +Frequency: 1408000 (88.00 MHz) +Video Standard = 0x +Modulator: +Name : FM Modulator +Capabilities : 62.5 Hz stereo rds +Frequency range : 76.0 MHz - 108.0 MHz +Subchannel modulation: mono+rds + +User Controls + + mute (bool) : default=1 value=0 + +FM Radio Modulator Controls + + rds_program_id (int) : min=0 max=65535 step=1 default=0 value=0 + rds_program_type (int) : min=0 max=31 step=1 default=0 value=0 + rds_signal_deviation (int) : min=0 max=9 step=10 default=200 value=200 flags=slider +rds_ps_name (str) : min=0 max=97 value='Si4713 ' + rds_radio_text (str) : min=0 max=385 value='Si4713 \r' + audio_limiter_feature_enabled (bool) : default=1 value=1 + audio_limiter_release_time (int) : min=250 max=102390 step=50 default=5010 value=5010 flags=slider +audio_limiter_deviation (int) : min=0 max=9 step=10 default=66250 value=66250 flags=slider +audio_compression_feature_enabl (bool) : default=1 value=1 + audio_compression_gain (int) : min=0 max=20 step=1 default=15 value=15 flags=slider +audio_compression_threshold (int) : min=-40 max=0 step=1 default=-40 value=-40 flags=slider + audio_compression_attack_time (int) : min=0 max=5000 step=500 default=0 value=0 flags=slider + audio_compression_release_time (int) : min=10 max=100 step=10 default=100 value=100 flags=slider + pilot_tone_feature_enabled (bool) : default=1 value=1 + pilot_tone_deviation (int) : min=0 max=9 step=10 default=6750 value=6750 flags=slider + pilot_tone_frequency (int) : min=0 max=19000 step=1 default=19000 value=19000 flags=slider + pre_emphasis_settings (menu) : min=0 max=2 default=1 value=1 + tune_power_level (int) : min=0 max=120 step=1 default=88 value=88 flags=slider + tune_antenna_capacitor (int) : min=0 max=191 step=1 default=0 value=109 flags=slider +/ # + +Here is a summary of them: + +* Pilot is an audible tone sent by the device. + +pilot_frequency - Configures the frequency of the stereo pilot tone. +pilot_deviation -
Re: [PATCHv11 0/8] FM Transmitter (si4713) and another changes
I'm sending a tarball with all patches due to some problems which may be caused by my mail server. Just in case patches get messed, use this tarball. Sorry for this inconvenience. BR, On Sat, Jul 25, 2009 at 04:57:34PM +0200, Valentin Eduardo (Nokia-D/Helsinki) wrote: Hello guys, Here is the version 11 of FM transmitter work. It is basically same thing of version 10 with minor fixes from previous comments, which are: - Do not use temp variable in v4l2_ctrl_is_pointer (v4l2-common.c). - Report a string length accordingly to maximum allowed size (si4713-i2c.c). - Add some comments explaining rds psname and radio text maximum sizes. - Update si4713.txt with latest v4l2-ctl output (which was proper updated for modulator devices). Besides that, every thing is the same. Again, this series is based only on http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-strctrl, which contains the string support for our extended control api. The problems with v4l2-ctl were solved by Hans. Now it can properly set/get frequencies for modulators. Also the txsubchannels are properly handled for RDS capable devices. Thanks Hans. BR, Eduardo Valentin (8): v4l2-subdev.h: Add g_modulator callbacks to subdev api v4l2: video device: Add V4L2_CTRL_CLASS_FM_TX controls v4l2: video device: Add FM TX controls default configurations v4l2-spec: Add documentation description for FM TX extended control class FM TX: si4713: Add files to add radio interface for si4713 FM TX: si4713: Add files to handle si4713 i2c device FM TX: si4713: Add Kconfig and Makefile entries FM TX: si4713: Add document file linux/Documentation/video4linux/si4713.txt | 176 +++ linux/drivers/media/radio/Kconfig | 22 + linux/drivers/media/radio/Makefile |2 + linux/drivers/media/radio/radio-si4713.c | 367 + linux/drivers/media/radio/si4713-i2c.c | 2034 linux/drivers/media/radio/si4713-i2c.h | 237 linux/drivers/media/video/v4l2-common.c| 58 +- linux/include/linux/videodev2.h| 34 + linux/include/media/radio-si4713.h | 30 + linux/include/media/si4713.h | 49 + linux/include/media/v4l2-subdev.h |2 + v4l2-spec/Makefile |1 + v4l2-spec/controls.sgml| 210 +++ 13 files changed, 3221 insertions(+), 1 deletions(-) create mode 100644 linux/Documentation/video4linux/si4713.txt create mode 100644 linux/drivers/media/radio/radio-si4713.c create mode 100644 linux/drivers/media/radio/si4713-i2c.c create mode 100644 linux/drivers/media/radio/si4713-i2c.h create mode 100644 linux/include/media/radio-si4713.h create mode 100644 linux/include/media/si4713.h -- Eduardo Valentin patches-v11.tar.gz Description: Binary data
Re: [PATCHv11 6/8] FM TX: si4713: Add files to handle si4713 i2c device
On Saturday 25 July 2009 16:57:40 Eduardo Valentin wrote: This patch adds files to control si4713 devices. Internal functions to control device properties and initialization procedures are into these files. Also, a v4l2 subdev interface is also exported. This way other drivers can use this as v4l2 i2c subdevice. Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com --- linux/drivers/media/radio/si4713-i2c.c | 2034 linux/drivers/media/radio/si4713-i2c.h | 237 linux/include/media/si4713.h | 49 + 3 files changed, 2320 insertions(+), 0 deletions(-) create mode 100644 linux/drivers/media/radio/si4713-i2c.c create mode 100644 linux/drivers/media/radio/si4713-i2c.h create mode 100644 linux/include/media/si4713.h diff --git a/linux/drivers/media/radio/si4713-i2c.c b/linux/drivers/media/radio/si4713-i2c.c new file mode 100644 index 000..9525f1d --- /dev/null +++ b/linux/drivers/media/radio/si4713-i2c.c +/* write string property */ +static int si4713_write_econtrol_string(struct si4713_device *sdev, + struct v4l2_ext_control *control) +{ + char ps_name[MAX_RDS_PS_NAME + 1]; + char radio_text[MAX_RDS_RADIO_TEXT + 1]; + int size; + s32 rval = 0; + + switch (control-id) { + case V4L2_CID_RDS_TX_PS_NAME: + size = control-length - 1; You should add a check against control-length == 0 here and return -EINVAL if it is 0. I noticed that the minimum lengths is set to 0 in v4l2_queryctrl. That should be at least 1 (the length of an empty string). You can also go ahead and check that size is a multiple of 8. Don't forget to update the corresponding v4l2_ctrl_query_fill() with the new step value. + if (size MAX_RDS_PS_NAME) + size = MAX_RDS_PS_NAME; + rval = copy_from_user(ps_name, control-string, size); + if (rval 0) + goto exit; + ps_name[size] = '\0'; + rval = si4713_set_rds_ps_name(sdev, ps_name); + break; + + case V4L2_CID_RDS_TX_RADIO_TEXT: + size = control-length - 1; Ditto. What is the step value for radio text? Looking at the RDS spec I'd say that it depends on whether it is transmitted in block 2A or 2B. What happens if the user passes an empty string? Is that even allowed? If it isn't allowed, then the minimum string lengths should be updated. Regards, Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- 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: Problem with My Tuner card
Hi hermann, I have recompiled the kernel and it is working now, thanks. I have used : modprobe saa7134 card=3 But there are two problems now : 1. My speakers will produce the channel sound even after closing tvtime and I need to remove the module using rmmod saa7134 to solve that, is there any solution for that ? 2. In Linux I am not getting all the channels that I can get in windows using this tuner card. I have scanned all the channels using tvtime scanner but some channels are missing, is there anything we can do to resolve it ? On Fri, Jul 24, 2009 at 11:36 AM, hermann pittonhermann-pit...@arcor.de wrote: Hi, Am Freitag, den 24.07.2009, 10:48 +0530 schrieb unni krishnan: Hi Unni, Hi Hermann, we have lots of saa7130 cards without eeprom on it providing not at least a valid PCI subvendor and subdevice, so we can't know what it is at all, neither for the tuner type and also not for how video and audio inputs are connected. If you can tell a card with working video and another one with working audio, it should not be hard to get something together for both on TV from the tuner as a start. The option modprobe saa7134 card=3 tuner=55 gives me sound without much noise but no video You need the external audio mux gpio switching of the FlyVideo2000 card=3. This gives me video, but no audio modprobe saa7134 card=37 tuner=55 But you also need the vmux=3 of card=37 for it. Change the vmux of card = 3 in saa7134-cards.c from one to 3 and recompile and install and try again with your maybe tuner. [SAA7134_BOARD_FLYVIDEO2000] = { /* TC Wan tc...@cs.usm.my */ .name = LifeView/Typhoon FlyVIDEO2000, .audio_clock = 0x0020, .tuner_type = TUNER_LG_PAL_NEW_TAPC, .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, .gpiomask = 0xe000, .inputs = {{ .name = name_tv, .vmux = 1, --change to vmux = 3 .amux = LINE2, .gpio = 0x, .tv = 1, },{ .name = name_comp1, .vmux = 0, .amux = LINE2, .gpio = 0x4000, },{ .name = name_comp2, .vmux = 3, .amux = LINE2, .gpio = 0x4000, },{ .name = name_svideo, .vmux = 8, .amux = LINE2, .gpio = 0x4000, }}, .radio = { .name = name_radio, .amux = LINE2, .gpio = 0x2000, }, .mute = { .name = name_mute, .amux = LINE2, .gpio = 0x8000, }, }, Also, if you do a cold boot without forcing any card, there might be a slight chance, that the gpio configuration on card init has been seen previously. Sorry, do you want me to just reboot the system ? I have already rebooted the system many times. Is there any other thing that I need to do before/after reboot ? I am new to Linux devices If you tried different cards with different gpio configurations previously, those settings are not cleared, except you take care for it. Easiest is to do a cold boot, to see the card coming up untouched on gpios. I did not care yet, if we have it already duplicate, but likely try to look it up in the evening here. Cheers, Hermann -- - With regards, Unni A candle loses nothing by lighting another candle -- 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
Changes to the string control handling
Hi Eduardo, On Saturday 25 July 2009 16:41:27 Eduardo Valentin wrote: On Sat, Jul 25, 2009 at 04:39:18PM +0200, ext Hans Verkuil wrote: If the string must be exactly 8 x n long, then I think that it is a good idea to start using the 'step' value of v4l2_queryctrl: this can be used to tell the application that string lengths should be a multiple of the step value. I've toyed with that idea before but I couldn't think of a good use case, but this might be it. I think that would be good. It is a way to report to user land what can be done in these cases which strings can be chopped in small pieces. Of course, documenting this part it is appreciated. Ok, I've implemented this. While doing this I realized that I had to change a few things: 1) the 'length' field in v4l2_ext_control has been renamed to 'size'. The name 'length' was too easy to confuse with 'string length' while in reality it referred to the memory size of the control payload. 'size' is more appropriate. 2) the 'minimum' and 'maximum' fields of v4l2_queryctrl now return the min and max string lengths, i.e. *without* terminating zero. I realized that what VIDIOC_QUERYCTRL returns has nothing to do with how much memory to reserve for the string control. It is about the properties of the string itself and it is not normal to include the terminating zero when talking about a string length. I've incorporated everything in my v4l-dvb-strctrl tree. I apologize for the fact that you have to make yet another series of patches, but these changes are typical when you start implementing and documenting a new feature for the first time. Regards, Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- 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: Changes to the string control handling
Hello Hans, On Sat, Jul 25, 2009 at 7:44 PM, Hans Verkuilhverk...@xs4all.nl wrote: Hi Eduardo, On Saturday 25 July 2009 16:41:27 Eduardo Valentin wrote: On Sat, Jul 25, 2009 at 04:39:18PM +0200, ext Hans Verkuil wrote: If the string must be exactly 8 x n long, then I think that it is a good idea to start using the 'step' value of v4l2_queryctrl: this can be used to tell the application that string lengths should be a multiple of the step value. I've toyed with that idea before but I couldn't think of a good use case, but this might be it. I think that would be good. It is a way to report to user land what can be done in these cases which strings can be chopped in small pieces. Of course, documenting this part it is appreciated. Ok, I've implemented this. While doing this I realized that I had to change a few things: 1) the 'length' field in v4l2_ext_control has been renamed to 'size'. The name 'length' was too easy to confuse with 'string length' while in reality it referred to the memory size of the control payload. 'size' is more appropriate. 2) the 'minimum' and 'maximum' fields of v4l2_queryctrl now return the min and max string lengths, i.e. *without* terminating zero. I realized that what VIDIOC_QUERYCTRL returns has nothing to do with how much memory to reserve for the string control. It is about the properties of the string itself and it is not normal to include the terminating zero when talking about a string length. I've incorporated everything in my v4l-dvb-strctrl tree. I apologize for the fact that you have to make yet another series of patches, but these changes are typical when you start implementing and documenting a new feature for the first time. I believe now things about string handling are becoming much clear this way. No worries about the fact that we need another (or even more) series for si4713. As it is the first driver using the new API, it is better to forge it properly, so people can use it as example. When I come back to office, I'll have the opportunity to test the new series. Only after that I can send it again. But I will try to send it as soon as possible. Regards, Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- 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 -- Eduardo Bezerra Valentin -- 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: WARNINGS, 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:Sat Jul 25 19:00:05 CEST 2009 path:http://www.linuxtv.org/hg/v4l-dvb changeset: 12339:f8f134705b65 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-rc3-armv5: OK linux-2.6.27-armv5-ixp: OK linux-2.6.28-armv5-ixp: OK linux-2.6.29.1-armv5-ixp: OK linux-2.6.30-armv5-ixp: OK linux-2.6.31-rc3-armv5-ixp: OK 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-rc3-armv5-omap2: OK linux-2.6.22.19-i686: OK linux-2.6.23.12-i686: OK linux-2.6.24.7-i686: OK linux-2.6.25.11-i686: OK linux-2.6.26-i686: OK linux-2.6.27-i686: OK linux-2.6.28-i686: OK linux-2.6.29.1-i686: OK linux-2.6.30-i686: WARNINGS linux-2.6.31-rc3-i686: OK 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-rc3-m32r: OK linux-2.6.30-mips: WARNINGS linux-2.6.31-rc3-mips: WARNINGS linux-2.6.27-powerpc64: WARNINGS linux-2.6.28-powerpc64: WARNINGS linux-2.6.29.1-powerpc64: WARNINGS linux-2.6.30-powerpc64: WARNINGS linux-2.6.31-rc3-powerpc64: OK linux-2.6.22.19-x86_64: OK linux-2.6.23.12-x86_64: OK linux-2.6.24.7-x86_64: OK linux-2.6.25.11-x86_64: OK 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: OK linux-2.6.30-x86_64: WARNINGS linux-2.6.31-rc3-x86_64: OK sparse (linux-2.6.30): OK sparse (linux-2.6.31-rc3): 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: OK linux-2.6.21.7-i686: OK 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: OK linux-2.6.21.7-x86_64: OK Detailed results are available here: http://www.xs4all.nl/~hverkuil/logs/Saturday.log Full logs are available here: http://www.xs4all.nl/~hverkuil/logs/Saturday.tar.bz2 The V4L2 specification from this daily build 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: Problem with My Tuner card
Hi, Am Samstag, den 25.07.2009, 21:26 +0530 schrieb unni krishnan: Hi hermann, I have recompiled the kernel and it is working now, thanks. I have used : modprobe saa7134 card=3 fine. So at least something working as a start. It seems to me we have to add a new entry for your card. Does it have a unique name they sell it, do you know the manufacturer? Is there a website or did you investigate all the printings on the PCB already. The tuner type label is often hidden under a OEM vendor label. Sometimes a drop of salad oil is enough to make the upper sticker transparent. Tuner factory label underneath is in most cases close to the antenna connector. Please read a little at our wiki about information we need. http://www.linuxtv.org/wiki/index.php/Development:_How_to_add_support_for_a_device But there are two problems now : 1. My speakers will produce the channel sound even after closing tvtime and I need to remove the module using rmmod saa7134 to solve that, is there any solution for that ? This is typical for saa7130 chips. They have no hardware mute on chip. It also shows that your card is in more different than the TV vmux. The FlyVideo2000 has hardware mute via its external audio mux chip. You have some mux chip too, and by pure luck card=3 makes the TV sound coming through from the tuner for you too. The saa7134 driver uses so called masked writes to deal with single or groups of the 28 (0-27) gpio pins it has. Only pins high in the gpio mask are switchable. For the FlyVideo2000 Wan Tat Chee uses a gpiomask of 0xe000. If you convert to bin you see pin 13,14,15 dec are used for switching. In hex pin 0x2000, 0x4000 and 0x8000. All audio inputs are connected to the same pair of audio input on the saa7130 called LINE2. All the audio routing on the card is completely done by the external mux chip controlled with this three gpio pins of the saa7130. For having TV sound all this three pins are set to 0 (low/input). This does not mean that this is really needed on your card. Since 0x8000 does not work for mute on your card, you can try 0x4000 and 0x2000 in the mute section. For cards without external mux, one must switch to an unused audio input. That could be LINE1 on your card. 2. In Linux I am not getting all the channels that I can get in windows using this tuner card. I have scanned all the channels using tvtime scanner but some channels are missing, is there anything we can do to resolve it ? Yes, find the right tuner. Your tuner=55 does use LG API. Are the missing channels above 450MHz in UHF ranges? /* TUNER_TCL_2002MB - TCL PAL */ static struct tuner_range tuner_tcl_2002mb_pal_ranges[] = { { 16 * 170.00 /*MHz*/, 0xce, 0x01, }, { 16 * 450.00 /*MHz*/, 0xce, 0x02, }, { 16 * 999.99, 0xce, 0x08, }, }; static struct tuner_params tuner_tcl_2002mb_params[] = { { .type = TUNER_PARAM_TYPE_PAL, .ranges = tuner_tcl_2002mb_pal_ranges, .count = ARRAY_SIZE(tuner_tcl_2002mb_pal_ranges), }, }; Then we might have to switch to a tuner using MK3 API. If the missing channels are only close to the takeover frequencies of 170 and 450MHz, then the correct or at least better tuner needs to be found. You might enable debug=1 for tuner and tuner-simple. For example, if you have missing channels between 450 and 471.25 MHz, you can try with tuner=69 again. Is for that card FM radio support announced? Cheers, Hermann On Fri, Jul 24, 2009 at 11:36 AM, hermann pittonhermann-pit...@arcor.de wrote: Hi, Am Freitag, den 24.07.2009, 10:48 +0530 schrieb unni krishnan: Hi Unni, Hi Hermann, we have lots of saa7130 cards without eeprom on it providing not at least a valid PCI subvendor and subdevice, so we can't know what it is at all, neither for the tuner type and also not for how video and audio inputs are connected. If you can tell a card with working video and another one with working audio, it should not be hard to get something together for both on TV from the tuner as a start. The option modprobe saa7134 card=3 tuner=55 gives me sound without much noise but no video You need the external audio mux gpio switching of the FlyVideo2000 card=3. This gives me video, but no audio modprobe saa7134 card=37 tuner=55 But you also need the vmux=3 of card=37 for it. Change the vmux of card = 3 in saa7134-cards.c from one to 3 and recompile and install and try again with your maybe tuner. [SAA7134_BOARD_FLYVIDEO2000] = { /* TC Wan tc...@cs.usm.my */ .name = LifeView/Typhoon FlyVIDEO2000, .audio_clock= 0x0020, .tuner_type = TUNER_LG_PAL_NEW_TAPC, .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET,
Re: [linux-dvb] Help Request: DM1105 STV0299 DVB-S PCI - Unable to tune
Hi Igor, I've taken some photos of the tuner so that hopefully you'll be able to help work out why it won't tune in Linux. Please see the following link for the images: http://www.flickr.com/photos/7690...@n04/sets/72157621703527801/ The only chip on display is: SDMC DM1105N D735 E280034 Also - I tested the card in a Windows box today, so I am now certain that both the card and the satellite connection are OK. The settings that work with Windows (frequency, etc), don't lock in Linux. (I do get a good signal reading in Kaffeine that is the same as Windows gives, but no lock.) I hope this will help you work out what is wrong. Thanks! Shaun 2009/7/22 Igor M. Liplianin liplia...@me.by: On 22 июля 2009 21:43:01 Shaun Murdoch wrote: Hi, Thanks for the suggestion. I think there's something a bit weird with dvbtune. According to it's man page the units for frequency (-f) are Hz. I am trying to tell it 11.778 GHz - but you get errors if you do -f 1177800. Equally you also get errors if you assume it is MHz, i.e. -f 11778. Anyway, if it prints FE_HAS_SIGNAL and FE_HAS_CARRIER that must mean the frequency I gave it is OK? In any case, scan doesn't work, nor does Kaffeine, so I don't think it's that my use of dvbtune is wrong. Anyone got any other suggestions on what I can do to get this to lock? Thanks, Shaun 2009/7/22 Seyyed Mohammad mohammadzadeh softnhard...@gmail.com: Hello, I don't know what is the exact cause of your problem but I think you are tuning to a wrong frequency. You wrote: dvbtune -f 1177800 -s 27500 -p v -m in which the frequency parameters has two extra zeros which cause the frequency to interpret as : 1,177,800 MHz !!! 2009/7/22 Shaun Murdoch scra...@gmail.com Hi everyone, First post so please be gentle :-) I was wondering if anyone can help me please - I am trying to get a DVB-S PCI card working with Linux (Ubuntu 9.04). So far I can get the card recognised by Linux, but it won't tune - Kaffeine does tell me that there is 95% signal and 80% SNR, and I am using the same frequencies etc that a standard Sky box uses. The card is very common on eBay so I am sure there are plenty people who have tried this / would want this working. Some details that I hope will help someone who knows more than I do about this! The card is one of these: http://cgi.ebay.co.uk/DVB-S-Satellite-TV-Tuner-Video-Capture-PCI-Card-Re mote_W0QQitemZ130314645048QQcmdZViewItemQQptZUK_Computing_Computer_Compon ents_Graphics_Video_TV_Cards_TW?hash=item1e575bae38_trksid=p3286.c0.m14 _trkparms=65:12|66:2|39:1|72:1690|293:1|294:50 lspci: 03:09.0 Ethernet controller: Device 195d:1105 (rev 10) My dmesg output - looks ok?: $ dmesg | grep DVB [ 12.174738] DVB: registering new adapter (dm1105) [ 12.839501] DVB: registering adapter 0 frontend 0 (ST STV0299 DVB-S)... [ 12.839633] input: DVB on-card IR receiver as /devices/pci:00/:00:1e.0/:03:09.0/input/input My output from scan - the problem: $ sudo scan -vv /usr/share/dvb/dvb-s/Astra-28.2E scanning /usr/share/dvb/dvb-s/Astra-28.2E using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' tune to: 11778:v:0:27500 DiSEqC: switch pos 0, 13V, hiband (index 2) diseqc_send_msg:56: DiSEqC: e0 10 38 f1 00 00 DVB-S IF freq is 1178000 tuning status == 0x03 tuning status == 0x03 tuning status == 0x03 tuning status == 0x03 tuning status == 0x03 tuning status == 0x03 tuning status == 0x03 tuning status == 0x03 tuning status == 0x03 tuning status == 0x03 WARNING: tuning failed!!! This is the correct satellite for my location (south UK), I believe. Have tried plenty. Nothing locks. I'm using the latest liplianin drivers - did a mercurial checkout and build today: $ modinfo dm1105 filename: /lib/modules/2.6.28-13-server/kernel/drivers/media/dvb/dm1105/dm1105.ko license: GPL description: SDMC DM1105 DVB driver author: Igor M. Liplianin liplia...@me.by srcversion: 46C1B3C3627D1937F75D732 alias: pci:v195Dd1105sv*sd*bc*sc*i* alias: pci:v109Fd036Fsv*sd*bc*sc*i* depends: ir-common,dvb-core vermagic: 2.6.28-13-server SMP mod_unload modversions parm: card:card type (array of int) parm: ir_debug:enable debugging information for IR decoding (int) parm: adapter_nr:DVB adapter numbers (array of short) Have also tried the latest v4l-dvb drivers and get exactly the same tuning problems. Finally, dvbtune appears to say I have signal but cannot lock: $ sudo dvbtune -f 1177800 -s 27500 -p v -m -tone 1 -vvv [sudo] password for shaun: Using DVB card ST STV0299 DVB-S tuning DVB-S to L-Band:0, Pol:V Srate=2750, 22kHz=on polling Getting frontend event FE_STATUS: polling Getting frontend event FE_STATUS: FE_HAS_SIGNAL FE_HAS_CARRIER FE_HAS_VITERBI