[sisyphus] desktop20070801 and tv-tuner
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Чт Авг 9 18:31:51 MSD 2007
On Wed, Aug 08, 2007 at 08:14:02AM +0500, Чернов Евгений wrote:
> Вобщем поставился с двд версии(правда не я, отцу отдал он поставил).
> Сразу возникла проблема с тв тюнером. Тюнер flytv prime 34 на чипе
> saa7134. Модули подгрузились но с неправильными параметрами. Надо
> сказать что в убунтах и федорах шестой версии тоже ничего не пошло.
> Только ночью дошло залезть в винду и посмотреть в fly2000 какие чипы
> стоят. Вобшем тв-тюнер TCL2002, ВЧ модуль Philips FM(Q)1216ME/I H-3(B/G,
> D/K, I, L/L'). Чтение инета помогло найти нужные параметры при загрузке
> модулей. Вобщем rmmod saa7134 && rmmod tuner после чего:
> modprobe tuner secam=d && modprobe saa7134 card=2 tuner=38
> Тв я увидел правда качество почему-то чуть-чуть похуже чем в fly2000.
> Ну ладно фиг с ним. Дальше qtradio не смогло ни одной станции поймать,
> уровень сигнала везде единичка. Хотя руками на нужной частоте всё
> ловится. Может что ещё надо передать модулю? И есть какое-нибудь
> приложение для радио не такое страшное как qtradio?
> Вот как видится эта карточка:
> lspci -vvv -nn -xxx
> 02:0c.0 Multimedia controller [0480]: Philips Semiconductors
> SAA7134/SAA7135HL Video Broadcast Decoder [1131:7134] (rev 01)
> Subsystem: Animation Technologies Inc. Unknown device [5168:0138]
Для этого subsystem ID в модуле saa7134 из 2.6.18 есть запись:
.vendor = PCI_VENDOR_ID_PHILIPS,
.device = PCI_DEVICE_ID_PHILIPS_SAA7134,
.subvendor = 0x5168,
.subdevice = 0x0138,
.driver_data = SAA7134_BOARD_FLYVIDEO3000,
SAA7134_BOARD_FLYVIDEO3000 - это как раз card=2; однако описание этой
платы в драйвере выглядит следующим образом:
[SAA7134_BOARD_FLYVIDEO3000] = {
/* "Marco d'Itri" <md на Linux.IT> */
.name = "LifeView FlyVIDEO3000",
.audio_clock = 0x00200000,
.tuner_type = TUNER_PHILIPS_PAL,
.radio_type = UNSET,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.gpiomask = 0xe000,
.inputs = {{
.name = name_tv,
.vmux = 1,
.amux = TV,
.gpio = 0x8000,
.tv = 1,
},{
.name = name_tv_mono,
.vmux = 1,
.amux = LINE2,
.gpio = 0x0000,
.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 = TV,
.gpio = 0x8000,
},
},
Здесь задан тип тюнера TUNER_PHILIPS_PAL == 5, а вручную параметром
tuner=38 задаётся тип TUNER_PHILIPS_FM1216ME_MK3. Описания этих
тюнеров различаются довольно сильно:
/* ------------ TUNER_PHILIPS_PAL - Philips PAL ------------ */
static struct tuner_range tuner_philips_pal_ranges[] = {
{ 16 * 168.25 /*MHz*/, 0x8e, 0xa0, },
{ 16 * 447.25 /*MHz*/, 0x8e, 0x90, },
{ 16 * 999.99 , 0x8e, 0x30, },
};
static struct tuner_params tuner_philips_pal_params[] = {
{
.type = TUNER_PARAM_TYPE_PAL,
.ranges = tuner_philips_pal_ranges,
.count = ARRAY_SIZE(tuner_philips_pal_ranges),
.cb_first_if_lower_freq = 1,
},
};
/* ------------ TUNER_PHILIPS_FM1216ME_MK3 - Philips PAL ------------ */
static struct tuner_range tuner_fm1216me_mk3_pal_ranges[] = {
{ 16 * 158.00 /*MHz*/, 0x8e, 0x01, },
{ 16 * 442.00 /*MHz*/, 0x8e, 0x02, },
{ 16 * 999.99 , 0x8e, 0x04, },
};
static struct tuner_params tuner_fm1216me_mk3_params[] = {
{
.type = TUNER_PARAM_TYPE_PAL,
.ranges = tuner_fm1216me_mk3_pal_ranges,
.count = ARRAY_SIZE(tuner_fm1216me_mk3_pal_ranges),
.cb_first_if_lower_freq = 1,
.has_tda9887 = 1,
.port1_active = 1,
.port2_active = 1,
.port2_invert_for_secam_lc = 1,
.port1_fm_high_sensitivity = 1,
.default_top_mid = -2,
.default_top_secam_mid = -2,
.default_top_secam_high = -2,
},
};
> Есть надежда получить работающее ис_каропки?
К сожалению, в этом случае производитель использовал одинаковые
subsystem ID для карт с различными типами тюнеров - из-за этого
автоматическое определение невозможно, и все варианты карт с этим
subsystem ID, кроме одного, будут требовать ручной настройки параметра
tuner=N. Впрочем, разработчики драйвера saa7134 уже знают об этом:
static void board_flyvideo(struct saa7134_dev *dev)
{
printk("%s: there are different flyvideo cards with different tuners\n"
"%s: out there, you might have to use the tuner=<nr> insmod\n"
"%s: option to override the default value.\n",
dev->name, dev->name, dev->name);
}
(это сообщение можно наблюдать в dmesg при обнаружении карт от
flyvideo).
Вообще бардак с subsystem ID у тюнеров (либо полное их отсутствие,
либо выпуск существенно разных устройств с совпадающими ID) - это
сейчас скорее правило, и конца этому безобразию не видно.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: Digital signature
Url : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20070809/e8abec08/attachment-0003.bin>
Подробная информация о списке рассылки Sisyphus