1. 10 10月, 2009 14 次提交
  2. 05 10月, 2009 1 次提交
  3. 02 10月, 2009 1 次提交
  4. 28 9月, 2009 2 次提交
    • D
      tty: Fix regressions caused by commit b50989dc · f278a2f7
      Dave Young 提交于
      The following commit made console open fails while booting:
      
      	commit b50989dc
      	Author: Alan Cox <alan@linux.intel.com>
      	Date:   Sat Sep 19 13:13:22 2009 -0700
      
      	tty: make the kref destructor occur asynchronously
      
      Due to tty release routines run in a workqueue now, error like the
      following will be reported while booting:
      
      INIT open /dev/console Input/output error
      
      It also causes hibernation regression to appear as reported at
      http://bugzilla.kernel.org/show_bug.cgi?id=14229
      
      The reason is that now there's latency issue with closing, but when
      we open a "closing not finished" tty, -EIO will be returned.
      
      Fix it as per the following Alan's suggestion:
      
        Fun but it's actually not a bug and the fix is wrong in itself as
        the port may be closing but not yet being destructed, in which case
        it seems to do the wrong thing.  Opening a tty that is closing (and
        could be closing for long periods) is supposed to return -EIO.
      
        I suspect a better way to deal with this and keep the old console
        timing is to split tty->shutdown into two functions.
      
        tty->shutdown() - called synchronously just before we dump the tty
        onto the waitqueue for destruction
      
        tty->cleanup() - called when the destructor runs.
      
        We would then do the shutdown part which can occur in IRQ context
        fine, before queueing the rest of the release (from tty->magic = 0
        ...  the end) to occur asynchronously
      
        The USB update in -next would then need a call like
      
             if (tty->cleanup)
                     tty->cleanup(tty);
      
        at the top of the async function and the USB shutdown to be split
        between shutdown and cleanup as the USB resource cleanup and final
        tidy cannot occur synchronously as it needs to sleep.
      
        In other words the logic becomes
      
             final kref put
                     make object unfindable
      
             async
                     clean it up
      Signed-off-by: NDave Young <hidave.darkstar@gmail.com>
      [ rjw: Rebased on top of 2.6.31-git, reworked the changelog. ]
      Signed-off-by: N"Rafael J. Wysocki" <rjw@sisk.pl>
      [ Changed serial naming to match new rules, dropped tty_shutdown as per
        comments from Alan Stern  - Linus ]
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f278a2f7
    • A
      const: mark struct vm_struct_operations · f0f37e2f
      Alexey Dobriyan 提交于
      * mark struct vm_area_struct::vm_ops as const
      * mark vm_ops in AGP code
      
      But leave TTM code alone, something is fishy there with global vm_ops
      being used.
      Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f0f37e2f
  5. 27 9月, 2009 1 次提交
  6. 24 9月, 2009 2 次提交
  7. 23 9月, 2009 19 次提交
    • G
      USB: skeleton: fix coding style issues. · 3ae9da1c
      Greg Kroah-Hartman 提交于
      This fixes up the majority of the coding style issues in the
      usb-skeleton driver.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3ae9da1c
    • O
      USB: O_NONBLOCK in read path of skeleton · 8cd01664
      Oliver Neukum 提交于
      Non blocking IO is supported in the read path of usb-skeleton.
      This is done by just not blocking. As support for handling signals
      without stopping IO is already there, it can be used for O_NONBLOCK, too.
      Signed-off-by: NOliver Neukum <oliver@neukum.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      8cd01664
    • O
      USB: make usb-skeleton honor O_NONBLOCK in write path · 79819986
      Oliver Neukum 提交于
      usb:usb-skeleton: honor O_NONBLOCK in write path
      
      nonblocking writes are allowed by using down_trylock if necessary
      to reserve an URB
      Signed-off-by: NOliver Neukum <oliver@neukum.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      79819986
    • O
      USB: skel_read really sucks royally · e7389cc9
      Oliver Neukum 提交于
      The read code path of the skeleton driver really sucks
      
       - skel_read works only for devices which always send data
       - the timeout comes out of thin air
       - it blocks signals for the duration of the timeout
       - it disallows nonblocking IO by design
      
      This patch fixes it by using a real urb, a completion and interruptible waits.
      Signed-off-by: NOliver Neukum <oliver@neukum.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      e7389cc9
    • S
      USB: Add hub descriptor update hook for xHCI · b356b7c7
      Sarah Sharp 提交于
      Add a hook for updating xHCI internal structures after khubd fetches the
      hub descriptor and sets up the hub's TT information.  The xHCI driver must
      update the internal structures before devices under the hub can be
      enumerated.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b356b7c7
    • S
      USB: xhci: Support USB hubs. · ac1c1b7f
      Sarah Sharp 提交于
      For a USB hub to work under an xHCI host controller, the xHC's internal
      scheduler must be made aware of the hub's characteristics.  Add an xHCI
      hook that the USB core will call after it fetches the hub descriptor.
      This hook will add hub information to the slot context for that device,
      including whether it has multiple TTs or a single TT, the number of ports
      on the hub, and TT think time.
      
      Setting up the slot context for the device is different for 0.95 and 0.96
      xHCI host controllers.
      
      Some of the slot context reserved fields in the 0.95 specification were
      changed into hub fields in the 0.96 specification.  Don't set the TT think
      time or number of ports for a hub if we're dealing with a 0.95-compliant
      xHCI host controller.
      
      The 0.95 xHCI specification says that to modify the hub flag, we need to
      issue an evaluate context command.  The 0.96 specification says that flag
      can be set with a configure endpoint command.  Issue the correct command
      based on the version reported by the hardware.
      
      This patch does not add support for multi-TT hubs.  Multi-TT hubs expose
      a single TT on alt setting 0, and multi-TT on alt setting 1.  The xHCI
      driver can't handle setting alternate interfaces yet.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ac1c1b7f
    • S
      USB: xhci: Set multi-TT field for LS/FS devices under hubs. · 07b6de10
      Sarah Sharp 提交于
      When setting up a slot context for an address device command, set the
      multi-TT field if this is a low or full speed device under a HS hub with
      multiple transaction translators.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      07b6de10
    • S
      USB: xhci: Set route string for all devices. · 4a0cd967
      Sarah Sharp 提交于
      The xHCI driver needs to set the route string in the slot context of all
      devices, not just SuperSpeed devices.  The route string concept was added
      in the USB 3.0 specification, section 10.1.3.2.  Each hub in the topology
      is expected to have no more than 15 ports in order for the route string of
      a device to be unique.  SuperSpeed hubs are restricted to only having 15
      ports, but FS/LS/HS hubs are not.  The xHCI specification says that if the
      port number the device is under is greater than 15, that portion of the
      route string shall be set to 15.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      4a0cd967
    • S
      USB: xhci: Fix command wait list handling. · a50c8aa9
      Sarah Sharp 提交于
      In the xHCI driver, configure endpoint commands that are submitted to the
      hardware may involve one of two data structures.  If the configure
      endpoint command is setting up a new configuration or modifying max packet
      sizes, the data structures and completions are statically allocated in the
      xhci_virt_device structure.  If the command is being used to set up
      streams or add hub information, then the data structures are dynamically
      allocated, and placed on a device command waiting list.
      
      Break out the code to check whether a completed command is in the device
      command waiting list.  Fix a subtle bug in the old code: continue
      processing the command if the command isn't in the wait list.  In the old
      code, if there was a command in the wait list, but it didn't match the
      completed command, the completed command event would be dropped.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      a50c8aa9
    • S
      USB: xhci: Change how xHCI commands are handled. · 913a8a34
      Sarah Sharp 提交于
      Some commands to the xHCI hardware cannot be allowed to fail due to out of
      memory issues or the command ring being full.
      
      Add a way to reserve a TRB on the command ring, and make all command
      queueing functions indicate whether they are using a reserved TRB.
      
      Add a way to pre-allocate all the memory a command might need.  A command
      needs an input context, a variable to store the status, and (optionally) a
      completion for the caller to wait on.  Change all code that assumes the
      input device context, status, and completion for a command is stored in
      the xhci virtual USB device structure (xhci_virt_device).
      
      Store pending completions in a FIFO in xhci_virt_device.  Make the event
      handler for a configure endpoint command check to see whether a pending
      command in the list has completed.  We need to use separate input device
      contexts for some configure endpoint commands, since multiple drivers can
      submit requests at the same time that require a configure endpoint
      command.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      913a8a34
    • S
      USB: xhci: Refactor input device context setup. · 5270b951
      Sarah Sharp 提交于
      Refactor common code to set up the add and drop flags for the input device
      context setup.  This setup is used before a configure endpoint command for
      the reset endpoint quirk, and will be used for the command to alloc or
      free streams rings.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      5270b951
    • S
      USB: xhci: Endpoint representation refactoring. · 63a0d9ab
      Sarah Sharp 提交于
      The xhci_ring structure contained information that is really related to an
      endpoint, not a ring.  This will cause problems later when endpoint
      streams are supported and there are multiple rings per endpoint.
      
      Move the endpoint state and cancellation information into a new virtual
      endpoint structure, xhci_virt_ep.  The list of TRBs to be cancelled should
      be per endpoint, not per ring, for easy access.  There can be only one TRB
      that the endpoint stopped on after a stop endpoint command (even with
      streams enabled); move the stopped TRB information into the new virtual
      endpoint structure.  Also move the 31 endpoint rings and temporary ring
      storage from the virtual device structure (xhci_virt_device) into the
      virtual endpoint structure (xhci_virt_ep).
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      63a0d9ab
    • R
      USB: gadget: ether needs to select CRC32 · 9e221be8
      Randy Dunlap 提交于
      Fix build error, ether uses/needs to select CRC32 config symbol:
      
      ether.c:(.text+0x271480): undefined reference to `crc32_le'
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      9e221be8
    • G
      USB: fix USBTMC get_capabilities success handling · d0a38365
      Gergely Imreh 提交于
      In order:
      Add reference to relevant section of USBTMC usb488 subclass specs.
      Print debug output of capabilities only when it was retrieved successfully.
      Clear return value on success, otherwise driver always reports failure.
      Signed-off-by: NGergely Imreh <imrehg@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      d0a38365
    • O
      USB: fix missing error check in probing · 1e5ea5e3
      Oliver Neukum 提交于
      usb: check for IO errors usb_set_interface can return
      
      if they happen while unbinding a flag is set to retry upon probe
      if they happen during probe they are handled as probe errors
      Signed-off-by: NOliver Neukum <oliver@neukum.org>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      1e5ea5e3
    • A
      USB: usbfs: add USBDEVFS_URB_BULK_CONTINUATION flag · 01c6460f
      Alan Stern 提交于
      This patch (as1283) adds a new flag, USBDEVFS_URB_BULK_CONTINUATION,
      to usbfs.  It is intended for userspace libraries such as libusb and
      openusb.  When they have to break up a single usbfs bulk transfer into
      multiple URBs, they will set the flag on all but the first URB of the
      series.
      
      If an error other than an unlink occurs, the kernel will automatically
      cancel all the following URBs for the same endpoint and refuse to
      accept new submissions, until an URB is encountered that is not marked
      as a BULK_CONTINUATION.  Such an URB would indicate the start of a new
      transfer or the presence of an older library, so the kernel returns to
      normal operation.
      
      This enables libraries to delimit bulk transfers correctly, even in
      the presence of early termination as indicated by short packets.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      
      01c6460f
    • O
      USB: support for autosuspend in sierra while online · e6929a90
      Oliver Neukum 提交于
      This implements support for autosuspend in the sierra driver while online.
      Remote wakeup is used for reception. Transmission is facilitated with a queue
      and the asynchronous autopm mechanism. To prevent races a private flag
      for opened ports and a counter of running transmissions needs to be added.
      Signed-off-by: NOliver Neukum <oliver@neukum.org>
      Tested-by: NElina Pasheva <epasheva@sierrawireless.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e6929a90
    • J
      USB: ehci-dbgp,ehci: Allow dbpg to work with suspend/resume · ad45f1dc
      Jason Wessel 提交于
      In order for the dbgp driver to survive suspend/resume, on every ehci
      resume operation the debug controller must get re-initialized.
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: dbrownell@users.sourceforge.net
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ad45f1dc
    • J
      USB: ehci-dbgp: errata for EHCI debug/host controller synchronization · 68d2956a
      Jason Wessel 提交于
      On some EHCI debug controllers after the host controller driver is
      activated, the debug controller will occasionally fail to submit a
      bulk write URB.  On controllers that exhibit this behavior a dummy
      bulk write must get submitted to resynchronize the device.
      
      The "dummy bulk write" does not get received by the host attached to
      the other end of the usb debug device.  The usb debug device simply
      acknowledges the "dummy bulk write" and returns to a usable state.
      
      The behavior, without this patch is that you see missing text from a
      complete kernel boot when using the keep option to the earlyprintk
      kernel argument.
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      68d2956a