Skip to content
  1. Mar 07, 2015
    • Mathias Nyman's avatar
      xhci: Workaround for PME stuck issues in Intel xhci · b8cb91e0
      Mathias Nyman authored
      
      
      The xhci in Intel Sunrisepoint and Cherryview platforms need a driver
      workaround for a Stuck PME that might either block PME events in suspend,
      or create spurious PME events preventing runtime suspend.
      
      Workaround is to clear a internal PME flag, BIT(28) in a vendor specific
      PMCTRL register at offset 0x80a4, in both suspend resume callbacks
      
      Without this, xhci connected usb devices might never be able to wake up the
      system from suspend, or prevent device from going to suspend (xhci d3)
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b8cb91e0
    • Aleksander Morgado's avatar
      xhci: fix reporting of 0-sized URBs in control endpoint · 45ba2154
      Aleksander Morgado authored
      
      
      When a control transfer has a short data stage, the xHCI controller generates
      two transfer events: a COMP_SHORT_TX event that specifies the untransferred
      amount, and a COMP_SUCCESS event. But when the data stage is not short, only the
      COMP_SUCCESS event occurs. Therefore, xhci-hcd must set urb->actual_length to
      urb->transfer_buffer_length while processing the COMP_SUCCESS event, unless
      urb->actual_length was set already by a previous COMP_SHORT_TX event.
      
      The driver checks this by seeing whether urb->actual_length == 0, but this alone
      is the wrong test, as it is entirely possible for a short transfer to have an
      urb->actual_length = 0.
      
      This patch changes the xhci driver to rely on a new td->urb_length_set flag,
      which is set to true when a COMP_SHORT_TX event is received and the URB length
      updated at that stage.
      
      This fixes a bug which affected the HSO plugin, which relies on URBs with
      urb->actual_length == 0 to halt re-submitting the RX URB in the control
      endpoint.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAleksander Morgado <aleksander@aleksander.es>
      Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      45ba2154
  2. Mar 05, 2015
    • Greg Kroah-Hartman's avatar
      Merge tag 'usb-serial-4.0-rc3' of... · d3d53894
      Greg Kroah-Hartman authored
      
      Merge tag 'usb-serial-4.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
      
      Johan writes:
      
      USB-serial fixes for v4.0-rc3
      
      Here are a few fixes for reported problems including a usb-debug device
      buffer overflow, potential use-after-free on failed probe, and a couple
      of issues with the USB console.
      
      Some new device IDs are also added.
      
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      d3d53894
  3. Mar 03, 2015
  4. Mar 02, 2015
    • Nicolas PLANEL's avatar
      USB: ch341: set tty baud speed according to tty struct · aa91def4
      Nicolas PLANEL authored
      
      
      The ch341_set_baudrate() function initialize the device baud speed
      according to the value on priv->baud_rate. By default the ch341_open() set
      it to a hardcoded value (DEFAULT_BAUD_RATE 9600). Unfortunately, the
      tty_struct is not initialized with the same default value. (usually 56700)
      
      This means that the tty_struct and the device baud rate generator are not
      synchronized after opening the port.
      
      Fixup is done by calling ch341_set_termios() if tty exist.
      Remove unnecessary variable priv->baud_rate setup as it's already done by
      ch341_port_probe().
      Remove unnecessary call to ch341_set_{handshake,baudrate}() in
      ch341_open() as there already called in ch341_configure() and
      ch341_set_termios()
      
      Signed-off-by: default avatarNicolas PLANEL <nicolas.planel@enovance.com>
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      aa91def4
  5. Feb 27, 2015
  6. Feb 25, 2015
  7. Feb 23, 2015
    • Andrzej Pietrasiewicz's avatar
      usb: gadget: configfs: don't NUL-terminate (sub)compatible ids · a0456399
      Andrzej Pietrasiewicz authored
      The "Extended Compat ID OS Feature Descriptor Specification" does not
      require the (sub)compatible ids to be NUL-terminated, because they
      are placed in a fixed-size buffer and only unused parts of it should
      contain NULs. If the buffer is fully utilized, there is no place for NULs.
      
      Consequently, the code which uses desc->ext_compat_id never expects the
      data contained to be NUL terminated.
      
      If the compatible id is stored after sub-compatible id, and the compatible
      id is full length (8 bytes), the (useless) NUL terminator overwrites the
      first byte of the sub-compatible id.
      
      If the sub-compatible id is full length (8 bytes), the (useless) NUL
      terminator ends up out of the buffer. The situation can happen in the RNDIS
      function, where the buffer is a part of struct f_rndis_opts. The next
      member of struct f_rndis_opts is a mutex, so its first byte gets
      overwritten. The said byte is a part of a mutex'es member which contains
      the information on whether the muext is locked or not. This can lead to a
      deadlock, because, in a configfs-composed gadget when a function is linked
      into a configuration with config_usb_cfg_link(), usb_get_function()
      is called, which then calls rndis_alloc(), which tries locking the same
      mutex and (wrongly) finds it already locked.
      
      This patch eliminates NUL terminating of the (sub)compatible id.
      
      Cc: <stable@vger.kernel.org> # v3.16+
      Fixes: da424314
      
      : "usb: gadget: configfs: OS Extended Compatibility descriptors support"
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarAndrzej Pietrasiewicz <andrzej.p@samsung.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      a0456399
    • George Cherian's avatar
      usb: dwc3: dwc3-omap: Fix disable IRQ · 96e5d312
      George Cherian authored
      In the wrapper the IRQ disable should be done by writing 1's to the
      IRQ*_CLR register. Existing code is broken because it instead writes
      zeros to IRQ*_SET register.
      
      Fix this by adding functions dwc3_omap_write_irqmisc_clr() and
      dwc3_omap_write_irq0_clr() which do the right thing.
      
      Fixes: 72246da4
      
       ("usb: Introduce DesignWare USB3 DRD Driver")
      Cc: <stable@vger.kernel.org> # v3.2+
      Signed-off-by: default avatarGeorge Cherian <george.cherian@ti.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      96e5d312
    • Lad, Prabhakar's avatar
      usb: gadget: function: uvc_v4l2.c: fix sparse warnings · 1f754ef1
      Lad, Prabhakar authored
      
      
      this patch fixes following sparse warnings:
      
      uvc_v4l2.c:264:29: warning: symbol 'uvc_v4l2_ioctl_ops' was not declared. Should it be static?
      uvc_v4l2.c:355:29: warning: symbol 'uvc_v4l2_fops' was not declared. Should it be static?
      
      Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: default avatarLad, Prabhakar <prabhakar.csengg@gmail.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      1f754ef1
    • Lad, Prabhakar's avatar
      usb: gadget: gadgetfs: fix sparse warnings · 2b87cd24
      Lad, Prabhakar authored
      
      
      this patch fixes following sparse warnings:
      
      g_ffs.c:136:3: warning: symbol 'gfs_configurations' was not declared. Should it be static?
      g_ffs.c:281:16: warning: Using plain integer as NULL pointer
      
      Signed-off-by: default avatarLad, Prabhakar <prabhakar.csengg@gmail.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      2b87cd24
    • Lad, Prabhakar's avatar
      usb: gadget: function: uvc: fix sparse warnings · 70685711
      Lad, Prabhakar authored
      
      
      this patch fixes following sparse warnings:
      
      uvc_video.c:283:5: warning: symbol 'uvcg_video_pump' was not declared. Should it be static?
      uvc_video.c:342:5: warning: symbol 'uvcg_video_enable' was not declared. Should it be static?
      uvc_video.c:381:5: warning: symbol 'uvcg_video_init' was not declared. Should it be static?
      
      Signed-off-by: default avatarLad, Prabhakar <prabhakar.csengg@gmail.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      70685711
    • Lad, Prabhakar's avatar
      usb: gadget: function: f_sourcesink: fix sparse warning · fcaddc5d
      Lad, Prabhakar authored
      
      
      this patch fixes following sparse warnings:
      
      f_sourcesink.c:347:34: warning: symbol 'ss_int_source_comp_desc' was not declared. Should it be static?
      f_sourcesink.c:365:34: warning: symbol 'ss_int_sink_comp_desc' was not declared. Should it be static?
      
      Signed-off-by: default avatarLad, Prabhakar <prabhakar.csengg@gmail.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      fcaddc5d
    • Lad, Prabhakar's avatar
      usb: gadget: function: f_uac2: fix sparse warnings · ef16e7c8
      Lad, Prabhakar authored
      
      
      this patch fixes following sparse warnings:
      f_uac2.c:57:12: warning: symbol 'uac2_name' was not declared. Should it be static?
      f_uac2.c:637:36: warning: symbol 'in_clk_src_desc' was not declared. Should it be static?
      f_uac2.c:649:36: warning: symbol 'out_clk_src_desc' was not declared. Should it be static?
      f_uac2.c:661:39: warning: symbol 'usb_out_it_desc' was not declared. Should it be static?
      f_uac2.c:675:39: warning: symbol 'io_in_it_desc' was not declared. Should it be static?
      f_uac2.c:689:40: warning: symbol 'usb_in_ot_desc' was not declared. Should it be static?
      f_uac2.c:703:40: warning: symbol 'io_out_ot_desc' was not declared. Should it be static?
      f_uac2.c:716:34: warning: symbol 'ac_hdr_desc' was not declared. Should it be static?
      f_uac2.c:754:34: warning: symbol 'as_out_hdr_desc' was not declared. Should it be static?
      f_uac2.c:767:38: warning: symbol 'as_out_fmt1_desc' was not declared. Should it be static?
      f_uac2.c:775:32: warning: symbol 'fs_epout_desc' was not declared. Should it be static?
      f_uac2.c:785:32: warning: symbol 'hs_epout_desc' was not declared. Should it be static?
      f_uac2.c:831:34: warning: symbol 'as_in_hdr_desc' was not declared. Should it be static?
      f_uac2.c:844:38: warning: symbol 'as_in_fmt1_desc' was not declared. Should it be static?
      f_uac2.c:852:32: warning: symbol 'fs_epin_desc' was not declared. Should it be static?
      f_uac2.c:862:32: warning: symbol 'hs_epin_desc' was not declared. Should it be static?
      f_uac2.c:1566:21: warning: symbol 'afunc_alloc' was not declared. Should it be static?
      
      Signed-off-by: default avatarLad, Prabhakar <prabhakar.csengg@gmail.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      ef16e7c8
    • Lad, Prabhakar's avatar
      usb: gadget: function: f_hid: fix sparse warning · 7a3cc461
      Lad, Prabhakar authored
      
      
      this patch fixes following sparse warning:
      f_hid.c:572:30: warning: symbol 'f_hidg_fops' was not declared. Should it be static?
      
      Signed-off-by: default avatarLad, Prabhakar <prabhakar.csengg@gmail.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      7a3cc461
    • Nicholas Mc Guire's avatar
      usb: isp1760: use msecs_to_jiffies for time conversion · 4d3db7d7
      Nicholas Mc Guire authored
      
      
      This is only an API consolidation and should make things more readable
      it replaces var * HZ / 1000 by msecs_to_jiffies(var).
      
      Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: default avatarNicholas Mc Guire <hofrat@osadl.org>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      4d3db7d7
    • Tony Lindgren's avatar
      usb: musb: Fix getting a generic phy for musb_dsps · bb90600d
      Tony Lindgren authored
      
      
      We still have a combination of legacy phys and generic phys in
      use so we need to support both types of phy for musb_dsps.c.
      
      Cc: Brian Hutchinson <b.hutchman@gmail.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      bb90600d
    • Arnd Bergmann's avatar
      usb: renesas: fix extcon dependency · eed97ef3
      Arnd Bergmann authored
      
      
      The renesas usbhs driver calls extcon_get_edev_by_phandle(), which
      is defined in drivers/extcon/extcon-class.c, and that can be a
      loadable module. If the extcon-class support is disabled, usbhs
      will work correctly for all devices that do not need extcon.
      
      However, if extcon-class is a loadable module, and usbhs is
      built-in, the kernel fails to link. In order to solve that,
      we need a Kconfig dependency that allows extcon to be disabled
      but does not allow usbhs built-in if extcon is a module.
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      eed97ef3
    • Tony Lindgren's avatar
      usb: musb: Fix use for of_property_read_bool for disabled multipoint · 606bf4d5
      Tony Lindgren authored
      
      
      The value for the multipoint dts property is ignored when parsing with
      of_property_read_bool, so we currently have multipoint always set as 1
      even if value 0 is specified in the dts file.
      
      Let's fix this to read the value too instead of just the property like
      the binding documentation says as otherwise MUSB will fail to work
      on devices with Mentor configuration that does not support multipoint.
      
      Cc: Brian Hutchinson <b.hutchman@gmail.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      606bf4d5
    • Felipe Balbi's avatar
      usb: musb: core: add pm_runtime_irq_safe() · 3e43a072
      Felipe Balbi authored
      
      
      We need a pm_runtime_get_sync() call from
      within musb_gadget_pullup() to make sure
      registers are accessible at that time.
      
      The problem is that musb_gadget_pullup() is
      called with IRQs disabled and, because of that,
      we need to tell pm_runtime that this pm_runtime_get_sync()
      is IRQ safe.
      
      We can simply add pm_runtime_irq_safe(), however, because
      we need to make our read/write accessor function pointers
      have been initialized before trying to use them. This means
      that all pm_runtime initialization for musb_core needs to
      be moved down so that when we call pm_runtime_irq_safe(),
      the pm_runtime_get_sync() that it calls on the parent, won't
      cause a crash due to NULL musb_read/write accessors.
      
      Reported-by: default avatarPali Rohár <pali.rohar@gmail.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      3e43a072
    • Felipe Balbi's avatar
      usb: gadget: function: phonet: balance usb_ep_disable calls · 9ec36f7f
      Felipe Balbi authored
      
      
      f_phonet's ->set_alt() method will call usb_ep_disable()
      potentially on an endpoint which is already disabled. That's
      something the gadget/function driver must guarantee that it's
      always balanced.
      
      In order to balance the calls, just make sure the endpoint
      was enabled before by means of checking the validity of
      driver_data.
      
      Reported-by: default avatarPali Rohár <pali.rohar@gmail.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      9ec36f7f
    • George Cherian's avatar
      usb: musb: musb_host: Enable HCD_BH flag to handle urb return in bottom half · 20357720
      George Cherian authored
      
      
      Enable HCD_BH flag for musb host controller driver.
      This improves the MSC/UVC through put. With this enabled
      even 640x480@30fps webcam streaming is also supported.
      
      Signed-off-by: default avatarGeorge Cherian <george.cherian@ti.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      20357720
    • Linus Torvalds's avatar
      Linux 4.0-rc1 · c517d838
      Linus Torvalds authored
      .. after extensive statistical analysis of my G+ polling, I've come to
      the inescapable conclusion that internet polls are bad.
      
      Big surprise.
      
      But "Hurr durr I'ma sheep" trounced "I like online polls" by a 62-to-38%
      margin, in a poll that people weren't even supposed to participate in.
      Who can argue with solid numbers like that? 5,796 votes from people who
      can't even follow the most basic directions?
      
      In contrast, "v4.0" beat out "v3.20" by a slimmer margin of 56-to-44%,
      but with a total of 29,110 votes right now.
      
      Now, arguably, that vote spread is only about 3,200 votes, which is less
      than the almost six thousand votes that the "please ignore" poll got, so
      it could be considered noise.
      
      But hey, I asked, so I'll honor the votes.
      v4.0-rc1
      c517d838
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · feaf2229
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "Ext4 bug fixes.
      
        We also reserved code points for encryption and read-only images (for
        which the implementation is mostly just the reserved code point for a
        read-only feature :-)"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: fix indirect punch hole corruption
        ext4: ignore journal checksum on remount; don't fail
        ext4: remove duplicate remount check for JOURNAL_CHECKSUM change
        ext4: fix mmap data corruption in nodelalloc mode when blocksize < pagesize
        ext4: support read-only images
        ext4: change to use setup_timer() instead of init_timer()
        ext4: reserve codepoints used by the ext4 encryption feature
        jbd2: complain about descriptor block checksum errors
      feaf2229