Fixes for omap variants for v4.17

This series of patches contains one BUG fix for trace if
 CONFIG_DEBUG_PREEMPT is enabled and a regression fix for omap1 FIQ
 handling on ams-delta. Then there's a dts fix for missing SoC
 compatible on ti81xx board dts files that did matter until we added
 the clkctrl clocks and without that some clocks are now not found.
 
 Then there are two logicpd-som-lv specific dts fixes that fix
 misconfigured pins for WLAN and audio. Turns out we had to revert
 the third one because it caused another regression for USB.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAlr0az4RHHRvbnlAYXRv
 bWlkZS5jb20ACgkQG9Q+yVyrpXM4nA/+ISZr6Wr4lPMtirJYi8DLPZZ3RiRbdGji
 ixjw2YT+GOjeNau8wzCDS3mDWyhxJ6OaHDOEnEVWY/+efJSuDxuf0IFpn1Tu5J42
 8tOurQHU2MCBnBNLGWGLmIs6zKF6QO9PuJv8gxlKWXXa62L9suwL31cNE5P5uK3w
 peNmJZQmBQL/haAw9RIK6lWzlzF/t6BCQBd+MK/cQ0rxaGwYac39zxcQGk2gzFfg
 v/zQGNj3X2/PFqJNw5j7I4cmmYMKlIGUFvlVpCjTATxUOH4zDFGFeBdr3QtbaTIw
 ygHdxBd04D+4X5t+fmZeO6ai7WMdOyQjjyl2ngONLsByabkOD+2kFRX0Zhz22gLe
 csFuFRnN3FZZmWuIJThNMwFwsa6bfEgr8M4rSihYzc8lLY0KUCS87Jxk5aR4HSrS
 UHQWHR/Dfsl2DJJ+EspVvMBbJQLOCPO9rtjm5BvBwc5t9Va/WFBRedDydC9q59sB
 zDuWXxKqOoEon1yCX+FYsb2rfi0n+0TwScJCmmDa9OFBssRklP0K3cmIzbwKJXlT
 mlnh9FiRjSqZ4g8bhhGEtsxwgvQZmu2nT+7oUrkS3ui1eSc5pY5jwhUzUmb48xdn
 myr7SFmEyQFY3xpUv23QSg0ZMbsW8AoyLe3rXogYNz2GDxtKSHfwDbMcnRnRET+c
 p263EmBxNgw=
 =SBDB
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v17/fixes-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes

Fixes for omap variants for v4.17

This series of patches contains one BUG fix for trace if
CONFIG_DEBUG_PREEMPT is enabled and a regression fix for omap1 FIQ
handling on ams-delta. Then there's a dts fix for missing SoC
compatible on ti81xx board dts files that did matter until we added
the clkctrl clocks and without that some clocks are now not found.

Then there are two logicpd-som-lv specific dts fixes that fix
misconfigured pins for WLAN and audio. Turns out we had to revert
the third one because it caused another regression for USB.

* tag 'omap-for-v17/fixes-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  Revert "ARM: dts: logicpd-som-lv: Fix pinmux controller references"
  ARM: dts: correct missing "compatible" entry for ti81xx SoCs
  ARM: OMAP1: ams-delta: fix deferred_fiq handler
  ARM: dts: logicpd-som-lv: Fix pinmux controller references
  ARM: dts: logicpd-som-lv: Fix Audio Mute
  ARM: dts: logicpd-som-lv: Fix WL127x Startup Issues
  ARM: OMAP2+: powerdomain: use raw_smp_processor_id() for trace

Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2018-05-14 01:03:47 -07:00
commit 602a42420e
7 changed files with 29 additions and 20 deletions

View File

@ -10,7 +10,7 @@
/ {
model = "DM8148 EVM";
compatible = "ti,dm8148-evm", "ti,dm8148";
compatible = "ti,dm8148-evm", "ti,dm8148", "ti,dm814";
memory@80000000 {
device_type = "memory";

View File

@ -9,7 +9,7 @@
/ {
model = "HP t410 Smart Zero Client";
compatible = "hp,t410", "ti,dm8148";
compatible = "hp,t410", "ti,dm8148", "ti,dm814";
memory@80000000 {
device_type = "memory";

View File

@ -10,7 +10,7 @@
/ {
model = "DM8168 EVM";
compatible = "ti,dm8168-evm", "ti,dm8168";
compatible = "ti,dm8168-evm", "ti,dm8168", "ti,dm816";
memory@80000000 {
device_type = "memory";

View File

@ -10,7 +10,7 @@
/ {
model = "DRA62x J5 Eco EVM";
compatible = "ti,dra62x-j5eco-evm", "ti,dra62x", "ti,dm8148";
compatible = "ti,dra62x-j5eco-evm", "ti,dra62x", "ti,dm8148", "ti,dm814";
memory@80000000 {
device_type = "memory";

View File

@ -26,7 +26,7 @@
gpio = <&gpio1 3 0>; /* gpio_3 */
startup-delay-us = <70000>;
enable-active-high;
vin-supply = <&vmmc2>;
vin-supply = <&vaux3>;
};
/* HS USB Host PHY on PORT 1 */
@ -82,6 +82,7 @@
twl_audio: audio {
compatible = "ti,twl4030-audio";
codec {
ti,hs_extmute_gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>;
};
};
};
@ -199,6 +200,7 @@
pinctrl-single,pins = <
OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */
OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0) /* i2c1_sda.i2c1_sda */
OMAP3_CORE1_IOPAD(0x20ba, PIN_OUTPUT | MUX_MODE4) /* gpmc_ncs6.gpio_57 */
>;
};
};
@ -213,7 +215,7 @@
};
wl127x_gpio: pinmux_wl127x_gpio_pin {
pinctrl-single,pins = <
OMAP3_WKUP_IOPAD(0x2a0c, PIN_INPUT | MUX_MODE4) /* sys_boot0.gpio_2 */
OMAP3_WKUP_IOPAD(0x2a0a, PIN_INPUT | MUX_MODE4) /* sys_boot0.gpio_2 */
OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE4) /* sys_boot1.gpio_3 */
>;
};
@ -260,6 +262,11 @@
#include "twl4030.dtsi"
#include "twl4030_omap3.dtsi"
&vaux3 {
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
&twl {
twl_power: power {
compatible = "ti,twl4030-power-idle-osc-off", "ti,twl4030-power-idle";

View File

@ -58,22 +58,24 @@ static irqreturn_t deferred_fiq(int irq, void *dev_id)
irq_num = gpio_to_irq(gpio);
fiq_count = fiq_buffer[FIQ_CNT_INT_00 + gpio];
while (irq_counter[gpio] < fiq_count) {
if (gpio != AMS_DELTA_GPIO_PIN_KEYBRD_CLK) {
struct irq_data *d = irq_get_irq_data(irq_num);
if (irq_counter[gpio] < fiq_count &&
gpio != AMS_DELTA_GPIO_PIN_KEYBRD_CLK) {
struct irq_data *d = irq_get_irq_data(irq_num);
/*
* It looks like handle_edge_irq() that
* OMAP GPIO edge interrupts default to,
* expects interrupt already unmasked.
*/
if (irq_chip && irq_chip->irq_unmask)
/*
* handle_simple_irq() that OMAP GPIO edge
* interrupts default to since commit 80ac93c27441
* requires interrupt already acked and unmasked.
*/
if (irq_chip) {
if (irq_chip->irq_ack)
irq_chip->irq_ack(d);
if (irq_chip->irq_unmask)
irq_chip->irq_unmask(d);
}
generic_handle_irq(irq_num);
irq_counter[gpio]++;
}
for (; irq_counter[gpio] < fiq_count; irq_counter[gpio]++)
generic_handle_irq(irq_num);
}
return IRQ_HANDLED;
}

View File

@ -188,7 +188,7 @@ static int _pwrdm_state_switch(struct powerdomain *pwrdm, int flag)
((prev & OMAP_POWERSTATE_MASK) << 0));
trace_power_domain_target_rcuidle(pwrdm->name,
trace_state,
smp_processor_id());
raw_smp_processor_id());
}
break;
default:
@ -518,7 +518,7 @@ int pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst)
if (arch_pwrdm && arch_pwrdm->pwrdm_set_next_pwrst) {
/* Trace the pwrdm desired target state */
trace_power_domain_target_rcuidle(pwrdm->name, pwrst,
smp_processor_id());
raw_smp_processor_id());
/* Program the pwrdm desired target state */
ret = arch_pwrdm->pwrdm_set_next_pwrst(pwrdm, pwrst);
}