From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
To: Sean Young <sean@mess.org>
Cc: linux-media@vger.kernel.org
Subject: Re: [PATCH 2/2] media: dvb: remove replace frontend_debug with dynamic debug
Date: Mon, 20 May 2019 17:32:15 -0300 [thread overview]
Message-ID: <20190520173215.79e048d4@coco.lan> (raw)
In-Reply-To: <20190520200144.16713-2-sean@mess.org>
Em Mon, 20 May 2019 21:01:44 +0100
Sean Young <sean@mess.org> escreveu:
> This simplifies the code a little. This does move a dev_dbg() into a
> timing sensitive code path. This is in the microseconds order so dev_dbg()
> should not make a difference.
This may actually not be true... I remember we had, in the past, at the
saa7134 driver a certain tuner that require a small delay at the order
of ~1 millisecond for it to work.
There was a printk() message between the two hardware register settings
at the place that would require the delay.
I usually debug those things using a serial console, with debug messages
enabled.
So, every time I tested, I was unable to reproduce the bug, while, for
others, the bug was there.
Ok, the internal print facilities upstream changed a lot those years,
so, things may have changed if I was here to do the tests, but it
sounds a little risky to do such change without enabling a lot of
debug stuff and test it on a real hardware via a serial console.
>
> Signed-off-by: Sean Young <sean@mess.org>
> ---
> drivers/media/dvb-core/dvb_frontend.c | 39 +++++++++++++--------------
> 1 file changed, 18 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c
> index d3c0f6267bf8..3aad13415654 100644
> --- a/drivers/media/dvb-core/dvb_frontend.c
> +++ b/drivers/media/dvb-core/dvb_frontend.c
> @@ -47,15 +47,12 @@
> #include <media/dvbdev.h>
> #include <linux/dvb/version.h>
>
> -static int dvb_frontend_debug;
> static int dvb_shutdown_timeout;
> static int dvb_force_auto_inversion;
> static int dvb_override_tune_delay;
> static int dvb_powerdown_on_sleep = 1;
> static int dvb_mfe_wait_time = 5;
>
> -module_param_named(frontend_debug, dvb_frontend_debug, int, 0644);
> -MODULE_PARM_DESC(frontend_debug, "Turn on/off frontend core debugging (default:off).");
> module_param(dvb_shutdown_timeout, int, 0644);
> MODULE_PARM_DESC(dvb_shutdown_timeout, "wait <shutdown_timeout> seconds after close() before suspending hardware");
> module_param(dvb_force_auto_inversion, int, 0644);
> @@ -917,9 +914,9 @@ static void dvb_frontend_get_frequency_limits(struct dvb_frontend *fe,
> "DVB: adapter %i frontend %u frequency limits undefined - fix the driver\n",
> fe->dvb->num, fe->id);
>
> - if (dvb_frontend_debug)
> - dprintk("frequency interval: tuner: %u...%u, frontend: %u...%u",
> - tuner_min, tuner_max, frontend_min, frontend_max);
> + dev_dbg(fe->dvb->device,
> + "frequency interval: tuner: %u...%u, frontend: %u...%u",
> + tuner_min, tuner_max, frontend_min, frontend_max);
>
> /* If the standard is for satellite, convert frequencies to kHz */
> switch (c->delivery_system) {
> @@ -2586,41 +2583,41 @@ static int dvb_frontend_handle_ioctl(struct file *file,
> */
> unsigned long swcmd = ((unsigned long)parg) << 1;
> ktime_t nexttime;
> - ktime_t tv[10];
> + ktime_t now, lasttime;
> int i;
> u8 last = 1;
>
> - if (dvb_frontend_debug)
> - dprintk("switch command: 0x%04lx\n",
> - swcmd);
> + dev_dbg(fe->dvb->device, "switch command: 0x%04lx\n",
> + swcmd);
> nexttime = ktime_get_boottime();
> - if (dvb_frontend_debug)
> - tv[0] = nexttime;
> /* before sending a command, initialize by sending
> * a 32ms 18V to the switch
> */
> fe->ops.set_voltage(fe, SEC_VOLTAGE_18);
> +
> + dev_dbg(fe->dvb->device, "(adapter %d): switch delay (should be 32k followed by all 8k)\n",
> + fe->dvb->num);
> +
> + lasttime = nexttime;
> dvb_frontend_sleep_until(&nexttime, 32000);
>
> for (i = 0; i < 9; i++) {
> - if (dvb_frontend_debug)
> - tv[i + 1] = ktime_get_boottime();
> if ((swcmd & 0x01) != last) {
> /* set voltage to (last ? 13V : 18V) */
> fe->ops.set_voltage(fe, (last) ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18);
> last = (last) ? 0 : 1;
> }
> swcmd = swcmd >> 1;
> +
> + now = ktime_get_boottime();
> + dev_dbg(fe->dvb->device, "%d: %lld\n", i,
> + ktime_us_delta(now, lasttime));
> + lasttime = now;
> +
> if (i != 8)
> dvb_frontend_sleep_until(&nexttime, 8000);
> }
> - if (dvb_frontend_debug) {
> - dprintk("(adapter %d): switch delay (should be 32k followed by all 8k)\n",
> - fe->dvb->num);
> - for (i = 1; i < 10; i++)
> - pr_info("%d: %d\n", i,
> - (int)ktime_us_delta(tv[i], tv[i - 1]));
> - }
> +
> err = 0;
> fepriv->state = FESTATE_DISEQC;
> fepriv->status = 0;
Thanks,
Mauro
prev parent reply other threads:[~2019-05-20 20:32 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-20 20:01 [PATCH 1/2] media: dvb: warning about dvb frequency limits produces too much noise Sean Young
2019-05-20 20:01 ` [PATCH 2/2] media: dvb: remove replace frontend_debug with dynamic debug Sean Young
2019-05-20 20:32 ` 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=20190520173215.79e048d4@coco.lan \
--to=mchehab+samsung@kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=sean@mess.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.