[media] rtl2830: prevent hw access when sleeping
authorAntti Palosaari <crope@iki.fi>
Fri, 18 May 2012 19:02:55 +0000 (16:02 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sun, 20 May 2012 13:24:53 +0000 (10:24 -0300)
to prevent I/O errors...

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/frontends/rtl2830.c

index 507ef4b..93612eb 100644 (file)
@@ -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;