1. 19 5月, 2011 1 次提交
    • G
      drivercore: revert addition of of_match to struct device · b1608d69
      Grant Likely 提交于
      Commit b826291c, "drivercore/dt: add a match table pointer to struct
      device" added an of_match pointer to struct device to cache the
      of_match_table entry discovered at driver match time.  This was unsafe
      because matching is not an atomic operation with probing a driver.  If
      two or more drivers are attempted to be matched to a driver at the
      same time, then the cached matching entry pointer could get
      overwritten.
      
      This patch reverts the of_match cache pointer and reworks all users to
      call of_match_device() directly instead.
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      b1608d69
  2. 04 5月, 2011 1 次提交
    • A
      xHCI: Clear PLC in xhci_bus_resume() · 4f0871a6
      Andiry Xu 提交于
      This patch clears PORT_PLC if xhci_bus_resume() resumes a previous suspended
      port, because if a port transition from U3 to U0 state, it will report a
      port link state change, and software should clear the corresponding PLC bit.
      
      It also uses hcd->speed to check if a port is a USB2 protocol port.
      
      The patch fixes the issue that USB keyboard can not wakeup system from
      hibernation.
      Signed-off-by: NAndiry Xu <andiry.xu@amd.com>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      4f0871a6
  3. 03 5月, 2011 1 次提交
  4. 02 5月, 2011 3 次提交
    • K
      omap:usb: add regulator support for EHCI · 6e3d4bec
      Keshava Munegowda 提交于
      in case of ehci phy mode; regulator of phy
      should be enabled before initializing the
      usbhs core driver.
      Signed-off-by: NKeshava Munegowda <keshava_mgowda@ti.com>
      Tested-by: NSteve Calfee <stevecalfee@gmail.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      6e3d4bec
    • J
      usb: musb: gadget: Fix out-of-sync runtime pm calls · cdefce16
      Jarkko Nikula 提交于
      If cable is not connected to peripheral only board when initializing the
      gadget driver, then runtime pm calls are out-of-sync and the musb cannot
      idle with omap2430.c. This was noted on Nokia N900 where musb prevented the
      CPU to be able to enter deeper retention idle state.
      
      This was working in 2.6.38 before runtime pm conversions but there musb
      smart standby/idle modes were configured statically where they are now
      updated runtime depending on use and cable status.
      
      Reason for out-of-sync is that runtime pm is activated in function
      musb_gadget.c: usb_gadget_probe_driver but suspended only in OTG mode if
      cable is not connected when initializing. In peripheral only mode this leads
      to out-of-sync runtime pm since runtime pm remain active and is activated
      another time in omap2430.c: musb_otg_notifications for VBUS Connect event
      and thus cannot suspend for VBUS Disconnect event since the use count remains
      active.
      
      Fix this by moving cable status check and pm_runtime_put call in
      usb_gadget_probe_driver out of is_otg_enabled block.
      Signed-off-by: NJarkko Nikula <jhnikula@gmail.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      cdefce16
    • J
      usb: musb: omap2430: Fix retention idle on musb peripheral only boards · 383cf4e8
      Jarkko Nikula 提交于
      Recent runtime pm and hwmod conversions for 2.6.39 broke the musb peripheral
      mode OMAP retention idle on boards where the board mode in struct
      musb_hdrc_platform_data is set to MUSB_PERIPHERAL.
      
      These conversions changed the way how the OTG_SYSCONFIG register is
      configured and used in runtime. Before 2.6.39 smart standby/idle modes were
      activated statically in OTG_SYSCONFIG. Those modes allow that the musb is
      able to idle when peripheral device is not connected to host.
      
      In 2.6.39 the OTG_SYSCONFIG is updated runtime depending on VBUS status.
      No standby/idle modes are used when device is connected and force
      standby/idle when disconnected.
      
      Unfortunately VBUS disconnect event that handles the disconnect case lets
      the peripheral musb to idle only when board mode is MUSB_OTG. Fix this by
      checking the peripheral mode also.
      Signed-off-by: NJarkko Nikula <jhnikula@gmail.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      383cf4e8
  5. 15 4月, 2011 1 次提交
    • G
      Revert "USB: isp1760-hcd: move imask clear after pending work is done" · 753d8534
      Greg Kroah-Hartman 提交于
      This reverts commit 58085446.
      
      To quote Richard:
      	I don't think this should be mainlined. It was a
      	misunderstanding on my part.  If you see all the other hdc
      	drivers in the same location, they all do the same thing (i.e.
      	clear the interrupt status first, then do the work) that
      	"glitch" I think I saw was actually two back-to-back
      	interrupts.
      
      	Sebastian (the original author of isp1760) explained it to me a
      	few days after my submission.
      
      	sorry for the confusion
      
      Cc: Richard Retanubun <RichardRetanubun@ruggedcom.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      753d8534
  6. 14 4月, 2011 32 次提交
  7. 13 4月, 2011 1 次提交
    • M
      USB: musb: blackfin: work around anomaly 05000450 · 13254307
      Mike Frysinger 提交于
      DMA mode 1 data corruption anomaly on Blackfin systems.  This issue is
      specific to the Blackfin silicon as the bug appears to be related to the
      connection of the musb ip to the bus/dma fabric.
      
      Data corruption when using USB DMA mode 1. (Issue manager 17-01-0105)
      DMA mode 1 allows large size transfers to generate a single interrupt
      at the end of the entire transfer.  The transfer is split up in packets
      of length specified in the Maximum Packet Size field for that endpoint.
      If the transfer size is not an integer multiple of the Maximum Packet
      Size, a short packet will be present at the end of the transfer.
      
      Under certain conditions this packet may be corrupted in the USB FIFO.
      
      Workaround:
      Use DMA mode 1 to transfer (n* Maximum Packet Size) and schedule DMA
      mode 0 to transfer the short packet.
      
      As an example if your transfer size is 33168 bytes and Maximum Packet
      Size equals 512, schedule [33168 - (33168 mod 512)] in DMA mode 1 and
      the remainder (33168 mod 512) in DMA mode 0.
      Signed-off-by: NMike Frysinger <vapier@gentoo.org>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      13254307