1. 21 Oct, 2015 1 commit
    • Anand Moon's avatar
      usb: dwc3-exynos: Make provision for vdd regulators · a719a6f9
      Anand Moon authored
      From: Vivek Gautam <gautam.vivek@samsung.com>
      
      Facilitate getting required 3.3V and 1.0V VDD supply for
      DWC3 controller on Exynos.
      
      certain perripherals will now need to ensure that,
      they request VDD regulators in their drivers, and enable
      them so as to make them working.
      
      Change-Id: Ice38f24d7454110b089366fe1183cd3d36ad50bc
      Signed-off-by: 's avatarVivek Gautam <gautam.vivek@samsung.com>
      Cc: Anton Tikhomirov <av.tikhomirov@samsung.com>
      a719a6f9
  2. 14 Oct, 2015 1 commit
  3. 08 Oct, 2015 1 commit
    • Brian Kim's avatar
      ODROID-XU3/4: Clean up the compiler warning messages · 40072ad6
      Brian Kim authored
      This patch fix the routines caused to output the warning message in compile time as below:
      - gcc version: gcc version 4.9.2 20140904 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09)
      
      drivers/cpufreq/cpufreq_interactive.c: In function ‘show_target_loads’:
      drivers/cpufreq/cpufreq_interactive.c:805:6: warning: operation on ‘ret’ may be undefined [-Wsequence-point]
        ret += sprintf(buf + --ret, "\n");
            ^
      drivers/cpufreq/cpufreq_interactive.c: In function ‘show_above_hispeed_delay’:
      drivers/cpufreq/cpufreq_interactive.c:845:6: warning: operation on ‘ret’ may be undefined [-Wsequence-point]
        ret += sprintf(buf + --ret, "\n");
            ^
      drivers/devfreq/exynos5422_bus_int.c: In function ‘exynos5_int_busfreq_target’:
      drivers/devfreq/exynos5422_bus_int.c:945:6: warning: unused variable ‘i’ [-Wunused-variable]
        int i, target_idx = LV_0;
            ^
      drivers/devfreq/exynos5422_bus_int.c: In function ‘exynos5_devfreq_int_probe’:
      drivers/devfreq/exynos5422_bus_int.c:1241:6: warning: unused variable ‘i’ [-Wunused-variable]
        int i, index = -1;
            ^
      drivers/devfreq/exynos5422_bus_int.c: In function ‘int_show_state’:
      drivers/devfreq/exynos5422_bus_int.c:1121:10: warning: iteration 1u invokes undefined behavior [-Waggressive-loop-optimizations]
         len += snprintf(buf + len, write_cnt, "%ld %llu\n", int_bus_opp_list[i].freq,
                ^
      drivers/devfreq/exynos5422_bus_int.c:1120:2: note: containing loop
        for (i = LV_0; i < LV_END; i++)
        ^
      sound/soc/samsung/lpass.c: In function ‘lpass_proc_show’:
      sound/soc/samsung/lpass.c:718:5: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘void *’ [-Wformat=]
           ar->reg, ar->val);
           ^
      In file included from backports/drivers/net/wireless/ath/ath10k/debug.c:19:0:
      backports/backport-include/linux/debugfs.h:11:10: warning: ‘struct device’ declared inside parameter list
                void *data));
                ^
      backports/backport-include/linux/debugfs.h:11:10: warning: its scope is only this definition or declaration, which is probably not what you want
      In file included from backports/drivers/net/wireless/ath/wcn36xx/debug.c:19:0:
      backports/backport-include/linux/debugfs.h:11:10: warning: ‘struct device’ declared inside parameter list
                void *data));
                ^
      backports/backport-include/linux/debugfs.h:11:10: warning: its scope is only this definition or declaration, which is probably not what you want
      backports/drivers/realtek/8192cu/hal/rtl8192c/rtl8192c_rf6052.c: In function ‘PHY_RFShadowRefresh’:
      backports/drivers/realtek/8192cu/hal/rtl8192c/rtl8192c_rf6052.c:1020:37: warning: iteration 63u invokes undefined behavior [-Waggressive-loop-optimizations]
          RF_Shadow[eRFPath][Offset].Value = 0;
                                           ^
      backports/drivers/realtek/8192cu/hal/rtl8192c/rtl8192c_rf6052.c:1018:3: note: containing loop
         for (Offset = 0; Offset <= RF6052_MAX_REG; Offset++)
         ^
      drivers/gpu/drm/exynos/exynos_drm_drv.c: In function ‘exynos_drm_init’:
      drivers/gpu/drm/exynos/exynos_drm_drv.c:768:1: warning: label ‘err_unregister_pd’ defined but not used [-Wunused-label]
       err_unregister_pd:
       ^
      net/core/sysctl_net_core.c:24:12: warning: ‘one’ defined but not used [-Wunused-variable]
       static int one = 1;
                  ^
      drivers/gpu/drm/exynos/exynos_hdmi.c: In function ‘hdmi_hpd_enable’:
      drivers/gpu/drm/exynos/exynos_hdmi.c:233:27: warning: passing argument 3 of ‘kstrtoul’ from incompatible pointer type
           if(kstrtoul(line, 10, &gEnableHPD) != 0)    gEnableHPD = true;
                                 ^
      In file included from include/drm/drmP.h:45:0,
                       from drivers/gpu/drm/exynos/exynos_hdmi.c:17:
      include/linux/kernel.h:255:32: note: expected ‘long unsigned int *’ but argument is of type ‘unsigned int *’
       static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res)
                                      ^
      drivers/gpu/drm/exynos/exynos_hdmi.c: At top level:
      drivers/gpu/drm/exynos/exynos_hdmi.c:1985:13: warning: ‘hdmiphy_poweroff’ defined but not used [-Wunused-function]
       static void hdmiphy_poweroff(struct hdmi_context *hdata)
                   ^
      drivers/hardkernel/ioboard-spi.c:223:12: warning: ‘ioboard_spi_read_memory’ defined but not used [-Wunused-function]
       static int ioboard_spi_read_memory              (struct spi_device *spi, unsigned int addr, unsigned char *rdata, unsigned int size)
                  ^
      drivers/hardkernel/ioboard-spi.c:329:13: warning: ‘ioboard_spi_test’ defined but not used [-Wunused-function]
       static void ioboard_spi_test        (struct spi_device *spi)
                   ^
      drivers/hid/hid-appleir.c:347:22: warning: initialization from incompatible pointer type
        .input_configured = appleir_input_configured,
                            ^
      drivers/hid/hid-appleir.c:347:22: warning: (near initialization for ‘appleir_driver.input_configured’)
      In file included from backports/net/wireless/core.c:16:0:
      backports/backport-include/linux/debugfs.h:11:10: warning: ‘struct device’ declared inside parameter list
                void *data));
                ^
      backports/backport-include/linux/debugfs.h:11:10: warning: its scope is only this definition or declaration, which is probably not what you want
      drivers/hid/hid-magicmouse.c:590:22: warning: initialization from incompatible pointer type
        .input_configured = magicmouse_input_configured,
                            ^
      drivers/hid/hid-magicmouse.c:590:22: warning: (near initialization for ‘magicmouse_driver.input_configured’)
      drivers/hid/hid-ntrig.c:1026:22: warning: initialization from incompatible pointer type
        .input_configured = ntrig_input_configured,
                            ^
      drivers/hid/hid-ntrig.c:1026:22: warning: (near initialization for ‘ntrig_driver.input_configured’)
      backports/drivers/realtek/rtl8192du/os_dep/ioctl_cfg80211.c:3580:17: warning: initialization from incompatible pointer type
        .get_station = cfg80211_rtw_get_station,
                       ^
      backports/drivers/realtek/rtl8192du/os_dep/ioctl_cfg80211.c:3580:17: warning: (near initialization for ‘rtw_cfg80211_ops.get_station’)
      backports/drivers/realtek/rtl8192du/os_dep/ioctl_cfg80211.c:3608:17: warning: initialization from incompatible pointer type
        .add_station = cfg80211_rtw_add_station,
                       ^
      backports/drivers/realtek/rtl8192du/os_dep/ioctl_cfg80211.c:3608:17: warning: (near initialization for ‘rtw_cfg80211_ops.add_station’)
      backports/drivers/realtek/rtl8192du/os_dep/ioctl_cfg80211.c:3609:17: warning: initialization from incompatible pointer type
        .del_station = cfg80211_rtw_del_station,
                       ^
      backports/drivers/realtek/rtl8192du/os_dep/ioctl_cfg80211.c:3609:17: warning: (near initialization for ‘rtw_cfg80211_ops.del_station’)
      backports/drivers/realtek/rtl8192du/os_dep/ioctl_cfg80211.c:3610:20: warning: initialization from incompatible pointer type
        .change_station = cfg80211_rtw_change_station,
                          ^
      backports/drivers/realtek/rtl8192du/os_dep/ioctl_cfg80211.c:3610:20: warning: (near initialization for ‘rtw_cfg80211_ops.change_station’)
      backports/drivers/realtek/rtl8192du/os_dep/ioctl_cfg80211.c:3617:13: warning: initialization from incompatible pointer type
        .mgmt_tx = cfg80211_rtw_mgmt_tx,
                   ^
      backports/drivers/realtek/rtl8192du/os_dep/ioctl_cfg80211.c:3617:13: warning: (near initialization for ‘rtw_cfg80211_ops.mgmt_tx’)
      net/rfkill/rfkill-regulator.c: In function ‘rfkill_regulator_set_block’:
      net/rfkill/rfkill-regulator.c:43:4: warning: ignoring return value of ‘regulator_enable’, declared with attribute warn_unused_result [-Wunused-result]
          regulator_enable(rfkill_data->vcc);
          ^
      drivers/media/platform/exynos/mfc/s5p_mfc.c:2108:28: warning: ‘s5p_mfc_dec_drm_videodev’ defined but not used [-Wunused-variable]
       static struct video_device s5p_mfc_dec_drm_videodev = {
                                  ^
      drivers/media/platform/exynos/mfc/s5p_mfc.c:2115:28: warning: ‘s5p_mfc_enc_drm_videodev’ defined but not used [-Wunused-variable]
       static struct video_device s5p_mfc_enc_drm_videodev = {
                                  ^
      fs/binfmt_misc.c: In function ‘parse_command.part.1’:
      fs/binfmt_misc.c:405:7: warning: array subscript is above array bounds [-Warray-bounds]
        if (s[count-1] == '\n')
             ^
      drivers/usb/host/xhci.c: In function ‘xhci_free_dev’:
      drivers/usb/host/xhci.c:3506:17: warning: unused variable ‘dev’ [-Wunused-variable]
        struct device *dev = hcd->self.controller;
                       ^
      drivers/usb/host/xhci.c: In function ‘xhci_alloc_dev’:
      drivers/usb/host/xhci.c:3592:17: warning: unused variable ‘dev’ [-Wunused-variable]
        struct device *dev = hcd->self.controller;
                       ^
      drivers/usb/host/xhci-plat.c: In function ‘xhci_plat_probe’:
      drivers/usb/host/xhci-plat.c:156:4: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
          extern void samsung_usb3phy_retune(int);
          ^
      arch/arm/boot/compressed/atags_to_fdt.c: In function ‘merge_fdt_bootargs’:
      arch/arm/boot/compressed/atags_to_fdt.c:96:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=]
       }
       ^
      
      Change-Id: I646d4470fecdef67da42bcff549a2dc3632c68cd
      40072ad6
  4. 22 Jun, 2015 2 commits
  5. 06 Jun, 2015 8 commits
    • Krzysztof Opasiak's avatar
      usb: gadget: configfs: Fix interfaces array NULL-termination · e83c5792
      Krzysztof Opasiak authored
      commit 903124fe1aa284f61745a9dd4fbfa0184e569fff upstream.
      
      memset() to 0 interfaces array before reusing
      usb_configuration structure.
      
      This commit fix bug:
      
      ln -s functions/acm.1 configs/c.1
      ln -s functions/acm.2 configs/c.1
      ln -s functions/acm.3 configs/c.1
      echo "UDC name" > UDC
      echo "" > UDC
      rm configs/c.1/acm.*
      rmdir functions/*
      mkdir functions/ecm.usb0
      ln -s functions/ecm.usb0 configs/c.1
      echo "UDC name" > UDC
      
      [   82.220969] Unable to handle kernel NULL pointer dereference at virtual address 00000000
      [   82.229009] pgd = c0004000
      [   82.231698] [00000000] *pgd=00000000
      [   82.235260] Internal error: Oops: 17 [#1] PREEMPT SMP ARM
      [   82.240638] Modules linked in:
      [   82.243681] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.0.0-rc2 #39
      [   82.249926] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
      [   82.256003] task: c07cd2f0 ti: c07c8000 task.ti: c07c8000
      [   82.261393] PC is at composite_setup+0xe3c/0x1674
      [   82.266073] LR is at composite_setup+0xf20/0x1674
      [   82.270760] pc : [<c03510d4>]    lr : [<c03511b8>]    psr: 600001d3
      [   82.270760] sp : c07c9df0  ip : c0806448  fp : ed8c9c9c
      [   82.282216] r10: 00000001  r9 : 00000000  r8 : edaae918
      [   82.287425] r7 : ed551cc0  r6 : 00007fff  r5 : 00000000  r4 : ed799634
      [   82.293934] r3 : 00000003  r2 : 00010002  r1 : edaae918  r0 : 0000002e
      [   82.300446] Flags: nZCv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
      [   82.307910] Control: 10c5387d  Table: 6bc1804a  DAC: 00000015
      [   82.313638] Process swapper/0 (pid: 0, stack limit = 0xc07c8210)
      [   82.319627] Stack: (0xc07c9df0 to 0xc07ca000)
      [   82.323969] 9de0:                                     00000000 c06e65f4 00000000 c07c9f68
      [   82.332130] 9e00: 00000067 c07c59ac 000003f7 edaae918 ed8c9c98 ed799690 eca2f140 200001d3
      [   82.340289] 9e20: ee79a2d8 c07c9e88 c07c5304 ffff55db 00010002 edaae810 edaae860 eda96d50
      [   82.348448] 9e40: 00000009 ee264510 00000007 c07ca444 edaae860 c0340890 c0827a40 ffff55e0
      [   82.356607] 9e60: c0827a40 eda96e40 ee264510 edaae810 00000000 edaae860 00000007 c07ca444
      [   82.364766] 9e80: edaae860 c0354170 c03407dc c033db4c edaae810 00000000 00000000 00000010
      [   82.372925] 9ea0: 00000032 c0341670 00000000 00000000 00000001 eda96e00 00000000 00000000
      [   82.381084] 9ec0: 00000000 00000032 c0803a23 ee1aa840 00000001 c005d54c 249e2450 00000000
      [   82.389244] 9ee0: 200001d3 ee1aa840 ee1aa8a0 ed84f4c0 00000000 c07c9f68 00000067 c07c59ac
      [   82.397403] 9f00: 00000000 c005d688 ee1aa840 ee1aa8a0 c07db4b4 c006009c 00000032 00000000
      [   82.405562] 9f20: 00000001 c005ce20 c07c59ac c005cf34 f002000c c07ca780 c07c9f68 00000057
      [   82.413722] 9f40: f0020000 413fc090 00000001 c00086b4 c000f804 60000053 ffffffff c07c9f9c
      [   82.421880] 9f60: c0803a20 c0011fc0 00000000 00000000 c07c9fb8 c001bee0 c07ca4f0 c057004c
      [   82.430040] 9f80: c07ca4fc c0803a20 c0803a20 413fc090 00000001 00000000 01000000 c07c9fb0
      [   82.438199] 9fa0: c000f800 c000f804 60000053 ffffffff 00000000 c0050e70 c0803bc0 c0783bd8
      [   82.446358] 9fc0: ffffffff ffffffff c0783664 00000000 00000000 c07b13e8 00000000 c0803e54
      [   82.454517] 9fe0: c07ca480 c07b13e4 c07ce40c 4000406a 00000000 40008074 00000000 00000000
      [   82.462689] [<c03510d4>] (composite_setup) from [<c0340890>] (s3c_hsotg_complete_setup+0xb4/0x418)
      [   82.471626] [<c0340890>] (s3c_hsotg_complete_setup) from [<c0354170>] (usb_gadget_giveback_request+0xc/0x10)
      [   82.481429] [<c0354170>] (usb_gadget_giveback_request) from [<c033db4c>] (s3c_hsotg_complete_request+0xcc/0x12c)
      [   82.491583] [<c033db4c>] (s3c_hsotg_complete_request) from [<c0341670>] (s3c_hsotg_irq+0x4fc/0x558)
      [   82.500614] [<c0341670>] (s3c_hsotg_irq) from [<c005d54c>] (handle_irq_event_percpu+0x50/0x150)
      [   82.509291] [<c005d54c>] (handle_irq_event_percpu) from [<c005d688>] (handle_irq_event+0x3c/0x5c)
      [   82.518145] [<c005d688>] (handle_irq_event) from [<c006009c>] (handle_fasteoi_irq+0xd4/0x18c)
      [   82.526650] [<c006009c>] (handle_fasteoi_irq) from [<c005ce20>] (generic_handle_irq+0x20/0x30)
      [   82.535242] [<c005ce20>] (generic_handle_irq) from [<c005cf34>] (__handle_domain_irq+0x6c/0xdc)
      [   82.543923] [<c005cf34>] (__handle_domain_irq) from [<c00086b4>] (gic_handle_irq+0x2c/0x6c)
      [   82.552256] [<c00086b4>] (gic_handle_irq) from [<c0011fc0>] (__irq_svc+0x40/0x74)
      [   82.559716] Exception stack(0xc07c9f68 to 0xc07c9fb0)
      [   82.564753] 9f60:                   00000000 00000000 c07c9fb8 c001bee0 c07ca4f0 c057004c
      [   82.572913] 9f80: c07ca4fc c0803a20 c0803a20 413fc090 00000001 00000000 01000000 c07c9fb0
      [   82.581069] 9fa0: c000f800 c000f804 60000053 ffffffff
      [   82.586113] [<c0011fc0>] (__irq_svc) from [<c000f804>] (arch_cpu_idle+0x30/0x3c)
      [   82.593491] [<c000f804>] (arch_cpu_idle) from [<c0050e70>] (cpu_startup_entry+0x128/0x1a4)
      [   82.601740] [<c0050e70>] (cpu_startup_entry) from [<c0783bd8>] (start_kernel+0x350/0x3bc)
      [   82.609890] Code: 0a000002 e3530005 05975010 15975008 (e5953000)
      [   82.615965] ---[ end trace f57d5f599a5f1bfa ]---
      
      Most of kernel code assume that interface array in
      struct usb_configuration is NULL terminated.
      
      When gadget is composed with configfs configuration
      structure may be reused for different functions set.
      
      This bug happens because purge_configs_funcs() sets
      only next_interface_id to 0. Interface array still
      contains pointers to already freed interfaces. If in
      second try we add less interfaces than earlier we
      may access unallocated memory when trying to get
      interface descriptors.
      Signed-off-by: 's avatarKrzysztof Opasiak <k.opasiak@samsung.com>
      Signed-off-by: 's avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e83c5792
    • Hans de Goede's avatar
      usb-storage: Add NO_WP_DETECT quirk for Lacie 059f:0651 devices · 7f7c38c0
      Hans de Goede authored
      commit 172115090f5e739660b97694618a2ba86457063a upstream.
      
      Without this flag some versions of these enclosures do not work.
      Reported-and-tested-by: 's avatarChristian Schaller <cschalle@redhat.com>
      Signed-off-by: 's avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7f7c38c0
    • Mark Edwards's avatar
      USB: cp210x: add ID for KCF Technologies PRN device · 59846d31
      Mark Edwards authored
      commit c735ed74d83f8ecb45c4c4c95a16853c9c3c8157 upstream.
      
      Added the USB serial console device ID for KCF Technologies PRN device
      which has a USB port for its serial console.
      Signed-off-by: 's avatarMark Edwards <sonofaforester@gmail.com>
      Signed-off-by: 's avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      59846d31
    • Jason A. Donenfeld's avatar
      USB: pl2303: Remove support for Samsung I330 · e83388d8
      Jason A. Donenfeld authored
      commit 48ef23a4f686b1e4519d4193c20d26834ff810ff upstream.
      
      This phone is already supported by the visor driver.
      Signed-off-by: 's avatarJason A. Donenfeld <Jason@zx2c4.com>
      Fixes: 1da177e4 ("Linux-2.6.12-rc2")
      Signed-off-by: 's avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e83388d8
    • Jason A. Donenfeld's avatar
      USB: visor: Match I330 phone more precisely · d7493ce5
      Jason A. Donenfeld authored
      commit 82ee3aeb9295c5fc37fd2ddf20f13ac2b40ec97d upstream.
      
      Samsung has just released a portable USB3 SSD, coming in a very small
      and nice form factor. It's USB ID is 04e8:8001, which unfortunately is
      already used by the Palm Visor driver for the Samsung I330 phone cradle.
      Having pl2303 or visor pick up this device ID results in conflicts with
      the usb-storage driver, which handles the newly released portable USB3
      SSD.
      
      To work around this conflict, I've dug up a mailing list post [1] from a
      long time ago, in which a user posts the full USB descriptor
      information. The most specific value in this appears to be the interface
      class, which has value 255 (0xff). Since usb-storage requires an
      interface class of 0x8, I believe it's correct to disambiguate the two
      devices by matching on 0xff inside visor.
      
      [1] http://permalink.gmane.org/gmane.linux.usb.user/4264Signed-off-by: 's avatarJason A. Donenfeld <Jason@zx2c4.com>
      Fixes: 1da177e4 ("Linux-2.6.12-rc2")
      Signed-off-by: 's avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d7493ce5
    • Joe Lawrence's avatar
      xhci: gracefully handle xhci_irq dead device · 4c1c7ca5
      Joe Lawrence authored
      commit 948fa13504f80b9765d2b753691ab94c83a10341 upstream.
      
      If the xHCI host controller has died (ie, device removed) or suffered
      other serious fatal error (STS_FATAL), then xhci_irq should handle this
      condition with IRQ_HANDLED instead of -ESHUTDOWN.
      Signed-off-by: 's avatarJoe Lawrence <joe.lawrence@stratus.com>
      Signed-off-by: 's avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4c1c7ca5
    • Mathias Nyman's avatar
      xhci: Solve full event ring by increasing TRBS_PER_SEGMENT to 256 · 6d03a08b
      Mathias Nyman authored
      commit 18cc2f4cbbaf825a4fedcf2d60fd388d291e0a38 upstream.
      
      Our event ring consists of only one segment, and we risk filling
      the event ring in case we get isoc transfers with short intervals
      such as webcams that fill a TD every microframe (125us)
      
      With 64 TRB segment size one usb camera could fill the event ring in 8ms.
      A setup with several cameras and other devices can fill up the
      event ring as it is shared between all devices.
      This has occurred when uvcvideo queues 5 * 32TD URBs which then
      get cancelled when the video mode changes. The cancelled URBs are returned
      in the xhci interrupt context and blocks the interrupt handler from
      handling the new events.
      
      A full event ring will block xhci from scheduling traffic and affect all
      devices conneted to the xhci, will see errors such as Missed Service
      Intervals for isoc devices, and  and Split transaction errors for LS/FS
      interrupt devices.
      
      Increasing the TRB_PER_SEGMENT will also increase the default endpoint ring
      size, which is welcome as for most isoc transfer we had to dynamically
      expand the endpoint ring anyway to be able to queue the 5 * 32TDs uvcvideo
      queues.
      
      The default size used to be 64 TRBs per segment
      Signed-off-by: 's avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6d03a08b
    • Mathias Nyman's avatar
      xhci: fix isoc endpoint dequeue from advancing too far on transaction error · 8297f046
      Mathias Nyman authored
      commit d104d0152a97fade389f47635b73a9ccc7295d0b upstream.
      
      Isoc TDs usually consist of one TRB, sometimes two. When all goes well we
      receive only one success event for a TD, and move the dequeue pointer to
      the next TD.
      
      This fails if the TD consists of two TRBs and we get a transfer error
      on the first TRB, we will then see two events for that TD.
      
      Fix this by making sure the event we get is for the last TRB in that TD
      before moving the dequeue pointer to the next TD. This will resolve some
      of the uvc and dvb issues with the
      "ERROR Transfer event TRB DMA ptr not part of current TD" error message
      Signed-off-by: 's avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8297f046
  6. 13 May, 2015 2 commits
  7. 06 May, 2015 8 commits
  8. 19 Apr, 2015 3 commits
  9. 18 Mar, 2015 7 commits
  10. 06 Mar, 2015 3 commits
  11. 27 Jan, 2015 4 commits