1. 01 Aug, 2011 1 commit
    • Sarah Sharp's avatar
      xhci: Don't submit commands or URBs to halted hosts. · 7bd89b40
      Sarah Sharp authored
      Commit fccf4e86
      "USB: Free bandwidth when usb_disable_device is called" caused a bit of an
      issue when the xHCI host controller driver is unloaded.  It changed the
      USB core to remove all endpoints when a USB device is disabled.  When the
      driver is unloaded, it will remove the SuperSpeed split root hub, which
      will disable all devices under that roothub and then halt the host
      controller.  When the second High Speed split roothub is removed, the USB
      core will attempt to disable the endpoints, which will submit a Configure
      Endpoint command to a halted host controller.
      
      The command will eventually time out, but it makes the xHCI driver unload
      take *minutes* if there are a couple of USB 1.1/2.0 devices attached.  We
      must halt the host controller when the SuperSpeed roothub is removed,
      because we can't allow any interrupts from things like port status
      changes.
      
      Make several different functions not submit commands or URBs to the host
      controller when the host is halted, by adding a check in
      xhci_check_args().  xhci_check_args() is used by these functions:
      
      xhci.c-int xhci_urb_enqueue()
      xhci.c-int xhci_drop_endpoint()
      xhci.c-int xhci_add_endpoint()
      xhci.c-int xhci_check_bandwidth()
      xhci.c-void xhci_reset_bandwidth()
      xhci.c-static int xhci_check_streams_endpoint()
      xhci.c-int xhci_discover_or_reset_device()
      
      It's also used by xhci_free_dev().  However, we have to take special
      care in that case, because we want the device memory to be freed if the
      host controller is halted.
      
      This patch should be backported to the 2.6.39 and 3.0 kernel.
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: stable@kernel.org
      7bd89b40
  2. 27 Jul, 2011 7 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · e371d46a
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
        merge fchmod() and fchmodat() guts, kill ancient broken kludge
        xfs: fix misspelled S_IS...()
        xfs: get rid of open-coded S_ISREG(), etc.
        vfs: document locking requirements for d_move, __d_move and d_materialise_unique
        omfs: fix (mode & S_IFDIR) abuse
        btrfs: S_ISREG(mode) is not mode & S_IFREG...
        ima: fmode_t misspelled as mode_t...
        pci-label.c: size_t misspelled as mode_t
        jffs2: S_ISLNK(mode & S_IFMT) is pointless
        snd_msnd ->mode is fmode_t, not mode_t
        v9fs_iop_get_acl: get rid of unused variable
        vfs: dont chain pipe/anon/socket on superblock s_inodes list
        Documentation: Exporting: update description of d_splice_alias
        fs: add missing unlock in default_llseek()
      e371d46a
    • Linus Torvalds's avatar
      Merge branch 'next/devel2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc · b0189cd0
      Linus Torvalds authored
      * 'next/devel2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc: (47 commits)
        OMAP: Add debugfs node to show the summary of all clocks
        OMAP2+: hwmod: Follow the recommended PRCM module enable sequence
        OMAP2+: clock: allow per-SoC clock init code to prevent clockdomain calls from clock code
        OMAP2+: clockdomain: Add per clkdm lock to prevent concurrent state programming
        OMAP2+: PM: idle clkdms only if already in idle
        OMAP2+: clockdomain: add clkdm_in_hwsup()
        OMAP2+: clockdomain: Add 2 APIs to control clockdomain from hwmod framework
        OMAP: clockdomain: Remove redundant call to pwrdm_wait_transition()
        OMAP4: hwmod: Introduce the module control in hwmod control
        OMAP4: cm: Add two new APIs for modulemode control
        OMAP4: hwmod data: Add modulemode entry in omap_hwmod structure
        OMAP4: hwmod data: Add PRM context register offset
        OMAP4: prm: Remove deprecated functions
        OMAP4: prm: Replace warm reset API with the offset based version
        OMAP4: hwmod: Replace RSTCTRL absolute address with offset macros
        OMAP: hwmod: Wait the idle status to be disabled
        OMAP4: hwmod: Replace CLKCTRL absolute address with offset macros
        OMAP2+: hwmod: Init clkdm field at boot time
        OMAP4: hwmod data: Add clock domain attribute
        OMAP4: clock data: Add missing divider selection for auxclks
        ...
      b0189cd0
    • Linus Torvalds's avatar
      Merge branch 'next/devel' of ssh://master.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc · 69f1d1a6
      Linus Torvalds authored
      * 'next/devel' of ssh://master.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc: (128 commits)
        ARM: S5P64X0: External Interrupt Support
        ARM: EXYNOS4: Enable MFC on Samsung NURI
        ARM: EXYNOS4: Enable MFC on universal_c210
        ARM: S5PV210: Enable MFC on Goni
        ARM: S5P: Add support for MFC device
        ARM: EXYNOS4: Add support FIMD on SMDKC210
        ARM: EXYNOS4: Add platform device and helper functions for FIMD
        ARM: EXYNOS4: Add resource definition for FIMD
        ARM: EXYNOS4: Change devname for FIMD clkdev
        ARM: SAMSUNG: Add IRQ_I2S0 definition
        ARM: SAMSUNG: Add platform device for idma
        ARM: EXYNOS4: Add more registers to be saved and restored for PM
        ARM: EXYNOS4: Add more register addresses of CMU
        ARM: EXYNOS4: Add platform device for dwmci driver
        ARM: EXYNOS4: configure rtc-s3c on NURI
        ARM: EXYNOS4: configure MAX8903 secondary charger on NURI
        ARM: EXYNOS4: configure ADC on NURI
        ARM: EXYNOS4: configure MAX17042 fuel gauge on NURI
        ARM: EXYNOS4: configure regulators and PMIC(MAX8997) on NURI
        ARM: EXYNOS4: Increase NR_IRQS for devices with more IRQs
        ...
      
      Fix up tons of silly conflicts:
       - arch/arm/mach-davinci/include/mach/psc.h
       - arch/arm/mach-exynos4/Kconfig
       - arch/arm/mach-exynos4/mach-smdkc210.c
       - arch/arm/mach-exynos4/pm.c
       - arch/arm/mach-imx/mm-imx1.c
       - arch/arm/mach-imx/mm-imx21.c
       - arch/arm/mach-imx/mm-imx25.c
       - arch/arm/mach-imx/mm-imx27.c
       - arch/arm/mach-imx/mm-imx31.c
       - arch/arm/mach-imx/mm-imx35.c
       - arch/arm/mach-mx5/mm.c
       - arch/arm/mach-s5pv210/mach-goni.c
       - arch/arm/mm/Kconfig
      69f1d1a6
    • Linus Torvalds's avatar
      Merge branch 'next/board' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc · 2d86a3f0
      Linus Torvalds authored
      * 'next/board' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:
        ARM: S3C64XX: Configure backup battery charger on Cragganmore
        ARM: S3C64XX: Fix WM8915 IRQ polarity on Cragganmore
        ARM: S3C64XX: Configure supplies for all Cragganmore regulators
        ARM: S3C64XX: Refresh Cragganmore support
        ARM: S3C64XX: Initial support for Wolfson/Simtec Cragganmore/Banff
        OMAP4: Keyboard: Mux changes in the board file
        omap: blaze: add mmc5/wl1283 device support
        omap: 4430SDP: Register the card detect GPIO properly
        arm: omap3: cm-t35: add support for cm-t3730
        OMAP3: beagle: add support for beagleboard xM revision C
        OMAP3: rx-51: Add full regulator definitions
        omap: rx51: Platform support for lp5523 led chip
      2d86a3f0
    • Linus Torvalds's avatar
      Merge branch 'next/cross-platform' of... · 3960ef32
      Linus Torvalds authored
      Merge branch 'next/cross-platform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc
      
      * 'next/cross-platform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:
        ARM: Consolidate the clkdev header files
        ARM: set vga memory base at run-time
        ARM: convert PCI defines to variables
        ARM: pci: make pcibios_assign_all_busses use pci_has_flag
        ARM: remove unnecessary mach/hardware.h includes
        pci: move microblaze and powerpc pci flag functions into asm-generic
        powerpc: rename ppc_pci_*_flags to pci_*_flags
      
      Fix up conflicts in arch/microblaze/include/asm/pci-bridge.h
      3960ef32
    • Linus Torvalds's avatar
      Merge branch 'next/fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc · 62c9072b
      Linus Torvalds authored
      * 'next/fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc: (24 commits)
        ASoC: omap: McBSP: fix build breakage on OMAP1
        OMAP: hwmod: fix the i2c-reset timeout during bootup
        I2C: OMAP2+: add correct functionality flags to all omap2plus i2c dev_attr
        I2C: OMAP2+: Tag all OMAP2+ hwmod defintions with I2C IP revision
        I2C: OMAP1/OMAP2+: create omap I2C functionality flags for each cpu_... test
        I2C: OMAP2+:  Introduce I2C IP versioning constants
        I2C: OMAP2+: increase omap_i2c_dev_attr flags from u8 to u32
        I2C: OMAP2+: Set hwmod flags to only allow 16-bit accesses to i2c
        OMAP4: hwmod data: Change DSS main_clk scheme
        OMAP4: powerdomain data: Remove unsupported MPU powerdomain state
        OMAP4: clock data: Keep GPMC clocks always enabled and hardware managed
        OMAP4: powerdomain data: Fix core mem states and missing cefuse flag
        OMAP2+: PM: Initialise sleep_switch to a non-valid value
        OMAP4: hwmod data: Modify DSS opt clocks
        OMAP4: iommu: fix clock name
        omap: iovmm: s/sg_dma_len(sg)/sg->length/
        omap: iommu: fix pte programming
        arm: omap3: cm-t35: fix slow path warning
        arm: omap3: cm-t35: minor comments fixes
        omap: ZOOM: QUART: Request reset GPIO
        ...
      62c9072b
    • Linus Torvalds's avatar
      Merge branch 'next/soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc · 4b30b6f2
      Linus Torvalds authored
      * 'next/soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:
        MAINTAINERS: add maintainer of CSR SiRFprimaII machine
        ARM: CSR: initializing L2 cache
        ARM: CSR: mapping early DEBUG_LL uart
        ARM: CSR: Adding CSR SiRFprimaII board support
        OMAP4: clocks: Update the clock tree with 4460 clock nodes
        OMAP4: PRCM: OMAP4460 specific PRM and CM register bitshifts
        OMAP4: ID: add omap_has_feature for max freq supported
        OMAP: ID: introduce chip detection for OMAP4460
        ARM: Xilinx: merge board file into main platform code
        ARM: Xilinx: Adding Xilinx board support
      
      Fix up conflicts in arch/arm/mach-omap2/cm-regbits-44xx.h
      4b30b6f2
  3. 26 Jul, 2011 32 commits