09 Oct, 2015

13 commits

  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
    dmaengine: edma: Optimize memcpy operation
    dmaengine: edma: Remove alignment constraint for memcpy
    ARM: cmpxchg: avoid warnings from macro-ized cmpxchg() implementations
    ARM: dts: omap5-uevm: Add Uart wakeup interrupt
    ARM: dts: omap5-uevm.dts: fix i2c5 pinctrl offsets
    PM / Runtime: Update last_busy in rpm_resume
    ARM: dts: keystone: Update SoC specific compatible flags
    ARM: keystone: Update compatible to have SoC specific matches
    Documentation: dt: keystone: provide SoC specific compatible flags
    ARM: 8422/1: enable imprecise aborts during early kernel startup
    ti_config_fragments/baseport.cfg: Support Ramdisk

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • …nel/platform-linux-feature-tree into ti-linux-4.1.y

    TI-Feature: platform_base
    TI-Tree: git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree.git
    TI-Branch: platform-ti-linux-4.1.y

    * 'platform-ti-linux-4.1.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree:
    dmaengine: edma: Optimize memcpy operation
    dmaengine: edma: Remove alignment constraint for memcpy
    ARM: cmpxchg: avoid warnings from macro-ized cmpxchg() implementations
    ARM: dts: omap5-uevm: Add Uart wakeup interrupt
    ARM: dts: omap5-uevm.dts: fix i2c5 pinctrl offsets
    PM / Runtime: Update last_busy in rpm_resume
    ARM: dts: keystone: Update SoC specific compatible flags
    ARM: keystone: Update compatible to have SoC specific matches
    Documentation: dt: keystone: provide SoC specific compatible flags
    ARM: 8422/1: enable imprecise aborts during early kernel startup
    ti_config_fragments/baseport.cfg: Support Ramdisk

    Signed-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>

    Texas Instruments Auto Merger
     
  • If the transfer is shorted then 64K we can complete it with one ACNT burst
    by configuring ACNT to the length of the copy, this require one paRAM slot.
    Otherwise we use two paRAM slots for the copy:
    slot1: will copy (length / 32767) number of 32767 byte long blocks
    slot2: will be configured to copy the remaining data.

    Signed-off-by: Peter Ujfalusi
    Tested-by: Vignesh R

    Peter Ujfalusi
     
  • Despite the claim by the original commit adding the memcpy support, eDMA
    does not have constraint on the alignment of src, dst or length in increment
    mode.

    Signed-off-by: Peter Ujfalusi
    Tested-by: Vignesh R

    Peter Ujfalusi
     
  • commit e001bbae7147b111fe1aa42beaf835635f3c016e upstream.

    A recent change in kernel/acct.c added a new warning for many
    configurations on ARM:

    kernel/acct.c: In function 'acct_pin_kill':
    arch/arm/include/asm/cmpxchg.h:122:3: warning: value computed is not used [-Wunused-value]

    The code is in fact correct, it's just a cmpxchg() call that
    intentionally ignores the result, and no other code does that. The
    warning does not show up on x86 because of the way that its cmpxchg()
    macro is written. This changes the ARM implementation to use a similar
    construct with a compound expression instead of a typecast, which causes
    the compiler to not complain about an unused result.

    Fix the other macros in this file in a similar way, and place them
    just below their function implementations.

    Signed-off-by: Russell King
    Signed-off-by: Dan Murphy

    Russell King
     
  • commit ba6304609879c6e342cfb8bbdc8b0dc71344c17b upstream

    UART3 wakeup takes place with iodaisy chain. enable the wakeup pin.

    Reported-by: Suman Anna
    Signed-off-by: Nishanth Menon
    [tony@atomide.com: tabify uart pins properly while at it]
    Signed-off-by: Tony Lindgren

    Nishanth Menon
     
  • commit 1dbdad75074d16c3e3005180f81a01cdc04a7872 upstream

    The i2c5 pinctrl offsets are wrong. If the bootloader doesn't set the
    pins up, communication with tca6424a doesn't work (controller timeouts)
    and it is not possible to enable HDMI.

    Fixes: 9be495c42609 ("ARM: dts: omap5-evm: Add I2c pinctrl data")
    Signed-off-by: Grazvydas Ignotas
    Signed-off-by: Tony Lindgren

    Grazvydas Ignotas
     
  • commit 56f487c78015936097474fd89b2ccb229d500d0f upstream.

    If we don't update last_busy in rpm_resume, devices can go back
    to sleep immediately after resume. This happens at least in
    cases where the device has been powered off and does not have
    any interrupt pending until there's something in the FIFO.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Sekhar Nori

    Tony Lindgren
     
  • commit fa46296bf5ebfed8a24dc1ba5d617ede599771e4 upstream.

    Update the compatible flags to allow specific SoC identification.

    Signed-off-by: Nishanth Menon
    Signed-off-by: Santosh Shilimkar

    Nishanth Menon
     
  • commit 9c92287ae4090052e60df8b834cd6000116036f9 upstream.

    With future SoCs of keystone2 family, the generic compatible match
    may not be sufficient to handle SoC specific handling. So introduce
    matches based on SoC compatiblity.

    Signed-off-by: Nishanth Menon
    Signed-off-by: Santosh Shilimkar

    Nishanth Menon
     
  • commit 8841cbf666d63e6b108ba741aa07e06ac7171de1 upstream.

    Keystone2 devices are used on more platforms than just Texas
    Instruments reference evaluation platforms called EVMs. Providing a
    generic compatible "ti,keystone" is not sufficient to differentiate
    various SoC definitions possible on various platforms for the
    following reasons:
    a) Userspace applications have no way of knowing which SoC they are
    functioning, providing the compatible matches provide a mechanism for
    them to enable SoC specific functionality. Such userspace applications
    are typically automated test framework or SoC custom hardware
    acceleration entitlement from a common file system.
    b) Provides an accurate hardware description. This allows
    SoC specific logic to be run time handled based on
    of_machine_is_compatible("ti,k2hk") or as needed for the dependent
    processor instead of needing to use board dependent compatibles that
    are needed now.

    Hence, provide compatible matches for each SoC in the Keystone family.

    Acked-By: Murali Karicheri
    Signed-off-by: Nishanth Menon
    Signed-off-by: Santosh Shilimkar

    Nishanth Menon
     
  • commit bbeb9209515989ff47802d4e5d5702178c8e42c4 upstream.

    This patch adds imprecise abort enable/disable macros and uses them to
    enable imprecise aborts early when starting the kernel.

    This helps in tracking down the real cause for such imprecise abort, as
    they are handled as soon as they occur. Until now those aborts would
    only be enabled when entering the userspace and as a consequence crash
    the first userspace process if any abort had been raised during kernel
    startup.

    Signed-off-by: Fabrice Gasnier
    Signed-off-by: Lucas Stach
    Signed-off-by: Russell King
    Signed-off-by: Nishanth Menon

    Lucas Stach
     
  • Support Ramdisk with defconfigs such as keystone defconfig which does
    not enable the support by default. setup for 8MB default

    Signed-off-by: Nishanth Menon
    Tested-by: Lokesh Vutla

    Nishanth Menon
     

08 Oct, 2015

7 commits

  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
    Input: edt-ft5x06 - Work around FT5506 firmware bug
    Input: edt-ft5x06 - Add support for 10 touch points for FT5506
    Input: edt-ft5x06 - Add support for variable amount of max support points
    Input: edt-ft5x06 - Use max support points to determine read length
    Input: edt-ft5x06 - do not call desc_to_gpio for invalid gpios

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • …gration-tree/connectivity-ti-linux-kernel into ti-linux-4.1.y

    TI-Feature: connectivity
    TI-Tree: git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel.git
    TI-Branch: connectivity-ti-linux-4.1.y

    * 'connectivity-ti-linux-4.1.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel:
    Input: edt-ft5x06 - Work around FT5506 firmware bug
    Input: edt-ft5x06 - Add support for 10 touch points for FT5506
    Input: edt-ft5x06 - Add support for variable amount of max support points
    Input: edt-ft5x06 - Use max support points to determine read length
    Input: edt-ft5x06 - do not call desc_to_gpio for invalid gpios

    Signed-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>

    Texas Instruments Auto Merger
     
  • In the touchscreen controller ISR, reading the tsc starting from
    register 0x2 causes the tsc to very infrequently update the detected
    finger movement coordinates. The irq pin toogles at a fast rate to
    indicate touch events are happening but when reading the coordinates
    from the tsc the are only updated/change at at rate of ~100 ms.

    Example:
    X: 10 , Y: 30
    X: 10 , Y: 30
    X: 10, Y: 30
    ..
    // After 100 ms
    X: 300, Y: 300
    X: 300, y: 300
    ..
    // After 100 ms
    X: 1743, Y: 621
    X: 1743, Y: 621

    For some reason if instead of starting to read at register 0x2 you
    start reading at register 0x0 this issue isn't seen. This seems like
    a quirk only seen in the EDT FT5506 so to fix this issue simply
    adjust the code to start reading from 0x0. Since there is technically
    nothing wrong with doing this no regressions should be seen with other
    touchscreen controllers supported by this driver.

    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Sekhar Nori

    Franklin S Cooper Jr
     
  • FT5506 supports up to 10 touch points so increase the maximum support
    points to 10.

    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Sekhar Nori

    Franklin S Cooper Jr
     
  • Update code so that the maximum supported points aren't hard coded but can
    be changed.

    Set the maximum support points based on the data passed along side the
    compatible field.

    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Sekhar Nori

    Franklin S Cooper Jr
     
  • Calculate the amount of data that needs to be read for specified max number
    of support points. If the maximum number of support points changes then the
    amount that is read from the touch screen controller should reflect this.

    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Sekhar Nori

    Franklin S Cooper Jr
     
  • Since reset and wake pin are optional the gpio structure for those
    pins may be null. Therefore, they can't be blindly passed to
    desc_to_gpio.

    Reported-by: Dan Carpenter
    Signed-off-by: Franklin S Cooper Jr
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Sekhar Nori

    Franklin S Cooper Jr
     

07 Oct, 2015

6 commits


06 Oct, 2015

6 commits

  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
    gpio: omap: convert to use generic irq handler
    gpio: omap: move pm runtime in irq_chip.irq_bus_lock/sync_unlock
    gpio: omap: fix static checker warning
    gpio: omap: Fix GPIO numbering for deferred probe
    gpio: omap: Fix gpiochip_add() handling for deferred probe
    ARM: OMAP2+: pm33xx-core: Disable off_mode for am335x

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • …nel/platform-linux-feature-tree into ti-linux-4.1.y

    TI-Feature: platform_base
    TI-Tree: git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree.git
    TI-Branch: platform-ti-linux-4.1.y

    * 'platform-ti-linux-4.1.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree:
    gpio: omap: convert to use generic irq handler
    gpio: omap: move pm runtime in irq_chip.irq_bus_lock/sync_unlock
    gpio: omap: fix static checker warning
    gpio: omap: Fix GPIO numbering for deferred probe
    gpio: omap: Fix gpiochip_add() handling for deferred probe
    ARM: OMAP2+: pm33xx-core: Disable off_mode for am335x

    Signed-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>

    Texas Instruments Auto Merger
     
  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
    drm/omap: fix suspend/resume handling
    drm/omap: set DRIVER_ATOMIC for omapdrm

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • …el/audio-display-linux-feature-tree into ti-linux-4.1.y

    TI-Feature: audio-display
    TI-Tree: git@git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree.git
    TI-Branch: audio-display-ti-linux-4.1.y

    * 'audio-display-ti-linux-4.1.y' of git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree:
    drm/omap: fix suspend/resume handling
    drm/omap: set DRIVER_ATOMIC for omapdrm

    Signed-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>

    Texas Instruments Auto Merger
     
  • TI-Feature: ti_linux_base_lsk
    TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
    TI-Branch: ti-linux-4.1.y

    * 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel: (30 commits)
    Linux 4.1.10
    hp-wmi: limit hotkey enable
    zram: fix possible use after free in zcomp_create()
    netlink: Replace rhash_portid with bound
    netlink: Fix autobind race condition that leads to zero port ID
    mvneta: use inband status only when explicitly enabled
    of_mdio: add new DT property 'managed' to specify the PHY management type
    net: phy: fixed_phy: handle link-down case
    net: dsa: bcm_sf2: Do not override speed settings
    fib_rules: fix fib rule dumps across multiple skbs
    net: revert "net_sched: move tp->root allocation into fw_init()"
    tcp: add proper TS val into RST packets
    openvswitch: Zero flows on allocation.
    macvtap: fix TUNSETSNDBUF values > 64k
    net/mlx4_en: really allow to change RSS key
    bridge: fix igmpv3 / mldv2 report parsing
    sctp: fix race on protocol/netns initialization
    netlink, mmap: transform mmap skb into full skb on taps
    net: dsa: bcm_sf2: Fix 64-bits register writes
    ipv6: fix multipath route replace error recovery
    ...

    Signed-off-by: Texas Instruments Auto Merger

    Texas Instruments Auto Merger
     
  • …ux-stable into ti-linux-4.1.y

    This is the 4.1.10 stable release

    * tag 'v4.1.10' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (30 commits)
    Linux 4.1.10
    hp-wmi: limit hotkey enable
    zram: fix possible use after free in zcomp_create()
    netlink: Replace rhash_portid with bound
    netlink: Fix autobind race condition that leads to zero port ID
    mvneta: use inband status only when explicitly enabled
    of_mdio: add new DT property 'managed' to specify the PHY management type
    net: phy: fixed_phy: handle link-down case
    net: dsa: bcm_sf2: Do not override speed settings
    fib_rules: fix fib rule dumps across multiple skbs
    net: revert "net_sched: move tp->root allocation into fw_init()"
    tcp: add proper TS val into RST packets
    openvswitch: Zero flows on allocation.
    macvtap: fix TUNSETSNDBUF values > 64k
    net/mlx4_en: really allow to change RSS key
    bridge: fix igmpv3 / mldv2 report parsing
    sctp: fix race on protocol/netns initialization
    netlink, mmap: transform mmap skb into full skb on taps
    net: dsa: bcm_sf2: Fix 64-bits register writes
    ipv6: fix multipath route replace error recovery
    ...

    Signed-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>

    Texas Instruments Auto Merger
     

05 Oct, 2015

5 commits

  • This patch converts TI OMAP GPIO driver to use generic irq handler
    instead of chained IRQ handler. This way OMAP GPIO driver will be
    compatible with RT kernel where it will be forced thread IRQ handler
    while in non-RT kernel it still will be executed in HW IRQ context.
    As part of this change the IRQ wakeup configuration is applied to
    GPIO Bank IRQ as it now will be under control of IRQ PM Core during
    suspend.

    There are also additional benefits:
    - on-RT kernel there will be no complains any more about PM runtime usage
    in atomic context "BUG: sleeping function called from invalid context";
    - GPIO bank IRQs will appear in /proc/interrupts and its usage statistic
    will be visible;
    - GPIO bank IRQs could be configured through IRQ proc_fs interface and,
    as result, could be a part of IRQ balancing process if needed;
    - GPIO bank IRQs will be under control of IRQ PM Core during
    suspend to RAM.

    Disadvantage:
    - additional runtime overhed as call chain till
    omap_gpio_irq_handler() will be longer now
    - necessity to use wa_lock in omap_gpio_irq_handler() to W/A warning
    in handle_irq_event_percpu()
    WARNING: CPU: 1 PID: 35 at kernel/irq/handle.c:149 handle_irq_event_percpu+0x51c/0x638()

    This patch doesn't fully follows recommendations provided by Sebastian
    Andrzej Siewior [1], because It's required to go through and check all
    GPIO IRQ pin states as fast as possible and pass control to handle_level_irq
    or handle_edge_irq. handle_level_irq or handle_edge_irq will perform actions
    specific for IRQ triggering type and wakeup corresponding registered
    threaded IRQ handler (at least it's expected to be threaded).
    IRQs can be lost if handle_nested_irq() will be used, because excecution
    time of some pin specific GPIO IRQ handler can be very significant and
    require accessing ext. devices (I2C).

    Idea of such kind reworking was also discussed in [2].

    [1] http://www.spinics.net/lists/linux-omap/msg120665.html
    [2] http://www.spinics.net/lists/linux-omap/msg119516.html

    Cc:
    Tested-by: Tony Lindgren
    Tested-by: Austin Schuh
    Signed-off-by: Grygorii Strashko

    Grygorii Strashko
     
  • The PM runtime API can't be used in atomic contex on -RT even if
    it's configured as irqsafe. As result, below error report can
    be seen when PM runtime API called from IRQ chip's callbacks
    irq_startup/irq_shutdown/irq_set_type, because they are
    protected by RAW spinlock:

    BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917
    in_atomic(): 1, irqs_disabled(): 128, pid: 96, name: insmod
    3 locks held by insmod/96:
    #0: (&dev->mutex){......}, at: [] __driver_attach+0x54/0xa0
    #1: (&dev->mutex){......}, at: [] __driver_attach+0x60/0xa0
    #2: (class){......}, at: [] __irq_get_desc_lock+0x60/0xa4
    irq event stamp: 1834
    hardirqs last enabled at (1833): [] _raw_spin_unlock_irqrestore+0x88/0x90
    hardirqs last disabled at (1834): [] _raw_spin_lock_irqsave+0x2c/0x64
    softirqs last enabled at (0): [] copy_process.part.52+0x410/0x19d8
    softirqs last disabled at (0): [< (null)>] (null)
    Preemption disabled at:[< (null)>] (null)

    CPU: 1 PID: 96 Comm: insmod Tainted: G W O 4.1.3-rt3-00618-g57e2387-dirty #184
    Hardware name: Generic DRA74X (Flattened Device Tree)
    [] (unwind_backtrace) from [] (show_stack+0x20/0x24)
    [] (show_stack) from [] (dump_stack+0x88/0xdc)
    [] (dump_stack) from [] (___might_sleep+0x198/0x2a8)
    [] (___might_sleep) from [] (rt_spin_lock+0x30/0x70)
    [] (rt_spin_lock) from [] (__pm_runtime_resume+0x68/0xa4)
    [] (__pm_runtime_resume) from [] (omap_gpio_irq_type+0x188/0x1d8)
    [] (omap_gpio_irq_type) from [] (__irq_set_trigger+0x68/0x130)
    [] (__irq_set_trigger) from [] (irq_set_irq_type+0x44/0x6c)
    [] (irq_set_irq_type) from [] (irq_create_of_mapping+0x120/0x174)
    [] (irq_create_of_mapping) from [] (of_irq_get+0x48/0x58)
    [] (of_irq_get) from [] (i2c_device_probe+0x54/0x15c)
    [] (i2c_device_probe) from [] (driver_probe_device+0x184/0x2c8)
    [] (driver_probe_device) from [] (__driver_attach+0x9c/0xa0)
    [] (__driver_attach) from [] (bus_for_each_dev+0x7c/0xb0)
    [] (bus_for_each_dev) from [] (driver_attach+0x28/0x30)
    [] (driver_attach) from [] (bus_add_driver+0x154/0x200)
    [] (bus_add_driver) from [] (driver_register+0x88/0x108)
    [] (driver_register) from [] (i2c_register_driver+0x3c/0x90)
    [] (i2c_register_driver) from [] (pcf857x_init+0x18/0x24 [gpio_pcf857x])
    [] (pcf857x_init [gpio_pcf857x]) from [] (do_one_initcall+0x128/0x1e8)
    [] (do_one_initcall) from [] (do_init_module+0x6c/0x1bc)
    [] (do_init_module) from [] (load_module+0x18e8/0x21c4)
    [] (load_module) from [] (SyS_init_module+0xfc/0x158)
    [] (SyS_init_module) from [] (ret_fast_syscall+0x0/0x54)

    The IRQ chip interface defines only two callbacks which are executed in
    non-atomic contex - irq_bus_lock/irq_bus_sync_unlock, so lets move
    PM runtime calls there.

    Cc:
    Tested-by: Tony Lindgren
    Tested-by: Austin Schuh
    Signed-off-by: Grygorii Strashko

    Grygorii Strashko
     
  • This patch fixes below static checker warning by changing
    type of irq field in struct gpio_bank from u16 to int.

    drivers/gpio/gpio-omap.c:1191 omap_gpio_probe()
    warn: assigning (-6) to unsigned variable 'bank->irq'

    drivers/gpio/gpio-omap.c
    1188 bank->irq = platform_get_irq(pdev, 0);
    1189 if (bank->irq irq is u16.

    1190 if (!bank->irq)
    1191 bank->irq = -ENXIO;

    Does not work.

    1192 if (bank->irq != -EPROBE_DEFER)

    Does not work.

    1193 dev_err(dev,
    1194 "can't get irq resource ret=%d\n", bank->irq);
    1195 return bank->irq;
    1196 }

    Signed-off-by: Grygorii Strashko

    Grygorii Strashko
     
  • commit 46d4f7c25e1bb59b1663878b843a7ec06eaf5806 upstream.

    If gpio-omap probe fails with -EPROBE_DEFER, the GPIO numbering
    keeps increasing. Only increase the gpio count if gpiochip_add()
    was successful as otherwise the numbers will increase for each
    probe attempt.

    Cc: Javier Martinez Canillas
    Cc: Kevin Hilman
    Cc: Santosh Shilimkar
    Reviewed-by: Grygorii Strashko
    Signed-off-by: Tony Lindgren
    Signed-off-by: Linus Walleij
    Signed-off-by: Grygorii Strashko

    Tony Lindgren
     
  • commit 5e606abef57a89b3ca25f5d97a953c6cdad7cbac upstream.

    Currently we gpio-omap breaks if gpiochip_add() returns -EPROBE_DEFER:

    [ 0.570000] gpiochip_add: GPIOs 0..31 (gpio) failed to register
    [ 0.570000] omap_gpio 48310000.gpio: Could not register gpio chip -517
    ...
    [ 3.670000] omap_gpio 48310000.gpio: Unbalanced pm_runtime_enable!

    Let's fix the issue by adding the missing pm_runtime_put() on error.

    Cc: Grygorii Strashko
    Cc: Javier Martinez Canillas
    Cc: Kevin Hilman
    Cc: Santosh Shilimkar
    Acked-by: Santosh Shilimkar
    Signed-off-by: Tony Lindgren
    Signed-off-by: Linus Walleij
    Signed-off-by: Grygorii Strashko

    Tony Lindgren
     

03 Oct, 2015

3 commits

  • Greg Kroah-Hartman
     
  • commit 8a1513b49321e503fd6c8b6793e3b1f9a8a3285b upstream.

    Do not write initialize magic on systems that do not have
    feature query 0xb. Fixes Bug #82451.

    Redefine FEATURE_QUERY to align with 0xb and FEATURE2 with 0xd
    for code clearity.

    Add a new test function, hp_wmi_bios_2008_later() & simplify
    hp_wmi_bios_2009_later(), which fixes a bug in cases where
    an improper value is returned. Probably also fixes Bug #69131.

    Add missing __init tag.

    Signed-off-by: Kyle Evans
    Signed-off-by: Darren Hart
    Signed-off-by: Greg Kroah-Hartman

    Kyle Evans
     
  • commit 3aaf14da807a4e9931a37f21e4251abb8a67021b upstream.

    zcomp_create() verifies the success of zcomp_strm_{multi,single}_create()
    through comp->stream, which can potentially be pointing to memory that
    was freed if these functions returned an error.

    While at it, replace a 'ERR_PTR(-ENOMEM)' by a more generic
    'ERR_PTR(error)' as in the future zcomp_strm_{multi,siggle}_create()
    could return other error codes. Function documentation updated
    accordingly.

    Fixes: beca3ec71fe5 ("zram: add multi stream functionality")
    Signed-off-by: Luis Henriques
    Acked-by: Sergey Senozhatsky
    Acked-by: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Luis Henriques