1. 02 Sep, 2014 10 commits
    • Olli Salonen's avatar
      [media] sp2: Add I2C driver for CIMaX SP2 common interface module · 868736ad
      Olli Salonen authored
      Driver for the CIMaX SP2 common interface chip. It is very much based on
      the existing cimax2 driver for cx23885, but should be more reusable. The
      product has been sold with name Atmel T90FJR as well and the data sheets
      for that chip seem to be publicly available.
      
      It seems that the USB device that I have and the cx23885 based devices will
      need to interact differently with the chip for the CAM operations. Thus
      there is one callback function that is passed on to the sp2 driver
      (see function sp2_ci_op_cam for that one).
      
      IRQ functionality is not included currently (not needed by USB devices
      and I don't have a PCIe device for development).
      Signed-off-by: default avatarOlli Salonen <olli.salonen@iki.fi>
      Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      868736ad
    • Olli Salonen's avatar
      [media] cxusb: add ts mode setting for TechnoTrend CT2-4400 · 9b9beb1b
      Olli Salonen authored
      TS mode must be set in the existing TechnoTrend CT2-4400 driver.
      Signed-off-by: default avatarOlli Salonen <olli.salonen@iki.fi>
      Reviewed-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      9b9beb1b
    • Olli Salonen's avatar
      [media] em28xx: add ts mode setting for PCTV 292e · 6fd2f44a
      Olli Salonen authored
      TS mode must be set in the existing PCTV 292e driver.
      Signed-off-by: default avatarOlli Salonen <olli.salonen@iki.fi>
      Reviewed-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      6fd2f44a
    • Olli Salonen's avatar
      [media] si2168: add ts_mode setting and move to si2168_init · 389ce398
      Olli Salonen authored
      Luis Alves submitted a TS mode patch to si2168 earlier, but the
      patch was rejected due to a small issue. Here is a working version.
      Also, setting of TS mode is moved from si2168_set_frontend to
      si2168_init.
      
      This patch adds the TS mode as a config option for the si2168 demod:
      - ts_mode added to config struct.
      - Possible (interesting) values are
         * Parallel mode = 0x06
         * Serial mode = 0x03
      
      Currently the modules using this demod only use parallel mode.
      Patches for these modules later in this patch series.
      Signed-off-by: default avatarOlli Salonen <olli.salonen@iki.fi>
      Reviewed-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      389ce398
    • nibble.max's avatar
      [media] m88ds3103: implement set voltage and TS clock · 79d09330
      nibble.max authored
      Implement set voltage operation.
      Separate TS clock as a own configuration parameter.
      Add TS clock polarity parameter.
      
      [crope@iki.fi: merge em28xx driver m88ds3103 config change patch
      to that one, in order to keep build unbroken]
      Signed-off-by: default avatarNibble Max <nibble.max@gmail.com>
      Reviewed-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      79d09330
    • Olli Salonen's avatar
      [media] si2157: clean logging · 67d0113a
      Olli Salonen authored
      Same thing for si2157 as Antti did earlier for tda18212:
      
      There is no need to print module name nor function name as those
      are done by kernel logging system when dev_xxx logging is used and
      driver is proper I2C driver.
      
      While here, fix a typo ("unknown") in si2157_init.
      Signed-off-by: default avatarOlli Salonen <olli.salonen@iki.fi>
      Reviewed-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      67d0113a
    • Olli Salonen's avatar
      [media] si2168: clean logging · 37b4e43d
      Olli Salonen authored
      Same thing for si2168 as Antti did earlier for tda18212:
      
      There is no need to print module name nor function name as those
      are done by kernel logging system when dev_xxx logging is used and
      driver is proper I2C driver.
      Signed-off-by: default avatarOlli Salonen <olli.salonen@iki.fi>
      Reviewed-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      37b4e43d
    • Changbing Xiong's avatar
      [media] media: check status of dmxdev->exit in poll functions of demux&dvr · d102cac8
      Changbing Xiong authored
      when usb-type tuner is pulled out, user applications did not close device's FD,
      and go on polling the device, we should return POLLERR directly.
      Signed-off-by: default avatarChangbing Xiong <cb.xiong@samsung.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      d102cac8
    • Changbing Xiong's avatar
      [media] media: correct return value in dvb_demux_poll · 236c9bfa
      Changbing Xiong authored
      Data type of return value is unsigned int, but in function of dvb_demux_poll,
      when the pointer of dmxdevfilter equals NULL, it will return -EINVAL, which
      is invalid.
      Signed-off-by: default avatarChangbing Xiong <cb.xiong@samsung.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      236c9bfa
    • Changbing Xiong's avatar
      [media] media: fix kernel deadlock due to tuner pull-out while playing · 7a0af6ed
      Changbing Xiong authored
      Normally, ADAP_STREAMING bit is set in dvb_usb_start_feed and cleared in
      dvb_usb_stop_feed.
      
      But in exceptional cases, for example, when the tv is playing programs
      and the tuner is pulled out, then dvb_usbv2_disconnect is called.
      
      In such case, it will first call dvb_usbv2_adapter_frontend_exit to stop
      dvb_frontend_thread, and then call dvb_usbv2_adapter_dvb_exit to clear
      ADAP_STREAMING bit.
      
      At this point, if dvb_frontend_thread is sleeping and waiting for
      ADAP_STREAMING to be cleared to get out of sleep. then
      dvb_frontend_thread can never be stoped, because clearing ADAP_STREAMING
      bit is performed after dvb_frontend_thread is stopped (i.e. performed in
      dvb_usbv2_adapter_dvb_exit).
      
      So, deadlock:
      
      [  240.822037] INFO: task khubd:497 blocked for more than 120 seconds.
      [  240.822655] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
      [  240.830493] khubd           D c0013b3c     0   497      2 0x00000000
      [  240.836996] [<c0013b3c>] (__schedule+0x200/0x54c) from [<c00110f4>] (schedule_timeout+0x14c/0x19c)
      [  240.845940] [<c00110f4>] (schedule_timeout+0x14c/0x19c) from [<c00137f4>] (wait_for_common+0xac/0x150)
      [  240.855234] [<c00137f4>] (wait_for_common+0xac/0x150) from [<c004989c>] (kthread_stop+0x58/0x90)
      [  240.864004] [<c004989c>] (kthread_stop+0x58/0x90) from [<c03b2ebc>] (dvb_frontend_stop+0x3c/0x9c)
      [  240.872849] [<c03b2ebc>] (dvb_frontend_stop+0x3c/0x9c) from [<c03b2f3c>] (dvb_unregister_frontend+0x20/0xd8)
      [  240.882666] [<c03b2f3c>] (dvb_unregister_frontend+0x20/0xd8) from [<c03ed938>] (dvb_usbv2_exit+0x68/0xfc)
      [  240.892204] [<c03ed938>] (dvb_usbv2_exit+0x68/0xfc) from [<c03eda18>] (dvb_usbv2_disconnect+0x4c/0x70)
      [  240.901499] [<c03eda18>] (dvb_usbv2_disconnect+0x4c/0x70) from [<c031c050>] (usb_unbind_interface+0x58/0x188)
      [  240.911395] [<c031c050>] (usb_unbind_interface+0x58/0x188) from [<c02c3e78>] (__device_release_driver+0x74/0xd0)
      [  240.921544] [<c02c3e78>] (__device_release_driver+0x74/0xd0) from [<c02c3ef0>] (device_release_driver+0x1c/0x28)
      [  240.931697] [<c02c3ef0>] (device_release_driver+0x1c/0x28) from [<c02c39b8>] (bus_remove_device+0xc4/0xe4)
      [  240.941332] [<c02c39b8>] (bus_remove_device+0xc4/0xe4) from [<c02c1344>] (device_del+0xf4/0x178)
      [  240.950106] [<c02c1344>] (device_del+0xf4/0x178) from [<c0319eb0>] (usb_disable_device+0xa0/0x1c8)
      [  240.959040] [<c0319eb0>] (usb_disable_device+0xa0/0x1c8) from [<c03128b4>] (usb_disconnect+0x88/0x188)
      [  240.968326] [<c03128b4>] (usb_disconnect+0x88/0x188) from [<c0313edc>] (hub_thread+0x4d0/0x1200)
      [  240.977100] [<c0313edc>] (hub_thread+0x4d0/0x1200) from [<c0049690>] (kthread+0xa4/0xb0)
      [  240.985174] [<c0049690>] (kthread+0xa4/0xb0) from [<c0009118>] (ret_from_fork+0x14/0x3c)
      [  240.993259] INFO: task kdvb-ad-0-fe-0:3256 blocked for more than 120 seconds.
      [  241.000349] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
      [  241.008162] kdvb-ad-0-fe-0  D c0013b3c     0  3256      2 0x00000000
      [  241.014507] [<c0013b3c>] (__schedule+0x200/0x54c) from [<c03eda44>] (wait_schedule+0x8/0x10)
      [  241.022924] [<c03eda44>] (wait_schedule+0x8/0x10) from [<c001120c>] (__wait_on_bit+0x74/0xb8)
      [  241.031434] [<c001120c>] (__wait_on_bit+0x74/0xb8) from [<c00112b8>] (out_of_line_wait_on_bit+0x68/0x70)
      [  241.040902] [<c00112b8>] (out_of_line_wait_on_bit+0x68/0x70) from [<c03e5e88>] (dvb_usb_fe_sleep+0xf4/0xfc)
      [  241.050618] [<c03e5e88>] (dvb_usb_fe_sleep+0xf4/0xfc) from [<c03b4b74>] (dvb_frontend_thread+0x124/0x4e8)
      [  241.060164] [<c03b4b74>] (dvb_frontend_thread+0x124/0x4e8) from [<c0049690>] (kthread+0xa4/0xb0)
      [  241.068929] [<c0049690>] (kthread+0xa4/0xb0) from [<c0009118>] (ret_from_fork+0x14/0x3c)
      
      Fix it by calling dvb_usbv2_adapter_frontend_exit() latter.
      
      Test enviroment: odroidx2 + Hauppauge(WinTV-Aero-M)
      Signed-off-by: default avatarChangbing Xiong <cb.xiong@samsung.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
      7a0af6ed
  2. 26 Aug, 2014 30 commits