summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'mmc-v3.16-1' of git://git.linaro.org/people/ulf.hansson/mmc into nextLinus Torvalds2014-06-0214-483/+169
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull MMC update from Ulf Hansson: "These patches are mainly updates for the mmci driver and have been tested in linux-next. Some ARM SoC related patches are also included and those have been acked from the corresponding maintainers to go through my mmc tree. Updates for mmci driver: - Put the device into low power state at system suspend. - Convert to the common mmc DT parser. - Add missing DT bindings needed for ux500. Updates for ARM ux500|u300: - Convert to the common mmc DT bindings. - Remove redundant board file for mmci platform data" * tag 'mmc-v3.16-1' of git://git.linaro.org/people/ulf.hansson/mmc: (22 commits) mmc: mmci: Enforce DMA configuration through DT mmc: mmci: Enforce max frequency configuration through DT mmc: mmci: Enforce mmc capabilities through DT mmc: mmci: Enforce DT for signal direction and feedback clock ARM: ux500: Remove redundant board file for mmci platform data ARM: ux500: Add a vmmc regulator through DT for the poped eMMC for href ARM: ux500: Add the mmc capabilities flags to DT mmc: mmci: Enable MMC_CAP_CMD23 mmc: mmci: Mark the DT bindings for highspeed mode as deprecated ARM: u300: Convert to the common mmc DT bindings for highspeed mode ARM: nomadik: Convert to the common mmc DT bindings for highspeed mode ARM: ux500: Convert to the common mmc DT bindings for highspeed mode ARM: ux500: Add mmci signal directions and feeback clock in DT for href mmc: mmci: Use the common mmc DT parser mmc: mmci: Add DT bindings for feedback clock pin mmc: mmci: Add DT bindings for signal direction mmc: mmci: Update DT documentation mmc: mmci: Convert to devm functions mmc: mmci: Convert to the mmc gpio API mmc: mmci: Put the device into low power state at system suspend ...
| * mmc: mmci: Enforce DMA configuration through DTUlf Hansson2014-06-023-43/+1
| | | | | | | | | | | | | | | | | | | | Remove the option to provide DMA configuration as platform data, enforce it through DT. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Cc: Russell King <linux@arm.linux.org.uk> Cc: Roland Stigge <stigge@antcom.de> Acked-by: Arnd Bergmann <arnd@arndb.de>
| * mmc: mmci: Enforce max frequency configuration through DTUlf Hansson2014-05-202-8/+1
| | | | | | | | | | | | | | Remove the option to provide a maximum frequency as platform data, enforce it through DT. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: mmci: Enforce mmc capabilities through DTUlf Hansson2014-05-122-7/+0
| | | | | | | | | | | | | | Remove the option to provide the flags for mmc capabilities as platform data, enforce it through DT. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: mmci: Enforce DT for signal direction and feedback clockUlf Hansson2014-05-123-36/+25
| | | | | | | | | | | | | | Remove the option to provide signal direction configuration and feeback clock as platform data, enforce it through DT. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * ARM: ux500: Remove redundant board file for mmci platform dataUlf Hansson2014-05-124-177/+1
| | | | | | | | | | | | | | | | | | Since all platform data has been transfered to DT, we don't need the container for the mmci platform data anymore. Remove the file and the corresponding references to it's data. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org>
| * ARM: ux500: Add a vmmc regulator through DT for the poped eMMC for hrefUlf Hansson2014-05-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Add a node in DT for the proper regulator which means we can move away from the mmci platform data which currently holds the corresponding OCR mask. The mmci driver can then calculate the OCR mask based on the voltages supported by the regulator, instead of relying on the platform data. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org>
| * ARM: ux500: Add the mmc capabilities flags to DTUlf Hansson2014-05-121-0/+6
| | | | | | | | | | Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org>
| * mmc: mmci: Enable MMC_CAP_CMD23Ulf Hansson2014-05-121-0/+3
| | | | | | | | | | | | | | This is pure software configuration, which mmci has been supporting for a while. Let's enable it as default so we can take benefit from it. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: mmci: Mark the DT bindings for highspeed mode as deprecatedUlf Hansson2014-05-121-4/+6
| | | | | | | | | | | | | | | | | | | | The common mmc DT parser supports bindings for highspeed mode, thus there are no need for mmci to provide it's own versions for these. Mark them as deprecated in the documentation. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Rob Herring <robh@kernel.org>
| * ARM: u300: Convert to the common mmc DT bindings for highspeed modeUlf Hansson2014-05-121-2/+2
| | | | | | | | | | | | | | | | The mmci host driver supports the common mmc DT parser, which enables us to use the use common names instead. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org>
| * ARM: nomadik: Convert to the common mmc DT bindings for highspeed modeUlf Hansson2014-05-121-2/+2
| | | | | | | | | | | | | | | | | | The mmci host driver supports the common mmc DT parser, which enables us to use the use common names instead. Cc: Alessandro Rubini <rubini@unipv.it> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org>
| * ARM: ux500: Convert to the common mmc DT bindings for highspeed modeUlf Hansson2014-05-123-9/+9
| | | | | | | | | | | | | | | | The mmci host driver supports the common mmc DT parser, which enables us to use the use common names instead. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org>
| * ARM: ux500: Add mmci signal directions and feeback clock in DT for hrefUlf Hansson2014-05-121-0/+4
| | | | | | | | | | Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
| * mmc: mmci: Use the common mmc DT parserUlf Hansson2014-05-121-59/+33
| | | | | | | | | | | | | | | | | | | | | | Let mmci DT parser only handle the specific bindings related to mmci and extend the DT support by converting to the common mmc DT parser. While both DT and platform data exist, DT takes precedence. If there are supplied DT data, the card detect and write protect GPIOS are enforced to be provided through it. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: mmci: Add DT bindings for feedback clock pinUlf Hansson2014-05-122-0/+4
| | | | | | | | | | | | | | | | | | | | | | The ST Micro variant supports the option of using a feedback clock signal in favor of the clockout pin when latching incoming signals on the data bus. Since this is matter of how pins are being routed we need to provide a new DT binding to be able to configure this through DT. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
| * mmc: mmci: Add DT bindings for signal directionUlf Hansson2014-05-122-1/+21
| | | | | | | | | | | | | | | | | | | | | | Some variants have support for indicating the bus signal directions, which currently are configured through platform data. Add corresponding DT bindings to enable us to move away from using the platform data. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
| * mmc: mmci: Update DT documentationUlf Hansson2014-05-121-3/+36
| | | | | | | | | | | | | | Document how to configure the regulator supplies and add an example of a typical mmci DT node. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: mmci: Convert to devm functionsUlf Hansson2014-05-121-35/+17
| | | | | | | | | | | | | | Converting to devm functions to simplify error handling in ->probe() and to cleanup ->remove(). Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: mmci: Convert to the mmc gpio APIUlf Hansson2014-05-122-85/+15
| | | | | | | | | | | | | | To avoid duplication of code while handling card detect and write protect GPIO pins/irqs, let's convert to use the mmc gpio API. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: mmci: Put the device into low power state at system suspendUlf Hansson2014-05-121-31/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For CONFIG_PM_SLEEP, the device were always left in full power state after system suspend. We solely relied on a power domain to put it into low power state, which is an unreasonable requirement to put on SOCs to implement. Especially for those SOCs not supporting power domains at all. Use pm_runtime_force_suspend|resume() as the system suspend callbacks, to resolve the issue. Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: mmci: Let runtime PM callbacks be available for CONFIG_PMUlf Hansson2014-05-121-2/+2
| | | | | | | | | | | | | | | | | | | | Convert to the SET_PM_RUNTIME_PM macro while defining the runtime PM callbacks. This means the callbacks becomes available for both CONFIG_PM_SLEEP and CONFIG_PM_RUNTIME, which is needed to handle the combinations of these scenarios. Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: mmci: Mask IRQs for all variants during runtime suspendUlf Hansson2014-05-121-12/+11
| | | | | | | | | | | | | | | | | | | | | | In runtime suspended state, we are not expecting IRQs and thus we can safely mask them, not only for pwrreg_nopower variants but for all. Obviously we then also need to make sure we restore the IRQ mask while becoming runtime resumed. Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* | Merge tag 'hsi-for-3.16' of ↵Linus Torvalds2014-06-0221-19/+4513
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi into next Pull HSI (High Speed Syncronous Interface) changes from Sebastian Reichel: "Please pull the following changes for the HSI subsystem, which I have taken over from Carlos Chinea <carlos.chinea@nokia.com>. The below patches have been worked on in the linux-omap mailinglist for 10 months and are well tested in linux-next (have been in there for more than two weeks) without any problems arising. Apart from that potential regressions are very limited, because the subsystem is not yet used by any platform in the mainline kernel. - Add some documentation for the HSI subsystem - Add Device Tree support for the HSI subsystem - Add OMAP3 SSI driver (SSI is a legacy variant of HSI) - Add Nokia N900 Modem driver (without speech support for now)" * tag 'hsi-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi: HSI: Introduce Nokia N900 modem driver HSI: Introduce driver for SSI Protocol Documentation: DT: omap-ssi binding documentation HSI: Introduce OMAP SSI driver HSI: Add common DT binding for HSI client devices HSI: export method to (un)register clients HSI: Add channel resource support to HSI clients HSI: method to unregister clients from an hsi port HSI: hsi-char: fix driver for multiport scenarios MAINTAINERS: update HSI entry Documentation: HSI: Add some general description for the HSI subsystem
| * | HSI: Introduce Nokia N900 modem driverSebastian Reichel2014-05-164-0/+352
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Nokia N900's modem is connected via Synchronous Serial Interface (SSI), which is a legacy version of MIPI's High-speed Synchronous Serial Interface (HSI). The handles the GPIOs for enabling and resetting the modem and instanciates ssi-protocol for data exchange. It does not yet support exchanging voice data with the modem. Signed-off-by: Sebastian Reichel <sre@kernel.org> Reviewed-by: Pavel Machek <pavel@ucw.cz> Tested-By: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
| * | HSI: Introduce driver for SSI ProtocolSebastian Reichel2014-05-164-1/+1243
| | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a driver for the SSI McSAAB protocol as used in the Nokia N900. Signed-off-by: Carlos Chinea <carlos.chinea@nokia.com> Signed-off-by: Sebastian Reichel <sre@kernel.org> Tested-By: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
| * | Documentation: DT: omap-ssi binding documentationSebastian Reichel2014-05-161-0/+97
| | | | | | | | | | | | | | | | | | | | | | | | Create device tree binding documentation for OMAP Synchronous Serial Interface (SSI) device. Signed-off-by: Sebastian Reichel <sre@kernel.org> Reviewed-by: Pavel Machek <pavel@ucw.cz>
| * | HSI: Introduce OMAP SSI driverSebastian Reichel2014-05-168-0/+2388
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add OMAP SSI driver to the HSI subsystem. The Synchronous Serial Interface (SSI) is a legacy version of HSI. As in the case of HSI, it is mainly used to connect Application engines (APE) with cellular modem engines (CMT) in cellular handsets. It provides a multichannel, full-duplex, multi-core communication with no reference clock. The OMAP SSI block is capable of reaching speeds of 110 Mbit/s. Signed-off-by: Carlos Chinea <carlos.chinea@nokia.com> Signed-off-by: Sebastian Reichel <sre@kernel.org> Tested-By: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
| * | HSI: Add common DT binding for HSI client devicesSebastian Reichel2014-05-163-2/+261
| | | | | | | | | | | | | | | | | | | | | | | | Implement and document generic DT bindings for HSI clients. Signed-off-by: Sebastian Reichel <sre@kernel.org> Reviewed-by: Pavel Machek <pavel@ucw.cz> Tested-By: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
| * | HSI: export method to (un)register clientsSebastian Reichel2014-05-162-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Expose method for registering and unregistering HSI clients, so that client drivers can register other client drivers. This is useful for HSI drivers, which want to use the functionality of other HSI drivers. For example the N900 modem driver can load HSI drivers for mcsaab protocol and speech protocol. Signed-off-by: Sebastian Reichel <sre@kernel.org> Reviewed-by: Pavel Machek <pavel@ucw.cz> Tested-By: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
| * | HSI: Add channel resource support to HSI clientsSebastian Reichel2014-05-163-11/+71
| | | | | | | | | | | | | | | | | | | | | | | | Make HSI channel ids platform data, which can be provided by platform data. Signed-off-by: Sebastian Reichel <sre@kernel.org> Tested-By: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
| * | HSI: method to unregister clients from an hsi portSebastian Reichel2014-05-162-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | This exports a method to unregister all clients from an hsi port. Signed-off-by: Sebastian Reichel <sre@kernel.org> Reviewed-by: Pavel Machek <pavel@ucw.cz> Tested-By: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
| * | HSI: hsi-char: fix driver for multiport scenariosSebastian Reichel2014-05-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Fix return code check of alloc_chrdev_region, which returns 0 on success. Signed-off-by: Sebastian Reichel <sre@kernel.org> Reviewed-by: Pavel Machek <pavel@ucw.cz>
| * | MAINTAINERS: update HSI entrySebastian Reichel2014-05-041-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | Add git tree for hsi subsystem, update Sebastian Reichel's e-mail address and add Documentation/hsi.txt as maintained file. Signed-off-by: Sebastian Reichel <sre@kernel.org> Reviewed-by: Pavel Machek <pavel@ucw.cz>
| * | Documentation: HSI: Add some general description for the HSI subsystemSebastian Reichel2014-05-041-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | Add a document, which gives a rough introduction about what HSI is and how its handled by the Linux kernel. Signed-off-by: Sebastian Reichel <sre@kernel.org> Reviewed-by: Pavel Machek <pavel@ucw.cz>
* | | Merge tag 'edac_for_3.16' of ↵Linus Torvalds2014-06-022-3/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp into next Pull EDAC changes from Borislav Petkov: "Just two small fixlets. We have more in the pipe but we didn't get ready in time so more stuff next time" * tag 'edac_for_3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: EDAC: Fix MC scrub mode comparsion bug for correctable errors EDAC, MCE, AMD: Remove leftover unused mask
| * | | EDAC: Fix MC scrub mode comparsion bug for correctable errorsLoc Ho2014-05-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The MC structure field scrub_mode is of integer type - not bit field. Use it accordingly. Signed-off-by: Loc Ho <lho@apm.com> Link: http://lkml.kernel.org/r/1399590199-12256-2-git-send-email-lho@apm.com Signed-off-by: Borislav Petkov <bp@suse.de>
| * | | EDAC, MCE, AMD: Remove leftover unused maskBorislav Petkov2014-05-081-2/+0
| | |/ | |/| | | | | | | | | | | | | | | | | | | 295d8cda2689 ("EDAC, MCE, AMD: Drop local coreid reporting") removed the code snippet which used that mask but forgot to drop the mask itself. Do that now. Signed-off-by: Borislav Petkov <bp@suse.de>
* | | Merge tag 'gpio-v3.16-1' of ↵Linus Torvalds2014-06-0253-685/+704
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio into next Pull GPIO updates from Linus Walleij: "This is the bulk of GPIO changes for the v3.16 series. There is a lot of action in the GPIO subsystem doing refactorings and cleanups, almost as many deletions as insertions and minor feature growth and no new drivers this time. Which is actually pretty nice. Some GPIO-related stuff will come in through the pin control tree as well. Details: - We are finalizing and fixing up the gpiochip irqchip helpers bringing a helpful irqchip implementation into the gpiolib core and avoiding duplicate code and, more importantly, duplicate bug fixes: * Support for using the helpers with threaded interrupt handlers as used on sleeping GPIO-irqchips * Do not set up hardware triggers for edges or levels if the default IRQ type is IRQ_TYPE_NONE - some drivers would exploit the fact that you could get default initialization of the IRQ type from the core at probe() but if no default type is set up from the helper, we should not call the driver to configure anything. Wait until a consumer requests the interrupt instead. * Make the irqchip helpers put the GPIO irqs into their own lock class. The GPIO irqchips can often emit (harmless, but annoying) lockdep warnings about recursions when they are in fact just cascaded IRQs. By putting them into their own lock class we help the lockdep core to keep track of things. * Switch the tc3589x GPIO expanders to use the irqchip helpers * Switch the OMAP GPIO driver to use the irqchip helpers * Add some documentation for the irqchip helpers * select IRQ_DOMAIN when using the helpers since some platforms may not be using this by default and it's a strict dependency. - Continued GPIO descriptor refactoring: * Remove the one instance of gpio_to_desc() from the device tree code, making the OF GPIO code use GPIO descriptors only. * Introduce gpiod_get_optional() and gpiod_get_optional_index() akin to the similar regulator functions for cases where the use of GPIO is optional and not strictly required. * Make of_get_named_gpiod_flags() private - we do not want to unnecessarily expose APIs to drivers that make the gpiolib harder than necessary to maintain and refactor. Privatize this function. - Support "-gpio" suffix for the OF GPIO retrieveal path. We used to look for "foo-gpios" or just "gpios" in device tree nodes, but it turns out that some drivers with a single GPIO line will just state "foo-gpio" (singularis). Sigh. Support this with a fallback looking for it, as this simplifies driver code and handles it in core code. - Switch the ACPI GPIO core to fetch GPIOs with the *_cansleep function variants as the GPIO operation region handler can sleep, and shall be able to handle gpiochips that sleep. - Tons of cleanups and janitorial work from Jingoo Han, Axel Lin, Javier Martinez Canillas and Abdoulaye Berthe. Notably Jingoo cut off a ton of pointless OOM messages. - Incremental development and fixes for various drivers, nothing really special here" * tag 'gpio-v3.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (85 commits) gpio: select IRQ_DOMAIN for gpiolib irqchip helpers gpio: pca953x: use gpiolib irqchip helpers gpio: pcf857x: Add IRQF_SHARED when request irq gpio: pcf857x: Avoid calling irq_domain_cleanup twice gpio: mcp23s08: switch chip count to int gpio: dwapb: use a second irq chip gpio: ep93xx: Use devm_ioremap_resource() gpio: mcp23s08: fixed count variable for devicetree probing gpio: Add run-time dependencies to R-Car driver gpio: pch: add slab include Documentation / ACPI: Fix location of GPIO documentation gpio / ACPI: use *_cansleep version of gpiod_get/set APIs gpio: generic: add request function pointer gpio-pch: Fix Kconfig dependencies gpio: make of_get_named_gpiod_flags() private gpio: gpioep93xx: use devm functions gpio: janzttl: use devm function gpio: timberdale: use devm functions gpio: bt8xx: use devm function for memory allocation gpio: include linux/bug.h in interface header ...
| * | | gpio: select IRQ_DOMAIN for gpiolib irqchip helpersLinus Walleij2014-05-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These helpers depend on the IRQ_DOMAIN so select it explicitly, as it will not be present on all platforms such as Intel desktops and laptops using Intel-MID. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | | gpio: pca953x: use gpiolib irqchip helpersLinus Walleij2014-05-282-61/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This switches the PCA953x driver over to using the gpiolib irqchip helpers to handle the threaded interrups cascaded off this GPIO chip. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | | gpio: pcf857x: Add IRQF_SHARED when request irqGeorge Cherian2014-05-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's quite possible that multiple pcf857x can be hooked up to the same interrupt line with the processor. So add IRQF_SHARED in request irq.. Signed-off-by: George Cherian <george.cherian@ti.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | | gpio: pcf857x: Avoid calling irq_domain_cleanup twiceGeorge Cherian2014-05-281-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently irq_domain_cleanup is called twice if irq_domain_init fails. This causes the following crash. Unable to handle kernel paging request at virtual address 00100104 pgd = c0004000 [00100104] *pgd=00000000 Internal error: Oops: 805 [#1] SMP ARM Modules linked in: CPU: 0 PID: 6 Comm: kworker/u4:0 Not tainted 3.12.15-01889-gedd10a8-dirty #4 Workqueue: deferwq deferred_probe_work_func task: ed0ee800 ti: ed116000 task.ti: ed116000 PC is at irq_domain_remove+0x3c/0x8c LR is at 0x0 pc : [<c0089734>] lr : [<00000000>] psr: a0000013 sp : ed117b50 ip : 00100100 fp : ed117b64 r10: ed5d1a04 r9 : 00000008 r8 : 00000000 r7 : ffffffea r6 : ed5d1a20 r5 : ed5d1a00 r4 : ed5e7540 r3 : 00200200 r2 : 00100100 r1 : c08aa180 r0 : 00200200 Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c53c7d Table: 8000406a DAC: 00000017 Process kworker/u4:0 (pid: 6, stack limit = 0xed116248) Stack: (0xed117b50 to 0xed118000) 7b40: 0000016b ed5d5f10 ed117b74 ed117b68 7b60: c02c8910 c0089704 ed117bb4 ed117b78 c02c8e14 c02c8900 ed5d1a04 ed5d4e80 ... <snip> ... fe0: 00000000 00000000 00000000 00000000 00000013 00000000 384a13ea 1590210a Backtrace: [<c00896f8>] (irq_domain_remove+0x0/0x8c) from [<c02c8910>] (pcf857x_irq_domain_cleanup+0x1c/0x20) r4:ed5d5f10 r3:0000016b [<c02c88f4>] (pcf857x_irq_domain_cleanup+0x0/0x20) from [<c02c8e14>] (pcf857x_probe+0x2a8/0x364) [<c02c8b6c>] (pcf857x_probe+0x0/0x364) from [<c04787ac>] (i2c_device_probe+0x80/0xc0) [<c047872c>] (i2c_device_probe+0x0/0xc0) from [<c036c33c>] (driver_probe_device+0x104/0x240) r6:00000000 r5:ed5d1a20 r4:c08c709c r3:c047872c [<c036c238>] (driver_probe_device+0x0/0x240) from [<c036c558>] (__device_attach+0x48/0x4c) r7:ed4fc480 r6:c036c510 r5:ed5d1a20 r4:c0866bb8 [<c036c510>] (__device_attach+0x0/0x4c) from [<c036a6d8>] (bus_for_each_drv+0x4c/0x94) r5:ed5d1a20 r4:00000000 [<c036a68c>] (bus_for_each_drv+0x0/0x94) from [<c036c1f4>] (device_attach+0x78/0x90) r6:c087fe50 r5:ed5d1a54 r4:ed5d1a20 [<c036c17c>] (device_attach+0x0/0x90) from [<c036b76c>] (bus_probe_device+0x8c/0xb4) r6:c087fe50 r5:ed5d1a20 r4:ed5d1a20 r3:ed17e1c0 [<c036b6e0>] (bus_probe_device+0x0/0xb4) from [<c0369888>] (device_add+0x34c/0x624) r6:ed5d1a28 r5:00000000 r4:ed5d1a20 r3:fffffffe [<c036953c>] (device_add+0x0/0x624) from [<c0369b7c>] (device_register+0x1c/0x20) ... <snip> ... [<c0060844>] (process_one_work+0x0/0x37c) from [<c0061040>] (worker_thread+0x13c/0x3c4) [<c0060f04>] (worker_thread+0x0/0x3c4) from [<c00670ec>] (kthread+0xac/0xb8) [<c0067040>] (kthread+0x0/0xb8) from [<c00148b8>] (ret_from_fork+0x14/0x3c) r7:00000000 r6:00000000 r5:c0067040 r4:ed105d20 Code: e59fc04c e591e000 e59f0048 e154000e (e5823004) ---[ end trace 59dd1e90032c4217 ]--- Signed-off-by: George Cherian <george.cherian@ti.com> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | | gpio: mcp23s08: switch chip count to intLinus Walleij2014-05-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 3e3bed913e8bbd78f38cefd5d575475f45c05dd0 "gpio: mcp23s08: fixed count variable for devicetree probing" introduced a loop check to see if the number of chips were unconsistent and going below zero counting downwards, but this requires the counting variable to be able to be negative, so switch the variable from unsigned to int. Cc: Michael Stickel <ms@mycable.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | | gpio: dwapb: use a second irq chipSebastian Andrzej Siewior2014-05-271-13/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right new have one irq chip running always in level mode. It would nicer to have two irq chips where one is handling level type interrupts and the other one is doing edge interrupts. So we can have at runtime two users where one is using edge and the other level. Acked-by: Alan Tull <delicious.quinoa@gmail.com> Acked-by: Jamie Iles <jamie@jamieiles.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | | gpio: ep93xx: Use devm_ioremap_resource()Jingoo Han2014-05-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use devm_ioremap_resource() because devm_request_and_ioremap() is obsoleted by devm_ioremap_resource(). Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | | gpio: mcp23s08: fixed count variable for devicetree probingMichael Stickel2014-05-271-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed missing increase of count variable for devicetree path in driver probing. The gpio-mcp23s08 driver has two paths for getting the platform registration information. One for the classic platform initialization and one for openfirmware devicetree based initialization. The devicetree based path is missing the increase of the count variable, which results in the count variable to become negative in the later use, where it is decreased. The count variable is used as an index into a vector. This results in accessing invalid memory space and can result in an exception. Tested this with an AM3352 SoC with two mcp23s17 on two chip selects as well as on a shared chip select. Signed-off-by: Michael Stickel <ms@mycable.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | | gpio: Add run-time dependencies to R-Car driverJean Delvare2014-05-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Renesas R-Car GPIO driver is only useful on shmobile unless build testing. Signed-off-by: Jean Delvare <jdelvare@suse.de> Cc: Magnus Damm <damm@opensource.se> Cc: Alexandre Courbot <gnurou@gmail.com> Acked-by: Simon Horman <horms+renesas@verge.net.au> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | | gpio: pch: add slab includeLinus Walleij2014-05-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After change 3ff35cbcfa4bc7d7dbdd0279e32ea677567ded02 "gpio-pch: Fix Kconfig dependencies" which enabled COMPILE_TEST as an alternative for the PCH driver, we get build failures like this: drivers/gpio/gpio-pch.c: In function 'pch_gpio_probe': drivers/gpio/gpio-pch.c:359:2: error: implicit declaration of function 'kzalloc' [-Werror=implicit-function-declaration] drivers/gpio/gpio-pch.c:359:7: warning: assignment makes pointer from integer without a cast [enabled by default] drivers/gpio/gpio-pch.c:442:2: error: implicit declaration of function 'kfree' [-Werror=implicit-function-declaration] Fix this by including <linux/slab.h> explicitly. Cc: Jean Delvare <jdelvare@suse.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | | Documentation / ACPI: Fix location of GPIO documentationJarkko Nikula2014-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit fd8e198cfcaa ("Documentation: gpiolib: document new interface") moved Documentation/gpio.txt to Documentation/gpio/gpio-legacy.txt and added new documents for descriptor-based interface so fix the the location here to point Documentation/gpio/ since that what commit ccb6fbb99020 ("Documentation / ACPI: update to GPIO descriptor API") was looking for. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>