1. 21 12月, 2006 2 次提交
    • A
      UHCI: module parameter to ignore overcurrent changes · 5f8364b7
      Alan Stern 提交于
      Certain boards seem to like to issue false overcurrent notifications,
      for example on ports that don't have anything connected to them.  This
      looks like a hardware error, at the level of noise to those ports'
      overcurrent input signals (or non-debounced VBUS comparators).  This
      surfaces to users as truly massive amounts of syslog spam from khubd
      (which is appropriate for real hardware problems, except for the
      volume from multiple ports).
      
      Using this new "ignore_oc" flag helps such systems work more sanely,
      by preventing such indications from getting to khubd (and spamming
      syslog).  The downside is of course that true overcurrent errors will
      be masked; they'll appear as spontaneous disconnects, without the
      diagnostics that will let users troubleshoot issues like
      short-circuited cables.  In addition, controllers with no devices
      attached will be forced to poll for new devices rather than relying on
      interrupts, since each overcurrent event would generate a new
      interrupt.
      
      This patch (as826) is essentially a copy of David Brownell's ignore_oc
      patch for ehci-hcd, ported to uhci-hcd.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      5f8364b7
    • J
      USB: fix ohci.h over-use warnings · abc9404b
      Jeff Garzik 提交于
      When u132-hcd is built, it includes local header ohci.h, which appears
      to have been intended only for use by ohci-hcd.
      
      This throws warnings about functions which are defined and not used.
      The warnings thrown are because three small functions are implemented in
      the header, but not declared 'inline', a rather strange affair.
      
      Since these functions are small, let's go ahead and define them as
      'inline', just like the inline functions surrounding them.  This makes
      things more consistent, and kills the warnings.
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      abc9404b
  2. 14 12月, 2006 1 次提交
    • R
      [PATCH] getting rid of all casts of k[cmz]alloc() calls · 5cbded58
      Robert P. J. Day 提交于
      Run this:
      
      	#!/bin/sh
      	for f in $(grep -Erl "\([^\)]*\) *k[cmz]alloc" *) ; do
      	  echo "De-casting $f..."
      	  perl -pi -e "s/ ?= ?\([^\)]*\) *(k[cmz]alloc) *\(/ = \1\(/" $f
      	done
      
      And then go through and reinstate those cases where code is casting pointers
      to non-pointers.
      
      And then drop a few hunks which conflicted with outstanding work.
      
      Cc: Russell King <rmk@arm.linux.org.uk>, Ian Molton <spyro@f2s.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: Greg KH <greg@kroah.com>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      Cc: Paul Fulghum <paulkf@microgate.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Karsten Keil <kkeil@suse.de>
      Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: James Bottomley <James.Bottomley@steeleye.com>
      Cc: Ian Kent <raven@themaw.net>
      Cc: Steven French <sfrench@us.ibm.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Neil Brown <neilb@cse.unsw.edu.au>
      Cc: Jaroslav Kysela <perex@suse.cz>
      Cc: Takashi Iwai <tiwai@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5cbded58
  3. 08 12月, 2006 3 次提交
  4. 05 12月, 2006 1 次提交
  5. 02 12月, 2006 11 次提交
    • A
      OHCI: make autostop conditional on CONFIG_PM · 1f9fc882
      Alan Stern 提交于
      Unlike UHCI, OHCI does not exert any DMA load on the system when no
      devices are connected.  Consequently there is no advantage to doing
      an autostop other than the power savings, so we shouldn't compile the
      necessary code unless CONFIG_PM is enabled.
      
      This patch (as820) makes the root-hub suspend and resume routines
      conditional on CONFIG_PM.  It also prevents autostop from activating
      if the device_may_wakeup flag isn't set; some people use this flag to
      alert the driver about Resume-Detect bugs in the hardware.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      1f9fc882
    • A
      EHCI: Fix root-hub and port suspend/resume problems · 8c03356a
      Alan Stern 提交于
      This patch (as738b) fixes numerous problems in the controller/root-hub
      suspend/resume/remote-wakeup support in ehci-hcd:
      
      	The bus_resume() routine should wake up only the ports that
      	were suspended by bus_suspend().  Ports that were already
      	suspended should remain that way.
      
      	The interrupt mask is used to detect loss of power in the
      	bus_resume() routine (if the mask is 0 then power was lost).
      	However bus_suspend() always sets the mask to 0.  Instead the
      	mask should retain its normal value, with port-change-detect
      	interrupts disabled if remote wakeup is turned off.
      
      	The interrupt mask should be reset to its correct value at the
      	end of bus_resume() regardless of whether power was lost.
      
      	bus_resume() reinitializes the operational registers if power
      	was lost.  However those registers are not in the aux power
      	well, hence they can lose their values whenever the controller
      	is put into D3.  They should always be reinitialized.
      
      	When a port-change interrupt occurs and the root hub is
      	suspended, the interrupt handler should request a root-hub
      	resume instead of starting up the controller all by itself.
      
      	There's no need for the interrupt handler to request a
      	root-hub resume every time a suspended port sends a
      	remote-wakeup request.
      
      	The pci_resume() method doesn't need to check for connected
      	ports when deciding whether or not to reset the controller.
      	It can make that decision based on whether Vaux power was
      	maintained.
      
      	Even when the controller does not need to be reset,
      	pci_resume() must undo the effect of pci_suspend() by
      	re-enabling the interrupt mask.
      
      	If power was lost, pci_resume() must not call ehci_run().
      	At this point the root hub is still supposed to be suspended,
      	not running.  It's enough to rewrite the command register and
      	set the configured_flag.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      8c03356a
    • A
      USB: ftdi-elan.c: fixes and cleanups · 9ce8540c
      Adrian Bunk 提交于
      This patch contains the following possible cleanups:
      - make the needlessly global ftdi_release_platform_dev() static
      - remove the unused usb_ftdi_elan_read_reg()
      - proper prototypes for the following functions:
        - usb_ftdi_elan_read_pcimem()
        - usb_ftdi_elan_write_pcimem()
      
      Note that the misplaced prototypes for the latter ones in
      drivers/usb/host/u132-hcd.c were buggy. Depending on the calling
      convention of the architecture calling one of them could have turned
      your stack into garbage.
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      9ce8540c
    • A
      USB: make drivers/usb/host/u132-hcd.c:u132_hcd_wait static · 27a3de4c
      Adrian Bunk 提交于
      This patch makes the needlessly global "u132_hcd_wait" static.
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      27a3de4c
    • D
      USB: add ehci_hcd.ignore_oc parameter · 93f1a47c
      David Brownell 提交于
      Certain boards seem to like to issue false overcurrent notifications, for
      example on ports that don't have anything connected to them.  This looks
      like a hardware error, at the level of noise to those ports' overcurrent
      input signals (or non-debounced VBUS comparators).  This surfaces to users
      as truly massive amounts of syslog spam from khubd (which is appropriate
      for real hardware problems, except for the volume from multiple ports).
      
      Using this new "ignore_oc" flag helps such systems work more sanely, by
      preventing such indications from getting to khubd (and spam syslog).  The
      downside is of course that true overcurrent errors will be masked; they'll
      appear as spontaneous disconnects, without the diagnostics that will let
      users troubleshoot issues like short circuited cables.
      
      Note that the bulk of these reports seem to be with VIA southbridges, but
      I think some were with Intel ones.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      93f1a47c
    • D
      USB: EHCI hooks for high speed electrical tests · f0d7f273
      David Brownell 提交于
      EHCI hooks for high speed electrical tests of the root hub ports.
      
      The expectation is that a usermode program actually triggers the test,
      making the same control request it would make for an external hub.
      Tests for peripheral upstream ports would issue a different request.
      In all cases, the hardware needs re-initialization before it could
      be used "normally" again (e.g. unplug/replug, rmmod/modprobe).
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      f0d7f273
    • A
      OHCI: change priority level of resume log message · 1b7be3c0
      Alan Stern 提交于
      All the other root-hub suspend or resume log messages, in ohci-hcd or
      any of the other host controller drivers, use the debug priority
      level.  This patch (as815) makes the one single exception behave like
      all the rest.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      1b7be3c0
    • A
      USB: OHCI: remove stale testing code from root-hub resume · 565402ba
      Alan Stern 提交于
      This patch (as811) removes some stale testing code from the root-hub
      resume routine in ohci-hcd.  It also adds a spin_lock_irq() call that
      inadvertently got left out of an error pathway.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      565402ba
    • A
      USB: OHCI: disable RHSC inside interrupt handler · 052ac01a
      Alan Stern 提交于
      This patch (as808b) moves the Root Hub Status Change interrupt-disable
      code in ohci-hcd back into the interrupt handler proper, to avoid the
      chance of adverse interactions with mediocre hardware implementations.
      
      It also deletes the root-hub status timer from within the interrupt-enable
      routine.  There's no need to poll for status any more once interrupts are
      re-enabled.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      052ac01a
    • A
      USB: ohci-hcd: fix compiler warning · b1878440
      Alan Stern 提交于
      This patch (as806) fixes a compiler warning when ohci-hcd is built
      with CONFIG_PM turned off.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b1878440
    • A
      [ARM] 3963/1: AT91: Update configuration files · 58a0cd78
      Andrew Victor 提交于
      A number of configuration file changes.
      
      These are mainly to replace references to ARCH_AT91RM9200 and
      ARCH_AT91SAM9261 with the common/generic ARCH_AT91.  That way we don't
      need to mention every specific AT91 processor explicitly.
      
      Also adds the configuration option for AT91SAM9260-EK and AT91SAM9261-EK
      boards.
      Signed-off-by: NAndrew Victor <andrew@sanpeople.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      58a0cd78
  6. 30 11月, 2006 2 次提交
  7. 22 11月, 2006 1 次提交
  8. 17 11月, 2006 2 次提交
  9. 18 10月, 2006 3 次提交
  10. 06 10月, 2006 1 次提交
  11. 05 10月, 2006 1 次提交
    • D
      IRQ: Maintain regs pointer globally rather than passing to IRQ handlers · 7d12e780
      David Howells 提交于
      Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
      of passing regs around manually through all ~1800 interrupt handlers in the
      Linux kernel.
      
      The regs pointer is used in few places, but it potentially costs both stack
      space and code to pass it around.  On the FRV arch, removing the regs parameter
      from all the genirq function results in a 20% speed up of the IRQ exit path
      (ie: from leaving timer_interrupt() to leaving do_IRQ()).
      
      Where appropriate, an arch may override the generic storage facility and do
      something different with the variable.  On FRV, for instance, the address is
      maintained in GR28 at all times inside the kernel as part of general exception
      handling.
      
      Having looked over the code, it appears that the parameter may be handed down
      through up to twenty or so layers of functions.  Consider a USB character
      device attached to a USB hub, attached to a USB controller that posts its
      interrupts through a cascaded auxiliary interrupt controller.  A character
      device driver may want to pass regs to the sysrq handler through the input
      layer which adds another few layers of parameter passing.
      
      I've build this code with allyesconfig for x86_64 and i386.  I've runtested the
      main part of the code on FRV and i386, though I can't test most of the drivers.
      I've also done partial conversion for powerpc and MIPS - these at least compile
      with minimal configurations.
      
      This will affect all archs.  Mostly the changes should be relatively easy.
      Take do_IRQ(), store the regs pointer at the beginning, saving the old one:
      
      	struct pt_regs *old_regs = set_irq_regs(regs);
      
      And put the old one back at the end:
      
      	set_irq_regs(old_regs);
      
      Don't pass regs through to generic_handle_irq() or __do_IRQ().
      
      In timer_interrupt(), this sort of change will be necessary:
      
      	-	update_process_times(user_mode(regs));
      	-	profile_tick(CPU_PROFILING, regs);
      	+	update_process_times(user_mode(get_irq_regs()));
      	+	profile_tick(CPU_PROFILING);
      
      I'd like to move update_process_times()'s use of get_irq_regs() into itself,
      except that i386, alone of the archs, uses something other than user_mode().
      
      Some notes on the interrupt handling in the drivers:
      
       (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in
           the input_dev struct.
      
       (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does
           something different depending on whether it's been supplied with a regs
           pointer or not.
      
       (*) Various IRQ handler function pointers have been moved to type
           irq_handler_t.
      Signed-Off-By: NDavid Howells <dhowells@redhat.com>
      (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
      7d12e780
  12. 04 10月, 2006 1 次提交
  13. 29 9月, 2006 4 次提交
  14. 28 9月, 2006 7 次提交
    • D
      USB: EHCI update VIA workaround · 26f953fd
      David Brownell 提交于
      This revamps handling of the hardware "async advance" IRQ, and its watchdog
      timer.  Basically it dis-entangles that important timeout from the others,
      simplifying the associated state and code to make it more robust.
      
      This reportedly improves behavior of EHCI on some systems with VIA chips,
      and AFAIK won't affect non-VIA hardware.  VIA systems need this code to
      recover from silcon bugs whereby the "async advance" IRQ isn't issued.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      26f953fd
    • P
      USB: ohci_usb can oops on shutdown · 71795c1d
      Pete Zaitcev 提交于
      When ohci-hcd is shutting down (for rmmod or PC-card removal), there is
      a window when the device is shut down, HC communication area (->hcca)
      is freed, but the core has not called "free_irq" yet. If another device
      triggers a shared interrupt in this window, we oops when trying to
      access the freed ->hcca.
      
      This patch removes the window by calling free_irq before ->hcca is freed.
      
      The patch is tested at the PC hotplug test rig at Stratus, and with
      rmmod by Rafael Wysocki.
      Signed-off-by: NPete Zaitcev <zaitcev@redhat.com>
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      71795c1d
    • P
      USB: Dealias -110 code (more complete) · 38e2bfc9
      Pete Zaitcev 提交于
      The purpose of this patch is to split off the case when a device does
      not reply on the lower level (which is reported by HC hardware), and
      a case when the device accepted the request, but does not reply at
      upper level. This redefinition allows to diagnose issues easier,
      without asking the user if the -110 happened "immediately".
      
      The usbmon splits such cases already thanks to its timestamp, but
      it's not always available.
      
      I adjusted all drivers which I found affected (by searching for "urb").
      Out of tree drivers may suffer a little bit, but I do not expect much
      breakage. At worst they may print a few messages.
      Signed-off-by: NPete Zaitcev <zaitcev@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      38e2bfc9
    • T
      USB: u132-hcd: host controller driver for ELAN U132 adapter · d774efea
      Tony Olech 提交于
      This "u132-hcd" module is one half of the "driver" for
      ELAN's U132 which is a USB to CardBus OHCI controller
      adapter. This module needs the "ftdi-elan" module in
      order to communicate to CardBus OHCI controller inserted
      into the U132 adapter.
      
      When the "ftdi-elan" module detects a supported CardBus
      OHCI controller in the U132 adapter it loads this "u132-hcd"
      module.
      
      Upon a successful device probe() the single workqueue
      is started up which does all the processing of commands
      from the USB core that implement the host controller.
      
      The workqueue maintains the urb queues and issues commands
      via the functions exported by the "ftdi-elan" module. Each
      such command will result in a callback.
      
      Note that the "ftdi-elan" module is a USB client driver.
      
      Note that this "u132-hcd" module is a (cut-down OHCI)
      host controller.
      
      Thus we have a topology with the parent of a host controller
      being a USB client! This really stresses the USB subsystem
      semaphore/mutex handling in the module removal.
      Signed-off-by: NTony Olech <tony.olech@elandigitalsystems.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      d774efea
    • G
      1ee95216
    • A
      usbcore: remove usb_suspend_root_hub · 02c399ee
      Alan Stern 提交于
      This patch (as740) removes the existing support for autosuspend of
      root hubs.  That support fit in rather awkwardly with the rest of
      usbcore and it was used only by ohci-hcd.  It won't be needed any more
      since the hub driver will take care of autosuspending all hubs, root
      or external.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      02c399ee
    • D
      USB: ohci-at91, two one-liners · cd22afda
      David Brownell 提交于
      This includes two one-liners forwarded to me for the OHCI support on at91:
      
       - KB920x (and other boards with CPUs in non-BGA packages) need a slightly
         different way to say "ignore that port, it's not pinned out";
      
       - On resume, if we turn clocks on, record that we did so.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      cd22afda