Message ID | 1301948324-27186-1-git-send-email-stefan.ringel@arcor.de (mailing list archive) |
---|---|
State | Superseded, archived |
Headers |
Return-path: <mchehab@pedra> Envelope-to: mchehab@pedra Delivery-date: Mon, 04 Apr 2011 17:19:35 -0300 Received: from mchehab by pedra with local (Exim 4.72) (envelope-from <mchehab@pedra>) id 1Q6qFL-00037r-Co for mchehab@pedra; Mon, 04 Apr 2011 17:19:35 -0300 Received: from casper.infradead.org [85.118.1.10] by pedra with IMAP (fetchmail-6.3.17) for <mchehab@localhost> (single-drop); Mon, 04 Apr 2011 17:19:35 -0300 (BRT) Received: from vger.kernel.org ([209.132.180.67]) by casper.infradead.org with esmtp (Exim 4.72 #1 (Red Hat Linux)) id 1Q6qEz-0003TH-5a; Mon, 04 Apr 2011 20:19:13 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755563Ab1DDUS6 (ORCPT <rfc822; kmpark@infradead.org> + 1 other); Mon, 4 Apr 2011 16:18:58 -0400 Received: from mail-in-15.arcor-online.net ([151.189.21.55]:55378 "EHLO mail-in-15.arcor-online.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755450Ab1DDUS5 (ORCPT <rfc822;linux-media@vger.kernel.org>); Mon, 4 Apr 2011 16:18:57 -0400 Received: from mail-in-18-z2.arcor-online.net (mail-in-18-z2.arcor-online.net [151.189.8.35]) by mx.arcor.de (Postfix) with ESMTP id 717FE1AB91E; Mon, 4 Apr 2011 22:18:55 +0200 (CEST) Received: from mail-in-02.arcor-online.net (mail-in-02.arcor-online.net [151.189.21.42]) by mail-in-18-z2.arcor-online.net (Postfix) with ESMTP id 6BBCF33A361; Mon, 4 Apr 2011 22:18:55 +0200 (CEST) Received: from localhost.localdomain (dslb-094-222-027-138.pools.arcor-ip.net [94.222.27.138]) (Authenticated sender: stefan.ringel@arcor.de) by mail-in-02.arcor-online.net (Postfix) with ESMTPA id 3079530D3A; Mon, 4 Apr 2011 22:18:55 +0200 (CEST) X-DKIM: Sendmail DKIM Filter v2.8.2 mail-in-02.arcor-online.net 3079530D3A DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arcor.de; s=mail-in; t=1301948335; bh=r1lMTwTFknr9a0AAwwzBD2ogxlx+t0AFv3ImWqbfLqE=; h=From:To:Cc:Subject:Date:Message-Id; b=gj1Yom8Hc0EtKhJHIYknUUcs4sz3aUbg372LrlzM23DSq1zQhb/aDIAxGuH3kJIy7 Mx4fZtr/TDJiaeP1aGpEq4VJ6A6ADB8dfp5ft3qels+JT9KqVxz7MUc6lniwB6h7rP CoMTYL1w2eYyi2ZpStWjgl0MX+D69nbdc6Er1JH4= From: stefan.ringel@arcor.de To: linux-media@vger.kernel.org Cc: mchehab@redhat.com, d.belimov@gmail.com, Stefan Ringel <stefan.ringel@arcor.de> Subject: [PATCH 1/5] tm6000: add mts parameter Date: Mon, 4 Apr 2011 22:18:40 +0200 Message-Id: <1301948324-27186-1-git-send-email-stefan.ringel@arcor.de> X-Mailer: git-send-email 1.7.3.4 Precedence: bulk List-ID: <linux-media.vger.kernel.org> X-Mailing-List: linux-media@vger.kernel.org Sender: <mchehab@pedra> |
Commit Message
Stefan Ringel
April 4, 2011, 8:18 p.m. UTC
From: Stefan Ringel <stefan.ringel@arcor.de> add mts parameter Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> --- drivers/staging/tm6000/tm6000-cards.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-)
Comments
Em 04-04-2011 17:18, stefan.ringel@arcor.de escreveu: > From: Stefan Ringel <stefan.ringel@arcor.de> > > add mts parameter Stefan, The MTS config depends on the specific board design (generally present on mono NTSC cards). So, it should be inside the cards struct, and not provided as an userspace parameter. Mauro. > > > Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de> > --- > drivers/staging/tm6000/tm6000-cards.c | 7 +++++++ > 1 files changed, 7 insertions(+), 0 deletions(-) > > diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c > index 146c7e8..eef58da 100644 > --- a/drivers/staging/tm6000/tm6000-cards.c > +++ b/drivers/staging/tm6000/tm6000-cards.c > @@ -61,6 +61,10 @@ module_param_array(card, int, NULL, 0444); > > static unsigned long tm6000_devused; > > +static unsigned int xc2028_mts; > +module_param(xc2028_mts, int, 0644); > +MODULE_PARM_DESC(xc2028_mts, "enable mts firmware (xc2028/3028 only)"); > + > > struct tm6000_board { > char *name; > @@ -685,6 +689,9 @@ static void tm6000_config_tuner(struct tm6000_core *dev) > ctl.demod = XC3028_FE_ZARLINK456; > ctl.vhfbw7 = 1; > ctl.uhfbw8 = 1; > + if (xc2028_mts) > + ctl.mts = 1; > + > xc2028_cfg.tuner = TUNER_XC2028; > xc2028_cfg.priv = &ctl; > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Am 19.04.2011 23:21, schrieb Mauro Carvalho Chehab: > Em 04-04-2011 17:18, stefan.ringel@arcor.de escreveu: >> From: Stefan Ringel<stefan.ringel@arcor.de> >> >> add mts parameter > Stefan, > > The MTS config depends on the specific board design (generally present on > mono NTSC cards). So, it should be inside the cards struct, and not > provided as an userspace parameter. > > Mauro. No. It wrong. I think edge board must work under all region and TV standards and if I set MTS, it doesn't work in Germany (PAL_BG and DVB-T). The best is to set outside region specific params. >> . >> >> Signed-off-by: Stefan Ringel<stefan.ringel@arcor.de> >> --- >> drivers/staging/tm6000/tm6000-cards.c | 7 +++++++ >> 1 files changed, 7 insertions(+), 0 deletions(-) >> >> diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c >> index 146c7e8..eef58da 100644 >> --- a/drivers/staging/tm6000/tm6000-cards.c >> +++ b/drivers/staging/tm6000/tm6000-cards.c >> @@ -61,6 +61,10 @@ module_param_array(card, int, NULL, 0444); >> >> static unsigned long tm6000_devused; >> >> +static unsigned int xc2028_mts; >> +module_param(xc2028_mts, int, 0644); >> +MODULE_PARM_DESC(xc2028_mts, "enable mts firmware (xc2028/3028 only)"); >> + >> >> struct tm6000_board { >> char *name; >> @@ -685,6 +689,9 @@ static void tm6000_config_tuner(struct tm6000_core *dev) >> ctl.demod = XC3028_FE_ZARLINK456; >> ctl.vhfbw7 = 1; >> ctl.uhfbw8 = 1; >> + if (xc2028_mts) >> + ctl.mts = 1; >> + >> xc2028_cfg.tuner = TUNER_XC2028; >> xc2028_cfg.priv =&ctl; >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Em 20-04-2011 05:14, Stefan Ringel escreveu: > Am 19.04.2011 23:21, schrieb Mauro Carvalho Chehab: >> Em 04-04-2011 17:18, stefan.ringel@arcor.de escreveu: >>> From: Stefan Ringel<stefan.ringel@arcor.de> >>> >>> add mts parameter >> Stefan, >> >> The MTS config depends on the specific board design (generally present on >> mono NTSC cards). So, it should be inside the cards struct, and not >> provided as an userspace parameter. >> >> Mauro. > No. It wrong. I think edge board must work under all region and TV standards and if I set MTS, it doesn't work in Germany (PAL_BG and DVB-T). The best is to set outside region specific params. Stefan, Not all boards have MTS wired. Also, MTS works only for BTSC and EIAJ, e. g. STD M/N. The SIF output works for all standards, depending of the audio decoder capabilities, and if the SIF is properly wired. AFAIK, tm5600/6000/tm6010 is a worldwide decoder, so if SIF is wired, it should be capable of also decoding BTSC, EIAJ and the other sound standards found elsewhere. In other words, boards shipped outside NTSC or PAL-M Countries use SIF and supports worldwide standards. however, most boards shipped in US with xc3028 have only MTS wired and won't work outside NTSC/PAL-M/PAL-N area (America, Japan and a few other places). >>> . >>> >>> Signed-off-by: Stefan Ringel<stefan.ringel@arcor.de> >>> --- >>> drivers/staging/tm6000/tm6000-cards.c | 7 +++++++ >>> 1 files changed, 7 insertions(+), 0 deletions(-) >>> >>> diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c >>> index 146c7e8..eef58da 100644 >>> --- a/drivers/staging/tm6000/tm6000-cards.c >>> +++ b/drivers/staging/tm6000/tm6000-cards.c >>> @@ -61,6 +61,10 @@ module_param_array(card, int, NULL, 0444); >>> >>> static unsigned long tm6000_devused; >>> >>> +static unsigned int xc2028_mts; >>> +module_param(xc2028_mts, int, 0644); >>> +MODULE_PARM_DESC(xc2028_mts, "enable mts firmware (xc2028/3028 only)"); >>> + >>> >>> struct tm6000_board { >>> char *name; >>> @@ -685,6 +689,9 @@ static void tm6000_config_tuner(struct tm6000_core *dev) >>> ctl.demod = XC3028_FE_ZARLINK456; >>> ctl.vhfbw7 = 1; >>> ctl.uhfbw8 = 1; >>> + if (xc2028_mts) >>> + ctl.mts = 1; >>> + >>> xc2028_cfg.tuner = TUNER_XC2028; >>> xc2028_cfg.priv =&ctl; >>> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-media" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Am 20.04.2011 14:37, schrieb Mauro Carvalho Chehab: > Em 20-04-2011 05:14, Stefan Ringel escreveu: >> Am 19.04.2011 23:21, schrieb Mauro Carvalho Chehab: >>> Em 04-04-2011 17:18, stefan.ringel@arcor.de escreveu: >>>> From: Stefan Ringel<stefan.ringel@arcor.de> >>>> >>>> add mts parameter >>> Stefan, >>> >>> The MTS config depends on the specific board design (generally present on >>> mono NTSC cards). So, it should be inside the cards struct, and not >>> provided as an userspace parameter. >>> >>> Mauro. >> No. It wrong. I think edge board must work under all region and TV standards and if I set MTS, it doesn't work in Germany (PAL_BG and DVB-T). The best is to set outside region specific params. > Stefan, > > Not all boards have MTS wired. standard option that param is not auto. MTS = 0 or not set means load firmware without MTS. MTS = 1 means load firmware with MTS. That means, if you MTS then add a param MTS=1. Have you other method to detect norm BTSC and EIAJ and set it? I have not that. > Also, MTS works only for BTSC and EIAJ, > e. g. STD M/N. The SIF output works for all standards, depending of the audio > decoder capabilities, and if the SIF is properly wired. AFAIK, tm5600/6000/tm6010 > is a worldwide decoder, so if SIF is wired, it should be capable of also decoding > BTSC, EIAJ and the other sound standards found elsewhere. > > In other words, boards shipped outside NTSC or PAL-M Countries use SIF and supports > worldwide standards. however, most boards shipped in US with xc3028 have only > MTS wired and won't work outside NTSC/PAL-M/PAL-N area (America, Japan and a few > other places). > Which board is only MTS? Which board is only no MTS? Which board will both? >>>> . >>>> >>>> Signed-off-by: Stefan Ringel<stefan.ringel@arcor.de> >>>> --- >>>> drivers/staging/tm6000/tm6000-cards.c | 7 +++++++ >>>> 1 files changed, 7 insertions(+), 0 deletions(-) >>>> >>>> diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c >>>> index 146c7e8..eef58da 100644 >>>> --- a/drivers/staging/tm6000/tm6000-cards.c >>>> +++ b/drivers/staging/tm6000/tm6000-cards.c >>>> @@ -61,6 +61,10 @@ module_param_array(card, int, NULL, 0444); >>>> >>>> static unsigned long tm6000_devused; >>>> >>>> +static unsigned int xc2028_mts; >>>> +module_param(xc2028_mts, int, 0644); >>>> +MODULE_PARM_DESC(xc2028_mts, "enable mts firmware (xc2028/3028 only)"); >>>> + >>>> >>>> struct tm6000_board { >>>> char *name; >>>> @@ -685,6 +689,9 @@ static void tm6000_config_tuner(struct tm6000_core *dev) >>>> ctl.demod = XC3028_FE_ZARLINK456; >>>> ctl.vhfbw7 = 1; >>>> ctl.uhfbw8 = 1; >>>> + if (xc2028_mts) >>>> + ctl.mts = 1; >>>> + >>>> xc2028_cfg.tuner = TUNER_XC2028; >>>> xc2028_cfg.priv =&ctl; >>>> >>> -- >>> To unsubscribe from this list: send the line "unsubscribe linux-media" in >>> the body of a message to majordomo@vger.kernel.org >>> More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Em 20-04-2011 11:19, Stefan Ringel escreveu: > Am 20.04.2011 14:37, schrieb Mauro Carvalho Chehab: >> Em 20-04-2011 05:14, Stefan Ringel escreveu: >>> Am 19.04.2011 23:21, schrieb Mauro Carvalho Chehab: >>>> Em 04-04-2011 17:18, stefan.ringel@arcor.de escreveu: >>>>> From: Stefan Ringel<stefan.ringel@arcor.de> >>>>> >>>>> add mts parameter >>>> Stefan, >>>> >>>> The MTS config depends on the specific board design (generally present on >>>> mono NTSC cards). So, it should be inside the cards struct, and not >>>> provided as an userspace parameter. >>>> >>>> Mauro. >>> No. It wrong. I think edge board must work under all region and TV standards and if I set MTS, it doesn't work in Germany (PAL_BG and DVB-T). The best is to set outside region specific params. >> Stefan, >> >> Not all boards have MTS wired. > standard option that param is not auto. > MTS = 0 or not set means load firmware without MTS. > MTS = 1 means load firmware with MTS. > That means, if you MTS then add a param MTS=1. > Have you other method to detect norm BTSC and EIAJ and set it? I have not that. Yes. Audio standard is related to video standard. So, it is easy to map on what standards you have BTSC or EIAJ. You could find that info listed on some places, like: http://www.videouniversity.com/articles/world-wide-tv-standards http://en.wikipedia.org/wiki/BTSC and on good analog TV books. Basically, BTSC/EIAJ applies only to PAL/M, PAL/N and NTSC/M. So, if the standard is not PAL/MN, mts should always be equal to 0. We may have a patch at tuner-xc2028 for that. If standard is V4L_STD_MN, we have: For NTSC standards: if standard == V4L2_STD_NTSC_M_KR, audio is A2 (Korea) and mts should be 0. if standard == V4L2_STD_NTSC_M_JP, audio is EIAJ (Japan). All the rest use BTSC (or are mono, but the BTSC decoder is designed to be backward compatible with NTSC mono FM transmission). For PAL: V4L2_STD_PAL_M - always BTSC V4L2_STD_PAL_Nc (only Argentina) - always BTSC V4L2_STD_PAL_N (Paraguay/Uruguay) - they also use FM for audio. I think it is also BTSC. So, basically, assuming that some device could potentiallt have both SIF and MTS baseband wired and that the audio decoder is not capable of decoding EIAJ/BTSC, it makes sense to add something like this at tuner-xc2028: /* MTS is only valid for M/N standars, except in Korea */ if (!(std & V4L2_STD_MN) || (std == V4L2_STD_NTSC_M_KR)) mts = 0; and, for such device, specify xc2028 with mts = 1. For devices that support only mts, it makes sense to change the supported standards to just V4L2_STD_MN. However, we cannot assume that (std & V4L2_STD_MN) && (std != V4L2_STD_NTSC_M_KR) is always mts, as it will depend on how xc2028/xc3028 is wired to the bridge/audio demod. >> Also, MTS works only for BTSC and EIAJ, >> e. g. STD M/N. The SIF output works for all standards, depending of the audio >> decoder capabilities, and if the SIF is properly wired. AFAIK, tm5600/6000/tm6010 >> is a worldwide decoder, so if SIF is wired, it should be capable of also decoding >> BTSC, EIAJ and the other sound standards found elsewhere. >> >> In other words, boards shipped outside NTSC or PAL-M Countries use SIF and supports >> worldwide standards. however, most boards shipped in US with xc3028 have only >> MTS wired and won't work outside NTSC/PAL-M/PAL-N area (America, Japan and a few >> other places). >> > Which board is only MTS? Developers need to test, but, based on my experience with other xc3028/2028 devices, in general, the ones sold in US are only MTS. > Which board is only no MTS? > Which board will both? Except if the tm5600/tm6000 SIF decoder for BTSC/EIAJ is broken, we don't need to map the differences between only SIF and SIF + MTS. All boards sold in Europe should support SIF, so mts should be 0 for them. Mauro. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Am 20.04.2011 17:17, schrieb Mauro Carvalho Chehab: > Em 20-04-2011 11:19, Stefan Ringel escreveu: >> Am 20.04.2011 14:37, schrieb Mauro Carvalho Chehab: >>> Em 20-04-2011 05:14, Stefan Ringel escreveu: >>>> Am 19.04.2011 23:21, schrieb Mauro Carvalho Chehab: >>>>> Em 04-04-2011 17:18, stefan.ringel@arcor.de escreveu: >>>>>> From: Stefan Ringel<stefan.ringel@arcor.de> >>>>>> >>>>>> add mts parameter >>>>> Stefan, >>>>> >>>>> The MTS config depends on the specific board design (generally present on >>>>> mono NTSC cards). So, it should be inside the cards struct, and not >>>>> provided as an userspace parameter. >>>>> >>>>> Mauro. >>>> No. It wrong. I think edge board must work under all region and TV standards and if I set MTS, it doesn't work in Germany (PAL_BG and DVB-T). The best is to set outside region specific params. >>> Stefan, >>> >>> Not all boards have MTS wired. >> standard option that param is not auto. >> MTS = 0 or not set means load firmware without MTS. >> MTS = 1 means load firmware with MTS. >> That means, if you MTS then add a param MTS=1. >> Have you other method to detect norm BTSC and EIAJ and set it? I have not that. > Yes. Audio standard is related to video standard. So, it is easy to map on what > standards you have BTSC or EIAJ. > > You could find that info listed on some places, like: > http://www.videouniversity.com/articles/world-wide-tv-standards > http://en.wikipedia.org/wiki/BTSC > and on good analog TV books. > > Basically, BTSC/EIAJ applies only to PAL/M, PAL/N and NTSC/M. So, if the standard is > not PAL/MN, mts should always be equal to 0. We may have a patch at tuner-xc2028 for that. > > If standard is V4L_STD_MN, we have: > > For NTSC standards: > if standard == V4L2_STD_NTSC_M_KR, audio is A2 (Korea) and mts should be 0. > if standard == V4L2_STD_NTSC_M_JP, audio is EIAJ (Japan). > All the rest use BTSC (or are mono, but the BTSC decoder is designed to be > backward compatible with NTSC mono FM transmission). > > For PAL: > V4L2_STD_PAL_M - always BTSC > V4L2_STD_PAL_Nc (only Argentina) - always BTSC > V4L2_STD_PAL_N (Paraguay/Uruguay) - they also use FM for audio. I think it is also BTSC. > > So, basically, assuming that some device could potentiallt have both SIF and MTS baseband > wired and that the audio decoder is not capable of decoding EIAJ/BTSC, it makes sense to > add something like this at tuner-xc2028: > > /* MTS is only valid for M/N standars, except in Korea */ > if (!(std& V4L2_STD_MN) || (std == V4L2_STD_NTSC_M_KR)) > mts = 0; > > and, for such device, specify xc2028 with mts = 1. > > For devices that support only mts, it makes sense to change the supported standards to > just V4L2_STD_MN. > > However, we cannot assume that (std& V4L2_STD_MN)&& (std != V4L2_STD_NTSC_M_KR) is always > mts, as it will depend on how xc2028/xc3028 is wired to the bridge/audio demod. > Is that better to use no mts parameter and always mts = 0? >>> Also, MTS works only for BTSC and EIAJ, >>> e. g. STD M/N. The SIF output works for all standards, depending of the audio >>> decoder capabilities, and if the SIF is properly wired. AFAIK, tm5600/6000/tm6010 >>> is a worldwide decoder, so if SIF is wired, it should be capable of also decoding >>> BTSC, EIAJ and the other sound standards found elsewhere. >>> >>> In other words, boards shipped outside NTSC or PAL-M Countries use SIF and supports >>> worldwide standards. however, most boards shipped in US with xc3028 have only >>> MTS wired and won't work outside NTSC/PAL-M/PAL-N area (America, Japan and a few >>> other places). >>> >> Which board is only MTS? > Developers need to test, but, based on my experience with other xc3028/2028 devices, > in general, the ones sold in US are only MTS. > >> Which board is only no MTS? >> Which board will both? > Except if the tm5600/tm6000 SIF decoder for BTSC/EIAJ is broken, we don't > need to map the differences between only SIF and SIF + MTS. > > All boards sold in Europe should support SIF, so mts should be 0 for them. > > Mauro. > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Em 20-04-2011 12:27, Stefan Ringel escreveu: > Am 20.04.2011 17:17, schrieb Mauro Carvalho Chehab: >> Em 20-04-2011 11:19, Stefan Ringel escreveu: >>> Am 20.04.2011 14:37, schrieb Mauro Carvalho Chehab: >>>> Em 20-04-2011 05:14, Stefan Ringel escreveu: >>>>> Am 19.04.2011 23:21, schrieb Mauro Carvalho Chehab: >>>>>> Em 04-04-2011 17:18, stefan.ringel@arcor.de escreveu: >>>>>>> From: Stefan Ringel<stefan.ringel@arcor.de> >>>>>>> >>>>>>> add mts parameter >>>>>> Stefan, >>>>>> >>>>>> The MTS config depends on the specific board design (generally present on >>>>>> mono NTSC cards). So, it should be inside the cards struct, and not >>>>>> provided as an userspace parameter. >>>>>> >>>>>> Mauro. >>>>> No. It wrong. I think edge board must work under all region and TV standards and if I set MTS, it doesn't work in Germany (PAL_BG and DVB-T). The best is to set outside region specific params. >>>> Stefan, >>>> >>>> Not all boards have MTS wired. >>> standard option that param is not auto. >>> MTS = 0 or not set means load firmware without MTS. >>> MTS = 1 means load firmware with MTS. >>> That means, if you MTS then add a param MTS=1. >>> Have you other method to detect norm BTSC and EIAJ and set it? I have not that. >> Yes. Audio standard is related to video standard. So, it is easy to map on what >> standards you have BTSC or EIAJ. >> >> You could find that info listed on some places, like: >> http://www.videouniversity.com/articles/world-wide-tv-standards >> http://en.wikipedia.org/wiki/BTSC >> and on good analog TV books. >> >> Basically, BTSC/EIAJ applies only to PAL/M, PAL/N and NTSC/M. So, if the standard is >> not PAL/MN, mts should always be equal to 0. We may have a patch at tuner-xc2028 for that. >> >> If standard is V4L_STD_MN, we have: >> >> For NTSC standards: >> if standard == V4L2_STD_NTSC_M_KR, audio is A2 (Korea) and mts should be 0. >> if standard == V4L2_STD_NTSC_M_JP, audio is EIAJ (Japan). >> All the rest use BTSC (or are mono, but the BTSC decoder is designed to be >> backward compatible with NTSC mono FM transmission). >> >> For PAL: >> V4L2_STD_PAL_M - always BTSC >> V4L2_STD_PAL_Nc (only Argentina) - always BTSC >> V4L2_STD_PAL_N (Paraguay/Uruguay) - they also use FM for audio. I think it is also BTSC. >> >> So, basically, assuming that some device could potentiallt have both SIF and MTS baseband >> wired and that the audio decoder is not capable of decoding EIAJ/BTSC, it makes sense to >> add something like this at tuner-xc2028: >> >> /* MTS is only valid for M/N standars, except in Korea */ >> if (!(std& V4L2_STD_MN) || (std == V4L2_STD_NTSC_M_KR)) >> mts = 0; >> >> and, for such device, specify xc2028 with mts = 1. >> >> For devices that support only mts, it makes sense to change the supported standards to >> just V4L2_STD_MN. >> >> However, we cannot assume that (std& V4L2_STD_MN)&& (std != V4L2_STD_NTSC_M_KR) is always >> mts, as it will depend on how xc2028/xc3028 is wired to the bridge/audio demod. >> > Is that better to use no mts parameter and always mts = 0? No. The better is to use a per-board mts parameter, as we have on all other drivers that use xc2028/xc3028. Mauro. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c index 146c7e8..eef58da 100644 --- a/drivers/staging/tm6000/tm6000-cards.c +++ b/drivers/staging/tm6000/tm6000-cards.c @@ -61,6 +61,10 @@ module_param_array(card, int, NULL, 0444); static unsigned long tm6000_devused; +static unsigned int xc2028_mts; +module_param(xc2028_mts, int, 0644); +MODULE_PARM_DESC(xc2028_mts, "enable mts firmware (xc2028/3028 only)"); + struct tm6000_board { char *name; @@ -685,6 +689,9 @@ static void tm6000_config_tuner(struct tm6000_core *dev) ctl.demod = XC3028_FE_ZARLINK456; ctl.vhfbw7 = 1; ctl.uhfbw8 = 1; + if (xc2028_mts) + ctl.mts = 1; + xc2028_cfg.tuner = TUNER_XC2028; xc2028_cfg.priv = &ctl;