Skip to content

Commit cef0aa0

Browse files
committed
Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull ARM SoC fixes from Olof Johansson: "A few fixes that have trickled in through the merge window: - Video fixes for OMAP due to panel-dpi driver removal - Clock fixes for OMAP that broke no-idle quirks + nfsroot on DRA7 - Fixing arch version on ASpeed ast2500 - Two fixes for reset handling on ARM SCMI" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: ARM: aspeed: ast2500 is ARMv6K reset: reset-scmi: add missing handle initialisation firmware: arm_scmi: reset: fix reset_state assignment in scmi_domain_reset bus: ti-sysc: Remove unpaired sysc_clkdm_deny_idle() ARM: dts: logicpd-som-lv: Fix i2c2 and i2c3 Pin mux ARM: dts: am3517-evm: Fix missing video ARM: dts: logicpd-torpedo-baseboard: Fix missing video ARM: omap2plus_defconfig: Fix missing video bus: ti-sysc: Fix handling of invalid clocks bus: ti-sysc: Fix clock handling for no-idle quirks
2 parents cf4f493 + 9bfd731 commit cef0aa0

File tree

9 files changed

+66
-81
lines changed

9 files changed

+66
-81
lines changed

arch/arm/boot/dts/am3517-evm.dts

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,11 @@
124124
};
125125

126126
lcd0: display@0 {
127-
compatible = "panel-dpi";
127+
/* This isn't the exact LCD, but the timings meet spec */
128+
/* To make it work, set CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4 */
129+
compatible = "newhaven,nhd-4.3-480272ef-atxl";
128130
label = "15";
129-
status = "okay";
130-
pinctrl-names = "default";
131+
backlight = <&bl>;
131132
enable-gpios = <&gpio6 16 GPIO_ACTIVE_HIGH>; /* gpio176, lcd INI */
132133
vcc-supply = <&vdd_io_reg>;
133134

@@ -136,22 +137,6 @@
136137
remote-endpoint = <&dpi_out>;
137138
};
138139
};
139-
140-
panel-timing {
141-
clock-frequency = <9000000>;
142-
hactive = <480>;
143-
vactive = <272>;
144-
hfront-porch = <3>;
145-
hback-porch = <2>;
146-
hsync-len = <42>;
147-
vback-porch = <3>;
148-
vfront-porch = <4>;
149-
vsync-len = <11>;
150-
hsync-active = <0>;
151-
vsync-active = <0>;
152-
de-active = <1>;
153-
pixelclk-active = <1>;
154-
};
155140
};
156141

157142
bl: backlight {

arch/arm/boot/dts/logicpd-som-lv.dtsi

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,20 @@
228228
>;
229229
};
230230

231+
i2c2_pins: pinmux_i2c2_pins {
232+
pinctrl-single,pins = <
233+
OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT | MUX_MODE0) /* i2c2_scl */
234+
OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT | MUX_MODE0) /* i2c2_sda */
235+
>;
236+
};
237+
238+
i2c3_pins: pinmux_i2c3_pins {
239+
pinctrl-single,pins = <
240+
OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT | MUX_MODE0) /* i2c3_scl */
241+
OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT | MUX_MODE0) /* i2c3_sda */
242+
>;
243+
};
244+
231245
tsc2004_pins: pinmux_tsc2004_pins {
232246
pinctrl-single,pins = <
233247
OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT | MUX_MODE4) /* mcbsp4_dr.gpio_153 */
@@ -249,18 +263,6 @@
249263
OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE4) /* sys_boot1.gpio_3 */
250264
>;
251265
};
252-
i2c2_pins: pinmux_i2c2_pins {
253-
pinctrl-single,pins = <
254-
OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT | MUX_MODE0) /* i2c2_scl */
255-
OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT | MUX_MODE0) /* i2c2_sda */
256-
>;
257-
};
258-
i2c3_pins: pinmux_i2c3_pins {
259-
pinctrl-single,pins = <
260-
OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT | MUX_MODE0) /* i2c3_scl */
261-
OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT | MUX_MODE0) /* i2c3_sda */
262-
>;
263-
};
264266
};
265267

266268
&omap3_pmx_core2 {

arch/arm/boot/dts/logicpd-torpedo-baseboard.dtsi

Lines changed: 6 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@
108108
&dss {
109109
status = "ok";
110110
vdds_dsi-supply = <&vpll2>;
111-
vdda_video-supply = <&video_reg>;
112111
pinctrl-names = "default";
113112
pinctrl-0 = <&dss_dpi_pins1>;
114113
port {
@@ -124,44 +123,20 @@
124123
display0 = &lcd0;
125124
};
126125

127-
video_reg: video_reg {
128-
pinctrl-names = "default";
129-
pinctrl-0 = <&panel_pwr_pins>;
130-
compatible = "regulator-fixed";
131-
regulator-name = "fixed-supply";
132-
regulator-min-microvolt = <3300000>;
133-
regulator-max-microvolt = <3300000>;
134-
gpio = <&gpio5 27 GPIO_ACTIVE_HIGH>; /* gpio155, lcd INI */
135-
};
136-
137126
lcd0: display {
138-
compatible = "panel-dpi";
127+
/* This isn't the exact LCD, but the timings meet spec */
128+
/* To make it work, set CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4 */
129+
compatible = "newhaven,nhd-4.3-480272ef-atxl";
139130
label = "15";
140-
status = "okay";
141-
/* default-on; */
142131
pinctrl-names = "default";
143-
132+
pinctrl-0 = <&panel_pwr_pins>;
133+
backlight = <&bl>;
134+
enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;
144135
port {
145136
lcd_in: endpoint {
146137
remote-endpoint = <&dpi_out>;
147138
};
148139
};
149-
150-
panel-timing {
151-
clock-frequency = <9000000>;
152-
hactive = <480>;
153-
vactive = <272>;
154-
hfront-porch = <3>;
155-
hback-porch = <2>;
156-
hsync-len = <42>;
157-
vback-porch = <3>;
158-
vfront-porch = <4>;
159-
vsync-len = <11>;
160-
hsync-active = <0>;
161-
vsync-active = <0>;
162-
de-active = <1>;
163-
pixelclk-active = <1>;
164-
};
165140
};
166141

167142
bl: backlight {

arch/arm/configs/omap2plus_defconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,7 @@ CONFIG_DRM_OMAP_PANEL_TPO_TD028TTEC1=m
363363
CONFIG_DRM_OMAP_PANEL_TPO_TD043MTEA1=m
364364
CONFIG_DRM_OMAP_PANEL_NEC_NL8048HL11=m
365365
CONFIG_DRM_TILCDC=m
366+
CONFIG_DRM_PANEL_SIMPLE=m
366367
CONFIG_FB=y
367368
CONFIG_FIRMWARE_EDID=y
368369
CONFIG_FB_MODE_HELPERS=y

arch/arm/mach-aspeed/Kconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ config MACH_ASPEED_G4
2626
config MACH_ASPEED_G5
2727
bool "Aspeed SoC 5th Generation"
2828
depends on ARCH_MULTI_V6
29-
select CPU_V6
3029
select PINCTRL_ASPEED_G5
3130
select FTTMR010_TIMER
3231
help

arch/arm/mach-omap2/pdata-quirks.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -491,11 +491,11 @@ static int ti_sysc_clkdm_init(struct device *dev,
491491
struct clk *fck, struct clk *ick,
492492
struct ti_sysc_cookie *cookie)
493493
{
494-
if (fck)
494+
if (!IS_ERR(fck))
495495
cookie->clkdm = ti_sysc_find_one_clockdomain(fck);
496496
if (cookie->clkdm)
497497
return 0;
498-
if (ick)
498+
if (!IS_ERR(ick))
499499
cookie->clkdm = ti_sysc_find_one_clockdomain(ick);
500500
if (cookie->clkdm)
501501
return 0;

drivers/bus/ti-sysc.c

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -280,9 +280,6 @@ static int sysc_get_one_clock(struct sysc *ddata, const char *name)
280280

281281
ddata->clocks[index] = devm_clk_get(ddata->dev, name);
282282
if (IS_ERR(ddata->clocks[index])) {
283-
if (PTR_ERR(ddata->clocks[index]) == -ENOENT)
284-
return 0;
285-
286283
dev_err(ddata->dev, "clock get error for %s: %li\n",
287284
name, PTR_ERR(ddata->clocks[index]));
288285

@@ -357,7 +354,7 @@ static int sysc_get_clocks(struct sysc *ddata)
357354
continue;
358355

359356
error = sysc_get_one_clock(ddata, name);
360-
if (error && error != -ENOENT)
357+
if (error)
361358
return error;
362359
}
363360

@@ -1632,17 +1629,19 @@ static int sysc_init_module(struct sysc *ddata)
16321629
if (error)
16331630
return error;
16341631

1635-
if (manage_clocks) {
1636-
sysc_clkdm_deny_idle(ddata);
1632+
sysc_clkdm_deny_idle(ddata);
16371633

1638-
error = sysc_enable_opt_clocks(ddata);
1639-
if (error)
1640-
return error;
1634+
/*
1635+
* Always enable clocks. The bootloader may or may not have enabled
1636+
* the related clocks.
1637+
*/
1638+
error = sysc_enable_opt_clocks(ddata);
1639+
if (error)
1640+
return error;
16411641

1642-
error = sysc_enable_main_clocks(ddata);
1643-
if (error)
1644-
goto err_opt_clocks;
1645-
}
1642+
error = sysc_enable_main_clocks(ddata);
1643+
if (error)
1644+
goto err_opt_clocks;
16461645

16471646
if (!(ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT)) {
16481647
error = sysc_rstctrl_reset_deassert(ddata, true);
@@ -1660,7 +1659,7 @@ static int sysc_init_module(struct sysc *ddata)
16601659
goto err_main_clocks;
16611660
}
16621661

1663-
if (!ddata->legacy_mode && manage_clocks) {
1662+
if (!ddata->legacy_mode) {
16641663
error = sysc_enable_module(ddata->dev);
16651664
if (error)
16661665
goto err_main_clocks;
@@ -1677,6 +1676,7 @@ static int sysc_init_module(struct sysc *ddata)
16771676
if (manage_clocks)
16781677
sysc_disable_main_clocks(ddata);
16791678
err_opt_clocks:
1679+
/* No re-enable of clockdomain autoidle to prevent module autoidle */
16801680
if (manage_clocks) {
16811681
sysc_disable_opt_clocks(ddata);
16821682
sysc_clkdm_allow_idle(ddata);
@@ -2357,6 +2357,27 @@ static void ti_sysc_idle(struct work_struct *work)
23572357

23582358
ddata = container_of(work, struct sysc, idle_work.work);
23592359

2360+
/*
2361+
* One time decrement of clock usage counts if left on from init.
2362+
* Note that we disable opt clocks unconditionally in this case
2363+
* as they are enabled unconditionally during init without
2364+
* considering sysc_opt_clks_needed() at that point.
2365+
*/
2366+
if (ddata->cfg.quirks & (SYSC_QUIRK_NO_IDLE |
2367+
SYSC_QUIRK_NO_IDLE_ON_INIT)) {
2368+
sysc_disable_main_clocks(ddata);
2369+
sysc_disable_opt_clocks(ddata);
2370+
sysc_clkdm_allow_idle(ddata);
2371+
}
2372+
2373+
/* Keep permanent PM runtime usage count for SYSC_QUIRK_NO_IDLE */
2374+
if (ddata->cfg.quirks & SYSC_QUIRK_NO_IDLE)
2375+
return;
2376+
2377+
/*
2378+
* Decrement PM runtime usage count for SYSC_QUIRK_NO_IDLE_ON_INIT
2379+
* and SYSC_QUIRK_NO_RESET_ON_INIT
2380+
*/
23602381
if (pm_runtime_active(ddata->dev))
23612382
pm_runtime_put_sync(ddata->dev);
23622383
}
@@ -2445,7 +2466,8 @@ static int sysc_probe(struct platform_device *pdev)
24452466
INIT_DELAYED_WORK(&ddata->idle_work, ti_sysc_idle);
24462467

24472468
/* At least earlycon won't survive without deferred idle */
2448-
if (ddata->cfg.quirks & (SYSC_QUIRK_NO_IDLE_ON_INIT |
2469+
if (ddata->cfg.quirks & (SYSC_QUIRK_NO_IDLE |
2470+
SYSC_QUIRK_NO_IDLE_ON_INIT |
24492471
SYSC_QUIRK_NO_RESET_ON_INIT)) {
24502472
schedule_delayed_work(&ddata->idle_work, 3000);
24512473
} else {

drivers/firmware/arm_scmi/reset.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ static int scmi_domain_reset(const struct scmi_handle *handle, u32 domain,
150150
dom = t->tx.buf;
151151
dom->domain_id = cpu_to_le32(domain);
152152
dom->flags = cpu_to_le32(flags);
153-
dom->domain_id = cpu_to_le32(state);
153+
dom->reset_state = cpu_to_le32(state);
154154

155155
if (rdom->async_reset)
156156
ret = scmi_do_xfer_with_response(handle, t);

drivers/reset/reset-scmi.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ static int scmi_reset_probe(struct scmi_device *sdev)
102102
data->rcdev.owner = THIS_MODULE;
103103
data->rcdev.of_node = np;
104104
data->rcdev.nr_resets = handle->reset_ops->num_domains_get(handle);
105+
data->handle = handle;
105106

106107
return devm_reset_controller_register(dev, &data->rcdev);
107108
}

0 commit comments

Comments
 (0)