Commit eb6c9634 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

V4L/DVB (9770): em28xx: turn off tuner when not used

em28xx devices generally get hot when xc3028 tuner is powered on. This
patch solves this by turning power off when the device is not used, at the
expense of having a higher load time, when calling a TV application.

Since firmware load happens on 1 or 2 seconds on most devices, this is not a pain.

Also, it helps to save the planet by saving some power :)
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 74a89b2a
...@@ -1695,6 +1695,9 @@ static int em28xx_v4l2_close(struct inode *inode, struct file *filp) ...@@ -1695,6 +1695,9 @@ static int em28xx_v4l2_close(struct inode *inode, struct file *filp)
return 0; return 0;
} }
/* Save some power by putting tuner to sleep */
em28xx_i2c_call_clients(dev, TUNER_SET_STANDBY, NULL);
/* do this before setting alternate! */ /* do this before setting alternate! */
em28xx_uninit_isoc(dev); em28xx_uninit_isoc(dev);
em28xx_set_mode(dev, EM28XX_SUSPEND); em28xx_set_mode(dev, EM28XX_SUSPEND);
...@@ -2132,6 +2135,9 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev, ...@@ -2132,6 +2135,9 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
mutex_unlock(&em28xx_extension_devlist_lock); mutex_unlock(&em28xx_extension_devlist_lock);
mutex_unlock(&em28xx_devlist_mutex); mutex_unlock(&em28xx_devlist_mutex);
/* Save some power by putting tuner to sleep */
em28xx_i2c_call_clients(dev, TUNER_SET_STANDBY, NULL);
return 0; return 0;
fail_reg_devices: fail_reg_devices:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment