usbtuner: fix dvb functionality after v4l2 operation
authorJean Huang <jeanh@nvidia.com>
Fri, 24 Feb 2017 18:31:39 +0000 (10:31 -0800)
committerManish Tuteja <mtuteja@nvidia.com>
Fri, 7 Apr 2017 00:38:00 +0000 (17:38 -0700)
commit48859243cf59e17c57b1c806a6d6a172c157b412
treeb61b74040675f1e6e68053d89f29b94c6f609ac4
parentb561c06b665d7ed8a29be31ee0200fc71931339d
usbtuner: fix dvb functionality after v4l2 operation

Cameraserver calls v4l2_open to check the device type as
soon as a v4l2 device is registered, and then v4l2_close
if the device isn't a camera.

For cx231xx tuners, the device needs to stay in DIGITAL_MODE
for dvb_init, however, in v4l2_open the mode is switched to
ANALOG_MODE, which fails dvb_init. This patch fails v4l2_open
if it's called before dvb_init is done for cx231xx tuners.

For em28xx tuners, v4l2_close resets the usb interface alternate
to 0, which is supposed to be 1 for dvb function to work after
dvb_init. This patch skipped the usb interface reset after dvb_init
for em28xx tuners.

Bug 1861283

Change-Id: I91eb7ae0e171529ed7c0cf0f07404afb33b32d53
Signed-off-by: Jean Huang <jeanh@nvidia.com>
Signed-off-by: Patrick Horng <phorng@nvidia.com>
Reviewed-on: http://git-master/r/1313562
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vinayak Pane <vpane@nvidia.com>
Reviewed-on: http://git-master/r/1456516
Reviewed-by: Manish Tuteja <mtuteja@nvidia.com>
drivers/media/usb/cx231xx/cx231xx-video.c
drivers/media/usb/em28xx/em28xx-video.c