1. 23 Jul, 2019 36 commits
  2. 22 Jul, 2019 4 commits
    • Jan Pieter van Woerkom's avatar
      media: dvbsky: add support for Mygica T230C v2 · 66193b24
      Jan Pieter van Woerkom authored
      Adds support for the "Mygica T230C v2" to the dvbsky driver.
      Signed-off-by: default avatarJan Pieter van Woerkom <jp@jpvw.nl>
      Tested-by: default avatarFrank Rysanek <Frantisek.Rysanek@post.cz>
      Signed-off-by: default avatarSean Young <sean@mess.org>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
      66193b24
    • Jan Pieter van Woerkom's avatar
      media: si2168: add support for Mygica T230C v2 · bc28d36b
      Jan Pieter van Woerkom authored
      The T230C v2 hardware needs a mode of the si2168 chip to be
      set for which the si2168 driver previously had no support.
      This patch uses a specific measure to configure this on the
      T230C v2 hardware only - see the flag passed via the ts_mode
      attribute and its dependency on USB_PID_MYGICA_T230C2.
      Signed-off-by: default avatarJan Pieter van Woerkom <jp@jpvw.nl>
      Signed-off-by: default avatarSean Young <sean@mess.org>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
      bc28d36b
    • A Sun's avatar
      media: mceusb: USB reset device following USB clear halt error · 19d41a28
      A Sun authored
      This patch schedules a USB reset device call following a USB clear
      halt error. The issues solved, and patch implementation,
      are similar to those found in
        drivers/hid/usbhid/hid-core.c.
      
      As seen on very rare occasions approximately one time per month
      (mceusb device 2304:0225 in this sample)
        Jul 27 2018 15:09:39
        [59388.696941] mceusb 1-1.1.2:1.0: Error: urb status = -32 (RX HALT)
        [59388.698838] mceusb 1-1.1.2:1.0: rx clear halt error -32
      the device can get into RX or TX HALT state where usb_clear_halt()
      also fails and also returns -EPIPE (HALT/STALL). After which, all
      further mceusb device control and data I/O always fail with HALT/STALL.
      Subsequently, the entire mceusb device no longer functions.
      Cause and problem replication conditions remain unknown.
      
      Further troubleshooting reveals usb_reset_device()
      restores mceusb device operation.
      
      Patch test 1:
      
      Hot unplugging the mceusb device triggers USB RX HALT and
      USB clear halt errors. A mceusb_dev_disconnect() call follows unplug.
      This patch's reset device call invokes an extra
        mceusb_dev_probe()
        mceusb_dev_disconnect()
      cycle, before the mceusb driver detaches.
      The additional probe/disconnect verifies the patch's device reset
      code executed.
      
      But note this patch is for USB clear halt error cases not caused by
      unplugging the mceusb device.
      
      Patch test 2:
      
      Simulate a RX HALT and a clear halt error with instrumented code in
      the driver.
        Jul 12 2019 19:41:18
        [522745.263104] mceusb 1-1.3:1.0: set rx halt retval, 0
        [522745.263943] mceusb 1-1.3:1.0: Error: rx urb status = -32 (RX HALT)
        [522745.263970] mceusb 1-1.3:1.0: kevent 1 scheduled
        [522745.264016] mceusb 1-1.3:1.0: kevent handler called (flags 0x2)
        [522745.272883] mceusb 1-1.3:1.0: rx clear halt status = 0
        [522745.272917] mceusb 1-1.3:1.0: stuck RX HALT state requires USB Reset Device to clear
        [522745.273005] mceusb 1-1.3:1.0: mceusb_dev_disconnect called
        [522745.702815] usb 1-1.3: reset full-speed USB device number 14 using dwc_otg
        [522745.836812] mceusb 1-1.3:1.0: mceusb_dev_probe called
        [522745.836823] mceusb 1-1.3:1.0: acceptable bulk inbound endpoint found
        [522745.836832] mceusb 1-1.3:1.0: acceptable bulk outbound endpoint found
        ...
      The result matches what is expected when the device gets into
      a real rx clear halt error case by itself.
      This is the same sequence of messages when manually invoking
      the ./usbreset command line utility with an unpatched mceusb driver.
      Signed-off-by: default avatarA Sun <as1033x@comcast.net>
      Signed-off-by: default avatarSean Young <sean@mess.org>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
      19d41a28
    • Arnd Bergmann's avatar
      media: dib0700: fix link error for dibx000_i2c_set_speed · 765bb861
      Arnd Bergmann authored
      When CONFIG_DVB_DIB9000 is disabled, we can still compile code that
      now fails to link against dibx000_i2c_set_speed:
      
      drivers/media/usb/dvb-usb/dib0700_devices.o: In function `dib01x0_pmu_update.constprop.7':
      dib0700_devices.c:(.text.unlikely+0x1c9c): undefined reference to `dibx000_i2c_set_speed'
      
      The call sites are both through dib01x0_pmu_update(), which gets passed
      an 'i2c' pointer from dib9000_get_i2c_master(), which has returned
      NULL. Checking this pointer seems to be a good idea anyway, and it avoids
      the link failure in most cases.
      
      Sean Young found another case that is not fixed by that, where certain
      gcc versions leave an unused function in place that causes the link error,
      but adding an explict IS_ENABLED() check also solves this.
      
      Fixes: b7f54910 ("V4L/DVB (4647): Added module for DiB0700 based devices")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarSean Young <sean@mess.org>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
      765bb861