22 Feb, 2013

3 commits

  • Pull ARM SoC-specific updates from Arnd Bergmann:
    "This is a larger set of new functionality for the existing SoC
    families, including:

    - vt8500 gains support for new CPU cores, notably the Cortex-A9 based
    wm8850

    - prima2 gains support for the "marco" SoC family, its SMP based
    cousin

    - tegra gains support for the new Tegra4 (Tegra114) family

    - socfpga now supports a newer version of the hardware including SMP

    - i.mx31 and bcm2835 are now using DT probing for their clocks

    - lots of updates for sh-mobile

    - OMAP updates for clocks, power management and USB

    - i.mx6q and tegra now support cpuidle

    - kirkwood now supports PCIe hot plugging

    - tegra clock support is updated

    - tegra USB PHY probing gets implemented diffently"

    * tag 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (148 commits)
    ARM: prima2: remove duplicate v7_invalidate_l1
    ARM: shmobile: r8a7779: Correct TMU clock support again
    ARM: prima2: fix __init section for cpu hotplug
    ARM: OMAP: Consolidate OMAP USB-HS platform data (part 3/3)
    ARM: OMAP: Consolidate OMAP USB-HS platform data (part 1/3)
    arm: socfpga: Add SMP support for actual socfpga harware
    arm: Add v7_invalidate_l1 to cache-v7.S
    arm: socfpga: Add entries to enable make dtbs socfpga
    arm: socfpga: Add new device tree source for actual socfpga HW
    ARM: tegra: sort Kconfig selects for Tegra114
    ARM: tegra: enable ARCH_REQUIRE_GPIOLIB for Tegra114
    ARM: tegra: Fix build error w/ ARCH_TEGRA_114_SOC w/o ARCH_TEGRA_3x_SOC
    ARM: tegra: Fix build error for gic update
    ARM: tegra: remove empty tegra_smp_init_cpus()
    ARM: shmobile: Register ARM architected timer
    ARM: MARCO: fix the build issue due to gic-vic-to-irqchip move
    ARM: shmobile: r8a7779: Correct TMU clock support
    ARM: mxs_defconfig: Select CONFIG_DEVTMPFS_MOUNT
    ARM: mxs: decrease mxs_clockevent_device.min_delta_ns to 2 clock cycles
    ARM: mxs: use apbx bus clock to drive the timers on timrotv2
    ...

    Linus Torvalds
     
  • Pull driver core patches from Greg Kroah-Hartman:
    "Here is the big driver core merge for 3.9-rc1

    There are two major series here, both of which touch lots of drivers
    all over the kernel, and will cause you some merge conflicts:

    - add a new function called devm_ioremap_resource() to properly be
    able to check return values.

    - remove CONFIG_EXPERIMENTAL

    Other than those patches, there's not much here, some minor fixes and
    updates"

    Fix up trivial conflicts

    * tag 'driver-core-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (221 commits)
    base: memory: fix soft/hard_offline_page permissions
    drivercore: Fix ordering between deferred_probe and exiting initcalls
    backlight: fix class_find_device() arguments
    TTY: mark tty_get_device call with the proper const values
    driver-core: constify data for class_find_device()
    firmware: Ignore abort check when no user-helper is used
    firmware: Reduce ifdef CONFIG_FW_LOADER_USER_HELPER
    firmware: Make user-mode helper optional
    firmware: Refactoring for splitting user-mode helper code
    Driver core: treat unregistered bus_types as having no devices
    watchdog: Convert to devm_ioremap_resource()
    thermal: Convert to devm_ioremap_resource()
    spi: Convert to devm_ioremap_resource()
    power: Convert to devm_ioremap_resource()
    mtd: Convert to devm_ioremap_resource()
    mmc: Convert to devm_ioremap_resource()
    mfd: Convert to devm_ioremap_resource()
    media: Convert to devm_ioremap_resource()
    iommu: Convert to devm_ioremap_resource()
    drm: Convert to devm_ioremap_resource()
    ...

    Linus Torvalds
     
  • Pull sound updates from Takashi Iwai:
    "The biggest change in this update is the unification of HD-audio codec
    parsers. Now the HD-audio codec is parsed in a generic parser code
    which is invoked by each HD-audio codec driver.

    Some background information is found in David Henningsson's blog
    entry:

    http://voices.canonical.com/david.henningsson/2013/01/18/upcoming-changes-to-the-intel-hda-drivers/

    Other than that, some random updates/fixes like USB-audio and a bunch
    of small AoC updates as usual.

    Highlights:

    - Unification of HD-audio parser code (aka generic parser)

    - Support of new Intel HD-audio controller, new IDT codecs

    - Fixes for HD-audio HDMI audio hotplug

    - Haswell HDMI audio fixup

    - Support of Creative CA0132 DSP code

    - A few fixes of HDSP driver

    - USB-audio fix for Roland A-PRO, M-Audio FT C600

    - Support PM for aloop driver (and fixes Oops)

    - Compress API updates for gapless playback support

    For ASoC part:

    - Support for a wider range of hardware in the compressed stream code

    - The ability to mute capture streams as well as playback streams
    while inactive

    - DT support for AK4642, FSI, Samsung I2S and WM8962

    - AC'97 support for Tegra

    - New driver for max98090, replacing the stub which was there

    - A new driver from Dialog

    Note that due to dependencies, DTification of DMA support for Samsung
    platforms (used only by the and I2S driver and SPI) is merged here as
    well."

    Fix up trivial conflict in drivers/spi/spi-s3c64xx.c due to removed code
    being changed.

    * tag 'sound-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (453 commits)
    ALSA: usb: Fix Processing Unit Descriptor parsers
    ALSA: hda - hdmi: Notify userspace when ELD control changes
    ALSA: hda - hdmi: Protect ELD buffer
    ALSA: hda - hdmi: Refactor hdmi_eld into parsed_hdmi_eld
    ALSA: hda - hdmi: Do not expose eld data when eld is invalid
    ALSA: hda - hdmi: ELD shouldn't be valid after unplug
    ALSA: hda - Fix the silent speaker output on Fujitsu S7020 laptop
    ALSA: hda - add quirks for mute LED on two HP machines
    ALSA: usb/quirks, fix out-of-bounds access
    ASoC: codecs: Add da7213 codec
    ALSA: au88x0 - Define channel map for au88x0
    ALSA: compress: add support for gapless playback
    ALSA: hda - Remove speaker clicks on CX20549
    ALSA: hda - Disable runtime PM for Intel 5 Series/3400
    ALSA: hda - Increase badness for missing multi-io
    ASoC: arizona: Automatically manage input mutes
    ALSA: hda - Fix broken workaround for HDMI/SPDIF conflicts
    ALSA: hda/ca0132 - Add missing \n to debug prints
    ALSA: hda/ca0132 - Fix type of INVALID_CHIP_ADDRESS
    ALSA: hda - update documentation for no-primary-hp fixup
    ...

    Linus Torvalds
     

21 Feb, 2013

2 commits

  • Pull device tree changes from Grant Likely:
    "All around device tree changes destined for v3.8. Aside from the
    documentation updates the highlights in this branch include:

    - Kbuild changes for using CPP with .dts files
    - locking fix from preempt_rt patchset
    - include DT alias names in device uevent
    - Selftest bugfixes and improvements
    - New function for counting phandles stanzas in a property
    - constify argument to of_node_full_name()
    - Various bug fixes

    This tree did also contain a commit to use platform_device_add instead
    of open-coding the device add code, but it caused problems with amba
    devices and needed to be reverted."

    * tag 'dt-for-linus' of git://git.secretlab.ca/git/linux: (23 commits)
    Revert "of: use platform_device_add"
    kbuild: limit dtc+cpp include path
    gpio: Make of_count_named_gpios() use new of_count_phandle_with_args()
    of: Create function for counting number of phandles in a property
    of/base: Clean up exit paths for of_parse_phandle_with_args()
    of/selftest: Use selftest() macro throughout
    of/selftest: Fix GPIOs selftest to cover the 7th case
    of: fix recursive locking in of_get_next_available_child()
    documentation/devicetree: Fix a typo in exynos-dw-mshc.txt
    OF: convert devtree lock from rw_lock to raw spinlock
    of/exynos_g2d: Add Bindings for exynos G2D driver
    kbuild: create a rule to run the pre-processor on *.dts files
    input: Extend matrix-keypad device tree binding
    devicetree: Move NS2 LEDs binding into LEDs directory
    of: use platform_device_add
    powerpc/5200: Fix size to request_mem_region() call
    documentation/devicetree: Fix typos
    of: add 'const' to of_node_full_name parameter
    of: Output devicetree alias names in uevent
    DT: add vendor prefixes for Renesas and Toshiba
    ...

    Linus Torvalds
     
  • Pull SPI changes from Grant Likely:
    "Changes to both core spi code and spi device drivers. The driver
    changes are the usual set of bug fixes and platform enablement.

    Core code changes include:

    - More intelligent assignment of SPI bus numbers when using DT

    - Common mechanism for using gpios as CS lines

    - Pull checks for bits_per_word and transfer speed out of drivers and
    into core code

    - Ensure temporary DMA buffers are DMA safe"

    * tag 'spi-for-linus' of git://git.secretlab.ca/git/linux: (50 commits)
    spi: Document cs_gpios and cs_gpio in kernel-doc
    spi/of: Fix initialization of cs_gpios array
    spi/pxa2xx: add support for Lynxpoint SPI controllers
    spi/pxa2xx: add support for Intel Low Power Subsystem SPI
    spi/pxa2xx: add support for SPI_LOOP
    spi/pxa2xx: add support for runtime PM
    spi/pxa2xx: add support for DMA engine
    spi/pxa2xx: break out the private DMA API usage into a separate file
    spi/ath79: add shutdown handler
    spi/mips-lantiq: set SPI_MASTER_HALF_DUPLEX flag
    spi/mips-lantiq: make use of spi_finalize_current_message
    spi/bcm63xx: work around inability to keep CS up
    spi/davinci: use request_threaded_irq() to fix deadlock
    spi/orion: Use module_platform_driver()
    spi/bcm63xx: reject transfers unable to transfer
    spi: Ensure memory used for spi_write_then_read() is DMA safe
    spi/spi-mpc512x-psc: init mode bits supported by the driver
    spi/mpc512x-psc: don't use obsolet cell-index property
    spi: Remove erroneous __init, __exit and __exit_p() references in drivers
    spi/s3c64xx: fix checkpatch warnings and error
    ...

    Linus Torvalds
     

13 Feb, 2013

1 commit

  • This patch replaces the horribly coded of_count_named_gpios() with a
    call to of_count_phandle_with_args() which is far more efficient. This
    also changes the return value of of_gpio_count() & of_gpio_named_count()
    from 'unsigned int' to 'int' so that it can return an error code. All
    the users of that function are fixed up to correctly handle a negative
    return value.

    v2: Split GPIO portion into a separate patch

    Tested-by: Andreas Larsson
    Signed-off-by: Grant Likely
    Cc: Linus Walleij
    Cc: Rob Herring

    Grant Likely
     

11 Feb, 2013

1 commit


10 Feb, 2013

1 commit


08 Feb, 2013

7 commits

  • Intel Lynxpoint PCH Low Power Subsystem has two general purpose SPI
    controllers that are LPSS_SSP compatible. These controllers are enumerated
    from ACPI namespace with ACPI IDs INT33C0 and INT33C1.

    Signed-off-by: Mika Westerberg
    Tested-by: Lu Cao
    Signed-off-by: Mark Brown

    Mika Westerberg
     
  • Intel LPSS SPI is pretty much the same as the PXA27xx SPI except that it
    has few additional features over the original:

    o FIFO depth is 256 entries
    o RX FIFO has one watermark
    o TX FIFO has two watermarks, low and high
    o chip select can be controlled by writing to a register

    The new FIFO registers follow immediately the PXA27xx registers but then there
    are some additional LPSS private registers at offset 1k or 2k from the base
    address. For these private registers we add new accessors that take advantage
    of drv_data->lpss_base once it is resolved.

    We add a new type LPSS_SSP that can be used to distinguish the LPSS devices
    from others.

    Signed-off-by: Mika Westerberg
    Tested-by: Lu Cao
    Signed-off-by: Mark Brown

    Mika Westerberg
     
  • This is useful when testing the functionality of the controller from userspace
    and there aren't any real SPI slave devices connected to the bus.

    Signed-off-by: Mika Westerberg
    Tested-by: Lu Cao
    Signed-off-by: Mark Brown

    Mika Westerberg
     
  • Drivers should put the device into low power states proactively whenever the
    device is not in use. Thus implement support for runtime PM and use the
    autosuspend feature to make sure that we can still perform well in case we see
    lots of SPI traffic within short period of time.

    Signed-off-by: Mika Westerberg
    Tested-by: Lu Cao
    Signed-off-by: Mark Brown

    Mika Westerberg
     
  • To be able to use DMA with this driver on non-PXA platforms we implement
    support for the generic DMA engine API. This lets user to use different DMA
    engines with little or no modification to the driver.

    Request lines and channel numbers can be passed to the driver from the
    platform specific data.

    The DMA engine implementation will be selected by default even on PXA
    platform. User can select the legacy DMA API by enabling Kconfig option
    CONFIG_SPI_PXA2XX_PXADMA.

    Signed-off-by: Mika Westerberg
    Acked-by: Linus Walleij
    Tested-by: Lu Cao
    Signed-off-by: Mark Brown

    Mika Westerberg
     
  • The PXA SPI driver uses PXA platform specific private DMA implementation
    which does not work on non-PXA platforms. In order to use this driver on
    other platforms we break out the private DMA implementation into a separate
    file that gets compiled only when CONFIG_SPI_PXA2XX_PXADMA is set. The DMA
    functions are stubbed out if there is no DMA implementation selected (i.e
    we are building on non-PXA platform).

    While we are there we can kill the dummy DMA bits in pxa2xx_spi.h as they
    are not needed anymore for CE4100.

    Once this is done we can add the generic DMA engine support to the driver
    that allows usage of any DMA controller that implements DMA engine API.

    Signed-off-by: Mika Westerberg
    Acked-by: Linus Walleij
    Tested-by: Lu Cao
    Signed-off-by: Mark Brown

    Mika Westerberg
     
  • Move rt scheduler definitions out of include/linux/sched.h into
    new file include/linux/sched/rt.h

    Signed-off-by: Clark Williams
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/20130207094707.7b9f825f@riff.lan
    Signed-off-by: Ingo Molnar

    Clark Williams
     

07 Feb, 2013

1 commit

  • All in-kernel users of class_find_device() don't really need mutable
    data for match callback.

    In two places (kernel/power/suspend_test.c, drivers/scsi/osd/osd_uld.c)
    this patch changes match callbacks to use const search data.

    The const is propagated to rtc_class_open() and power_supply_get_by_name()
    parameters.

    Note that there's a dev reference leak in suspend_test.c that's not
    touched in this patch.

    Signed-off-by: Michał Mirosław
    Acked-by: Grant Likely
    Signed-off-by: Greg Kroah-Hartman

    Michał Mirosław
     

06 Feb, 2013

5 commits

  • The SPI controller of the AR7xxx/AR9xxx SoCs
    have a special mode which allows the SoC to
    directly read data from SPI flash chips. In
    this mode, the content of the SPI flash chip
    can be accessed via a memory mapped region.

    During early init time, the kernel expects
    that the flash chip is accessible through
    that memory region because it reads board
    specific values (e.g. MAC address, WiFi
    calibration data) from the flash on various
    boards.

    This is working if the kernel is loaded
    directly by the bootloader because that
    leaves the SPI controller in the special
    mode. However it is not working in a kexec'd
    kernel because the SPI driver does not restore
    the special mode during shutdown.

    The patch adds a shutdown handler to fix this
    issue.

    Signed-off-by: Gabor Juhos
    Signed-off-by: Grant Likely

    Gabor Juhos
     
  • Due to hardware limitations of the spi/flash frontend of the EBU we need to set
    the SPI_MASTER_HALF_DUPLEX flag.

    Signed-off-by: Thomas Langer
    Signed-off-by: John Crispin
    Signed-off-by: Grant Likely

    John Crispin
     
  • Rather than calling m->complete() directly we choose the sane way and call
    spi_finalize_current_message instead.

    Signed-off-by: Thomas Langer
    Signed-off-by: John Crispin
    Signed-off-by: Grant Likely

    John Crispin
     
  • This SPI controller does not support keeping CS asserted after sending
    a transfer.
    Since messages expected on this SPI controller are rather short, we can
    work around it for normal use cases by sending all transfers at once in
    a big full duplex stream.

    This means that we cannot change the speed between transfers if they
    require CS to be kept asserted, but these would have been rejected
    before anyway because of the inability of keeping CS asserted.

    Signed-off-by: Jonas Gorski
    Signed-off-by: Grant Likely

    Jonas Gorski
     
  • With RT pre-empt patch applied to Linux kernel, the irq handler will be
    force converted to an irq thread. spi driver can get back to back messages
    from the slave device. In such cases, IRQ thread doesn't get a chance to
    run to read the slave data. Hence the irq handler must be run in hard irq
    context to read/write data from slave device. Otherwise, the kernel goes
    into a deadlock. This patch fixes this issue when PREEMPT_RT_FULL is
    enabled in the kernel. A dummy thread function is provided to satisfy the
    request_threaded_irq() API. Passing a NULL for function also causes the
    irq handler to be executed in the thread context.

    Signed-off-by: Murali Karicheri
    Signed-off-by: Grant Likely

    Murali Karicheri
     

05 Feb, 2013

19 commits