From c188637dc5a25aec6a21279524405c8fe96f2f4b Mon Sep 17 00:00:00 2001 From: Antti Palosaari Date: Fri, 18 May 2012 16:02:55 -0300 Subject: [PATCH] [media] rtl2830: prevent hw access when sleeping to prevent I/O errors... Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab --- drivers/media/dvb/frontends/rtl2830.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/media/dvb/frontends/rtl2830.c b/drivers/media/dvb/frontends/rtl2830.c index 507ef4bb047a..93612ebac519 100644 --- a/drivers/media/dvb/frontends/rtl2830.c +++ b/drivers/media/dvb/frontends/rtl2830.c @@ -381,6 +381,9 @@ static int rtl2830_get_frontend(struct dvb_frontend *fe) int ret; u8 buf[3]; + if (priv->sleeping) + return 0; + ret = rtl2830_rd_regs(priv, 0x33c, buf, 2); if (ret) goto err; @@ -525,6 +528,9 @@ static int rtl2830_read_snr(struct dvb_frontend *fe, u16 *snr) { 92888734, 92888734, 95487525, 99770748 }, }; + if (priv->sleeping) + return 0; + /* reports SNR in resolution of 0.1 dB */ ret = rtl2830_rd_reg(priv, 0x33c, &tmp); @@ -563,6 +569,9 @@ static int rtl2830_read_ber(struct dvb_frontend *fe, u32 *ber) int ret; u8 buf[2]; + if (priv->sleeping) + return 0; + ret = rtl2830_rd_regs(priv, 0x34e, buf, 2); if (ret) goto err; @@ -588,6 +597,9 @@ static int rtl2830_read_signal_strength(struct dvb_frontend *fe, u16 *strength) u8 buf[2]; u16 if_agc_raw, if_agc; + if (priv->sleeping) + return 0; + ret = rtl2830_rd_regs(priv, 0x359, buf, 2); if (ret) goto err;