14 Apr, 2014

6 commits

  • To be consistent with other Broadcom drivers, the Broadcom Capri pinctrl
    driver and its related CONFIG option are renamed to bcm281xx.

    Devicetree compatible string and binding documentation use
    "brcm,bcm11351-pinctrl" to match the machine binding here:
    Documentation/devicetree/bindings/arm/bcm/bcm11351.txt

    This driver supports pinctrl on BCM11130, BCM11140, BCM11351, BCM28145
    and BCM28155 SoCs.

    Signed-off-by: Sherman Yin
    Reviewed-by: Matt Porter
    Acked-by: Linus Walleij
    Signed-off-by: Linus Walleij

    Sherman Yin
     
  • Acking interrupts are done differently between on v2 and v3, so add an extra
    attribute to the pingroup struct to let the platform definitions control this.
    Also make sure to start dual edge detection by detecting the rising edge.

    Signed-off-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Bjorn Andersson
     
  • I left this in by mistake, get rid of it.

    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • The first half of pinbank 0 only has one muxing function (as gpios) and
    does not have a special mux-register.

    Therefore ensure that no other mux function can be selected and also do not
    write to a non-existent register.

    Signed-off-by: Heiko Stuebner
    Signed-off-by: Linus Walleij

    Heiko Stübner
     
  • In a following change, rockchip_set_mux gets the possibility to fail.
    Therefore add a return value to it and honor error codes in functions
    using rockchip_set_mux.

    Signed-off-by: Heiko Stuebner
    Signed-off-by: Linus Walleij

    Heiko Stübner
     
  • The correct value of .mux_offset for rk3188 seems to be 0x60
    instead of 0x68.

    Heiko adds:

    GPIO0 only has the second two IOMUX registers:
    - GRF_GPIO0C_IOMUX at 0x68
    - GRF_GPIO0D_IOMUX at 0x6c
    which I guess is where my mistake comes from.

    It looks like there does no iomux register exist at all
    for the first 16 pins.

    In any case, the current number is wrong, and the 0x60
    offset is the correct one, but I guess we need to
    determine what the affected pins do - do they always have a
    gpio mux or such?

    Signed-off-by: Beniamino Galvani
    Reviewed-by: Heiko Stuebner
    Signed-off-by: Linus Walleij

    Beniamino Galvani
     

04 Apr, 2014

1 commit

  • Pull bulk of gpio updates from Linus Walleij:
    "A pretty big chunk of changes this time, but it has all been on
    rotation in linux-next and had some testing. Of course there will be
    some amount of fixes on top...

    - Merged in a branch of irqchip changes from Thomas Gleixner: we need
    to have new callbacks from the irqchip to determine if the GPIO
    line will be eligible for IRQs, and this callback must be able to
    say "no". After some thinking I got the branch from tglx and have
    switched all current users over to use this.

    - Based on tglx patches, we have added some generic irqchip helpers
    in the gpiolib core. These will help centralize code when GPIO
    drivers have simple chained/cascaded IRQs. Drivers will still
    define their irqchip vtables, but the gpiolib core will take care
    of irqdomain set-up, mapping from local offsets to Linux irqs, and
    reserve resources by marking the GPIO lines for IRQs.

    - Initially the PL061 and Nomadik GPIO/pin control drivers have been
    switched over to use the new gpiochip-to-irqchip infrastructure
    with more drivers expected for the next kernel cycle. The
    factoring of just two drivers still makes it worth it so it is
    already a win.

    - A new driver for the Synopsys DesignWare APB GPIO block.

    - Modify the DaVinci GPIO driver to be reusable also for the new TI
    Keystone architecture.

    - A new driver for the LSI ZEVIO SoCs.

    - Delete the obsolte tnetv107x driver.

    - Some incremental work on GPIO descriptors: have
    gpiod_direction_output() use a logical level, respecting assertion
    polarity through ACTIVE_LOW flags, adding gpiod_direction_output_raw()
    for the case where you want to set that very value. Add
    gpiochip_get_desc() to fetch a GPIO descriptor from a specific
    offset on a certain chip inside driver code.

    - Switch ACPI GPIO code over to using gpiochip_get_desc() and get rid
    of gpio_to_desc().

    - The ACPI GPIO event handling code has been reworked after
    encountering an actual real life implementation.

    - Support for ACPI GPIO operation regions.

    - Generic GPIO chips can now be assigned labels/names from platform
    data.

    - We now clamp values returned from GPIO drivers to the boolean [0,1]
    range.

    - Some improved documentation on how to use the polarity flag was
    added.

    - a large slew of incremental driver updates and non-critical fixes.
    Some targeted for stable"

    * tag 'gpio-v3.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (80 commits)
    gpio: rcar: Add helper variable dev = &pdev->dev
    gpio-lynxpoint: force gpio_get() to return "1" and "0" only
    gpio: unmap gpio irqs properly
    pch_gpio: set value before enabling output direction
    gpio: moxart: Actually set output state in moxart_gpio_direction_output()
    gpio: moxart: Avoid forward declaration
    gpio: mxs: Allow for recursive enable_irq_wake() call
    gpio: samsung: Add missing "break" statement
    gpio: twl4030: Remove redundant assignment
    gpio: dwapb: correct gpio-cells in binding document
    gpio: iop: fix devm_ioremap_resource() return value checking
    pinctrl: coh901: convert driver to use gpiolib irqchip
    pinctrl: nomadik: convert driver to use gpiolib irqchip
    gpio: pl061: convert driver to use gpiolib irqchip
    gpio: add IRQ chip helpers in gpiolib
    pinctrl: nomadik: factor in platform data container
    pinctrl: nomadik: rename secondary to latent
    gpio: Driver for SYSCON-based GPIOs
    gpio: generic: Use platform_device_id->driver_data field for driver flags
    pinctrl: coh901: move irq line locking to resource callbacks
    ...

    Linus Torvalds
     

02 Apr, 2014

1 commit

  • Pull pin control bulk changes from Linus Walleij:
    "Pin control bulk changes for the v3.15 series, no new core
    functionality this time, just incremental driver updates:

    - A large refactoring of the MVEBU (Marvell) driver.

    - A large refactoring of the Tegra (nVidia) driver.

    - GPIO interrupt including soft edges support in the STi driver.

    - Misc updates to PFC (Renesas), AT91, ADI2 (Blackfin),
    pinctrl-single, sirf (CSR), msm (Qualcomm), Exynos (Samsung), sunxi
    (AllWinner), i.MX (Freescale), Baytrail"

    * tag 'pinctrl-v3.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (72 commits)
    pinctrl: tegra: add some missing Tegra114 entries
    pinctrl: tegra: fix some mistakes in Tegra124
    pinctrl: msm: fix up out-of-order merge conflict
    pinctrl: st: Fix error check for of_irq_to_resource usage
    pinctrl: tegra: consistency cleanup
    pinctrl: tegra: dynamically calculate function list of groups
    pinctrl: tegra: init Tegra20/30 at module_init time
    pinctrl: st: Use ARRAY_SIZE instead of raw value for number of delays
    pinctrl: st: add pinctrl support for the STiH407 SoC
    pinctrl: st: Enhance the controller to manage unavailable registers
    pinctrl: msm: Simplify msm_config_reg() and callers
    pinctrl: msm: Remove impossible WARN_ON()s
    pinctrl: msm: Replace lookup tables with math
    pinctrl: msm: Drop OF_IRQ dependency
    pinctrl: msm: Drop unused includes
    pinctrl: msm: Check for ngpios > MAX_NR_GPIO
    pinctrl: msm: Silence recursive lockdep warning
    pinctrl: mvebu: silence WARN to dev_warn
    pinctrl: msm: drop wake_irqs bitmap
    pinctrl-baytrail: add function mux checking in gpio pin request
    ...

    Linus Torvalds
     

26 Mar, 2014

2 commits


25 Mar, 2014

2 commits

  • The old platform data struct is just a leftover from the times
    when the driver was not probed exclusively from the device tree.
    Factor this into the general state container and simplify the
    probe path.

    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • The "secondary irq" in the nomadik pin control driver is actually
    not secondary (as in: can occur any time alongside the ordinary
    irq), it is a latent IRQ. It is an IRQ that has occurred when
    the system was in sleep state and has been cached in a special
    register flagged from the low power management unit (PRCM).

    Signed-off-by: Linus Walleij

    Linus Walleij
     

18 Mar, 2014

2 commits

  • This switches the COH901 GPIO driver over to using the
    .request_resources() and .release_resources() callbacks from
    the irqchip vtable and separate the calls from the .enable()
    and .disable() callbacks as the latter cannot really say no
    to a request, whereas the resource callbacks can.

    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • This switches all GPIO and pin control drivers with irqchips
    that were using .startup() and .shutdown() callbacks to lock
    GPIO lines for IRQ usage over to using the .request_resources()
    and .release_resources() callbacks just introduced into the
    irqchip vtable.

    Cc: Thomas Gleixner
    Cc: Jean-Jacques Hiblot
    Signed-off-by: Linus Walleij

    Linus Walleij
     

14 Mar, 2014

3 commits

  • Add some missing pin and drive group definitions to the driver. These
    are all defined in the TRM, but missing from the driver for some reason.

    Fix a couple of mistakes in the drive group definitions.

    Much of the diff to tegra114_groups[] is an indentation change due to one
    of the new group names being long. git diff/show -w will highlight this.

    Signed-off-by: Stephen Warren
    Signed-off-by: Linus Walleij

    Stephen Warren
     
  • A couple of pairs of pin group names were swapped in the table. This
    caused the wrong register to be programmed. Luckily, this had little
    effect, if any, since the swapped pins were likely to be programmed
    identically.

    Signed-off-by: Stephen Warren
    Signed-off-by: Linus Walleij

    Stephen Warren
     
  • Commit 051a58b4622f0e1b732acb750097c64bc00ddb93
    "pinctrl: msm: Simplify msm_config_reg() and callers"
    removed the local "reg" variable in the msm_config_reg()
    function, but the earlier
    commit ed118a5fd951bd2def8249ee251842c4f81fe4bd
    "pinctrl-msm: Support output-{high,low} configuration"
    introduced a new switchclause using it.

    Fix this up by removing the offending register assignment.

    Reported-by: Kbuild test robot
    Cc: Stephen Boyd
    Acked-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Linus Walleij
     

12 Mar, 2014

16 commits

  • This patch fixes an error check while using of_irq_to_resource.
    of_irq_to_resource returns non-zero interrupt number on success and zero
    on error. The driver was using error check is wrong way.

    Without this patch the driver will configure interrupt zero if there is
    no interrupt specified in the node.

    Signed-off-by: Srinivas Kandagatla
    Signed-off-by: Linus Walleij

    Srinivas Kandagatla
     
  • Fix Tegra30/114/124 pinmux drivers consistency issues.
    * Sort all lists of the same object type (e.g. #defines for pins, and
    the array that defines their names) in the same order.
    * Whitespace fixes.
    * Consistency in layout between the 3 drivers.

    These driver files were also auto-generated, which should allow us to
    make e.g. the U-Boot drivers completely consistent with the kernel in
    the future:-)

    Signed-off-by: Stephen Warren
    Signed-off-by: Linus Walleij

    Stephen Warren
     
  • The per-SoC data structures for Tegra pinctrl stored some information
    in a redundant way. Specifically, the list of groups that each function
    could be muxed onto was stored once explicitly, and also as part of the
    definition of each group. Eliminate this redundancy, and calculate each
    function's list of valid groups at pinctrl probe time. This removes
    thousands of lines of code from the pinctrl driver and ~16K from the
    vmlinux binary size, and adds only about 500uS to the boot process (on
    Tegra30; newer SoCs will likely be faster still).

    Signed-off-by: Stephen Warren
    Signed-off-by: Linus Walleij

    Stephen Warren
     
  • The Tegra20/30 pinctrl drivers currently initializes at arch_initcall,
    whereas Tegra114/124 pinctrl drivers initialize at module_init time.
    Convert Tegra20/30 to work the same way as the other drivers.

    Signed-off-by: Stephen Warren
    Signed-off-by: Linus Walleij

    Stephen Warren
     
  • This patch replaces the raw values with ARRAY_SIZE for assigning the
    ninput_delays and noutput_delays fields of STiH416's st_pctl_data struct.

    Acked-by: Giuseppe Cavallaro
    Signed-off-by: Maxime Coquelin
    Acked-by: Lee Jones
    Signed-off-by: Linus Walleij

    Maxime COQUELIN
     
  • This patch adds the initial support for pinctrl based on H407 SoC.

    Acked-by: Giuseppe Cavallaro
    Acked-by: Lee Jones
    Acked-by: Srinivas Kandagatla
    Signed-off-by: Giuseppe Cavallaro
    Signed-off-by: Maxime Coquelin
    Signed-off-by: Linus Walleij

    Giuseppe Cavallaro
     
  • This patch adds a new logic inside the st pinctrl to manage
    an unsupported scenario: some sysconfig are not available!

    This is the case of STiH407 where, although documented, the
    following registers from SYSCFG_FLASH have been removed from the SoC.

    SYSTEM_CONFIG3040
    Output Enable pad control for all PIO Alternate Functions
    and
    SYSTEM_ CONFIG3050
    Pull Up pad control for all PIO Alternate Functions

    Without managing this condition an imprecise external abort
    will be detect.

    To do this the patch also reviews the st_parse_syscfgs
    and other routines to manipulate the registers only if
    actually available.
    In any case, for example the st_parse_syscfgs detected
    an error condition but no action was made in the
    st_pctl_probe_dt.

    Acked-by: Giuseppe Cavallaro
    Acked-by: Srinivas Kandagatla
    Signed-off-by: Giuseppe Cavallaro
    Signed-off-by: Maxime Coquelin
    Acked-by: Lee Jones
    Signed-off-by: Linus Walleij

    Giuseppe Cavallaro
     
  • We don't need to check for a negative reg here because reg is
    always the same and is always non-negative. Also, collapse the
    switch statement down for the duplicate cases.

    Signed-off-by: Stephen Boyd
    Acked-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Stephen Boyd
     
  • All these functions are limited in what they can pass as the gpio
    or irq number to whatever is setup during probe. Remove the
    checks.

    Signed-off-by: Stephen Boyd
    Acked-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Stephen Boyd
     
  • We don't need to waste space with these lookup tables, just do
    the math directly.

    Signed-off-by: Stephen Boyd
    Acked-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Stephen Boyd
     
  • This driver doesn't rely on any functionality living in
    drivers/of/irq.c to compile. Drop this dependency.

    Signed-off-by: Stephen Boyd
    Acked-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Stephen Boyd
     
  • These includes are unused or can be handled via forward
    declarations. Remove them.

    Signed-off-by: Stephen Boyd
    Acked-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Stephen Boyd
     
  • Fail the probe and print a warning if SoC specific drivers have
    more GPIOs than there can be accounted for in the static bitmaps.
    This should avoid silent corruption/failures in the future.

    Signed-off-by: Stephen Boyd
    Acked-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Stephen Boyd
     
  • If a driver calls enable_irq_wake() on a gpio turned interrupt
    from the msm pinctrl driver we'll get a lockdep warning like so:

    =============================================
    [ INFO: possible recursive locking detected ]
    3.14.0-rc3 #2 Not tainted
    ---------------------------------------------
    modprobe/52 is trying to acquire lock:
    (&irq_desc_lock_class){-.....}, at: [] __irq_get_desc_lock+0x48/0x88

    but task is already holding lock:
    (&irq_desc_lock_class){-.....}, at: [] __irq_get_desc_lock+0x48/0x88

    other info that might help us debug this:
    Possible unsafe locking scenario:

    CPU0
    ----
    lock(&irq_desc_lock_class);
    lock(&irq_desc_lock_class);

    *** DEADLOCK ***

    May be due to missing lock nesting notation

    4 locks held by modprobe/52:
    #0: (&__lockdep_no_validate__){......}, at: [] __driver_attach+0x48/0x98
    #1: (&__lockdep_no_validate__){......}, at: [] __driver_attach+0x58/0x98
    #2: (&irq_desc_lock_class){-.....}, at: [] __irq_get_desc_lock+0x48/0x88
    #3: (&(&pctrl->lock)->rlock){......}, at: [] msm_gpio_irq_set_wake+0x20/0xa8

    Silence it by putting the gpios into their own lock class.

    Signed-off-by: Stephen Boyd
    Acked-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Stephen Boyd
     
  • Pinctrl will WARN on missing DT resources, which is a little bit too
    noisy. Use dev_warn with FW_BUG instead.

    Signed-off-by: Sebastian Hesselbarth
    Signed-off-by: Linus Walleij

    Sebastian Hesselbarth
     
  • Currently, the wake_irqs bitmap is used to track whether there are any
    gpio's which are configured as wake irqs, and uses this to determine
    whether or not to call enable_irq_wake()/disable_irq_wake() on the
    summary interrupt.

    However, the genirq core already handles this case, by maintaining a
    'wake_count' per irq_desc, and only calling into the controlling
    irq_chip when wake_count transitions 0 1.

    Drop this bitmap, and unconditionally call irq_set_irq_wake() on the
    summary interrupt.

    Signed-off-by: Josh Cartwright
    Acked-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Josh Cartwright
     

11 Mar, 2014

2 commits

  • The requested gpio pin must has the func_pin_mux field set
    to GPIO function by BIOS/FW in advanced. Else, the gpio pin
    request would fail. This is to ensure that we do not expose
    any gpio pins which shall be used for alternate functions,
    for eg: wakeup pin, I/O interfaces for LPSS, etc.

    Signed-off-by: Chew, Kean Ho
    Signed-off-by: Chew, Chiau Ee
    Reviewed-by: Darren Hart
    Signed-off-by: Linus Walleij

    Chew, Kean Ho
     
  • drive_dev3_pins in pinctrl-tegra114.c wasn't used; delete it.

    pinctrl-tegra124.c had quite a few typos. Fix those.

    pinctrl-tegra124.c had a few mismatches between the *_groups[] ararys
    and the function lists in tegra124_groups[]. Fix those.

    Signed-off-by: Stephen Warren
    Signed-off-by: Linus Walleij

    Stephen Warren
     

10 Mar, 2014

1 commit

  • Pull ARM SoC fixes from from Olof Johansson:
    "A collection of fixes for ARM platforms. A little large due to us
    missing to do one last week, but there's nothing in particular here
    that is in itself large and scary.

    Mostly a handful of smaller fixes all over the place. The majority is
    made up of fixes for OMAP, but there are a few for others as well. In
    particular, there was a decision to rename a binding for the Broadcom
    pinctrl block that we need to go in before the final release since we
    then treat it as ABI"

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: dts: omap3-gta04: Add ti,omap36xx to compatible property to avoid problems with booting
    ARM: tegra: add LED options back into tegra_defconfig
    ARM: dts: omap3-igep: fix boot fail due wrong compatible match
    ARM: OMAP3: Fix pinctrl interrupts for core2
    pinctrl: Rename Broadcom Capri pinctrl binding
    pinctrl: refer to updated dt binding string.
    Update dtsi with new pinctrl compatible string
    ARM: OMAP: Kill warning in CPUIDLE code with !CONFIG_SMP
    ARM: OMAP2+: Add support for thumb mode on DT booted N900
    ARM: OMAP2+: clock: fix clkoutx2 with CLK_SET_RATE_PARENT
    ARM: OMAP4: hwmod: Fix SOFTRESET logic for OMAP4
    ARM: DRA7: hwmod data: correct the sysc data for spinlock
    ARM: OMAP5: PRM: Fix reboot handling
    ARM: sunxi: dt: Change the touchscreen compatibles
    ARM: sun7i: dt: Fix interrupt trigger types

    Linus Torvalds
     

05 Mar, 2014

4 commits

  • commit 655dada6277991 causes kernel panic, this patch fixes it.

    [ 1.197816] [ffffffee] *pgd=0d7fd821, *pte=00000000, *ppte=00000000
    [ 1.204070] Internal error: Oops: 17 [#1] PREEMPT SMP ARM
    [ 1.209447] Modules linked in:
    [ 1.212490] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.14.0-rc1 #3
    [ 1.218737] task: cd03c000 ti: cd040000 task.ti: cd040000
    [ 1.224127] PC is at gpiod_lock_as_irq+0xc/0x64
    [ 1.228634] LR is at sirfsoc_gpio_irq_startup+0x18/0x44
    [ 1.233842] pc : [] lr : [] psr: a0000193
    [ 1.233842] sp : cd041d30 ip : 00000000 fp : 00000000
    [ 1.245296] r10: 00000000 r9 : cd023db4 r8 : 60000113
    [ 1.250505] r7 : 0000003e r6 : cd023dd4 r5 : c06bfa54 r4 : cd023d80
    [ 1.257014] r3 : 00000020 r2 : 00000000 r1 : ffffffea r0 : ffffffea
    [ 1.263526] Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
    [ 1.270903] Control: 10c53c7d Table: 00004059 DAC: 00000015
    [ 1.276631] Process swapper/0 (pid: 1, stack limit = 0xcd040240)
    [ 1.282620] Stack: (0xcd041d30 to 0xcd042000)
    [ 1.286963] 1d20: cd023d80 c01d1c38 c01d1c20 cd023d80
    [ 1.295124] 1d40: 00000001 c0068438 cd023d80 ccb6d880 cd023dd4 c0067044 0000718e c006719c
    [ 1.286963] 1d20: cd023d80 c01d1c38 c01d1c20 cd023d80
    [ 1.295124] 1d40: 00000001 c0068438 cd023d80 ccb6d880 cd023dd4 c0067044 0000718e c006719c
    [ 1.295124] 1d40: 00000001 c0068438 cd023d80 ccb6d880 cd023dd4 c0067044 0000718e c006719c
    [ 1.303283] 1d60: 00000800 00000083 ccb6d880 cd023d80 c02b41d8 00000083 0000003e ccb7c410
    [ 1.311442] 1d80: 00000000 c00671dc 00000083 0000003e c02b41d8 cd3dd5c0 0000003e ccb7c634
    [ 1.319601] 1da0: cd040030 c00672a8 cd3dd5c0 ccb7c410 ccb6d340 ccb7c410 ccb6d340 cd3dd400
    [ 1.327760] 1dc0: cd3dd410 c02b4434 ccb7c410 c01265a8 00000001 cd3dd410 c0687108 00000000
    [ 1.335919] 1de0: c0687108 00000000 00000000 c0240170 c0240158 cd3dd410 c06c30d0 c023e8bc
    [ 1.344079] 1e00: c023e9d4 00000000 cd3dd410 c023e9d4 c0682150 c023cf88 cd003e98 cd2d50c4
    [ 1.352238] 1e20: cd3dd410 cd3dd444 c06822f0 c023e768 cd3dd418 cd3dd410 c06822f0 c023de14
    [ 1.360397] 1e40: cd3dd418 00000000 cd3dd410 c023c398 cd041e78 cd041ea8 cd3dd400 cd3dd410
    [ 1.368556] 1e60: 00000083 00000000 cd3dd400 cd3dd410 00000083 000000c8 c04e00c8 c023fee8
    [ 1.376715] 1e80: 00000000 cd041ea8 cd3dd400 00000001 00000083 c024048c c0435ef8 c0434dec
    [ 1.384874] 1ea0: c068da58 c04c6d04 c0682150 c0435ef8 ffffffff 00000000 00000000 c068da58
    [ 1.393033] 1ec0: 00000020 00000000 00000000 00000000 c05dabb8 00000007 c068d640 c068d640
    [ 1.401193] 1ee0: c04c247c c04c249c 00000000 c00088e8 cd004c00 c043bbb8 cd029180 c03812a0
    [ 1.409352] 1f00: 00000000 00000000 60000113 c0673728 60000113 c0673728 00000000 00000000
    [ 1.417511] 1f20: cd7fce01 c0390a54 00000065 c003a81c c049e8bc 00000007 cd7fce0e 00000007
    [ 1.425670] 1f40: 00000000 c05dabb8 00000007 c068d640 c068d640 c04c050c c04e00c8 00000065
    [ 1.433829] 1f60: c04e00c0 c04c0c54 00000007 00000007 c04c050c c037d8fc cd03c000 c004322c
    [ 1.441988] 1f80: c0662b40 0000d640 c03737c0 00000000 00000000 00000000 00000000 00000000
    [ 1.450147] 1fa0: 00000000 c03737cc 00000000 c000e478 00000000 00000000 00000000 00000000
    [ 1.458307] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    [ 1.466467] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 0002d481 05014092
    [ 1.474640] [] (gpiod_lock_as_irq) from [] (sirfsoc_gpio_irq_startup+0x18/0x44)
    [ 1.483661] [] (sirfsoc_gpio_irq_startup) from [] (irq_startup+0x34/0x6c)
    [ 1.492163] [] (irq_startup) from [] (__setup_irq+0x450/0x4b8)
    [ 1.499714] [] (__setup_irq) from [] (request_threaded_irq+0xa8/0x128)
    [ 1.507960] [] (request_threaded_irq) from [] (request_any_context_irq+0x4c/0x7c)
    [ 1.517164] [] (request_any_context_irq) from [] (gpio_extcon_probe+0x144/0x1d4)
    [ 1.526279] [] (gpio_extcon_probe) from [] (platform_drv_probe+0x18/0x48)
    [ 1.534783] [] (platform_drv_probe) from [] (driver_probe_device+0x120/0x238)
    [ 1.543641] [] (driver_probe_device) from [] (bus_for_each_drv+0x58/0x8c)
    [ 1.552143] [] (bus_for_each_drv) from [] (device_attach+0x74/0x88)
    [ 1.560126] [] (device_attach) from [] (bus_probe_device+0x84/0xa8)
    [ 1.568113] [] (bus_probe_device) from [] (device_add+0x440/0x520)
    [ 1.576012] [] (device_add) from [] (platform_device_add+0xb4/0x214)
    [ 1.584084] [] (platform_device_add) from [] (platform_device_register_full+0xb8/0xdc)
    [ 1.593719] [] (platform_device_register_full) from [] (sirfsoc_init_late+0xec/0xf4)
    [ 1.603185] [] (sirfsoc_init_late) from [] (init_machine_late+0x20/0x28)
    [ 1.611603] [] (init_machine_late) from [] (do_one_initcall+0xf8/0x144)
    [ 1.619934] [] (do_one_initcall) from [] (kernel_init_freeable+0x13c/0x1dc)
    [ 1.628620] [] (kernel_init_freeable) from [] (kernel_init+0xc/0x118)

    Signed-off-by: Barry Song
    Signed-off-by: Linus Walleij

    Barry Song
     
  • Fix the SD1_CLK handling for r8a7791. Without this patch
    it is impossible to request all pins needed for SDHI1 on
    the Koelsch board.

    Signed-off-by: Magnus Damm
    Acked-by: Laurent Pinchart
    Signed-off-by: Linus Walleij

    Magnus Damm
     
  • Modular builds of pinctrl-msm break due to handle_bad_irq being
    unexported for module use. For now, make PINCTRL_MSM 'bool'.

    Signed-off-by: Josh Cartwright
    Reviewed-by: Bjorn Andersson
    Signed-off-by: Linus Walleij

    Josh Cartwright
     
  • This fixing setting the interrupt type for eints >= 8.

    Signed-off-by: Hans de Goede
    Acked-by: Maxime Ripard
    Signed-off-by: Linus Walleij

    Hans de Goede