31 Mar, 2011

1 commit


30 Mar, 2011

1 commit

  • * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (65 commits)
    ARM: 6826/1: Merge v6 and v7 DEBUG_LL DCC support
    ARM: 6838/1: etm: fix section mismatch warning
    ARM: 6837/1: remove unused pci_fixup_prpmc1100
    ARM: 6836/1: kprobes/fix emulation of LDR/STR instruction when Rn == PC
    Fix the broken build for Marvell Dove platform.
    ARM: 6835/1: perf: ensure overflows aren't missed due to IRQ latency
    ARM: 6834/1: perf: reset counters on all CPUs during initialisation
    ARM: 6833/1: perf: add required isbs() to ARMv7 backend
    ARM: 6825/1: kernel/sleep.S: fix Thumb2 compilation issues
    ARM: 6807/1: realview: Fix secondary GIC initialisation for EB with MPCore tile
    arm: mach-mx3: pcm043: add write-protect and card-detect for SD1
    eukrea_mbimxsd51: add SD Card detect
    eukrea_mbimxsd25-baseboard: add SD card detect
    mx3/eukrea_mbimxsd-baseboard: add SD card detect support
    mx3/eukrea_mbimxsd-baseboard: fix gpio request
    ARM: mxs/mx28evk: add mmc device
    ARM: mxs/mx23evk: add mmc device
    ARM: mxs: dynamically allocate mmc device
    ARM: mx51_efika: update platform data for new mfd changes
    mx2/iomux: Set direction for CSPI2 pins
    ...

    Linus Torvalds
     

29 Mar, 2011

1 commit


26 Mar, 2011

1 commit


25 Mar, 2011

1 commit

  • * 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
    USB: cdc-acm: fix potential null-pointer dereference on disconnect
    USB: cdc-acm: fix potential null-pointer dereference
    USB: cdc-acm: fix memory corruption / panic
    USB: Fix 'bad dma' problem on WDM device disconnect
    usb: wwan: fix compilation without CONFIG_PM_RUNTIME
    USB: uss720 fixup refcount position
    usb: musb: blackfin: fix typo in new bfin_musb_vbus_status func
    usb: musb: blackfin: fix typo in new dev_pm_ops struct
    usb: musb: blackfin: fix typo in platform driver name
    usb: musb: Fix for merge issue
    ehci-hcd: Bug fix: don't set a QH's Halt bit
    USB: Do not pass negative length to snoop_urb()

    Linus Torvalds
     

24 Mar, 2011

12 commits

  • Fix potential null-pointer exception on disconnect introduced by commit
    11ea859d64b69a747d6b060b9ed1520eab1161fe (USB: additional power savings
    for cdc-acm devices that support remote wakeup).

    Only access acm->dev after making sure it is non-null in control urb
    completion handler.

    Cc: stable
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • Must check return value of tty_port_tty_get.

    Cc: stable
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • Prevent read urbs from being resubmitted from tasklet after port close.

    The receive tasklet was not disabled on port close, which could lead to
    corruption of receive lists on consecutive port open. In particular,
    read urbs could be re-submitted before port open, added to free list in
    open, and then added a second time to the free list in the completion
    handler.

    cdc-acm.c: Entering acm_tty_open.
    cdc-acm.c: acm_control_msg: rq: 0x22 val: 0x3 len: 0x0 result: 0
    cdc-acm.c: Entering acm_rx_tasklet
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da280, rcv 0xf57fbc24, buf 0xf57fbd64
    cdc-acm.c: set line: 115200 0 0 8
    cdc-acm.c: acm_control_msg: rq: 0x20 val: 0x0 len: 0x7 result: 7
    cdc-acm.c: acm_tty_close
    cdc-acm.c: acm_port_down
    cdc-acm.c: acm_control_msg: rq: 0x22 val: 0x0 len: 0x0 result: 0
    cdc-acm.c: acm_ctrl_irq - urb shutting down with status: -2
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da300, rcv 0xf57fbc10, buf 0xf57fbd50
    cdc-acm.c: Entering acm_read_bulk with status -2
    cdc_acm 4-1:1.1: Aborting, acm not ready
    cdc-acm.c: Entering acm_read_bulk with status -2
    cdc_acm 4-1:1.1: Aborting, acm not ready
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da380, rcv 0xf57fbbfc, buf 0xf57fbd3c
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da400, rcv 0xf57fbbe8, buf 0xf57fbd28
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da480, rcv 0xf57fbbd4, buf 0xf57fbd14
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da900, rcv 0xf57fbbc0, buf 0xf57fbd00
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da980, rcv 0xf57fbbac, buf 0xf57fbcec
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50daa00, rcv 0xf57fbb98, buf 0xf57fbcd8
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50daa80, rcv 0xf57fbb84, buf 0xf57fbcc4
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50dab00, rcv 0xf57fbb70, buf 0xf57fbcb0
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50dab80, rcv 0xf57fbb5c, buf 0xf57fbc9c
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50dac00, rcv 0xf57fbb48, buf 0xf57fbc88
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50dac80, rcv 0xf57fbb34, buf 0xf57fbc74
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50dad00, rcv 0xf57fbb20, buf 0xf57fbc60
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50dad80, rcv 0xf57fbb0c, buf 0xf57fbc4c
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da880, rcv 0xf57fbaf8, buf 0xf57fbc38
    cdc-acm.c: Entering acm_tty_open.
    cdc-acm.c: acm_control_msg: rq: 0x22 val: 0x3 len: 0x0 result: 0
    cdc-acm.c: Entering acm_rx_tasklet
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da280, rcv 0xf57fbc24, buf 0xf57fbd64
    cdc-acm.c: Entering acm_tty_write to write 3 bytes,
    cdc-acm.c: Get 3 bytes...
    cdc-acm.c: acm_write_start susp_count: 0
    cdc-acm.c: Entering acm_read_bulk with status 0
    ------------[ cut here ]------------
    WARNING: at /home/johan/src/linux/linux-2.6/lib/list_debug.c:57 list_del+0x10c/0x120()
    Hardware name: Vostro 1520
    list_del corruption. next->prev should be f57fbc10, but was f57fbaf8
    Modules linked in: cdc_acm
    Pid: 3, comm: ksoftirqd/0 Not tainted 2.6.37+ #39
    Call Trace:
    [] warn_slowpath_common+0x72/0xa0
    [] ? list_del+0x10c/0x120
    [] ? list_del+0x10c/0x120
    [] warn_slowpath_fmt+0x33/0x40
    [] list_del+0x10c/0x120
    [] acm_rx_tasklet+0xef/0x3e0 [cdc_acm]
    [] ? net_rps_action_and_irq_enable+0x6d/0x80
    [] tasklet_action+0xe6/0x140
    [] __do_softirq+0xaf/0x210
    [] ? __do_softirq+0x0/0x210
    [] ? run_ksoftirqd+0x8a/0x1c0
    [] ? run_ksoftirqd+0x0/0x1c0
    [] ? kthread+0x74/0x80
    [] ? kthread+0x0/0x80
    [] ? kernel_thread_helper+0x6/0x10
    ---[ end trace efd9a11434f0082e ]---
    ------------[ cut here ]------------
    WARNING: at /home/johan/src/linux/linux-2.6/lib/list_debug.c:57 list_del+0x10c/0x120()
    Hardware name: Vostro 1520
    list_del corruption. next->prev should be f57fbd50, but was f57fbdb0
    Modules linked in: cdc_acm
    Pid: 3, comm: ksoftirqd/0 Tainted: G W 2.6.37+ #39
    Call Trace:
    [] warn_slowpath_common+0x72/0xa0
    [] ? list_del+0x10c/0x120
    [] ? list_del+0x10c/0x120
    [] warn_slowpath_fmt+0x33/0x40
    [] list_del+0x10c/0x120
    [] acm_rx_tasklet+0x106/0x3e0 [cdc_acm]
    [] ? net_rps_action_and_irq_enable+0x6d/0x80
    [] tasklet_action+0xe6/0x140
    [] __do_softirq+0xaf/0x210
    [] ? __do_softirq+0x0/0x210
    [] ? run_ksoftirqd+0x8a/0x1c0
    [] ? run_ksoftirqd+0x0/0x1c0
    [] ? kthread+0x74/0x80
    [] ? kthread+0x0/0x80
    [] ? kernel_thread_helper+0x6/0x10
    ---[ end trace efd9a11434f0082f ]---
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da300, rcv 0xf57fbc10, buf 0xf57fbd50
    cdc-acm.c: disconnected from network
    cdc-acm.c: acm_rx_tasklet: sending urb 0xf50da380, rcv 0xf57fbbfc, buf 0xf57fbd3c
    cdc-acm.c: Entering acm_rx_tasklet
    ------------[ cut here ]------------
    WARNING: at /home/johan/src/linux/linux-2.6/lib/list_debug.c:48 list_del+0xd5/0x120()
    Hardware name: Vostro 1520
    list_del corruption, next is LIST_POISON1 (00100100)
    Modules linked in: cdc_acm
    Pid: 3, comm: ksoftirqd/0 Tainted: G W 2.6.37+ #39
    Call Trace:
    [] warn_slowpath_common+0x72/0xa0
    [] ? list_del+0xd5/0x120
    [] ? list_del+0xd5/0x120
    [] warn_slowpath_fmt+0x33/0x40
    [] list_del+0xd5/0x120
    [] acm_rx_tasklet+0x2dc/0x3e0 [cdc_acm]
    [] ? trace_hardirqs_on+0xb/0x10
    [] ? tasklet_action+0x60/0x140
    [] tasklet_action+0xe6/0x140
    [] __do_softirq+0xaf/0x210
    [] ? __do_softirq+0x0/0x210
    [] ? run_ksoftirqd+0x8a/0x1c0
    [] ? run_ksoftirqd+0x0/0x1c0
    [] ? kthread+0x74/0x80
    [] ? kthread+0x0/0x80
    [] ? kernel_thread_helper+0x6/0x10
    ---[ end trace efd9a11434f00830 ]---
    BUG: unable to handle kernel paging request at 00200200
    IP: [] list_del+0x1d/0x120
    *pde = 00000000
    Oops: 0000 [#1] PREEMPT SMP
    last sysfs file: /sys/devices/pci0000:00/0000:00:1a.1/usb4/4-1/4-1:1.0/tty/ttyACM0/uevent
    Modules linked in: cdc_acm
    Pid: 3, comm: ksoftirqd/0 Tainted: G W 2.6.37+ #39 0T816J/Vostro 1520
    EIP: 0060:[] EFLAGS: 00010046 CPU: 0
    EIP is at list_del+0x1d/0x120
    EAX: f57fbd3c EBX: f57fb800 ECX: ffff8000 EDX: 00200200
    ESI: f57fbe90 EDI: f57fbd3c EBP: f600bf54 ESP: f600bf3c
    DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
    Process ksoftirqd/0 (pid: 3, ti=f600a000 task=f60791c0 task.ti=f6082000)
    Stack:
    c1527e84 00000030 c1527e54 00100100 f57fb800 f57fbd3c f600bf98 f8051fac
    f8053104 f8052b94 f600bf6c c106dbab f600bf80 00000286 f60791c0 c1042b30
    f57fbda8 f57f5800 f57fbdb0 f57fbd80 f57fbe7c c1656b04 00000000 f600bfb0
    Call Trace:
    [] ? acm_rx_tasklet+0x2dc/0x3e0 [cdc_acm]
    [] ? trace_hardirqs_on+0xb/0x10
    [] ? tasklet_action+0x60/0x140
    [] ? tasklet_action+0xe6/0x140
    [] ? __do_softirq+0xaf/0x210
    [] ? __do_softirq+0x0/0x210

    [] ? run_ksoftirqd+0x8a/0x1c0
    [] ? run_ksoftirqd+0x0/0x1c0
    [] ? kthread+0x74/0x80
    [] ? kthread+0x0/0x80
    [] ? kernel_thread_helper+0x6/0x10
    Code: ff 48 14 e9 57 ff ff ff 90 90 90 90 90 90 55 89 e5 83 ec 18 81 38 00 01 10 00 0f 84 9c 00 00 00 8b 50 04 81 fa 00 02 20 00 74 33 12 39 d0 75 5c 8b 10 8b 4a 04 39 c8 0f 85 b5 00 00 00 8b 48
    EIP: [] list_del+0x1d/0x120 SS:ESP 0068:f600bf3c
    CR2: 0000000000200200
    ---[ end trace efd9a11434f00831 ]---
    Kernel panic - not syncing: Fatal exception in interrupt
    Pid: 3, comm: ksoftirqd/0 Tainted: G D W 2.6.37+ #39
    Call Trace:
    [] ? printk+0x1d/0x24
    [] panic+0x66/0x15c
    [] oops_end+0x8f/0x90
    [] no_context+0xc6/0x160
    [] __bad_area_nosemaphore+0x98/0x140
    [] ? release_console_sem+0x1d8/0x210
    [] bad_area_nosemaphore+0x17/0x20
    [] do_page_fault+0x279/0x420
    [] ? show_trace+0x1f/0x30
    [] ? printk+0x1d/0x24
    [] ? do_page_fault+0x0/0x420
    [] error_code+0x5f/0x64
    [] ? select_task_rq_fair+0x37b/0x6a0
    [] ? do_page_fault+0x0/0x420
    [] ? list_del+0x1d/0x120
    [] acm_rx_tasklet+0x2dc/0x3e0 [cdc_acm]
    [] ? trace_hardirqs_on+0xb/0x10
    [] ? tasklet_action+0x60/0x140
    [] tasklet_action+0xe6/0x140
    [] __do_softirq+0xaf/0x210
    [] ? __do_softirq+0x0/0x210
    [] ? run_ksoftirqd+0x8a/0x1c0
    [] ? run_ksoftirqd+0x0/0x1c0
    [] ? kthread+0x74/0x80
    [] ? kthread+0x0/0x80
    [] ? kernel_thread_helper+0x6/0x10
    panic occurred, switching back to text console
    ------------[ cut here ]------------

    Cc: stable
    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • In the WDM class driver a disconnect event leads to calls to
    usb_free_coherent to put back two USB DMA buffers allocated earlier.
    The call to usb_free_coherent uses a different size parameter
    (desc->wMaxCommand) than the corresponding call to usb_alloc_coherent
    (desc->bMaxPacketSize0).

    When a disconnect event occurs, this leads to 'bad dma' complaints
    from usb core because the USB DMA buffer is being pushed back to the
    'buffer-2048' pool from which it has not been allocated.

    This patch against the most recent linux-2.6 kernel ensures that the
    parameters used by usb_alloc_coherent & usb_free_coherent calls in
    cdc-wdm.c match.

    Signed-off-by: Robert Lukassen
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Robert Lukassen
     
  • The pm usage counter must be accessed with the proper wrappers
    to allow compilation under all configurations.

    Signed-off-by: Oliver Neukum
    Reported-by: Eric Dumazet
    Reported-by: Tao Ma
    Signed-off-by: Greg Kroah-Hartman

    Oliver Neukum
     
  • My testprog do a lot of bitbang - after hours i got following warning and my machine lockups:
    WARNING: at /build/buildd/linux-2.6.38/lib/kref.c:34
    After debugging uss720 driver i discovered that the completion callback was called before
    usb_submit_urb returns. The callback frees the request structure that is krefed on return by
    usb_submit_urb.

    Signed-off-by: Peter Holik
    Acked-by: Thomas Sailer
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Peter Holik
     
  • The common code has a "get" in the middle, but each implementation
    does not have it.

    Cc: stable@kernel.org
    Signed-off-by: Mike Frysinger
    Signed-off-by: Greg Kroah-Hartman

    Mike Frysinger
     
  • Cc: stable@kernel.org
    Signed-off-by: Bob Liu
    Signed-off-by: Mike Frysinger
    Signed-off-by: Greg Kroah-Hartman

    Bob Liu
     
  • The modularization of the Blackfin driver set the name to "musb-blackfin"
    in all the boards, but "musb-bfin" in the driver itself. Since the driver
    file name uses "blackfin", change the driver to "musb-blackfin". This is
    also easier as it's only one file to change.

    Cc: stable@kernel.org
    Signed-off-by: Mike Frysinger
    Signed-off-by: Greg Kroah-Hartman

    Mike Frysinger
     
  • There was conflict while merging 2 patches. Enabling vbus code
    is wrongly moved to error check if loop.

    This is a fix to resolve the merge issue.

    Signed-off-by: Hema HK
    Cc: Felipe Balbi
    Signed-off-by: Greg Kroah-Hartman

    Hema HK
     
  • This patch (as1453) fixes a long-standing bug in the ehci-hcd driver.

    There is no need to set the Halt bit in the overlay region for an
    unlinked or blocked QH. Contrary to what the comment says, setting
    the Halt bit does not cause the QH to be patched later; that decision
    (made in qh_refresh()) depends only on whether the QH is currently
    pointing to a valid qTD. Likewise, setting the Halt bit does not
    prevent completions from activating the QH while it is "stopped"; they
    are prevented by the fact that qh_completions() temporarily changes
    qh->qh_state to QH_STATE_COMPLETING.

    On the other hand, there are circumstances in which the QH will be
    reactivated _without_ being patched; this happens after an URB beyond
    the head of the queue is unlinked. Setting the Halt bit will then
    cause the hardware to see the QH with both the Active and Halt bits
    set, an invalid combination that will prevent the queue from
    advancing and may even crash some controllers.

    Apparently the only reason this hasn't been reported before is that
    unlinking URBs from the middle of a running queue is quite uncommon.
    However Test 17, recently added to the usbtest driver, does exactly
    this, and it confirms the presence of the bug.

    In short, there is no reason to set the Halt bit for an unlinked or
    blocked QH, and there is a very good reason not to set it. Therefore
    the code that sets it is removed.

    Signed-off-by: Alan Stern
    Tested-by: Andiry Xu
    CC: David Brownell
    CC:
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • When `echo Y > /sys/module/usbcore/parameters/usbfs_snoop` and
    usb_control_msg() returns error, a lot of kernel memory is dumped to dmesg
    until unhandled kernel paging request occurs.

    Signed-off-by: Michal Sojka
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Michal Sojka
     

23 Mar, 2011

3 commits

  • This silences warnings such as

    drivers/video/tmiofb.c: In function 'tmiofb_hw_init':
    drivers/video/tmiofb.c:270: warning: initialization discards qualifiers from pointer target type

    These were added by me in commit 2a79bb1d.

    Signed-off-by: Andres Salomon
    Signed-off-by: Samuel Ortiz

    Andres Salomon
     
  • No need to explicitly set the cell's platform_data/data_size.

    Modify clients to use mfd_get_cell helper function instead of
    accessing platform_data directly.

    Signed-off-by: Andres Salomon
    Signed-off-by: Samuel Ortiz

    Andres Salomon
     
  • There may be multiple ways of controlling the backlight on a given
    machine. Allow drivers to expose the type of interface they are
    providing, making it possible for userspace to make appropriate policy
    decisions.

    Signed-off-by: Matthew Garrett
    Cc: Richard Purdie
    Cc: Chris Wilson
    Cc: David Airlie
    Cc: Alex Deucher
    Cc: Ben Skeggs
    Cc: Zhang Rui
    Cc: Len Brown
    Cc: Jesse Barnes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Garrett
     

19 Mar, 2011

1 commit

  • USB defines usb_device_type pointing to usb_device_pm_ops that
    provides system-wide PM callbacks only and usb_bus_type pointing to
    usb_bus_pm_ops that provides runtime PM callbacks only. However,
    the USB runtime PM callbacks may be defined in usb_device_pm_ops
    which makes it possible to drop usb_bus_pm_ops and will allow us
    to consolidate the handling of subsystems by the PM core code.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Greg Kroah-Hartman

    Rafael J. Wysocki
     

18 Mar, 2011

2 commits

  • * 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (258 commits)
    omap: zoom: host should not pull up wl1271's irq line
    arm: plat-omap: iommu: fix request_mem_region() error path
    OMAP2+: Common CPU DIE ID reading code reads wrong registers for OMAP4430
    omap4: mux: Remove duplicate mux modes
    omap: iovmm: don't check 'da' to set IOVMF_DA_FIXED flag
    omap: iovmm: disallow mapping NULL address when IOVMF_DA_ANON is set
    omap2+: mux: Fix compile when CONFIG_OMAP_MUX is not selected
    omap4: board-omap4panda: Initialise the serial pads
    omap3: board-3430sdp: Initialise the serial pads
    omap4: board-4430sdp: Initialise the serial pads
    omap2+: mux: Add macro for configuring static with omap_hwmod_mux_init
    omap2+: mux: Remove the use of IDLE flag
    omap2+: Add separate list for dynamic pads to mux
    perf: add OMAP support for the new power events
    OMAP4: Add IVA OPP enteries.
    OMAP4: Update Voltage Rail Values for MPU, IVA and CORE
    OMAP4: Enable 800 MHz and 1 GHz MPU-OPP
    OMAP3+: OPP: Replace voltage values with Macros
    OMAP3: wdtimer: Fix CORE idle transition
    Watchdog: omap_wdt: add fine grain runtime-pm
    ...

    Fix up various conflicts in
    - arch/arm/mach-omap2/board-omap3evm.c
    - arch/arm/mach-omap2/clock3xxx_data.c
    - arch/arm/mach-omap2/usb-musb.c
    - arch/arm/plat-omap/include/plat/usb.h
    - drivers/usb/musb/musb_core.h

    Linus Torvalds
     
  • * 'devel-stable' of master.kernel.org:/home/rmk/linux-2.6-arm: (289 commits)
    davinci: DM644x EVM: register MUSB device earlier
    davinci: add spi devices on tnetv107x evm
    davinci: add ssp config for tnetv107x evm board
    davinci: add tnetv107x ssp platform device
    spi: add ti-ssp spi master driver
    mfd: add driver for sequencer serial port
    ARM: EXYNOS4: Implement Clock gating for System MMU
    ARM: EXYNOS4: Enhancement of System MMU driver
    ARM: EXYNOS4: Add support for gpio interrupts
    ARM: S5P: Add function to register gpio interrupt bank data
    ARM: S5P: Cleanup S5P gpio interrupt code
    ARM: EXYNOS4: Add missing GPYx banks
    ARM: S3C64XX: Fix section mismatch from cpufreq init
    ARM: EXYNOS4: Add keypad device to the SMDKV310
    ARM: EXYNOS4: Update clocks for keypad
    ARM: EXYNOS4: Update keypad base address
    ARM: EXYNOS4: Add keypad device helpers
    ARM: EXYNOS4: Add support for SATA on ARMLEX4210
    plat-nomadik: make GPIO interrupts work with cpuidle ApSleep
    mach-u300: define a dummy filter function for coh901318
    ...

    Fix up various conflicts in
    - arch/arm/mach-exynos4/cpufreq.c
    - arch/arm/mach-mxs/gpio.c
    - drivers/net/Kconfig
    - drivers/tty/serial/Kconfig
    - drivers/tty/serial/Makefile
    - drivers/usb/gadget/fsl_mxc_udc.c
    - drivers/video/Kconfig

    Linus Torvalds
     

17 Mar, 2011

5 commits

  • * 'remove' of master.kernel.org:/home/rmk/linux-2.6-arm:
    ARM: 6629/2: aaec2000: remove support for mach-aaec2000
    ARM: lh7a40x: remove unmaintained platform support

    Fix up trivial conflicts in
    - arch/arm/mach-{aaec2000,lh7a40x}/include/mach/memory.h (removed)
    - drivers/usb/gadget/Kconfig (USB_[GADGET_]LH7A40X removed, others added)

    Linus Torvalds
     
  • * 'devicetree/next' of git://git.secretlab.ca/git/linux-2.6: (21 commits)
    tty: serial: altera_jtaguart: Add device tree support
    tty: serial: altera_uart: Add devicetree support
    dt: eliminate of_platform_driver shim code
    dt: Eliminate of_platform_{,un}register_driver
    dt/serial: Eliminate users of of_platform_{,un}register_driver
    dt/usb: Eliminate users of of_platform_{,un}register_driver
    dt/video: Eliminate users of of_platform_{,un}register_driver
    dt/net: Eliminate users of of_platform_{,un}register_driver
    dt/sound: Eliminate users of of_platform_{,un}register_driver
    dt/spi: Eliminate users of of_platform_{,un}register_driver
    dt: uartlite: merge platform and of_platform driver bindings
    dt: xilinx_hwicap: merge platform and of_platform driver bindings
    ipmi: convert OF driver to platform driver
    leds/leds-gpio: merge platform_driver with of_platform_driver
    dt/sparc: Eliminate users of of_platform_{,un}register_driver
    dt/powerpc: Eliminate users of of_platform_{,un}register_driver
    dt/powerpc: move of_bus_type infrastructure to ibmebus
    drivercore/dt: add a match table pointer to struct device
    dt: Typo fix.
    altera_ps2: Add devicetree support
    ...

    Linus Torvalds
     
  • * 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (961 commits)
    staging: hv: fix memory leaks
    staging: hv: Remove NULL check before kfree
    Staging: hv: Get rid of vmbus_child_dev_add()
    Staging: hv: Change the signature for vmbus_child_device_register()
    Staging: hv: Get rid of vmbus_cleanup() function
    Staging: hv: Get rid of vmbus_dev_rm() function
    Staging: hv: Change the signature for vmbus_on_isr()
    Staging: hv: Eliminate vmbus_event_dpc()
    Staging: hv: Get rid of the function vmbus_msg_dpc()
    Staging: hv: Change the signature for vmbus_cleanup()
    Staging: hv: Simplify root device management
    staging: rtl8192e: Don't copy dev pointer to skb
    staging: rtl8192e: Pass priv to cmdpkt functions
    staging: rtl8192e: Pass priv to firmware download functions
    staging: rtl8192e: Pass priv to rtl8192_interrupt
    staging: rtl8192e: Pass rtl8192_priv to dm functions
    staging: rtl8192e: Pass ieee80211_device to callbacks
    staging: rtl8192e: Pass ieee80211_device to callbacks
    staging: rtl8192e: Pass ieee80211_device to callbacks
    staging: rtl8192e: Pass ieee80211_device to callbacks
    ...

    Linus Torvalds
     
  • * 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (76 commits)
    pch_uart: reference clock on CM-iTC
    pch_phub: add new device ML7213
    n_gsm: fix UIH control byte : P bit should be 0
    n_gsm: add a documentation
    serial: msm_serial_hs: Add MSM high speed UART driver
    tty_audit: fix tty_audit_add_data live lock on audit disabled
    tty: move cd1865.h to drivers/staging/tty/
    Staging: tty: fix build with epca.c driver
    pcmcia: synclink_cs: fix prototype for mgslpc_ioctl()
    Staging: generic_serial: fix double locking bug
    nozomi: don't use flush_scheduled_work()
    tty/serial: Relax the device_type restriction from of_serial
    MAINTAINERS: Update HVC file patterns
    tty: phase out of ioctl file pointer for tty3270 as well
    tty: forgot to remove ipwireless from drivers/char/pcmcia/Makefile
    pch_uart: Fix DMA channel miss-setting issue.
    pch_uart: fix exclusive access issue
    pch_uart: fix auto flow control miss-setting issue
    pch_uart: fix uart clock setting issue
    pch_uart : Use dev_xxx not pr_xxx
    ...

    Fix up trivial conflicts in drivers/misc/pch_phub.c (same patch applied
    twice, then changes to the same area in one branch)

    Linus Torvalds
     
  • * 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (172 commits)
    USB: Add support for SuperSpeed isoc endpoints
    xhci: Clean up cycle bit math used during stalls.
    xhci: Fix cycle bit calculation during stall handling.
    xhci: Update internal dequeue pointers after stalls.
    USB: Disable auto-suspend for USB 3.0 hubs.
    USB: Remove bogus USB_PORT_STAT_SUPER_SPEED symbol.
    xhci: Return canceled URBs immediately when host is halted.
    xhci: Fixes for suspend/resume of shared HCDs.
    xhci: Fix re-init on power loss after resume.
    xhci: Make roothub functions deal with device removal.
    xhci: Limit roothub ports to 15 USB3 & 31 USB2 ports.
    xhci: Return a USB 3.0 hub descriptor for USB3 roothub.
    xhci: Register second xHCI roothub.
    xhci: Change xhci_find_slot_id_by_port() API.
    xhci: Refactor bus suspend state into a struct.
    xhci: Index with a port array instead of PORTSC addresses.
    USB: Set usb_hcd->state and flags for shared roothubs.
    usb: Make core allocate resources per PCI-device.
    usb: Store bus type in usb_hcd, not in driver flags.
    usb: Change usb_hcd->bandwidth_mutex to a pointer.
    ...

    Linus Torvalds
     

16 Mar, 2011

1 commit


15 Mar, 2011

2 commits

  • After redefining CONFIG_PM to depend on (CONFIG_PM_SLEEP ||
    CONFIG_PM_RUNTIME) the CONFIG_PM_OPS option is redundant and can be
    replaced with CONFIG_PM.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • A subsequent patch will modify device_set_wakeup_capable() in such
    a way that it will call functions which may sleep and therefore it
    shouldn't be called under spinlocks. In preparation to that, modify
    usb_set_device_state() to avoid calling device_set_wakeup_capable()
    under device_state_lock.

    Tested-by: Minchan Kim
    Signed-off-by: Rafael J. Wysocki
    Acked-by: Greg Kroah-Hartman

    Rafael J. Wysocki
     

14 Mar, 2011

9 commits

  • Use the Mult and bMaxBurst values from the endpoint companion
    descriptor to calculate the max length of an isoc transfer.

    Add USB_SS_MULT macro to access Mult field of bmAttributes, at
    Sarah's suggestion.

    This patch should be queued for the 2.6.36 and 2.6.37 stable trees, since
    those were the first kernels to have isochronous support for SuperSpeed
    devices.

    Signed-off-by: Paul Zimmerman
    Signed-off-by: Sarah Sharp
    Cc: stable@kernel.org

    Paul Zimmerman
     
  • Use XOR to invert the cycle bit, instead of a more complicated
    calculation. Eliminate a check for the link TRB type in find_trb_seg().
    We know that there will always be a link TRB at the end of a segment, so
    xhci_segment->trbs[TRBS_PER_SEGMENT - 1] will always have a link TRB type.

    Signed-off-by: Sarah Sharp
    Tested-by: Takashi Iwai

    Sarah Sharp
     
  • When an endpoint stalls, we need to update the xHCI host's internal
    dequeue pointer to move it past the stalled transfer. This includes
    updating the cycle bit (TRB ownership bit) if we have moved the dequeue
    pointer past a link TRB with the toggle cycle bit set.

    When we're trying to find the new dequeue segment, find_trb_seg() is
    supposed to keep track of whether we've passed any link TRBs with the
    toggle cycle bit set. However, this while loop's body

    while (cur_seg->trbs > trb ||
    &cur_seg->trbs[TRBS_PER_SEGMENT - 1] < trb) {

    Will never get executed if the ring only contains one segment.
    find_trb_seg() will return immediately, without updating the new cycle
    bit. Since find_trb_seg() has no idea where in the segment the TD that
    stalled was, make the caller, xhci_find_new_dequeue_state(), check for
    this special case and update the cycle bit accordingly.

    This patch should be queued to kernels all the way back to 2.6.31.

    Signed-off-by: Sarah Sharp
    Tested-by: Takashi Iwai
    Cc: stable@kernel.org

    Sarah Sharp
     
  • When an endpoint stalls, the xHCI driver must move the endpoint ring's
    dequeue pointer past the stalled transfer. To do that, the driver issues
    a Set TR Dequeue Pointer command, which will complete some time later.

    Takashi was having issues with USB 1.1 audio devices that stalled, and his
    analysis of the code was that the old code would not update the xHCI
    driver's ring dequeue pointer after the command completes. However, the
    dequeue pointer is set in xhci_find_new_dequeue_state(), just before the
    set command is issued to the hardware.

    Setting the dequeue pointer before the Set TR Dequeue Pointer command
    completes is a dangerous thing to do, since the xHCI hardware can fail the
    command. Instead, store the new dequeue pointer in the xhci_virt_ep
    structure, and update the ring's dequeue pointer when the Set TR dequeue
    pointer command completes.

    While we're at it, make sure we can't queue another Set TR Dequeue Command
    while the first one is still being processed. This just won't work with
    the internal xHCI state code. I'm still not sure if this is the right
    thing to do, since we might have a case where a driver queues multiple
    URBs to a control ring, one of the URBs Stalls, and then the driver tries
    to cancel the second URB. There may be a race condition there where the
    xHCI driver might try to issue multiple Set TR Dequeue Pointer commands,
    but I would have to think very hard about how the Stop Endpoint and
    cancellation code works. Keep the fix simple until when/if we run into
    that case.

    This patch should be queued to kernels all the way back to 2.6.31.

    Signed-off-by: Sarah Sharp
    Tested-by: Takashi Iwai
    Cc: stable@kernel.org

    Sarah Sharp
     
  • USB 3.0 devices have a slightly different suspend sequence than USB
    2.0/1.1 devices. There isn't support for USB 3.0 device suspend yet, so
    make khubd leave autosuspend disabled for USB 3.0 hubs. Make sure that
    USB 3.0 roothubs still have autosuspend enabled, since that path in the
    xHCI driver works fine.

    Signed-off-by: Sarah Sharp

    Sarah Sharp
     
  • USB_PORT_STAT_SUPER_SPEED is a made up symbol that the USB core used to
    track whether USB ports had a SuperSpeed device attached. This is a
    linux-internal symbol that was used when SuperSpeed and non-SuperSpeed
    devices would show up under the same xHCI roothub. This particular
    port status is never returned by external USB 3.0 hubs. (Instead they
    have a USB_PORT_STAT_SPEED_5GBPS that uses a completely different speed
    mask.)

    Now that the xHCI driver registers two roothubs, USB 3.0 devices will only
    show up under USB 3.0 hubs. Rip out USB_PORT_STAT_SUPER_SPEED and replace
    it with calls to hub_is_superspeed().

    Signed-off-by: Sarah Sharp

    Sarah Sharp
     
  • When the xHCI host controller is halted, it won't respond to commands
    placed on the command ring. So if an URB is cancelled after the first
    roothub is deallocated, it will try to place a stop endpoint command on
    the command ring, which will fail. The command watchdog timer will fire
    after five seconds, and the host controller will be marked as dying, and
    all URBs will be completed.

    Add a flag to the xHCI's internal state variable for when the host
    controller is halted. Immediately return the canceled URB if the host
    controller is halted.

    Signed-off-by: Sarah Sharp

    Sarah Sharp
     
  • Make sure the HCD_FLAG_HW_ACCESSIBLE flag is mirrored by both roothubs,
    since it refers to whether the shared hardware is accessible. Make sure
    each bus is marked as suspended by setting usb_hcd->state to
    HC_STATE_SUSPENDED when the PCI host controller is resumed.

    Signed-off-by: Sarah Sharp

    Sarah Sharp
     
  • When a host controller has lost power during a suspend, we must
    reinitialize it. Now that the xHCI host has two roothubs, xhci_run() and
    xhci_stop() expect to be called with both usb_hcd structures. Be sure
    that the re-initialization code in xhci_resume() mirrors the process the
    USB PCI probe function uses.

    Signed-off-by: Sarah Sharp

    Sarah Sharp