linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Manu Abraham <abraham.manu@gmail.com>
Cc: Linux Media Mailing List <linux-media@vger.kernel.org>
Subject: Re: v4 [PATCH 08/10] TDA18271c2dd: Allow frontend to set DELSYS
Date: Mon, 12 Dec 2011 11:39:09 -0200	[thread overview]
Message-ID: <4EE603FD.20202@redhat.com> (raw)
In-Reply-To: <CAHFNz9L-yFhvMJoq-64604OZXt443hPe_mfebH857jMUNH-LtA@mail.gmail.com>

On 12-12-2011 03:01, Manu Abraham wrote:
> On Sat, Dec 10, 2011 at 6:20 PM, Mauro Carvalho Chehab
> <mchehab@redhat.com>  wrote:
>> On 10-12-2011 02:44, Manu Abraham wrote:
>>>
>>>  From 707877f5a61b3259704d42e7dd5e647e9196e9a4 Mon Sep 17 00:00:00 2001
>>> From: Manu Abraham<abraham.manu@gmail.com>
>>> Date: Thu, 24 Nov 2011 19:56:34 +0530
>>> Subject: [PATCH 08/10] TDA18271c2dd: Allow frontend to set DELSYS, rather
>>> than querying fe->ops.info.type
>>>
>>> With any tuner that can tune to multiple delivery systems/standards, it
>>> does
>>> query fe->ops.info.type to determine frontend type and set the delivery
>>> system type. fe->ops.info.type can handle only 4 delivery systems, viz
>>> FE_QPSK,
>>> FE_QAM, FE_OFDM and FE_ATSC.
>>>
>>> Signed-off-by: Manu Abraham<abraham.manu@gmail.com>
>>> ---
>>>   drivers/media/dvb/frontends/tda18271c2dd.c |   42
>>> ++++++++++++++++++++--------
>>>   1 files changed, 30 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/drivers/media/dvb/frontends/tda18271c2dd.c
>>> b/drivers/media/dvb/frontends/tda18271c2dd.c
>>> index 1b1bf20..43a3dd4 100644
>>> --- a/drivers/media/dvb/frontends/tda18271c2dd.c
>>> +++ b/drivers/media/dvb/frontends/tda18271c2dd.c
>>> @@ -1145,28 +1145,46 @@ static int set_params(struct dvb_frontend *fe,
>>>         int status = 0;
>>>         int Standard;
>>>
>>> -       state->m_Frequency = params->frequency;
>>> +       u32 bw;
>>> +       fe_delivery_system_t delsys;
>>>
>>> -       if (fe->ops.info.type == FE_OFDM)
>>> -               switch (params->u.ofdm.bandwidth) {
>>> -               case BANDWIDTH_6_MHZ:
>>> +       delsys  = fe->dtv_property_cache.delivery_system;
>>> +       bw      = fe->dtv_property_cache.bandwidth_hz;
>>> +
>>> +       state->m_Frequency = fe->dtv_property_cache.frequency;
>>> +
>>> +       if (!delsys || !state->m_Frequency) {
>>> +               printk(KERN_ERR "Invalid delsys:%d freq:%d\n", delsys,
>>> state->m_Frequency);
>>> +               return -EINVAL;
>>> +       }
>>> +
>>> +       switch (delsys) {
>>> +       case SYS_DVBT:
>>> +       case SYS_DVBT2:
>>> +               if (!bw)
>>> +                       return -EINVAL;
>>> +               switch (bw) {
>>> +               case 6000000:
>>>                         Standard = HF_DVBT_6MHZ;
>>>                         break;
>>> -               case BANDWIDTH_7_MHZ:
>>> +               case 7000000:
>>>                         Standard = HF_DVBT_7MHZ;
>>>                         break;
>>>                 default:
>>> -               case BANDWIDTH_8_MHZ:
>>> +               case 8000000:
>>>                         Standard = HF_DVBT_8MHZ;
>>>                         break;
>>>                 }
>>> -       else if (fe->ops.info.type == FE_QAM) {
>>> -               if (params->u.qam.symbol_rate<= MAX_SYMBOL_RATE_6MHz)
>>> -                       Standard = HF_DVBC_6MHZ;
>>> -               else
>>> -                       Standard = HF_DVBC_8MHZ;
>>> -       } else
>>> +               break;
>>> +       case SYS_DVBC_ANNEX_A:
>>> +               Standard = HF_DVBC_6MHZ;
>>> +               break;
>>> +       case SYS_DVBC_ANNEX_C:
>>> +               Standard = HF_DVBC_8MHZ;
>>> +               break;
>>
>>
>> No, this is wrong. This patch doesn't apply anymore, due to the recent
>> changes that estimate the bandwidth based on the roll-off factor. Reverting
>> it breaks for DVB-C @ 6MHz spaced channels (and likely decreases quality
>> or breaks for 7MHz spaced ones too).
>
>
> The changes that which you mention (which you state breaks 7MHz
> spacing) is much newer than these patch series. Alas, how do you
> expect people to push out patches every now and then, when you
> simply whack patches in. It is not the issue with the people sending
> patches, but how you handled the patch series. I have reworked the
> patches the 4th time, while you simply whack patches without any
> feedback.
> Time after time, lot of different people have argued with
> you not to simply whack in patches as you seem fit. Who is to blame ?

Patches were sent to the ML, and were tested by the ones complaining
about tuner issues with DVB-C. It were merged only after having feedback.

In any case, this is not a reason for me to not merge this patch. Conflicts
like that happens all the time when merging stuff from different authors.

The issue here is that it assumes that Annex A is 6MHz and Annex C is 8MHz.
This is a wrong assumption: there's nothing at ITU-T J.83 associating Annex C
(or even Annex A) with a given bandwidth.

What is said at the spec is that Annex A is "optimized" for 6MHz, but I
won't be really surprised if some broadcaster decides to use it for other
bandwidths.

The logic there should be, instead:

u32 roll_off = 0;

switch (delsys) {
case SYS_DVBC_ANNEX_A:
	roll_off = 115;
	break;
case SYS_DVBC_ANNEX_C:
	roll_off = 113;
	break;
}

if (roll_off) {
	bw = symbol_rate * roll_off / 100;
	if (bw <= 6000000)
		Standard = HF_DVBC_6MHZ;
	else if (bw <= 7000000)
		Standard = HF_DVBC_7MHZ;
	else
		Standard = HF_DVBC_8MHZ;
}

Regards,
Mauro

      reply	other threads:[~2011-12-12 13:39 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-10  4:44 v4 [PATCH 08/10] TDA18271c2dd: Allow frontend to set DELSYS Manu Abraham
2011-12-10 12:50 ` Mauro Carvalho Chehab
2011-12-12  5:01   ` Manu Abraham
2011-12-12 13:39     ` Mauro Carvalho Chehab [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EE603FD.20202@redhat.com \
    --to=mchehab@redhat.com \
    --cc=abraham.manu@gmail.com \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).