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 RamdiskSigned-off-by: 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 RamdiskSigned-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>
-
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 -
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 -
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 -
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 -
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 -
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 -
commit fa46296bf5ebfed8a24dc1ba5d617ede599771e4 upstream.
Update the compatible flags to allow specific SoC identification.
Signed-off-by: Nishanth Menon
Signed-off-by: Santosh Shilimkar -
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 -
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 -
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 -
Support Ramdisk with defconfigs such as keystone defconfig which does
not enable the support by default. setup for 8MB defaultSigned-off-by: Nishanth Menon
Tested-by: Lokesh Vutla
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 gpiosSigned-off-by: 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 gpiosSigned-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>
-
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: 621For 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 -
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 -
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 -
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 -
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
07 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:
usb: dwc3: gadget: remove unnecessary _irqsave()
usb: dwc3: gadget: use Update Transfer from Xfer In Progress
usb: dwc3: gadget: use update transfer command
usb: dwc3: gadget: start transfer on XFER_COMPLETESigned-off-by: 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:
usb: dwc3: gadget: remove unnecessary _irqsave()
usb: dwc3: gadget: use Update Transfer from Xfer In Progress
usb: dwc3: gadget: use update transfer command
usb: dwc3: gadget: start transfer on XFER_COMPLETESigned-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>
-
We *know* our threads executes with our IRQs
disabled. We really don't need to use the _irqsave()
variant of spin_lock().Signed-off-by: Felipe Balbi
Signed-off-by: Sekhar Nori -
Instead of limiting __dwc3_gadget_kick_transfer() to
Xfer Complete, we can try to issue Update Transfer
command from Xfer In Progress too.Signed-off-by: Felipe Balbi
Signed-off-by: Sekhar Nori -
If we get a Xfer Not Ready event with reason
"Transfer Active" it means endpoint is still
transferring data and we can use that to issue
update transfer for this particular endpoint
in case we have pending requests in our queue.Signed-off-by: Felipe Balbi
Signed-off-by: Sekhar Nori -
if by the time we get to XFER_COMPLETE we have
pending requests to be processed, instead of waiting
for a following XFER_NOT_READY, let's start the request
right away and, maybe, save the time of a few NAKs
due to lack of started transfers.Signed-off-by: Felipe Balbi
Signed-off-by: Sekhar Nori
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 am335xSigned-off-by: 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 am335xSigned-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>
-
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 omapdrmSigned-off-by: 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 omapdrmSigned-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>
-
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
-
…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>
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.htmlCc:
Tested-by: Tony Lindgren
Tested-by: Austin Schuh
Signed-off-by: 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 -
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
-
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 -
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
03 Oct, 2015
3 commits
-
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 -
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