01 Mar, 2014

1 commit

  • The MCB (MEN Chameleon Bus) is a Bus specific to MEN Mikroelektronik
    FPGA based devices. It is used to identify MCB based IP-Cores within
    an FPGA and provide the necessary framework for instantiating drivers
    for these devices.

    Signed-off-by: Johannes Thumshirn
    Signed-off-by: Greg Kroah-Hartman

    Johannes Thumshirn
     

16 Feb, 2014

1 commit

  • System Power Management Interface (SPMI) is a specification
    developed by the MIPI (Mobile Industry Process Interface) Alliance
    optimized for the real time control of Power Management ICs (PMIC).

    SPMI is a two-wire serial interface that supports up to 4 master
    devices and up to 16 logical slaves.

    The framework supports message APIs, multiple busses (1 controller
    per bus) and multiple clients/slave devices per controller.

    Signed-off-by: Kenneth Heitke
    Signed-off-by: Michael Bohan
    Signed-off-by: Josh Cartwright
    Signed-off-by: Greg Kroah-Hartman

    Kenneth Heitke
     

14 Nov, 2013

1 commit

  • Pull ACPI and power management updates from Rafael J Wysocki:

    - New power capping framework and the the Intel Running Average Power
    Limit (RAPL) driver using it from Srinivas Pandruvada and Jacob Pan.

    - Addition of the in-kernel switching feature to the arm_big_little
    cpufreq driver from Viresh Kumar and Nicolas Pitre.

    - cpufreq support for iMac G5 from Aaro Koskinen.

    - Baytrail processors support for intel_pstate from Dirk Brandewie.

    - cpufreq support for Midway/ECX-2000 from Mark Langsdorf.

    - ARM vexpress/TC2 cpufreq support from Sudeep KarkadaNagesha.

    - ACPI power management support for the I2C and SPI bus types from Mika
    Westerberg and Lv Zheng.

    - cpufreq core fixes and cleanups from Viresh Kumar, Srivatsa S Bhat,
    Stratos Karafotis, Xiaoguang Chen, Lan Tianyu.

    - cpufreq drivers updates (mostly fixes and cleanups) from Viresh
    Kumar, Aaro Koskinen, Jungseok Lee, Sudeep KarkadaNagesha, Lukasz
    Majewski, Manish Badarkhe, Hans-Christian Egtvedt, Evgeny Kapaev.

    - intel_pstate updates from Dirk Brandewie and Adrian Huang.

    - ACPICA update to version 20130927 includig fixes and cleanups and
    some reduction of divergences between the ACPICA code in the kernel
    and ACPICA upstream in order to improve the automatic ACPICA patch
    generation process. From Bob Moore, Lv Zheng, Tomasz Nowicki, Naresh
    Bhat, Bjorn Helgaas, David E Box.

    - ACPI IPMI driver fixes and cleanups from Lv Zheng.

    - ACPI hotplug fixes and cleanups from Bjorn Helgaas, Toshi Kani, Zhang
    Yanfei, Rafael J Wysocki.

    - Conversion of the ACPI AC driver to the platform bus type and
    multiple driver fixes and cleanups related to ACPI from Zhang Rui.

    - ACPI processor driver fixes and cleanups from Hanjun Guo, Jiang Liu,
    Bartlomiej Zolnierkiewicz, Mathieu Rhéaume, Rafael J Wysocki.

    - Fixes and cleanups and new blacklist entries related to the ACPI
    video support from Aaron Lu, Felipe Contreras, Lennart Poettering,
    Kirill Tkhai.

    - cpuidle core cleanups from Viresh Kumar and Lorenzo Pieralisi.

    - cpuidle drivers fixes and cleanups from Daniel Lezcano, Jingoo Han,
    Bartlomiej Zolnierkiewicz, Prarit Bhargava.

    - devfreq updates from Sachin Kamat, Dan Carpenter, Manish Badarkhe.

    - Operation Performance Points (OPP) core updates from Nishanth Menon.

    - Runtime power management core fix from Rafael J Wysocki and update
    from Ulf Hansson.

    - Hibernation fixes from Aaron Lu and Rafael J Wysocki.

    - Device suspend/resume lockup detection mechanism from Benoit Goby.

    - Removal of unused proc directories created for various ACPI drivers
    from Lan Tianyu.

    - ACPI LPSS driver fix and new device IDs for the ACPI platform scan
    handler from Heikki Krogerus and Jarkko Nikula.

    - New ACPI _OSI blacklist entry for Toshiba NB100 from Levente Kurusa.

    - Assorted fixes and cleanups related to ACPI from Andy Shevchenko, Al
    Stone, Bartlomiej Zolnierkiewicz, Colin Ian King, Dan Carpenter,
    Felipe Contreras, Jianguo Wu, Lan Tianyu, Yinghai Lu, Mathias Krause,
    Liu Chuansheng.

    - Assorted PM fixes and cleanups from Andy Shevchenko, Thierry Reding,
    Jean-Christophe Plagniol-Villard.

    * tag 'pm+acpi-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (386 commits)
    cpufreq: conservative: fix requested_freq reduction issue
    ACPI / hotplug: Consolidate deferred execution of ACPI hotplug routines
    PM / runtime: Use pm_runtime_put_sync() in __device_release_driver()
    ACPI / event: remove unneeded NULL pointer check
    Revert "ACPI / video: Ignore BIOS initial backlight value for HP 250 G1"
    ACPI / video: Quirk initial backlight level 0
    ACPI / video: Fix initial level validity test
    intel_pstate: skip the driver if ACPI has power mgmt option
    PM / hibernate: Avoid overflow in hibernate_preallocate_memory()
    ACPI / hotplug: Do not execute "insert in progress" _OST
    ACPI / hotplug: Carry out PCI root eject directly
    ACPI / hotplug: Merge device hot-removal routines
    ACPI / hotplug: Make acpi_bus_hot_remove_device() internal
    ACPI / hotplug: Simplify device ejection routines
    ACPI / hotplug: Fix handle_root_bridge_removal()
    ACPI / hotplug: Refuse to hot-remove all objects with disabled hotplug
    ACPI / scan: Start matching drivers after trying scan handlers
    ACPI: Remove acpi_pci_slot_init() headers from internal.h
    ACPI / blacklist: fix name of ThinkPad Edge E530
    PowerCap: Fix build error with option -Werror=format-security
    ...

    Conflicts:
    arch/arm/mach-omap2/opp.c
    drivers/Kconfig
    drivers/spi/spi.c

    Linus Torvalds
     

17 Oct, 2013

1 commit


28 Sep, 2013

1 commit

  • The PHY framework provides a set of APIs for the PHY drivers to
    create/destroy a PHY and APIs for the PHY users to obtain a reference to the
    PHY with or without using phandle. For dt-boot, the PHY drivers should
    also register *PHY provider* with the framework.

    PHY drivers should create the PHY by passing id and ops like init, exit,
    power_on and power_off. This framework is also pm runtime enabled.

    The documentation for the generic PHY framework is added in
    Documentation/phy.txt and the documentation for dt binding can be found at
    Documentation/devicetree/bindings/phy/phy-bindings.txt

    Cc: Tomasz Figa
    Cc: Greg Kroah-Hartman
    Signed-off-by: Kishon Vijay Abraham I
    Acked-by: Felipe Balbi
    Tested-by: Sylwester Nawrocki
    Signed-off-by: Greg Kroah-Hartman

    Kishon Vijay Abraham I
     

11 Jul, 2013

1 commit

  • Pull MFD update from Samuel Ortiz:
    "For the 3.11 merge we only have one new MFD driver for the Kontron
    PLD.

    But we also have:
    - Support for the TPS659038 PMIC from the palmas driver.
    - Intel's Coleto Creek and Avoton SoCs support from the lpc_ich
    driver.
    - RTL8411B support from the rtsx driver.
    - More DT support for the Arizona, max8998, twl4030-power and the
    ti_am335x_tsadc drivers.
    - The SSBI driver move under MFD.
    - A conversion to the devm_* API for most of the MFD drivers.
    - The twl4030-power got split from twl-core into its own module.
    - A major ti_am335x_adc cleanup, leading to a proper DT support.
    - Our regular arizona and wm* updates and cleanups from the Wolfson
    folks.
    - A better error handling and initialization, and a regulator
    subdevice addition for the 88pm80x driver.
    - A bulk platform_set_drvdata() call removal that's no longer need
    since commit 0998d0631001 ("device-core: Ensure drvdata = NULL when
    no driver is bound")

    * tag 'mfd-3.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-next: (102 commits)
    mfd: sec: Provide max_register to regmap
    mfd: wm8994: Remove duplicate check for active JACKDET
    MAINTAINERS: Add include directory to MFD file patterns
    mfd: sec: Remove fields not used since regmap conversion
    watchdog: Kontron PLD watchdog timer driver
    mfd: max8998: Add support for Device Tree
    regulator: max8998: Use arrays for specifying voltages in platform data
    mfd: max8998: Add irq domain support
    regulator: palmas: Add TPS659038 support
    mfd: Kontron PLD mfd driver
    mfd: palmas: Add TPS659038 PMIC support
    mfd: palmas: Add SMPS10_BOOST feature
    mfd: palmas: Check if irq is valid
    mfd: lpc_ich: iTCO_wdt patch for Intel Coleto Creek DeviceIDs
    mfd: twl-core: Change TWL6025 references to TWL6032
    mfd: davinci_voicecodec: Fix build breakage
    mfd: vexpress: Make the driver optional for arm and arm64
    mfd: htc-egpio: Use devm_ioremap_nocache() instead of ioremap_nocache()
    mfd: davinci_voicecodec: Convert to use devm_* APIs
    mfd: twl4030-power: Fix relocking on error
    ...

    Linus Torvalds
     

18 Jun, 2013

1 commit

  • This commit creates the drivers/fmc directory and puts the necessary
    hooks for kbuild and kconfig. The code is currently a placeholder
    that only registers an empty bus.

    Signed-off-by: Alessandro Rubini
    Acked-by: Juan David Gonzalez Cobas
    Acked-by: Emilio G. Cota
    Acked-by: Samuel Iglesias Gonsalvez
    Signed-off-by: Greg Kroah-Hartman

    Alessandro Rubini
     

12 Jun, 2013

1 commit

  • There is no reason for ssbi to have its own top-level driver directory
    when the only users of this interface are all MFD drivers. The only
    mainline driver using it at the moment (PM8921) is marked broken and in
    fact does not compile. I have verified that fixing the trivial build
    breakage in pm8921 links in the new ssbi code just fine, but that
    can be a separate patch.

    Signed-off-by: Arnd Bergmann
    Acked-by: Greg Kroah-Hartman
    Acked-by: Nicolas Pitre
    Acked-by: David Brown
    Signed-off-by: Samuel Ortiz

    Arnd Bergmann
     

05 May, 2013

1 commit

  • Pull ARM SoC driver changes from Olof Johansson:
    "This is a rather large set of patches for device drivers that for one
    reason or another the subsystem maintainer preferred to get merged
    through the arm-soc tree. There are both new drivers as well as
    existing drivers that are getting converted from platform-specific
    code into standalone drivers using the appropriate subsystem specific
    interfaces.

    In particular, we can now have pinctrl, clk, clksource and irqchip
    drivers in one file per driver, without the need to call into platform
    specific interface, or to get called from platform specific code, as
    long as all information about the hardware is provided through a
    device tree.

    Most of the drivers we touch this time are for clocksource. Since now
    most of them are part of drivers/clocksource, I expect that we won't
    have to touch these again from arm-soc and can let the clocksource
    maintainers take care of these in the future.

    Another larger part of this series is specific to the exynos platform,
    which is seeing some significant effort in upstreaming and
    modernization of its device drivers this time around, which
    unfortunately is also the cause for the churn and a lot of the merge
    conflicts.

    There is one new subsystem that gets merged as part of this series:
    the reset controller interface, which is a very simple interface for
    taking devices on the SoC out of reset or back into reset. Patches to
    use this interface on i.MX follow later in this merge window, and we
    are going to have other platforms (at least tegra and sirf) get
    converted in 3.11. This will let us get rid of platform specific
    callbacks in a number of platform independent device drivers."

    * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (256 commits)
    irqchip: s3c24xx: add missing __init annotations
    ARM: dts: Disable the RTC by default on exynos5
    clk: exynos5250: Fix parent clock for sclk_mmc{0,1,2,3}
    ARM: exynos: restore mach/regs-clock.h for exynos5
    clocksource: exynos_mct: fix build error on non-DT
    pinctrl: vt8500: wmt: Fix checking return value of pinctrl_register()
    irqchip: vt8500: Convert arch-vt8500 to new irqchip infrastructure
    reset: NULL deref on allocation failure
    reset: Add reset controller API
    dt: describe base reset signal binding
    ARM: EXYNOS: Add arm-pmu DT binding for exynos421x
    ARM: EXYNOS: Add arm-pmu DT binding for exynos5250
    ARM: EXYNOS: Enable PMUs for exynos4
    irqchip: exynos-combiner: Correct combined IRQs for exynos4
    irqchip: exynos-combiner: Add set_irq_affinity function for combiner_irq
    ARM: EXYNOS: fix compilation error introduced due to common clock migration
    clk: exynos5250: Fix divider values for sclk_mmc{0,1,2,3}
    clk: exynos4: export clocks required for fimc-is
    clk: samsung: Fix compilation error
    clk: tegra: fix enum tegra114_clk to match binding
    ...

    Linus Torvalds
     

01 May, 2013

1 commit

  • Make virtualization drivers be logically grouped together (physically
    near each other) in the kconfig menu by moving "Virtualization drivers"
    to be near "Virtio drivers", Microsort Hyper-V, and Xen driver support.

    This is just a user-friendly, visual search change.

    Signed-off-by: Randy Dunlap
    Cc: Alexander Graf
    Cc: Stuart Yoder
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

12 Apr, 2013

1 commit

  • This adds a simple API for devices to request being reset
    by separate reset controller hardware and implements the
    reset signal device tree binding.

    Signed-off-by: Philipp Zabel
    Reviewed-by: Stephen Warren
    Reviewed-by: Shawn Guo
    Reviewed-by: Marek Vasut
    Reviewed-by: Pavel Machek

    Philipp Zabel
     

26 Mar, 2013

1 commit

  • SSBI is the Qualcomm single-wire serial bus interface used to connect
    the MSM devices to the PMIC and other devices.

    Since SSBI only supports a single slave, the driver gets the name of the
    slave device passed in from the board file through the master device's
    platform data.

    SSBI registers pretty early (postcore), so that the PMIC can come up
    before the board init. This is useful if the board init requires the
    use of gpios that are connected through the PMIC.

    Based on a patch by Dima Zavin that can be found at:
    http://android.git.kernel.org/?p=kernel/msm.git;a=commitdiff;h=eb060bac4

    This patch adds PMIC Arbiter support for the MSM8660. The PMIC Arbiter
    is a hardware wrapper around the SSBI 2.0 controller that is designed to
    overcome concurrency issues and security limitations. A controller_type
    field is added to the platform data to specify the type of the SSBI
    controller (1.0, 2.0, or PMIC Arbiter).

    [davidb@codeaurora.org:
    I've moved this driver into drivers/ssbi/ and added an include for
    linux/module.h so that it will compile]

    Signed-off-by: Kenneth Heitke
    Signed-off-by: David Brown
    Signed-off-by: Greg Kroah-Hartman

    Kenneth Heitke
     

22 Feb, 2013

1 commit

  • Pull char/misc driver patches from Greg Kroah-Hartman:
    "Here's the big char/misc driver patches for 3.9-rc1.

    Nothing major here, just lots of different driver updates (mei,
    hyperv, ipack, extcon, vmci, etc.).

    All of these have been in the linux-next tree for a while."

    * tag 'char-misc-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (209 commits)
    w1: w1_therm: Add force-pullup option for "broken" sensors
    w1: ds2482: Added 1-Wire pull-up support to the driver
    vme: add missing put_device() after device_register() fails
    extcon: max8997: Use workqueue to check cable state after completing boot of platform
    extcon: max8997: Set default UART/USB path on probe
    extcon: max8997: Consolidate duplicate code for checking ADC/CHG cable type
    extcon: max8997: Set default of ADC debounce time during initialization
    extcon: max8997: Remove duplicate code related to set H/W line path
    extcon: max8997: Move defined constant to header file
    extcon: max77693: Make max77693_extcon_cable static
    extcon: max8997: Remove unreachable code
    extcon: max8997: Make max8997_extcon_cable static
    extcon: max77693: Remove unnecessary goto statement to improve readability
    extcon: max77693: Convert to devm_input_allocate_device()
    extcon: gpio: Rename filename of extcon-gpio.c according to kernel naming style
    CREDITS: update email and address of Harald Hoyer
    extcon: arizona: Use MICDET for final microphone identification
    extcon: arizona: Always take the first HPDET reading as the final one
    extcon: arizona: Clear _trig_sts bits after jack detection
    extcon: arizona: Don't HPDET magic when headphones are enabled
    ...

    Linus Torvalds
     

02 Feb, 2013

1 commit

  • The pl320 IPC allows for interprocessor communication between the
    highbank A9 and the EnergyCore Management Engine. The pl320 implements
    a straightforward mailbox protocol.

    Signed-off-by: Mark Langsdorf
    Signed-off-by: Rob Herring
    Signed-off-by: Rafael J. Wysocki

    Rob Herring
     

18 Jan, 2013

1 commit

  • A PCI-Express non-transparent bridge (NTB) is a point-to-point PCIe bus
    connecting 2 systems, providing electrical isolation between the two subsystems.
    A non-transparent bridge is functionally similar to a transparent bridge except
    that both sides of the bridge have their own independent address domains. The
    host on one side of the bridge will not have the visibility of the complete
    memory or I/O space on the other side of the bridge. To communicate across the
    non-transparent bridge, each NTB endpoint has one (or more) apertures exposed to
    the local system. Writes to these apertures are mirrored to memory on the
    remote system. Communications can also occur through the use of doorbell
    registers that initiate interrupts to the alternate domain, and scratch-pad
    registers accessible from both sides.

    The NTB device driver is needed to configure these memory windows, doorbell, and
    scratch-pad registers as well as use them in such a way as they can be turned
    into a viable communication channel to the remote system. ntb_hw.[ch]
    determines the usage model (NTB to NTB or NTB to Root Port) and abstracts away
    the underlying hardware to provide access and a common interface to the doorbell
    registers, scratch pads, and memory windows. These hardware interfaces are
    exported so that other, non-mainlined kernel drivers can access these.
    ntb_transport.[ch] also uses the exported interfaces in ntb_hw.[ch] to setup a
    communication channel(s) and provide a reliable way of transferring data from
    one side to the other, which it then exports so that "client" drivers can access
    them. These client drivers are used to provide a standard kernel interface
    (i.e., Ethernet device) to NTB, such that Linux can transfer data from one
    system to the other in a standard way.

    Signed-off-by: Jon Mason
    Reviewed-by: Nicholas Bellinger
    Signed-off-by: Greg Kroah-Hartman

    Jon Mason
     

17 Nov, 2012

1 commit


02 Oct, 2012

1 commit

  • Pull ARM soc driver specific changes from Olof Johansson:
    - A long-coming conversion of various platforms to a common LED
    infrastructure
    - AT91 is moved over to use the newer MCI driver for MMC
    - Pincontrol conversions for samsung platforms
    - DT bindings for gscaler on samsung
    - i2c driver fixes for tegra, acked by i2c maintainer

    Fix up conflicts as per Olof.

    * tag 'drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (48 commits)
    drivers: bus: omap_l3: use resources instead of hardcoded irqs
    pinctrl: exynos: Fix wakeup IRQ domain registration check
    pinctrl: samsung: Uninline samsung_pinctrl_get_soc_data
    pinctrl: exynos: Correct the detection of wakeup-eint node
    pinctrl: exynos: Mark exynos_irq_demux_eint as inline
    pinctrl: exynos: Handle only unmasked wakeup interrupts
    pinctrl: exynos: Fix typos in gpio/wkup _irq_mask
    pinctrl: exynos: Set pin function to EINT in irq_set_type of GPIO EINTa
    drivers: bus: Move the OMAP interconnect driver to drivers/bus/
    i2c: tegra: dynamically control fast clk
    i2c: tegra: I2_M_NOSTART functionality not supported in Tegra20
    ARM: tegra: clock: remove unused clock entry for i2c
    ARM: tegra: clock: add connection name in i2c clock entry
    i2c: tegra: pass proper name for getting clock
    ARM: tegra: clock: add i2c fast clock entry in clock table
    ARM: EXYNOS: Adds G-Scaler device from Device Tree
    ARM: EXYNOS: Add clock support for G-Scaler
    ARM: EXYNOS: Enable pinctrl driver support for EXYNOS4 device tree enabled platform
    ARM: dts: Add pinctrl node entries for SAMSUNG EXYNOS4210 SoC
    ARM: EXYNOS: skip wakeup interrupt setup if pinctrl driver is used
    ...

    Linus Torvalds
     

20 Sep, 2012

1 commit

  • The BCM2835 contains a custom interrupt controller, which supports 72
    interrupt sources using a 2-level register scheme. The interrupt
    controller, or the HW block containing it, is referred to occasionally
    as "armctrl" in the SoC documentation, hence the symbol naming in the
    code.

    This patch was extracted from git://github.com/lp0/linux.git branch
    rpi-split as of 2012/09/08, and modified as follows:

    * s/bcm2708/bcm2835/.
    * Modified device tree vendor prefix.
    * Moved implementation to drivers/irchip/.
    * Added devicetree documentation, and hence removed list of IRQs from
    bcm2835.dtsi.
    * Changed shift in MAKE_HWIRQ() and HWIRQ_BANK() from 8 to 5 to reduce
    the size of the hwirq space, and pass the total size of the hwirq space
    to irq_domain_add_linear(), rather than just the number of valid hwirqs;
    the two are different due to the hwirq space being sparse.
    * Added the interrupt controller DT node to the top-level of the DT,
    rather than nesting it inside a /axi node. Hence, changed the reg value
    since /axi had a ranges property. This seems simpler to me, but I'm not
    sure if everyone will like this change or not.
    * Don't set struct irq_domain_ops.map = irq_domain_simple_map, hence
    removing the need to patch include/linux/irqdomain.h or
    kernel/irq/irqdomain.c.
    * Simplified armctrl_of_init() using of_iomap().
    * Removed unused IS_VALID_BANK()/IS_VALID_IRQ() macros.
    * Renamed armctrl_handle_irq() to prevent possible symbol clashes.
    * Made armctrl_of_init() static.
    * Removed comment "Each bank is registered as a separate interrupt
    controller" since this is no longer true.
    * Removed FSF address from license header.
    * Added my name to copyright header.

    Signed-off-by: Chris Boot
    Signed-off-by: Simon Arlott
    Signed-off-by: Dom Cobley
    Signed-off-by: Dom Cobley
    Signed-off-by: Stephen Warren
    Acked-by: Arnd Bergmann

    Simon Arlott
     

22 Aug, 2012

1 commit

  • Adds a new driver *omap-ocp2scp*. This driver takes the responsibility of
    creating all the devices that is connected to OCP2SCP. In the case of OMAP4,
    USB2PHY is connected to ocp2scp.

    This also includes device tree support for ocp2scp driver and
    the documentation with device tree binding information is updated.

    Acked-by: Felipe Balbi
    Acked-by: Arnd Bergmann
    Signed-off-by: Kishon Vijay Abraham I
    Signed-off-by: Arnd Bergmann

    Kishon Vijay Abraham I
     

31 Jul, 2012

1 commit

  • VFIO is a secure user level driver for use with both virtual machines
    and user level drivers. VFIO makes use of IOMMU groups to ensure the
    isolation of devices in use, allowing unprivileged user access. It's
    intended that VFIO will replace KVM device assignment and UIO drivers
    (in cases where the target platform includes a sufficiently capable
    IOMMU).

    New in this version of VFIO is support for IOMMU groups managed
    through the IOMMU core as well as a rework of the API, removing the
    group merge interface. We now go back to a model more similar to
    original VFIO with UIOMMU support where the file descriptor obtained
    from /dev/vfio/vfio allows access to the IOMMU, but only after a
    group is added, avoiding the previous privilege issues with this type
    of model. IOMMU support is also now fully modular as IOMMUs have
    vastly different interface requirements on different platforms. VFIO
    users are able to query and initialize the IOMMU model of their
    choice.

    Please see the follow-on Documentation commit for further description
    and usage example.

    Signed-off-by: Alex Williamson

    Alex Williamson
     

15 Jun, 2012

1 commit

  • This patch adds framework support for PWM (pulse width modulation) devices.

    The is a barebone PWM API already in the kernel under include/linux/pwm.h,
    but it does not allow for multiple drivers as each of them implements the
    pwm_*() functions.

    There are other PWM framework patches around from Bill Gatliff. Unlike
    his framework this one does not change the existing API for PWMs so that
    this framework can act as a drop in replacement for the existing API.

    Why another framework?

    Several people argue that there should not be another framework for PWMs
    but they should be integrated into one of the existing frameworks like led
    or hwmon. Unlike these frameworks the PWM framework is agnostic to the
    purpose of the PWM. In fact, a PWM can drive a LED, but this makes the
    LED framework a user of a PWM, like already done in leds-pwm.c. The gpio
    framework also is not suitable for PWMs. Every gpio could be turned into
    a PWM using timer based toggling, but on the other hand not every PWM hardware
    device can be turned into a gpio due to the lack of hardware capabilities.

    This patch does not try to improve the PWM API yet, this could be done in
    subsequent patches.

    Signed-off-by: Sascha Hauer
    Acked-by: Kurt Van Dijck
    Reviewed-by: Arnd Bergmann
    Reviewed-by: Matthias Kaehlcke
    Reviewed-by: Mark Brown
    Reviewed-by: Shawn Guo
    [thierry.reding@avionic-design.de: fixup typos, kerneldoc comments]
    Signed-off-by: Thierry Reding

    Sascha Hauer
     

23 May, 2012

1 commit

  • Pull staging tree changes from Greg Kroah-Hartman:
    "Here is the big staging tree pull request for the 3.5-rc1 merge
    window.

    Loads of changes here, and we just narrowly added more lines than we
    added:
    622 files changed, 28356 insertions(+), 26059 deletions(-)

    But, good news is that there is a number of subsystems that moved out
    of the staging tree, to their respective "real" portions of the
    kernel.

    Code that moved out was:
    - iio core code
    - mei driver
    - vme core and bridge drivers

    There was one broken network driver that moved into staging as a step
    before it is removed from the tree (pc300), and there was a few new
    drivers added to the tree:
    - new iio drivers
    - gdm72xx wimax USB driver
    - ipack subsystem and 2 drivers

    All of the movements around have acks from the various subsystem
    maintainers, and all of this has been in the linux-next tree for a
    while.

    Signed-off-by: Greg Kroah-Hartman "

    Fixed up various trivial conflicts, along with a non-trivial one found
    in -next and pointed out by Olof Johanssen: a clean - but incorrect -
    merge of the arch/arm/boot/dts/at91sam9g20.dtsi file. Fix up manually
    as per Stephen Rothwell.

    * tag 'staging-3.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (536 commits)
    Staging: bcm: Remove two unused variables from Adapter.h
    Staging: bcm: Removes the volatile type definition from Adapter.h
    Staging: bcm: Rename all "INT" to "int" in Adapter.h
    Staging: bcm: Fix warning: __packed vs. __attribute__((packed)) in Adapter.h
    Staging: bcm: Correctly format all comments in Adapter.h
    Staging: bcm: Fix all whitespace issues in Adapter.h
    Staging: bcm: Properly format braces in Adapter.h
    Staging: ipack/bridges/tpci200: remove unneeded casts
    Staging: ipack/bridges/tpci200: remove TPCI200_SHORTNAME constant
    Staging: ipack: remove board_name and bus_name fields from struct ipack_device
    Staging: ipack: improve the register of a bus and a device in the bus.
    staging: comedi: cleanup all the comedi_driver 'detach' functions
    staging: comedi: remove all 'default N' in Kconfig
    staging: line6/config.h: Delete unused header
    staging: gdm72xx depends on NET
    staging: gdm72xx: Set up parent link in sysfs for gdm72xx devices
    staging: drm/omap: initial dmabuf/prime import support
    staging: drm/omap: dmabuf/prime mmap support
    pstore/ram: Add ECC support
    pstore/ram: Switch to persistent_ram routines
    ...

    Linus Torvalds
     

02 May, 2012

1 commit

  • EMIF is an SDRAM controller used in various Texas Instruments
    SoCs. EMIF supports, based on its revision, one or more of
    LPDDR2/DDR2/DDR3 protocols.

    Add the basic infrastructure for EMIF driver that includes
    driver registration, probe, parsing of platform data etc.

    Signed-off-by: Aneesh V
    Reviewed-by: Santosh Shilimkar
    Reviewed-by: Benoit Cousson
    [santosh.shilimkar@ti.com: Moved to drivers/memory from drivers/misc]
    Signed-off-by: Santosh Shilimkar
    Tested-by: Lokesh Vutla
    Signed-off-by: Greg Kroah-Hartman

    Aneesh V
     

27 Apr, 2012

1 commit

  • This moves the VME core, VME board drivers, and VME bridge drivers out
    of the drivers/staging/vme/ area to drivers/vme/.

    The VME device drivers have not moved out yet due to some API questions
    they are still working through, that should happen soon, hopefully.

    Cc: Martyn Welch
    Cc: Manohar Vanga
    Cc: Vincent Bossier
    Cc: "Emilio G. Cota"
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

26 Apr, 2012

1 commit

  • Take the core support + the kfifo buffer implentation out of
    staging. Whilst we are far from done in improving this subsystem
    it is now at a stage where the userspae interfaces (provided by
    the core) can be considered stable.

    Drivers will follow over a longer time scale.

    Signed-off-by: Jonathan Cameron
    Signed-off-by: Greg Kroah-Hartman

    Jonathan Cameron
     

21 Apr, 2012

1 commit

  • External connector class (extcon) is based on and an extension of
    Android kernel's switch class located at linux/drivers/switch/.

    This patch provides the before-extension switch class moved to the
    location where the extcon will be located (linux/drivers/extcon/) and
    updates to handle class properly.

    The before-extension class, switch class of Android kernel, commits
    imported are:

    switch: switch class and GPIO drivers. (splitted)
    Author: Mike Lockwood

    switch: Use device_create instead of device_create_drvdata.
    Author: Arve Hjønnevåg

    In this patch, upon the commits of Android kernel, we have added:
    - Relocated and renamed for extcon.
    - Comments, module name, and author information are updated
    - Code clean for successing patches
    - Bugfix: enabling write access without write functions
    - Class/device/sysfs create/remove handling
    - Added comments about uevents
    - Format changes for extcon_dev_register() to have a parent dev.

    Signed-off-by: MyungJoo Ham
    Signed-off-by: Kyungmin Park
    Reviewed-by: Mark Brown

    --
    Changes from v7
    - Compiler error fixed when it is compiled as a module.
    - Removed out-of-date Kconfig entry

    Changes from v6
    - Updated comment/strings
    - Revised "Android-compatible" mode.
    * Automatically activated if CONFIG_ANDROID && !CONFIG_ANDROID_SWITCH
    * Creates /sys/class/switch/*, which is a copy of /sys/class/extcon/*

    Changes from v5
    - Split the patch
    - Style fixes
    - "Android-compatible" mode is enabled by Kconfig option.

    Changes from v2
    - Updated name_show
    - Sysfs entries are handled by class itself.
    - Updated the method to add/remove devices for the class
    - Comments on uevent send
    - Able to become a module
    - Compatible with Android platform

    Changes from RFC
    - Renamed to extcon (external connector) from multistate switch
    - Added a seperated directory (drivers/extcon)
    - Added kerneldoc comments
    - Removed unused variables from extcon_gpio.c
    - Added ABI Documentation.
    Signed-off-by: Greg Kroah-Hartman

    MyungJoo Ham
     

03 Apr, 2012

1 commit

  • Pull HSI (High Speed Synchronous Serial Interface) framework from Carlos Chinea:
    "The High Speed Synchronous Serial Interface (HSI) is a serial
    interface mainly used for connecting application engines (APE) with
    cellular modem engines (CMT) in cellular handsets.

    The framework is currently being used for some people and we would
    like to see it integrated into the kernel for 3.3. There is no HW
    controller drivers in this pull, but some people have already some of
    them pending which they would like to push as soon as this integrated.
    I am also working on the acceptance for an TI OMAP one, based on a
    compatible legacy version of the interface called SSI."

    Ok, so it didn't get into 3.3, but here it is pulled into 3.4.

    Several people piped up to say "yeah, we want this".

    * 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi:
    HSI: hsi_char: Update ioctl-number.txt
    HSI: Add HSI API documentation
    HSI: hsi_char: Add HSI char device kernel configuration
    HSI: hsi_char: Add HSI char device driver
    HSI: hsi: Introducing HSI framework

    Linus Torvalds
     

28 Mar, 2012

1 commit

  • Pull "remoteproc/rpmsg: new subsystem" from Arnd Bergmann:
    "This new subsystem provides a common way to talk to secondary
    processors on an SoC, e.g. a DSP, GPU or service processor, using
    virtio as the transport. In the long run, it should replace a few
    dozen vendor specific ways to do the same thing, which all never made
    it into the upstream kernel. There is a broad agreement that rpmsg is
    the way to go here and several vendors have started working on
    replacing their own subsystems.

    Two branches each add one virtio protocol number. Fortunately the
    numbers were agreed upon in advance, so there are only context
    changes.

    Signed-off-by: Arnd Bergmann "

    Fixed up trivial protocol number conflict due to the mentioned additions
    next to each other.

    * tag 'rpmsg' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (32 commits)
    remoteproc: cleanup resource table parsing paths
    remoteproc: remove the hardcoded vring alignment
    remoteproc/omap: remove the mbox_callback limitation
    remoteproc: remove the single rpmsg vdev limitation
    remoteproc: safer boot/shutdown order
    remoteproc: remoteproc_rpmsg -> remoteproc_virtio
    remoteproc: resource table overhaul
    rpmsg: fix build warning when dma_addr_t is 64-bit
    rpmsg: fix published buffer length in rpmsg_recv_done
    rpmsg: validate incoming message length before propagating
    rpmsg: fix name service endpoint leak
    remoteproc/omap: two Kconfig fixes
    remoteproc: make sure we're parsing a 32bit firmware
    remoteproc: s/big switch/lookup table/
    remoteproc: bail out if firmware has different endianess
    remoteproc: don't use virtio's weak barriers
    rpmsg: rename virtqueue_add_buf_gfp to virtqueue_add_buf
    rpmsg: depend on EXPERIMENTAL
    remoteproc: depend on EXPERIMENTAL
    rpmsg: add Kconfig menu
    ...

    Conflicts:
    include/linux/virtio_ids.h

    Linus Torvalds
     

09 Feb, 2012

3 commits

  • This stuff is really old and in quite poor shape.
    Does anyone still use it?

    If not, I think it's appropriate to let it simmer
    in staging for a few releases.

    Signed-off-by: Joe Perches
    Signed-off-by: Greg Kroah-Hartman

    Joe Perches
     
  • Add a virtio-based inter-processor communication bus, which enables
    kernel drivers to communicate with entities, running on remote
    processors, over shared memory using a simple messaging protocol.

    Every pair of AMP processors share two vrings, which are used to send
    and receive the messages over shared memory.

    The header of every message sent on the rpmsg bus contains src and dst
    addresses, which make it possible to multiplex several rpmsg channels on
    the same vring.

    Every rpmsg channel is a device on this bus. When a channel is added,
    and an appropriate rpmsg driver is found and probed, it is also assigned
    a local rpmsg address, which is then bound to the driver's callback.

    When inbound messages carry the local address of a bound driver,
    its callback is invoked by the bus.

    This patch provides a kernel interface only; user space interfaces
    will be later exposed by kernel users of this rpmsg bus.

    Designed with Brian Swetland .

    Signed-off-by: Ohad Ben-Cohen
    Acked-by: Rusty Russell (virtio_ids.h)
    Cc: Brian Swetland
    Cc: Arnd Bergmann
    Cc: Grant Likely
    Cc: Tony Lindgren
    Cc: Russell King
    Cc: Andrew Morton
    Cc: Greg KH
    Cc: Stephen Boyd

    Ohad Ben-Cohen
     
  • Modern SoCs typically employ a central symmetric multiprocessing (SMP)
    application processor running Linux, with several other asymmetric
    multiprocessing (AMP) heterogeneous processors running different instances
    of operating system, whether Linux or any other flavor of real-time OS.

    Booting a remote processor in an AMP configuration typically involves:
    - Loading a firmware which contains the OS image
    - Allocating and providing it required system resources (e.g. memory)
    - Programming an IOMMU (when relevant)
    - Powering on the device

    This patch introduces a generic framework that allows drivers to do
    that. In the future, this framework will also include runtime power
    management and error recovery.

    Based on (but now quite far from) work done by Fernando Guzman Lugo
    .

    ELF loader was written by Mark Grosen , based on
    msm's Peripheral Image Loader (PIL) by Stephen Boyd .

    Designed with Brian Swetland .

    Signed-off-by: Ohad Ben-Cohen
    Acked-by: Grant Likely
    Cc: Brian Swetland
    Cc: Arnd Bergmann
    Cc: Tony Lindgren
    Cc: Russell King
    Cc: Rusty Russell
    Cc: Andrew Morton
    Cc: Greg KH
    Cc: Stephen Boyd

    Ohad Ben-Cohen
     

05 Jan, 2012

1 commit

  • Adds HSI framework in to the linux kernel.

    High Speed Synchronous Serial Interface (HSI) is a
    serial interface mainly used for connecting application
    engines (APE) with cellular modem engines (CMT) in cellular
    handsets.

    HSI provides multiplexing for up to 16 logical channels,
    low-latency and full duplex communication.

    Signed-off-by: Carlos Chinea
    Acked-by: Linus Walleij

    Carlos Chinea
     

27 Nov, 2011

1 commit

  • Move the "Device Drivers/Microsoft Hyper-V guest support"
    menu entry up such that it appears immediately below virtio
    (KVM and lguest guest driver support) instead of after a
    hypervisor driver menu entry.

    Signed-off-by: Bart Van Assche
    Cc: Greg Kroah-Hartman
    Cc: James Bottomley
    Cc: K. Y. Srinivasan
    Signed-off-by: Greg Kroah-Hartman

    Bart Van Assche
     

26 Oct, 2011

1 commit

  • * 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1519 commits)
    staging: et131x: Remove redundant check and return statement
    staging: et131x: Mainly whitespace changes to appease checkpatch
    staging: et131x: Remove last of the forward declarations
    staging: et131x: Remove even more forward declarations
    staging: et131x: Remove yet more forward declarations
    staging: et131x: Remove more forward declarations
    staging: et131x: Remove forward declaration of et131x_adapter_setup
    staging: et131x: Remove some forward declarations
    staging: et131x: Remove unused rx_ring.recv_packet_pool
    staging: et131x: Remove call to find pci pm capability
    staging: et131x: Remove redundant et131x_reset_recv() call
    staging: et131x: Remove unused rx_ring.recv_buffer_pool
    Staging: bcm: Fix three initialization errors in InterfaceDld.c
    Staging: bcm: Fix coding style issues in InterfaceDld.c
    staging:iio:dac: Add AD5360 driver
    staging:iio:trigger:bfin-timer: Fix compile error
    Staging: vt6655: add some range checks before memcpy()
    Staging: vt6655: whitespace fixes to iotcl.c
    Staging: vt6656: add some range checks before memcpy()
    Staging: vt6656: whitespace cleanups in ioctl.c
    ...

    Fix up conflicts in:
    - drivers/{Kconfig,Makefile}, drivers/staging/{Kconfig,Makefile}:
    vg driver movement
    - drivers/staging/brcm80211/brcmfmac/{dhd_linux.c,mac80211_if.c}:
    driver removal vs now stale changes
    - drivers/staging/rtl8192e/r8192E_core.c:
    driver removal vs now stale changes
    - drivers/staging/et131x/et131*:
    driver consolidation into one file, tried to do fixups

    Linus Torvalds
     

25 Oct, 2011

1 commit

  • * 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (63 commits)
    PM / Clocks: Remove redundant NULL checks before kfree()
    PM / Documentation: Update docs about suspend and CPU hotplug
    ACPI / PM: Add Sony VGN-FW21E to nonvs blacklist.
    ARM: mach-shmobile: sh7372 A4R support (v4)
    ARM: mach-shmobile: sh7372 A3SP support (v4)
    PM / Sleep: Mark devices involved in wakeup signaling during suspend
    PM / Hibernate: Improve performance of LZO/plain hibernation, checksum image
    PM / Hibernate: Do not initialize static and extern variables to 0
    PM / Freezer: Make fake_signal_wake_up() wake TASK_KILLABLE tasks too
    PM / Hibernate: Add resumedelay kernel param in addition to resumewait
    MAINTAINERS: Update linux-pm list address
    PM / ACPI: Blacklist Vaio VGN-FW520F machine known to require acpi_sleep=nonvs
    PM / ACPI: Blacklist Sony Vaio known to require acpi_sleep=nonvs
    PM / Hibernate: Add resumewait param to support MMC-like devices as resume file
    PM / Hibernate: Fix typo in a kerneldoc comment
    PM / Hibernate: Freeze kernel threads after preallocating memory
    PM: Update the policy on default wakeup settings
    PM / VT: Cleanup #if defined uglyness and fix compile error
    PM / Suspend: Off by one in pm_suspend()
    PM / Hibernate: Include storage keys in hibernation image on s390
    ...

    Linus Torvalds
     

13 Oct, 2011

1 commit

  • This creates a subsystem for handling of pin control devices.
    These are devices that control different aspects of package
    pins.

    Currently it handles pinmuxing, i.e. assigning electronic
    functions to groups of pins on primarily PGA and BGA type of
    chip packages which are common in embedded systems.

    The plan is to also handle other I/O pin control aspects
    such as biasing, driving, input properties such as
    schmitt-triggering, load capacitance etc within this
    subsystem, to remove a lot of ARM arch code as well as
    feature-creepy GPIO drivers which are implementing the same
    thing over and over again.

    This is being done to depopulate the arch/arm/* directory
    of such custom drivers and try to abstract the infrastructure
    they all need. See the Documentation/pinctrl.txt file that is
    part of this patch for more details.

    ChangeLog v1->v2:

    - Various minor fixes from Joe's and Stephens review comments
    - Added a pinmux_config() that can invoke custom configuration
    with arbitrary data passed in or out to/from the pinmux driver

    ChangeLog v2->v3:

    - Renamed subsystem folder to "pinctrl" since we will likely
    want to keep other pin control such as biasing in this
    subsystem too, so let us keep to something generic even though
    we're mainly doing pinmux now.
    - As a consequence, register pins as an abstract entity separate
    from the pinmux. The muxing functions will claim pins out of the
    pin pool and make sure they do not collide. Pins can now be
    named by the pinctrl core.
    - Converted the pin lookup from a static array into a radix tree,
    I agreed with Grant Likely to try to avoid any static allocation
    (which is crap for device tree stuff) so I just rewrote this
    to be dynamic, just like irq number descriptors. The
    platform-wide definition of number of pins goes away - this is
    now just the sum total of the pins registered to the subsystem.
    - Make sure mappings with only a function name and no device
    works properly.

    ChangeLog v3->v4:

    - Define a number space per controller instead of globally,
    Stephen and Grant requested the same thing so now maps need to
    define target controller, and the radix tree of pin descriptors
    is a property on each pin controller device.
    - Add a compulsory pinctrl device entry to the pinctrl mapping
    table. This must match the pinctrl device, like "pinctrl.0"
    - Split the file core.c in two: core.c and pinmux.c where the
    latter carry all pinmux stuff, the core is for generic pin
    control, and use local headers to access functionality between
    files. It is now possible to implement a "blank" pin controller
    without pinmux capabilities. This split will make new additions
    like pindrive.c, pinbias.c etc possible for combined drivers
    and chunks of functionality which is a GoodThing(TM).
    - Rewrite the interaction with the GPIO subsystem - the pin
    controller descriptor now handles this by defining an offset
    into the GPIO numberspace for its handled pin range. This is
    used to look up the apropriate pin controller for a GPIO pin.
    Then that specific GPIO range is matched 1-1 for the target
    controller instance.
    - Fixed a number of review comments from Joe Perches.
    - Broke out a header file pinctrl.h for the core pin handling
    stuff that will be reused by other stuff than pinmux.
    - Fixed some erroneous EXPORT() stuff.
    - Remove mispatched U300 Kconfig and Makefile entries
    - Fixed a number of review comments from Stephen Warren, not all
    of them - still WIP. But I think the new mapping that will
    specify which function goes to which pin mux controller address
    50% of your concerns (else beat me up).

    ChangeLog v4->v5:

    - Defined a "position" for each function, so the pin controller now
    tracks a function in a certain position, and the pinmux maps define
    what position you want the function in. (Feedback from Stephen
    Warren and Sascha Hauer).
    - Since we now need to request a combined function+position from
    the machine mapping table that connect mux settings to drivers,
    it was extended with a position field and a name field. The
    name field is now used if you e.g. need to switch between two
    mux map settings at runtime.
    - Switched from a class device to using struct bus_type for this
    subsystem. Verified sysfs functionality: seems to work fine.
    (Feedback from Arnd Bergmann and Greg Kroah-Hartman)
    - Define a per pincontroller list of GPIO ranges from the GPIO
    pin space that can be handled by the pin controller. These can
    be added one by one at runtime. (Feedback from Barry Song)
    - Expanded documentation of regulator_[get|enable|disable|put]
    semantics.
    - Fixed a number of review comments from Barry Song. (Thanks!)

    ChangeLog v5->v6:

    - Create an abstract pin group concept that can sort pins into
    named and enumerated groups no matter what the use of these
    groups may be, one possible usecase is a group of pins being
    muxed in or so. The intention is however to also use these
    groups for other pin control activities.
    - Make it compulsory for pinmux functions to associate with
    at least one group, so the abstract pin group concept is used
    to define the groups of pins affected by a pinmux function.
    The pinmux driver interface has been altered so as to enforce
    a function to list applicable groups per function.
    - Provide an optional .group entry in the pinmux machine map
    so the map can select beteween different available groups
    to be used with a certain function.
    - Consequent changes all over the place so that e.g. debugfs
    present reasonable information about the world.
    - Drop the per-pin mux (*config) function in the pinmux_ops
    struct - I was afraid that this would start to be used for
    things totally unrelated to muxing, we can introduce that to
    the generic struct pinctrl_ops if needed. I want to keep
    muxing orthogonal to other pin control subjects and not mix
    these things up.

    ChangeLog v6->v7:

    - Make it possible to have several map entries matching the
    same device, pin controller and function, but using
    a different group, and alter the semantics so that
    pinmux_get() will pick all matching map entries, and
    store the associated groups in a list. The list will
    then be iterated over at pinmux_enable()/pinmux_disable()
    and corresponding driver functions called for each
    defined group. Notice that you're only allowed to map
    multiple *groups* to the same
    { device, pin controller, function } triplet, attempts
    to map the same device to multiple pin controllers will
    for example fail. This is hopefully the crucial feature
    requested by Stephen Warren.
    - Add a pinmux hogging field to the pinmux mapping entries,
    and enable the pinmux core to hog pinmux map entries.
    This currently only works for pinmuxes without assigned
    devices as it looks now, but with device trees we can
    look up the corresponding struct device * entries when
    we register the pinmux driver, and have it hog each
    pinmux map in turn, for a simple approach to
    non-dynamic pin muxing. This addresses an issue from
    Grant Likely that the machine should take care of as
    much of the pinmux setup as possible, not the devices.
    By supplying a list of hogs, it can now instruct the
    core to take care of any static mappings.
    - Switch pinmux group retrieveal function to grab an
    array of strings representing the groups rather than an
    array of unsigned and rewrite accordingly.
    - Alter debugfs to show the grouplist handled by each
    pinmux. Also add a list of hogs.
    - Dynamically allocate a struct pinmux at pinmux_get() and
    free it at pinmux_put(), then add these to the global
    list of pinmuxes active as we go along.
    - Go over the list of pinmux maps at pinmux_get() time
    and repeatedly apply matches.
    - Retrieve applicable groups per function from the driver
    as a string array rather than a unsigned array, then
    lookup the enumerators.
    - Make the device to pinmux map a singleton - only allow the
    mapping table to be registered once and even tag the
    registration function with __init so it surely won't be
    abused.
    - Create a separate debugfs file to view the pinmux map at
    runtime.
    - Introduce a spin lock to the pin descriptor struct, lock it
    when modifying pin status entries. Reported by Stijn Devriendt.
    - Fix up the documentation after review from Stephen Warren.
    - Let the GPIO ranges give names as const char * instead of some
    fixed-length string.
    - add a function to unregister GPIO ranges to mirror the
    registration function.
    - Privatized the struct pinctrl_device and removed it from the
    API, the drivers do not need to know
    the members of this struct. It is now in the local header
    "core.h".
    - Rename the concept of "anonymous" mux maps to "system" muxes
    and add convenience macros and documentation.

    ChangeLog v7->v8:

    - Delete the leftover pinmux_config() function from the
    header.
    - Fix a race condition found by Stijn Devriendt in pin_request()

    ChangeLog v8->v9:

    - Drop the bus_type and the sysfs attributes and all, we're not on
    the clear about how this should be used for e.g. userspace
    interfaces so let us save this for the future.
    - Use the right name in MAINTAINERS, PIN CONTROL rather than
    PINMUX
    - Don't kfree() the device state holder, let the .remove() callback
    handle this.
    - Fix up numerous kerneldoc headers to have one line for the function
    description and more verbose documentation below the parameters

    ChangeLog v9->v10:
    - pinctrl: EXPORT_SYMBOL needs export.h, folded in a patch
    from Steven Rothwell
    - fix pinctrl_register error handling, folded in a patch from
    Axel Lin
    - Various fixes to documentation text so that it's consistent.
    - Removed pointless comment from drivers/Kconfig
    - Removed dependency on SYSFS since we removed the bus in
    v9.
    - Renamed hopelessly abbreviated pctldev_* functions to the
    more verbose pinctrl_dev_*
    - Drop mutex properly when looking up GPIO ranges
    - Return NULL instead of ERR_PTR() errors on registration of
    pin controllers, using cast pointers is fragile. We can
    live without the detailed error codes for sure.

    Cc: Stijn Devriendt
    Cc: Joe Perches
    Cc: Russell King
    Acked-by: Grant Likely
    Acked-by: Stephen Warren
    Tested-by: Barry Song
    Signed-off-by: Linus Walleij

    Linus Walleij
     

11 Oct, 2011

1 commit

  • After many years wandering the desert, it is finally time for the
    Microsoft HyperV code to move out of the staging directory. Or at least
    the core hyperv bus code, and the utility driver, the rest still have
    some review to get through by the various subsystem maintainers.

    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: K. Y. Srinivasan

    Greg Kroah-Hartman
     

02 Oct, 2011

1 commit

  • With OPPs, a device may have multiple operable frequency and voltage
    sets. However, there can be multiple possible operable sets and a system
    will need to choose one from them. In order to reduce the power
    consumption (by reducing frequency and voltage) without affecting the
    performance too much, a Dynamic Voltage and Frequency Scaling (DVFS)
    scheme may be used.

    This patch introduces the DVFS capability to non-CPU devices with OPPs.
    DVFS is a techique whereby the frequency and supplied voltage of a
    device is adjusted on-the-fly. DVFS usually sets the frequency as low
    as possible with given conditions (such as QoS assurance) and adjusts
    voltage according to the chosen frequency in order to reduce power
    consumption and heat dissipation.

    The generic DVFS for devices, devfreq, may appear quite similar with
    /drivers/cpufreq. However, cpufreq does not allow to have multiple
    devices registered and is not suitable to have multiple heterogenous
    devices with different (but simple) governors.

    Normally, DVFS mechanism controls frequency based on the demand for
    the device, and then, chooses voltage based on the chosen frequency.
    devfreq also controls the frequency based on the governor's frequency
    recommendation and let OPP pick up the pair of frequency and voltage
    based on the recommended frequency. Then, the chosen OPP is passed to
    device driver's "target" callback.

    When PM QoS is going to be used with the devfreq device, the device
    driver should enable OPPs that are appropriate with the current PM QoS
    requests. In order to do so, the device driver may call opp_enable and
    opp_disable at the notifier callback of PM QoS so that PM QoS's
    update_target() call enables the appropriate OPPs. Note that at least
    one of OPPs should be enabled at any time; be careful when there is a
    transition.

    Signed-off-by: MyungJoo Ham
    Signed-off-by: Kyungmin Park
    Reviewed-by: Mike Turquette
    Acked-by: Kevin Hilman
    Signed-off-by: Rafael J. Wysocki

    MyungJoo Ham
     

26 Jul, 2011

1 commit

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (99 commits)
    drivers/virt: add missing linux/interrupt.h to fsl_hypervisor.c
    powerpc/85xx: fix mpic configuration in CAMP mode
    powerpc: Copy back TIF flags on return from softirq stack
    powerpc/64: Make server perfmon only built on ppc64 server devices
    powerpc/pseries: Fix hvc_vio.c build due to recent changes
    powerpc: Exporting boot_cpuid_phys
    powerpc: Add CFAR to oops output
    hvc_console: Add kdb support
    powerpc/pseries: Fix hvterm_raw_get_chars to accept < 16 chars, fixing xmon
    powerpc/irq: Quieten irq mapping printks
    powerpc: Enable lockup and hung task detectors in pseries and ppc64 defeconfigs
    powerpc: Add mpt2sas driver to pseries and ppc64 defconfig
    powerpc: Disable IRQs off tracer in ppc64 defconfig
    powerpc: Sync pseries and ppc64 defconfigs
    powerpc/pseries/hvconsole: Fix dropped console output
    hvc_console: Improve tty/console put_chars handling
    powerpc/kdump: Fix timeout in crash_kexec_wait_realmode
    powerpc/mm: Fix output of total_ram.
    powerpc/cpufreq: Add cpufreq driver for Momentum Maple boards
    powerpc: Correct annotations of pmu registration functions
    ...

    Fix up trivial Kconfig/Makefile conflicts in arch/powerpc, drivers, and
    drivers/cpufreq

    Linus Torvalds
     

23 Jul, 2011

1 commit

  • virtio has been so far used only in the context of virtualization,
    and the virtio Kconfig was sourced directly by the relevant arch
    Kconfigs when VIRTUALIZATION was selected.

    Now that we start using virtio for inter-processor communications,
    we need to source the virtio Kconfig outside of the virtualization
    scope too.

    Moreover, some architectures might use virtio for both virtualization
    and inter-processor communications, so directly sourcing virtio
    might yield unexpected results due to conflicting selections.

    The simple solution offered by this patch is to always source virtio's
    Kconfig in drivers/Kconfig, and remove it from the appropriate arch
    Kconfigs. Additionally, a virtio menu entry has been added so virtio
    drivers don't show up in the general drivers menu.

    This way anyone can use virtio, though it's arguably less accessible
    (and neat!) for virtualization users now.

    Note: some architectures (mips and sh) seem to have a VIRTUALIZATION
    menu merely for sourcing virtio's Kconfig, so that menu is removed too.

    Signed-off-by: Ohad Ben-Cohen
    Signed-off-by: Rusty Russell

    Ohad Ben-Cohen