1. 30 5月, 2013 3 次提交
    • M
      USB: OHCI: make ohci-pci a separate driver · c1117afb
      Manjunath Goudar 提交于
      This patch splits the PCI portion of ohci-hcd out into its
      own separate driver module, called ohci-pci.
      
      The major point of difficulty lies in ohci-pci's many vendor- and
      device-specific workarounds.  Some of them have to be applied before
      calling ohci_start() some after, which necessitates a fair amount of
      code motion.  The other platform drivers require much smaller changes.
      
      The complete sb800_prefetch() function moved to ohci-q.c,because its
      only related to ohci-pci driver.
      
      USB_OHCI_HCD_PCI symbol no longer dependence on STB03xxx, PPC_MPC52xx and
      USB_OHCI_HCD_PPC_OF that's what removed.
      
      V2:
        - few specific content of pci related code in ohci_pci_start function has been moved to ohci_pci_reset
          and rest of the generic code is written in ohci_start of ohci-hcd.c file.
      V3:
       - ohci_restart() has been called in ohci_pci_reset() function for to reset the ohci pci.
      
      V4:
       -sb800_prefetch() moved to ohci-q.c,because its only related to ohci-pci.
       -no longer _creating_ CONFIG_USB_OHCI_PCI,creating CONFIG_USB_OHCI_HCD_PCI.
       -overrides renamed with pci_override,its giving proper meaning.
      
      V5:
       -sb800_prefetch() moved to pci-quirks.c,because its only related to pci.
      
      V6:
       -sb800_prefetch() function has been moved to pci-quirks.c made as separate patch in 2/3.
       -Most of the generic ohci pci changes moved in 2/3 patch,now this is complete  ohci-pci separation patch.
      
      V7:
       -Unrelated include file has been removed from ohci.h file.
      
      V8:
       -USB_OHCI_HCD_PCI symbol does not dependence on STB03xxx, PPC_MPC52xx and USB_OHCI_HCD_PPC_OF.
      Signed-off-by: NManjunath Goudar <manjunath.goudar@linaro.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c1117afb
    • M
      USB: OHCI: Generic changes to make ohci-pci a separate driver · 2621d011
      Manjunath Goudar 提交于
      Note that this changes is part of separating the ohci pci host controller
      driver from ohci-hcd host code.
      This contains :
           -Moved sb800_prefetch() function from ohci-pci.c to pci-quirks.c file
            and EXPORTed, this is part of the effort to move the ohci pci related
            code to generic pci code.
           -Passed "device" argument instead  of "ohci_hcd" in sb800_prefetch()
            function to avoid extra include file in pci-quirks.c.
      
      V2:
           -Passed "device" argment instead of "pci_dev", then we use to_pci_dev()
            to get the "pci_dev" structure.
      Signed-off-by: NManjunath Goudar <manjunath.goudar@linaro.org>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2621d011
    • M
      USB: OHCI: prepare to make ohci-hcd a library module · 95e44d44
      Manjunath Goudar 提交于
      This patch prepares ohci-hcd for being split up into a core
      library and separate platform driver modules.  A generic
      ohci_hc_driver structure is created, containing all the "standard"
      values, and a new mechanism is added whereby a driver module can
      specify a set of overrides to those values.  In addition the
      ohci_restart(),ohci_suspend() and ohci_resume() routines need
      to be EXPORTed for use by the drivers.
      
      Added ohci_setip(() and ohci_start() routine for to start the generic
      controller rather than each having its own idiosyncratic approach.
      This allow to clean duplicated code in most of SOC driver
      
      In V2:
       -ohci_hcd_init() ohci_run() and ohci_stop() are not made non-static.
       -Adds the ohci_setup() and ohci_start() routine.
      
      In V3:
       -purpose of ohci_setup() and ohci_start() function description written in the patch
        description.
       -ohci_init() are not made non-static but now called beginning of the ohci_restart().
       -ohci_run() signature change reverted back.
       -unrelated changes removed.
       -duplicate comment line removed.
       -inline ohci_suspend() and ohci_resume() is not needed so removed from ohci.h file.
      
      In V4:
       -ohci-init() EXPORTed because it is called by all bus glue modules.
       -ohci-setup() removed from 1/2 added into 2/2 patch.
      
      In V5:
       -Again ohci_setup() is added and EXPORTed because to replace the ohci_init() from
        all bus glues.
       -ohci_init() is not made non-static function.
      
      In V6:
        -ohci_init() call is removed from ohci_quirk_nec_worker(), because it is already called in ohci_restart().
      
      In V8:
        -ohci_hcd_init() is called by ohci_setup() to make generic ohci initialization in all ohci drivers.
      Signed-off-by: NManjunath Goudar <manjunath.goudar@linaro.org>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      95e44d44
  2. 16 5月, 2013 2 次提交
  3. 26 4月, 2013 1 次提交
    • A
      USB: OHCI: avoid conflicting platform drivers · 8097804e
      Arnd Bergmann 提交于
      Like the EHCI driver, OHCI supports a large number of different platform
      glue drivers by directly including them, which causes problems with
      conflicting macro definitions in some cases. As more ARM architecture
      specific back-ends are required to coexist in a single build, we should
      split those out into separate drivers. Unfortunately, the infrastructure
      for that is still under development, so to give us more time, this uses
      a separate *_PLATFORM_DRIVER macro for each ARM specific OHCI backend,
      just like we already do on PowerPC and some of the other ARM platforms.
      
      In linux-3.10, only the SPEAr and CNS3xxx back-ends would actually conflict
      without this patch, but over time we would get more of them, so this
      is a way to avoid having to patch the driver every time it breaks. We
      should still split out all back-ends into separate loadable modules,
      but that work is only needed to improve code size and cleanliness after
      this patch, not for correctness.
      
      While we're here, this fixes the incorrectly sorted error path
      for the OMAP1 and OMAP3 backends to ensure we always unregister
      the exact set of drivers that were registered before erroring out.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8097804e
  4. 23 10月, 2012 10 次提交
  5. 26 8月, 2012 1 次提交
  6. 21 8月, 2012 1 次提交
    • T
      workqueue: deprecate flush[_delayed]_work_sync() · 43829731
      Tejun Heo 提交于
      flush[_delayed]_work_sync() are now spurious.  Mark them deprecated
      and convert all users to flush[_delayed]_work().
      
      If you're cc'd and wondering what's going on: Now all workqueues are
      non-reentrant and the regular flushes guarantee that the work item is
      not pending or running on any CPU on return, so there's no reason to
      use the sync flushes at all and they're going away.
      
      This patch doesn't make any functional difference.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Ian Campbell <ian.campbell@citrix.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Mattia Dongili <malattia@linux.it>
      Cc: Kent Yoder <key@linux.vnet.ibm.com>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Cc: Karsten Keil <isdn@linux-pingi.de>
      Cc: Bryan Wu <bryan.wu@canonical.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Alasdair Kergon <agk@redhat.com>
      Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: linux-wireless@vger.kernel.org
      Cc: Anton Vorontsov <cbou@mail.ru>
      Cc: Sangbeom Kim <sbkim73@samsung.com>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Eric Van Hensbergen <ericvh@gmail.com>
      Cc: Takashi Iwai <tiwai@suse.de>
      Cc: Steven Whitehouse <swhiteho@redhat.com>
      Cc: Petr Vandrovec <petr@vandrovec.name>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Avi Kivity <avi@redhat.com> 
      43829731
  7. 19 7月, 2012 1 次提交
  8. 19 4月, 2012 1 次提交
  9. 29 3月, 2012 1 次提交
  10. 16 3月, 2012 2 次提交
  11. 14 3月, 2012 3 次提交
  12. 03 3月, 2012 1 次提交
    • K
      ARM: S3C24XX: change the ARCH_S3C2410 to ARCH_S3C24XX · b130d5c2
      Kukjin Kim 提交于
      This patch changes the ARCH name to "ARCH_S3C24XX" for Samsung
      S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443,
      and S3C2450 SoCs so that we can merge the mach-xxx directories
      and plat-s3c24xx dir. to just one mach-s3c24xx for them.
      
      I think this should be sent to upstream via samsung tree because
      this touches many samsung stuff.
      
      Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
      Cc: Richard Purdie <rpurdie@rpsys.net>
      Cc: Chris Ball <cjb@laptop.org>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Cc: Greg Kroah-Hartman <gregkh@suse.de>
      [for the gadget part:]
      Acked-by: NFelipe Balbi <balbi@ti.com>
      [for the framebuffer (video) part:]
      Acked-by: NFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      [For the watchdog-part:]
      Acked-by: NWim Van Sebroeck <wim@iguana.be>
      Cc: Sangbeom Kim <sbkim73@samsung.com>
      Cc: Liam Girdwood <lrg@ti.com>
      Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      b130d5c2
  13. 02 3月, 2012 1 次提交
  14. 13 1月, 2012 1 次提交
  15. 23 12月, 2011 1 次提交
  16. 19 11月, 2011 3 次提交
  17. 23 8月, 2011 1 次提交
  18. 16 6月, 2011 1 次提交
  19. 20 5月, 2011 1 次提交
    • A
      USB: remove remaining usages of hcd->state from usbcore and fix regression · 69fff59d
      Alan Stern 提交于
      This patch (as1467) removes the last usages of hcd->state from
      usbcore.  We no longer check to see if an interrupt handler finds that
      a controller has died; instead we rely on host controller drivers to
      make an explicit call to usb_hc_died().
      
      This fixes a regression introduced by commit
      9b37596a (USB: move usbcore away from
      hcd->state).  It used to be that when a controller shared an IRQ with
      another device and an interrupt arrived while hcd->state was set to
      HC_STATE_HALT, the interrupt handler would be skipped.  The commit
      removed that test; as a result the current code doesn't skip calling
      the handler and ends up believing the controller has died, even though
      it's only temporarily stopped.  The solution is to ignore HC_STATE_HALT
      following the handler's return.
      
      As a consequence of this change, several of the host controller
      drivers need to be modified.  They can no longer implicitly rely on
      usbcore realizing that a controller has died because of hcd->state.
      The patch adds calls to usb_hc_died() in the appropriate places.
      
      The patch also changes a few of the interrupt handlers.  They don't
      expect to be called when hcd->state is equal to HC_STATE_HALT, even if
      the controller is still alive.  Early returns were added to avoid any
      confusion.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Tested-by: NManuel Lauss <manuel.lauss@googlemail.com>
      CC: Rodolfo Giometti <giometti@linux.it>
      CC: Olav Kongas <ok@artecdesign.ee>
      CC: <stable@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      69fff59d
  20. 14 4月, 2011 1 次提交
  21. 31 3月, 2011 1 次提交
  22. 02 3月, 2011 2 次提交
    • Y
      usb: EHCI, OHCI: Add configuration for the SH USB controller · 60b0bf0f
      Yoshihiro Shimoda 提交于
      The SH EHCI/OHCI driver hardcoded the CPU type in {ehci,ohci}-hcd.c.
      So if we will add the new CPU, we had to add to the hcd driver each time.
      The patch adds the CONFIG_USB_{EHCI,OHCI}_SH configuration. So if we
      want to use the SH EHCI/OHCI, we only enable the configuration.
      Signed-off-by: NYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      60b0bf0f
    • A
      USB host: Move AMD PLL quirk to pci-quirks.c · ad93562b
      Andiry Xu 提交于
      This patch moves the AMD PLL quirk code in OHCI/EHCI driver to pci-quirks.c,
      and exports the functions to be used by xHCI driver later.
      
      AMD PLL quirk disable the optional PM feature inside specific
      SB700/SB800/Hudson-2/3 platforms under the following conditions:
      
      1. If an isochronous device is connected to OHCI/EHCI/xHCI port and is active;
      2. Optional PM feature that powers down the internal Bus PLL when the link is
         in low power state is enabled.
      
      Without AMD PLL quirk, USB isochronous stream may stutter or have breaks
      occasionally, which greatly impair the performance of audio/video streams.
      
      Currently AMD PLL quirk is implemented in OHCI and EHCI driver, and will be
      added to xHCI driver too. They are doing similar things actually, so move
      the quirk code to pci-quirks.c, which has several advantages:
      
      1. Remove duplicate defines and functions in OHCI/EHCI (and xHCI) driver and
         make them cleaner;
      2. AMD chipset information will be probed only once and then stored.
         Currently they're probed during every OHCI/EHCI initialization, move
         the detect code to pci-quirks.c saves the repeat detect cost;
      3. Build up synchronization among OHCI/EHCI/xHCI driver. In current
         code, every host controller enable/disable PLL only according to
         its own status, and may enable PLL while there is still isoc transfer on
         other HCs. Move the quirk to pci-quirks.c prevents this issue.
      Signed-off-by: NAndiry Xu <andiry.xu@amd.com>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Cc: Alex He <alex.he@amd.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ad93562b