Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1177838ybt; Thu, 18 Jun 2020 02:25:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx3lQi4l7MAwcy3feZZVt7VzM1asvkNL8zzjaEN7aJJoBCnY+SL5x1FhyRFEZk1gQnshTda X-Received: by 2002:a17:906:4350:: with SMTP id z16mr3020474ejm.139.1592472356565; Thu, 18 Jun 2020 02:25:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592472356; cv=none; d=google.com; s=arc-20160816; b=gdB12RWW69sLLOBDf97GzxsH6Xsq3PYgPQvVF0flzplk7el1jSMd5ZGFn1R6LOjZg9 jr+A9YwNrNfux1DbIMtw975lPSeA0nmb98zWiuvKIfqTBMFbC9/YNE/McLklzMX3sKa3 qMg+e/zMHx66y+2ej7L1QWef0m49ne+CCRi1gOwa0u9NcYujqsPGCgsMTrz+8QdzdwBb Ctve9XCF0fqawFcIDcnlNVLfcYHoQaBmMQr0V3A1mer9NixNwBYS6Dpv4/gw1NVx0njo t2luTGiugA3VeQDReaZYC3nSGK+bZ7fDza4lXQ5D8g/+mP2RmPocP7f357RUHk0x+EZR lm8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=YCLaVuAS3DxLtHr2E5fihiGn5j3qamW0vZAwtUvg3bo=; b=Unp+sKghw1wM+T8hkylGZy+us285JrZyxYyVC5kuncPwisuFuc4br9+bN2LDknone4 Aek9ejr2os+9I9Oi02uxO+f2f4XNUL7qOCrtKQvq0IzupKXv58KGx3d5fFgppCHxBtpt mqVT0XDSWRrgaydN04dfK2jjaTUMQoV1UXKZD48XXzz5nycpNMgMXJrsj9Mu0UwzIJyD uENcTAN08Mu37eTeJdB5aeDHiWx7TZdb4kSpfOAVjSW2UzWyZ6X+64Gx4VBQCXBYe+/T qdXWPHt0R7ftgHEX8tlgRWsoJBpeQpjhBIg3c3MXvb03QpZYvQ7R/GoWMm3xv9GWGH1o DQfw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k25si1411719eja.712.2020.06.18.02.25.33; Thu, 18 Jun 2020 02:25:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729083AbgFRJU7 (ORCPT + 99 others); Thu, 18 Jun 2020 05:20:59 -0400 Received: from smtp4-g21.free.fr ([212.27.42.4]:17268 "EHLO smtp4-g21.free.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728343AbgFRJU6 (ORCPT ); Thu, 18 Jun 2020 05:20:58 -0400 Received: from [192.168.1.91] (unknown [77.207.133.132]) (Authenticated sender: marc.w.gonzalez) by smtp4-g21.free.fr (Postfix) with ESMTPSA id 664CE19F5AB; Thu, 18 Jun 2020 11:20:12 +0200 (CEST) Subject: Re: [RFC 3/4] media: dvb_frontend: move algo-specific settings to a function To: Mauro Carvalho Chehab , linux-media Cc: Brad Love , Sean Young , Arnd Bergmann , LKML References: From: Marc Gonzalez Message-ID: <8956d79a-cc5a-b744-3e21-25e9b4267dea@free.fr> Date: Thu, 18 Jun 2020 11:20:07 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 17/06/2020 20:52, Mauro Carvalho Chehab wrote: > As we're planning to call this code on a separate place, let's s/on/from/ Suggest: "to call this code from somewhere else" > fist move it to a different function. s/fist/first Suggest: "first move it to its own function" > Signed-off-by: Mauro Carvalho Chehab > --- > drivers/media/dvb-core/dvb_frontend.c | 90 +++++++++++++++------------ > 1 file changed, 49 insertions(+), 41 deletions(-) > > diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c > index 06ea30a689d7..ed85dc2a9183 100644 > --- a/drivers/media/dvb-core/dvb_frontend.c > +++ b/drivers/media/dvb-core/dvb_frontend.c > @@ -1790,6 +1790,54 @@ static int dvbv3_set_delivery_system(struct dvb_frontend *fe) > return emulate_delivery_system(fe, delsys); > } > > +static void prepare_tuning_algo_parameters(struct dvb_frontend *fe) > +{ > + struct dtv_frontend_properties *c = &fe->dtv_property_cache; > + struct dvb_frontend_private *fepriv = fe->frontend_priv; > + struct dvb_frontend_tune_settings fetunesettings; Suggest: fetunesettings = { 0 }; then we can remove the memset() below. > + > + /* get frontend-specific tuning settings */ > + memset(&fetunesettings, 0, sizeof(struct dvb_frontend_tune_settings)); > + if (fe->ops.get_tune_settings && (fe->ops.get_tune_settings(fe, &fetunesettings) == 0)) { > + fepriv->min_delay = (fetunesettings.min_delay_ms * HZ) / 1000; > + fepriv->max_drift = fetunesettings.max_drift; > + fepriv->step_size = fetunesettings.step_size; > + } else { > + /* default values */ > + switch (c->delivery_system) { > + case SYS_DVBS: > + case SYS_DVBS2: > + case SYS_ISDBS: > + case SYS_TURBO: > + case SYS_DVBC_ANNEX_A: > + case SYS_DVBC_ANNEX_C: > + fepriv->min_delay = HZ / 20; > + fepriv->step_size = c->symbol_rate / 16000; > + fepriv->max_drift = c->symbol_rate / 2000; > + break; > + case SYS_DVBT: > + case SYS_DVBT2: > + case SYS_ISDBT: > + case SYS_DTMB: > + fepriv->min_delay = HZ / 20; > + fepriv->step_size = dvb_frontend_get_stepsize(fe) * 2; > + fepriv->max_drift = (dvb_frontend_get_stepsize(fe) * 2) + 1; > + break; > + default: > + /* > + * FIXME: This sounds wrong! if freqency_stepsize is > + * defined by the frontend, why not use it??? > + */ > + fepriv->min_delay = HZ / 20; > + fepriv->step_size = 0; /* no zigzag */ > + fepriv->max_drift = 0; > + break; > + } > + } > + if (dvb_override_tune_delay > 0) > + fepriv->min_delay = (dvb_override_tune_delay * HZ) / 1000; > +} > + > /** > * dtv_property_process_set - Sets a single DTV property > * @fe: Pointer to &struct dvb_frontend > @@ -2182,7 +2230,6 @@ static int dtv_set_frontend(struct dvb_frontend *fe) > { > struct dvb_frontend_private *fepriv = fe->frontend_priv; > struct dtv_frontend_properties *c = &fe->dtv_property_cache; > - struct dvb_frontend_tune_settings fetunesettings; > u32 rolloff = 0; > > if (dvb_frontend_check_parameters(fe) < 0) > @@ -2260,46 +2307,7 @@ static int dtv_set_frontend(struct dvb_frontend *fe) > if (c->hierarchy == HIERARCHY_NONE && c->code_rate_LP == FEC_NONE) > c->code_rate_LP = FEC_AUTO; > > - /* get frontend-specific tuning settings */ > - memset(&fetunesettings, 0, sizeof(struct dvb_frontend_tune_settings)); > - if (fe->ops.get_tune_settings && (fe->ops.get_tune_settings(fe, &fetunesettings) == 0)) { > - fepriv->min_delay = (fetunesettings.min_delay_ms * HZ) / 1000; > - fepriv->max_drift = fetunesettings.max_drift; > - fepriv->step_size = fetunesettings.step_size; > - } else { > - /* default values */ > - switch (c->delivery_system) { > - case SYS_DVBS: > - case SYS_DVBS2: > - case SYS_ISDBS: > - case SYS_TURBO: > - case SYS_DVBC_ANNEX_A: > - case SYS_DVBC_ANNEX_C: > - fepriv->min_delay = HZ / 20; > - fepriv->step_size = c->symbol_rate / 16000; > - fepriv->max_drift = c->symbol_rate / 2000; > - break; > - case SYS_DVBT: > - case SYS_DVBT2: > - case SYS_ISDBT: > - case SYS_DTMB: > - fepriv->min_delay = HZ / 20; > - fepriv->step_size = dvb_frontend_get_stepsize(fe) * 2; > - fepriv->max_drift = (dvb_frontend_get_stepsize(fe) * 2) + 1; > - break; As an aside, I find it confusing that there are 3 sources for the stepsize. 1) fe->ops.get_tune_settings().step_size 2) fe->ops.info.frequency_stepsize_hz 3) fe->ops.tuner_ops.info.frequency_step_hz > - default: > - /* > - * FIXME: This sounds wrong! if freqency_stepsize is > - * defined by the frontend, why not use it??? > - */ > - fepriv->min_delay = HZ / 20; > - fepriv->step_size = 0; /* no zigzag */ > - fepriv->max_drift = 0; > - break; > - } > - } > - if (dvb_override_tune_delay > 0) > - fepriv->min_delay = (dvb_override_tune_delay * HZ) / 1000; > + prepare_tuning_algo_parameters(fe); LGTM Reviewed-by: Marc Gonzalez