* [PATCH] xc2028: disable device power-down because power state handling is broken
@ 2013-12-30 13:37 Frank Schäfer
2014-01-06 13:00 ` Mauro Carvalho Chehab
0 siblings, 1 reply; 3+ messages in thread
From: Frank Schäfer @ 2013-12-30 13:37 UTC (permalink / raw)
To: m.chehab; +Cc: linux-media, Frank Schäfer
xc2028 power state handling is broken.
I2C read/write operations fail when the device is powered down at that moment,
which causes the get_rf_strength and get_rf_strength callbacks (and probably
others, too) to fail.
I don't know how to fix this properly, so disable the device power-down until
anyone comes up with a better solution.
Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
---
drivers/media/tuners/tuner-xc2028.c | 4 +++-
1 Datei geändert, 3 Zeilen hinzugefügt(+), 1 Zeile entfernt(-)
diff --git a/drivers/media/tuners/tuner-xc2028.c b/drivers/media/tuners/tuner-xc2028.c
index 4be5cf8..cb3dc5e 100644
--- a/drivers/media/tuners/tuner-xc2028.c
+++ b/drivers/media/tuners/tuner-xc2028.c
@@ -1291,16 +1291,18 @@ static int xc2028_sleep(struct dvb_frontend *fe)
dump_stack();
}
+ /* FIXME: device power-up/-down handling is broken */
+/*
mutex_lock(&priv->lock);
if (priv->firm_version < 0x0202)
rc = send_seq(priv, {0x00, XREG_POWER_DOWN, 0x00, 0x00});
else
rc = send_seq(priv, {0x80, XREG_POWER_DOWN, 0x00, 0x00});
-
priv->state = XC2028_SLEEP;
mutex_unlock(&priv->lock);
+*/
return rc;
}
--
1.7.10.4
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] xc2028: disable device power-down because power state handling is broken
2013-12-30 13:37 [PATCH] xc2028: disable device power-down because power state handling is broken Frank Schäfer
@ 2014-01-06 13:00 ` Mauro Carvalho Chehab
2014-01-07 17:34 ` Frank Schäfer
0 siblings, 1 reply; 3+ messages in thread
From: Mauro Carvalho Chehab @ 2014-01-06 13:00 UTC (permalink / raw)
To: Frank Schäfer; +Cc: linux-media
Em Mon, 30 Dec 2013 14:37:58 +0100
Frank Schäfer <fschaefer.oss@googlemail.com> escreveu:
> xc2028 power state handling is broken.
> I2C read/write operations fail when the device is powered down at that moment,
> which causes the get_rf_strength and get_rf_strength callbacks (and probably
> others, too) to fail.
> I don't know how to fix this properly, so disable the device power-down until
> anyone comes up with a better solution.
>
> Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
> ---
> drivers/media/tuners/tuner-xc2028.c | 4 +++-
> 1 Datei geändert, 3 Zeilen hinzugefügt(+), 1 Zeile entfernt(-)
>
> diff --git a/drivers/media/tuners/tuner-xc2028.c b/drivers/media/tuners/tuner-xc2028.c
> index 4be5cf8..cb3dc5e 100644
> --- a/drivers/media/tuners/tuner-xc2028.c
> +++ b/drivers/media/tuners/tuner-xc2028.c
> @@ -1291,16 +1291,18 @@ static int xc2028_sleep(struct dvb_frontend *fe)
> dump_stack();
> }
>
> + /* FIXME: device power-up/-down handling is broken */
> +/*
> mutex_lock(&priv->lock);
>
> if (priv->firm_version < 0x0202)
> rc = send_seq(priv, {0x00, XREG_POWER_DOWN, 0x00, 0x00});
> else
> rc = send_seq(priv, {0x80, XREG_POWER_DOWN, 0x00, 0x00});
> -
> priv->state = XC2028_SLEEP;
>
> mutex_unlock(&priv->lock);
> +*/
This patch is completely broken.
First of all, there are both modprobe and config parameters that disables
the poweroff mode.
Second, it doesn't fix the bug, just hides it.
Third, it keeps the xc3028 energized, with spends power and heats the
device, with reduces its lifetime.
I'm working on a proper fix for it.
Cheers,
Mauro
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-01-07 17:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-30 13:37 [PATCH] xc2028: disable device power-down because power state handling is broken Frank Schäfer
2014-01-06 13:00 ` Mauro Carvalho Chehab
2014-01-07 17:34 ` Frank Schäfer
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).