1. 25 6月, 2012 1 次提交
  2. 14 5月, 2012 1 次提交
  3. 19 4月, 2012 2 次提交
    • A
      USB: ehci-fsl: Fix kernel crash on mpc5121e · f941f692
      Anatolij Gustschin 提交于
      Since commit 28c56ea1
      (powerpc/usb: fix bug of kernel hang when initializing usb)
      the kernel crashes on mpc5121e. mpc5121e doesn't have system interface
      registers, accessing this register address space cause the machine check
      exception and a kernel crash:
      ...
      [    1.294596] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
      [    1.316491] fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
      [    1.337334] fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
      [    1.358548] Machine check in kernel mode.
      [    1.375917] Caused by (from SRR1=49030): Transfer error ack signal
      [    1.395505] Oops: Machine check, sig: 7 [#1]
      [    1.413113] MPC5121 ADS
      [    1.428718] Modules linked in:
      [    1.444841] NIP: c026efc4 LR: c0278b50 CTR: 00000000
      [    1.463342] REGS: df837ba0 TRAP: 0200   Not tainted  (3.3.0-08839-gb5174fa3)
      [    1.484083] MSR: 00049030 <EE,ME,IR,DR>  CR: 42042022  XER: 20000000
      [    1.504099] TASK = df834000[1] 'swapper' THREAD: df836000
      [    1.509667] GPR00: 1c000000 df837c50 df834000 df9d74e0 00000003 00000010 00000000 00000000
      [    1.531650] GPR08: 00000020 00000000 c037cdd8 e1088000 22042028 1001a69c 00000000 00000000
      [    1.553762] GPR16: 1ffbce70 00000000 1fef5b28 1fef3e08 00000000 00000000 1ffcbc7c c045b264
      [    1.575824] GPR24: 0000008b 00000002 c04a7dd0 e1088000 df33c960 df9d74e0 00000000 df9d7400
      [    1.612295] NIP [c026efc4] ehci_fsl_setup_phy+0x110/0x124
      [    1.632454] LR [c0278b50] ehci_fsl_setup+0x29c/0x304
      [    1.652065] Call Trace:
      [    1.668923] [df837c50] [c0278a40] ehci_fsl_setup+0x18c/0x304 (unreliable)
      [    1.690332] [df837c70] [c025cba4] usb_add_hcd+0x1f0/0x66c
      [    1.710377] [df837cb0] [c0277ab8] ehci_fsl_drv_probe+0x180/0x308
      [    1.731322] [df837ce0] [c01fc7a8] platform_drv_probe+0x20/0x30
      [    1.752202] [df837cf0] [c01fb0ac] driver_probe_device+0x8c/0x214
      [    1.773491] [df837d10] [c01f956c] bus_for_each_drv+0x6c/0xa8
      [    1.794279] [df837d40] [c01fafdc] device_attach+0xb4/0xd8
      [    1.814574] [df837d60] [c01fa44c] bus_probe_device+0xa4/0xb4
      [    1.835343] [df837d80] [c01f87a8] device_add+0x52c/0x5dc
      [    1.855462] [df837dd0] [c01fcd58] platform_device_add+0x124/0x1d0
      [    1.876558] [df837df0] [c036dcec] fsl_usb2_device_register+0xa0/0xd4
      [    1.897512] [df837e10] [c036df28] fsl_usb2_mph_dr_of_probe+0x208/0x264
      [    1.918253] [df837e90] [c01fc7a8] platform_drv_probe+0x20/0x30
      [    1.938300] [df837ea0] [c01fb0ac] driver_probe_device+0x8c/0x214
      [    1.958511] [df837ec0] [c01fb2f0] __driver_attach+0xbc/0xc0
      [    1.978088] [df837ee0] [c01f9608] bus_for_each_dev+0x60/0x9c
      [    1.997589] [df837f10] [c01fab88] driver_attach+0x24/0x34
      [    2.016757] [df837f20] [c01fa744] bus_add_driver+0x1ac/0x274
      [    2.036339] [df837f50] [c01fb898] driver_register+0x88/0x150
      [    2.056052] [df837f70] [c01fcabc] platform_driver_register+0x68/0x78
      [    2.076650] [df837f80] [c0446500] fsl_usb2_mph_dr_driver_init+0x18/0x28
      [    2.097734] [df837f90] [c0003988] do_one_initcall+0x148/0x1b0
      [    2.117934] [df837fc0] [c042d89c] kernel_init+0xfc/0x190
      [    2.137667] [df837ff0] [c000d2c4] kernel_thread+0x4c/0x68
      [    2.157240] Instruction dump:
      [    2.174119] 90050004 4e800020 2f840003 419e0014 2f840004 409eff64 6400c000 4bffff5c
      [    2.196000] 64001000 7c0004ac 812b0500 0c090000 <4c00012c> 61290200 7c0004ac 912b0500
      [    2.218100] ---[ end trace 21659aedb84ad816 ]---
      [    2.237089]
      [    3.232940] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007
      [    3.232954]
      [    3.271575] Rebooting in 1 seconds..
      
      Check pdata->have_sysif_regs flag before accessing system interface
      registers.
      Signed-off-by: NAnatolij Gustschin <agust@denx.de>
      Cc: Shengzhou Liu <Shengzhou.Liu@freescale.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f941f692
    • R
      fsl/usb: Add controller version based ULPI and UTMI phy support · 58c559e6
      Ramneek Mehresh 提交于
      Add support for ULPI and UTMI PHYs based on usb controller
      version info read from device-tree
      
      Example of USB Controller versioning info:
      Version 1.2 and below : MPC8536, MPC8315, etc
      Version 1.6 : P1020, P1010, P2020, P5020, etc
      Version 2.2 : PSC9131, PSC9132, P3060, etc
      
      No changes for non-DT users
      Signed-off-by: NRamneek Mehresh <ramneek.mehresh@freescale.com>
      Acked-by: NLi Yang <leoli@freescale.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      58c559e6
  4. 03 3月, 2012 1 次提交
  5. 01 3月, 2012 1 次提交
  6. 29 2月, 2012 1 次提交
  7. 27 2月, 2012 2 次提交
  8. 25 2月, 2012 2 次提交
  9. 03 2月, 2012 1 次提交
  10. 25 1月, 2012 2 次提交
  11. 18 9月, 2011 1 次提交
  12. 23 8月, 2011 1 次提交
    • A
      USB: EHCI: remove usages of hcd->state · e8799906
      Alan Stern 提交于
      This patch (as1483) improves the ehci-hcd driver family by getting rid
      of the reliance on the hcd->state variable.  It has no clear owner and
      it isn't protected by the usual HCD locks.  In its place, the patch
      adds a new, private ehci->rh_state field to record the state of the
      root hub.
      
      Along the way, the patch removes a couple of lines containing
      redundant assignments to the state variable.  Also, the QUIESCING
      state simply gets changed to the RUNNING state, because the driver
      doesn't make any distinction between them.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Acked-by: NJingoo Han <jg1.han@samsung.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e8799906
  13. 10 6月, 2011 1 次提交
  14. 04 5月, 2011 1 次提交
  15. 03 5月, 2011 2 次提交
  16. 23 1月, 2011 1 次提交
    • P
      USB: ehci-fsl: Fix 'have_sysif_regs' detection · cc604ddd
      Peter Tyser 提交于
      Previously a check was done on an ID register at the base of a CPU's
      internal USB registers to determine if system interface regsiters were
      present.  The check looked for an ID register that had the format
      ID[0:5] == ~ID[8:13] as described in the MPC5121 User's Manual to
      determine if a MPC5121 or MPC83xx/85xx was being used.
      
      There are two issues with this method:
      - The ID register is not defined on the MPC83xx/85xx CPUs, so its
        unclear what is being checked on them.
      - Newer CPUs such as the P4080 also don't document the ID register, but
        do share the same format as the MPC5121.  Thus the previous code did
        not set 'have_sysif_regs' properly which results in the P4080 not
        properly initializing its USB ports.
      
      Using the device tree 'compatible' node is a cleaner way to determine if
      'have_sysif_regs' should be set and resolves the USB initialization issue
      seen on the P4080.
      
      Tested on a P4080-based system and compile tested on mpc512x_defconfig
      with Freescale EHCI driver enabled.
      
      Cc: Anatolij Gustschin <agust@denx.de>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Cc: Kumar Gala <galak@kernel.crashing.org>
      Cc: linuxppc-dev@lists.ozlabs.org
      Signed-off-by: NPeter Tyser <ptyser@xes-inc.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      cc604ddd
  17. 23 10月, 2010 2 次提交
    • A
      USB: add USB EHCI support for MPC5121 SoC · 230f7ede
      Anatolij Gustschin 提交于
      Extends FSL EHCI platform driver glue layer to support
      MPC5121 USB controllers. MPC5121 Rev 2.0 silicon EHCI
      registers are in big endian format. The appropriate flags
      are set using the information in the platform data structure.
      MPC83xx system interface registers are not available on
      MPC512x, so the access to these registers is isolated in
      MPC512x case. Furthermore the USB controller clocks
      must be enabled before 512x register accesses which is
      done by providing platform specific init callback.
      
      The MPC512x internal USB PHY doesn't provide supply voltage.
      For boards using different power switches allow specifying
      DRVVBUS and PWR_FAULT signal polarity of the MPC5121 internal
      PHY using "fsl,invert-drvvbus" and "fsl,invert-pwr-fault"
      properties in the device tree USB nodes. Adds documentation
      for this new device tree bindings.
      Signed-off-by: NAnatolij Gustschin <agust@denx.de>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      230f7ede
    • M
      USB: ehci tdi : let's tdi_reset set host mode · 65fd4272
      Matthieu CASTET 提交于
      tdi_reset is already taking care of setting host mode for tdi devices.
      Don't duplicate code in platform driver.
      
      Make ehci_halt a nop if the controller is not in host mode (otherwise it 
      will fail), and let's ehci_reset do the tdi_reset.
      We need to move hcd->has_tt flags before ehci_halt, in order ehci_halt 
      knows we are a tdi device.
      
      
      Before the setup routine was doing :
      - put controller in host mode
      - ehci_halt
      - ehci_init
      - hcd->has_tt = 1;
      - ehci_reset
      
      Now we do :
      - hcd->has_tt = 1;
      - ehci_halt
      - ehci_init
      - ehci_reset
      
      PS : now we handle correctly the device -> host transition.
      Signed-off-by: NMatthieu CASTET <matthieu.castet@parrot.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      65fd4272
  18. 11 8月, 2010 1 次提交
  19. 21 5月, 2010 1 次提交
    • A
      USB: EHCI: fix controller wakeup flag settings during suspend · 16032c4f
      Alan Stern 提交于
      This patch (as1380) fixes a bug in the wakeup settings for EHCI host
      controllers.  When the controller is suspended, if it isn't enabled
      for remote wakeup then we have to turn off all the port wakeup flags.
      Disabling PCI PME# isn't good enough, because some systems (Intel)
      evidently use alternate wakeup signalling paths.
      
      In addition, the patch improves the handling of the Intel Moorestown
      hardware by performing various power-up and power-down delays just
      once instead of once for each port (i.e., the delays are moved outside
      of the port loops).  This requires extra code, but the total delay
      time is reduced.
      
      There are also a few additional minor cleanups.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Reported-by: NOndrej Zary <linux@rainbow-software.org>
      CC: Alek Du <alek.du@intel.com>
      CC: stable <stable@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      16032c4f
  20. 03 3月, 2010 2 次提交
  21. 13 7月, 2009 1 次提交
  22. 16 6月, 2009 1 次提交
    • A
      USB: EHCI: update toggle state for linked QHs · b18ffd49
      Alan Stern 提交于
      This patch (as1245) fixes a bug in ehci-hcd.  When an URB is queued
      for an endpoint whose QH is already in the LINKED state, the QH
      doesn't get refreshed.  As a result, if usb_clear_halt() was called
      during the time that the QH was linked but idle, the data toggle value
      in the QH doesn't get reset.
      
      The symptom is that after a clear_halt, data gets lost and transfers
      time out.  This problem is starting to show up now because the
      "ehci-hcd unlink speedups" patch causes QHs with no queued URBs to
      remain linked for a suitable time.
      
      The patch utilizes the new endpoint_reset mechanism to fix the
      problem.  When an endpoint is reset, the new method forcibly unlinks
      the QH (if necessary) and safely updates the toggle value.  This
      allows qh_update() to be simplified and avoids using usb_device's
      toggle bits in a rather unintuitive way.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      CC: David Brownell <david-b@pacbell.net>
      Tested-by: NDavid <david@unsolicited.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b18ffd49
  23. 22 7月, 2008 2 次提交
  24. 30 5月, 2008 2 次提交
    • A
      USB: EHCI: suppress unwanted error messages · 3a31155c
      Alan Stern 提交于
      This patch (as1096) fixes an annoying problem: When a full-speed or
      low-speed device is plugged into an EHCI controller, it fails to
      enumerate at high speed and then is handed over to the companion
      controller.  But usbcore logs a misleading and unwanted error message
      when the high-speed enumeration fails.
      
      The patch adds a new HCD method, port_handed_over, which asks whether
      a port has been handed over to a companion controller.  If it has, the
      error message is suppressed.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      CC: David Brownell <david-b@pacbell.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3a31155c
    • A
      USB: EHCI: fix up root-hub TT mess · a8e51775
      Alan Stern 提交于
      This patch (as1095) cleans up the HCD glue and several of the EHCI
      bus-glue files.  The ehci->is_tdi_rh_tt flag is redundant, since it
      means the same thing as the hcd->has_tt flag, so it is removed and the
      other flag used in its place.
      
      Some of the bus-glue files didn't get the relinquish_port method added
      to their hc_driver structures.  Although that routine currently
      doesn't do anything for controllers with an integrated TT, in the
      future it might.  So the patch adds it where it is missing.
      
      Lastly, some of the bus-glue files have erroneous entries for their
      hc_driver's suspend and resume methods.  These method pointers are
      specific to PCI and shouldn't be used otherwise.
      
      (The patch also includes an invisible whitespace fix.)
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Acked-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      a8e51775
  25. 25 4月, 2008 1 次提交
    • D
      USB: ehci minor SOC bus glue fixes · 135db048
      David Brownell 提交于
      Various minor fixes to some SOC bus glue for EHCI:
      
       - Remove a bogus copyright (by "me"!) which someone added to the FSL
         driver, and an irrelevant comment.
      
       - Un-break MODULE_ALIAS() directives after platform_bus hotplugging
         acquired a backwards-incompatible change.  (Which didn't fix ANY
         of the in-tree drivers it prevented from hotplugging -- sigh.)
      
       - Remove some bogus assignments of platform_bus_type; that's done by
         the platform_bus code.
      
       - Add some FIXMEs for drivers with that pointless two-level idiom for
         probe() and remove() routines.  ("Obfuscation" is a non-goal.)
         That should help avoid future bus glue which copies that idiom.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      135db048
  26. 02 2月, 2008 2 次提交
  27. 18 12月, 2007 1 次提交
  28. 13 7月, 2007 1 次提交
    • L
      USB: ehci_fsl update for MPC831x support · ba02978a
      Li Yang 提交于
      For MPC831x support, change the ehci-fsl driver to preserve
      bits set in platform code.  Add a common CONFIG_USB_EHCI_FSL
      to indicate presence of Freescale EHCI SOC.  Add FSL_USB2_DR_OTG
      operating mode support, thus both host and device can work for the
      mini-ab receptacle.  Note: this doesn't enable OTG protocol
      support.
      Signed-off-by: NLi Yang <leoli@freescale.com>
      Cc: David Brownell <david-b@pacbell.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ba02978a
  29. 24 5月, 2007 1 次提交
  30. 08 2月, 2007 1 次提交