Put USB IF / ADC and RF tuner to sleep when device is not streaming.
It uses around 115 mA power from USB when active, which drops to
32 mA on idle after that patch.

Signed-off-by: Antti Palosaari <[email protected]>
---
 drivers/staging/media/msi3101/sdr-msi3101.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/media/msi3101/sdr-msi3101.c 
b/drivers/staging/media/msi3101/sdr-msi3101.c
index 061c705..0606941 100644
--- a/drivers/staging/media/msi3101/sdr-msi3101.c
+++ b/drivers/staging/media/msi3101/sdr-msi3101.c
@@ -977,8 +977,8 @@ static int msi3101_set_usb_adc(struct msi3101_state *s)
         * Synthesizer config is just a educated guess...
         *
         * [7:0]   0x03, register address
-        * [8]     1, always
-        * [9]     ?
+        * [8]     1, power control
+        * [9]     ?, power control
         * [12:10] output divider
         * [13]    0 ?
         * [14]    0 ?
@@ -1321,6 +1321,12 @@ static int msi3101_stop_streaming(struct vb2_queue *vq)
        msleep(20);
        msi3101_ctrl_msg(s, CMD_STOP_STREAMING, 0);
 
+       /* sleep USB IF / ADC */
+       msi3101_ctrl_msg(s, CMD_WREG, 0x01000003);
+
+       /* sleep tuner */
+       msi3101_tuner_write(s, 0x000000);
+
        mutex_unlock(&s->v4l2_lock);
 
        return 0;
-- 
1.8.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to