1. 14 5月, 2014 3 次提交
  2. 22 4月, 2014 8 次提交
  3. 11 3月, 2014 1 次提交
  4. 09 3月, 2014 1 次提交
  5. 06 3月, 2014 1 次提交
  6. 05 3月, 2014 2 次提交
    • G
      usb: musb: USB_MUSB_DUAL_ROLE/USB_MUSB_GADGET should depend on HAS_DMA · 3f83e538
      Geert Uytterhoeven 提交于
      If NO_DMA=y:
      
          drivers/built-in.o: In function `txstate':
          musb_gadget.c:(.text+0x35955a): undefined reference to `dma_unmap_single'
          musb_gadget.c:(.text+0x35957e): undefined reference to `dma_sync_single_for_cpu'
          drivers/built-in.o: In function `musb_g_giveback':
          (.text+0x359672): undefined reference to `dma_mapping_error'
          drivers/built-in.o: In function `musb_g_giveback':
          (.text+0x3596ba): undefined reference to `dma_unmap_single'
          drivers/built-in.o: In function `musb_g_giveback':
          (.text+0x3596e0): undefined reference to `dma_sync_single_for_cpu'
          drivers/built-in.o: In function `rxstate':
          musb_gadget.c:(.text+0x3599d0): undefined reference to `dma_unmap_single'
          musb_gadget.c:(.text+0x3599f6): undefined reference to `dma_sync_single_for_cpu'
          drivers/built-in.o: In function `musb_gadget_queue':
          musb_gadget.c:(.text+0x35a8c0): undefined reference to `dma_map_single'
          musb_gadget.c:(.text+0x35a8d0): undefined reference to `dma_mapping_error'
          musb_gadget.c:(.text+0x35a906): undefined reference to `dma_sync_single_for_cpu'
          musb_gadget.c:(.text+0x35a9a0): undefined reference to `dma_unmap_single'
          musb_gadget.c:(.text+0x35a9c8): undefined reference to `dma_sync_single_for_cpu'
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      3f83e538
    • F
      usb: musb: avoid NULL pointer dereference · eee3f15d
      Felipe Balbi 提交于
      instead of relying on the otg pointer, which
      can be NULL in certain cases, we can use the
      gadget and host pointers we already hold inside
      struct musb.
      
      Cc: <stable@vger.kernel.org>
      Tested-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      eee3f15d
  7. 20 2月, 2014 2 次提交
  8. 19 2月, 2014 6 次提交
  9. 18 2月, 2014 4 次提交
    • F
      usb: musb: fix obex in g_nokia.ko causing kernel panic · 30a70b02
      Felipe Balbi 提交于
      phy_power_off() can, depending on the PHY being used,
      start I2C transactions which shouldn't happen in
      atomic context.
      
      Current call to phy_power_off() inside omap2430_runtime
      callbacks causes the following dump, as a fix, just don't
      power off the PHY in runtime.
      
      [   18.606414] [<c037eac0>] (__schedule+0x5c/0x50c) from [<c037d3bc>] (schedule_timeout+0x1f4/0x25c)
      [   18.623809] [<c037d3bc>] (schedule_timeout+0x1f4/0x25c) from [<c037f12c>] (wait_for_common+0xc8/0x1ac)
      [   18.649291] [<c037f12c>] (wait_for_common+0xc8/0x1ac) from [<c028c1c0>] (omap_i2c_xfer+0x338/0x488)
      [   18.674499] [<c028c1c0>] (omap_i2c_xfer+0x338/0x488) from [<c0288144>] (__i2c_transfer+0x40/0x74)
      [   18.692047] [<c0288144>] (__i2c_transfer+0x40/0x74) from [<c0288a2c>] (i2c_transfer+0x6c/0x90)
      [   18.709320] [<c0288a2c>] (i2c_transfer+0x6c/0x90) from [<c02351c8>] (regmap_i2c_read+0x48/0x68)
      [   18.726715] [<c02351c8>] (regmap_i2c_read+0x48/0x68) from [<c023161c>] (_regmap_raw_read+0x128/0x220)
      [   18.752685] [<c023161c>] (_regmap_raw_read+0x128/0x220) from [<c02317b4>] (regmap_raw_read+0xa0/0x130)
      [   18.779052] [<c02317b4>] (regmap_raw_read+0xa0/0x130) from [<c023193c>] (regmap_bulk_read+0xf8/0x16c)
      [   18.805694] [<c023193c>] (regmap_bulk_read+0xf8/0x16c) from [<c0238ea8>] (twl_i2c_read+0xa4/0xe0)
      [   18.823730] [<c0238ea8>] (twl_i2c_read+0xa4/0xe0) from [<c0274d34>] (__twl4030_phy_power.isra.12+0x1c/0x58)
      [   18.850921] [<c0274d34>] (__twl4030_phy_power.isra.12+0x1c/0x58) from [<c0274df0>]
      (twl4030_phy_power.part.14+0x80/0xc8)
      [   18.879699] [<c0274df0>] (twl4030_phy_power.part.14+0x80/0xc8) from [<c0274f9c>]
      (twl4030_set_suspend+0x54/0x1e8)
      [   18.908325] [<c0274f9c>] (twl4030_set_suspend+0x54/0x1e8) from [<c027c8c4>]
      (omap2430_runtime_resume+0x5c/0x64)
      [   18.937042] [<c027c8c4>] (omap2430_runtime_resume+0x5c/0x64) from [<c0225dd0>]
      (pm_generic_runtime_resume+0x2c/0x38)
      [   18.966461] [<c0225dd0>] (pm_generic_runtime_resume+0x2c/0x38) from [<c0229fe0>] (__rpm_callback+0x54/0x80)
      [   18.995117] [<c0229fe0>] (__rpm_callback+0x54/0x80) from [<c022a04c>] (rpm_callback+0x40/0x74)
      [   19.013610] [<c022a04c>] (rpm_callback+0x40/0x74) from [<c022b3c8>] (rpm_resume+0x448/0x63c)
      [   19.031921] [<c022b3c8>] (rpm_resume+0x448/0x63c) from [<c022b2e4>] (rpm_resume+0x364/0x63c)
      [   19.050140] [<c022b2e4>] (rpm_resume+0x364/0x63c) from [<c022b874>] (__pm_runtime_resume+0x48/0x74)
      [   19.077728] [<c022b874>] (__pm_runtime_resume+0x48/0x74) from [<c027b4fc>] (musb_gadget_pullup+0x1c/0xb4)
      [   19.105895] [<c027b4fc>] (musb_gadget_pullup+0x1c/0xb4) from [<bf025c14>] (usb_function_deactivate+0x54/0xa4
      [libcomposite])
      [   19.135955] [<bf025c14>] (usb_function_deactivate+0x54/0xa4 [libcomposite]) from [<bf05b3b8>]
      (obex_bind+0x124/0x1d8 [usb_f_obex])
      [   19.166870] [<bf05b3b8>] (obex_bind+0x124/0x1d8 [usb_f_obex]) from [<bf025794>] (usb_add_function+0x58/0xf4
      [libcomposite])
      [   19.197143] [<bf025794>] (usb_add_function+0x58/0xf4 [libcomposite]) from [<bf037420>]
      (nokia_bind_config+0x204/0x250 [g_nokia])
      [   19.227905] [<bf037420>] (nokia_bind_config+0x204/0x250 [g_nokia]) from [<bf0263fc>] (usb_add_config+0x28/0xc0
      [libcomposite])
      [   19.258483] [<bf0263fc>] (usb_add_config+0x28/0xc0 [libcomposite]) from [<bf03709c>] (nokia_bind+0x9c/0x21c
      [g_nokia])
      [   19.288421] [<bf03709c>] (nokia_bind+0x9c/0x21c [g_nokia]) from [<bf0275bc>] (composite_bind+0x74/0x180
      [libcomposite])
      [   19.318420] [<bf0275bc>] (composite_bind+0x74/0x180 [libcomposite]) from [<c027d658>]
      (udc_bind_to_driver+0x2c/0xc4)
      [   19.348114] [<c027d658>] (udc_bind_to_driver+0x2c/0xc4) from [<c027d764>] (usb_gadget_probe_driver+0x74/0x94)
      [   19.377166] [<c027d764>] (usb_gadget_probe_driver+0x74/0x94) from [<c00086f8>] (do_one_initcall+0x94/0x138)
      [   19.406005] [<c00086f8>] (do_one_initcall+0x94/0x138) from [<c007a460>] (load_module+0x113c/0x13c4)
      [   19.434051] [<c007a460>] (load_module+0x113c/0x13c4) from [<c007a7b4>] (SyS_init_module+0xcc/0xec)
      [   19.462127] [<c007a7b4>] (SyS_init_module+0xcc/0xec) from [<c000dd40>] (ret_fast_syscall+0x0/0x30)
      [   19.490753] Code: 0a00002e e1a00004 eb001438 e598300c (e5d3202c)
      [   19.506805] ---[ end trace 060b62ec0d68a78b ]---
      [   19.523132] Kernel panic - not syncing: Fatal exception in interrupt
      
      dump is from 3.12-rc5 kernel
      Reported-by: NPali Rohár <pali.rohar@gmail.com>
      Signed-off-by: NIvaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      30a70b02
    • G
      usb: musb: musb_cppi41: Handle ISOCH differently and not use the hrtimer. · 1af54b7a
      George Cherian 提交于
      In case of ISOCH transfers the hrtimer workaround for the hardware issue
      is not very reliable. Instead of checking musb_is_tx_fifo_empty() in hrtimer
      routine, schedule a completion work and check the same in completion work.
      Signed-off-by: NGeorge Cherian <george.cherian@ti.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      1af54b7a
    • G
      usb: musb: musb_cppi41: Make CPPI aware of high bandwidth transfers · f82503f5
      George Cherian 提交于
      Enable CPPI to handle high bandwidth transfers, especially to support
      webcam captures. Use a single bd to get the whole of the data in case of
      high bandwidth transfers.
      Signed-off-by: NGeorge Cherian <george.cherian@ti.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      f82503f5
    • G
      usb: musb: musb_host: Enable ISOCH IN handling for AM335x host · c57c41d2
      George Cherian 提交于
      Enable the isochrounous IN handling for AM335x HOST.
      Reprogram CPPI to receive consecutive ISOCH frames in the same URB.
      Signed-off-by: NGeorge Cherian <george.cherian@ti.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      c57c41d2
  10. 09 1月, 2014 1 次提交
  11. 04 1月, 2014 1 次提交
  12. 27 12月, 2013 1 次提交
  13. 24 12月, 2013 1 次提交
  14. 21 12月, 2013 2 次提交
  15. 20 12月, 2013 3 次提交
    • A
      usb: musb: fix setting JZ4740 gadget periphal mode on reset · 23db9fd2
      Apelete Seketeli 提交于
      JZ4740 USB Device Controller is not OTG compatible and does not have
      DEVCTL register in silicon.
      
      During ethernet-over-usb transactions, on reset, musb driver tries to
      read from DEVCTL and consequently sets device as host (A-Device)
      instead of peripheral (B-Device), which makes it a composite device to
      the USB gadget driver.
      This induces a kernel panic during power down where the USB gadget
      driver does a null pointer dereference when trying to access the
      composite device configuration.
      
      On reset, do not rely on DEVCTL value for setting gadget peripheral
      mode. Use is_otg flag instead to set it to B-Device.
      Signed-off-by: NApelete Seketeli <apelete@seketeli.net>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      23db9fd2
    • A
      usb: musb: add support for JZ4740 usb device controller · 10434d27
      Apelete Seketeli 提交于
      Add support for Ingenic JZ4740 USB Device Controller through a
      specific musb glue layer.
      
      JZ4740 UDC not being OTG compatible and missing some hardware
      registers, this musb glue layer is written from scratch to be used in
      gadget mode only and take silicon design specifics into account.
      Signed-off-by: NApelete Seketeli <apelete@seketeli.net>
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      10434d27
    • D
      usb: musb: finish suspend/reset work independently from musb_hub_control() · 8ed1fb79
      Daniel Mack 提交于
      Currently, resume and reset is completed when the USB core calls back
      the root hub, asking for the port's state. This results in
      unpredictable timing of state assertion, which in turn renders some
      USB devices unusable after resume.
      
      Fix this by moving the logic to end the reset and suspend state out of
      musb_hub_control() into separate functions called from delayed workers.
      GetPortStatus only reports the current state now, without taking any
      real action.
      
      The rh_timeout variable is kept in order to define a minimum time gap
      between reset and resume only.
      
      FWIW, in my case, a Verbatim "STORE N GO" mass storage device won't
      resume cleanly without this patch.
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      8ed1fb79
  16. 18 12月, 2013 2 次提交
  17. 09 12月, 2013 1 次提交