Skip to content

Commit 7adc4b3

Browse files
committed
Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull ARM SoC fixes from Arnd Bergmann: "A few smaller fixes for v5.7-rc3: The majority are fixes for bugs I found after restarting my randconfig build testing that had been dormant for a while. On the Nokia N950/N9 phone, a DT fix is required to address a boot regression. For the bcm283x (Raspberry Pi), two DT fixes address minor issues" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: soc: imx8: select SOC_BUS soc: tegra: fix tegra_pmc_get_suspend_mode definition soc: fsl: dpio: avoid stack usage warning soc: fsl: dpio: fix incorrect pointer conversions ARM: imx: provide v7_cpu_resume() only on ARM_CPU_SUSPEND=y ARM: dts: bcm283x: Disable dsi0 node firmware: xilinx: make firmware_debugfs_root static drivers: soc: xilinx: fix firmware driver Kconfig dependency ARM: dts: bcm283x: Add cells encoding format to firmware bus ARM: dts: OMAP3: disable RNG on N950/N9
2 parents 1ddd873 + f42ae4c commit 7adc4b3

File tree

10 files changed

+40
-18
lines changed

10 files changed

+40
-18
lines changed

arch/arm/boot/dts/bcm2835-rpi.dtsi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
soc {
1515
firmware: firmware {
1616
compatible = "raspberrypi,bcm2835-firmware", "simple-bus";
17+
#address-cells = <1>;
18+
#size-cells = <1>;
19+
1720
mboxes = <&mailbox>;
1821
dma-ranges;
1922
};

arch/arm/boot/dts/bcm283x.dtsi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,7 @@
372372
"dsi0_ddr2",
373373
"dsi0_ddr";
374374

375+
status = "disabled";
375376
};
376377

377378
aux: aux@7e215000 {

arch/arm/boot/dts/omap3-n950-n9.dtsi

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,11 @@
341341
status = "disabled";
342342
};
343343

344+
/* RNG not directly accessible on N950/N9. */
345+
&rng_target {
346+
status = "disabled";
347+
};
348+
344349
&usb_otg_hs {
345350
interface-type = <0>;
346351
usb-phy = <&usb2_phy>;

arch/arm/mach-imx/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,10 @@ AFLAGS_suspend-imx6.o :=-Wa,-march=armv7-a
9191
obj-$(CONFIG_SOC_IMX6) += suspend-imx6.o
9292
obj-$(CONFIG_SOC_IMX53) += suspend-imx53.o
9393
endif
94+
ifeq ($(CONFIG_ARM_CPU_SUSPEND),y)
9495
AFLAGS_resume-imx6.o :=-Wa,-march=armv7-a
9596
obj-$(CONFIG_SOC_IMX6) += resume-imx6.o
97+
endif
9698
obj-$(CONFIG_SOC_IMX6) += pm-imx6.o
9799

98100
obj-$(CONFIG_SOC_IMX1) += mach-imx1.o

drivers/firmware/xilinx/zynqmp-debug.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ static struct pm_api_info pm_api_list[] = {
3535
PM_API(PM_QUERY_DATA),
3636
};
3737

38-
struct dentry *firmware_debugfs_root;
38+
static struct dentry *firmware_debugfs_root;
3939

4040
/**
4141
* zynqmp_pm_argument_value() - Extract argument value from a PM-API request

drivers/soc/fsl/dpio/dpio-service.c

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -478,20 +478,29 @@ int dpaa2_io_service_enqueue_multiple_desc_fq(struct dpaa2_io *d,
478478
const struct dpaa2_fd *fd,
479479
int nb)
480480
{
481-
int i;
482-
struct qbman_eq_desc ed[32];
481+
struct qbman_eq_desc *ed;
482+
int i, ret;
483+
484+
ed = kcalloc(sizeof(struct qbman_eq_desc), 32, GFP_KERNEL);
485+
if (!ed)
486+
return -ENOMEM;
483487

484488
d = service_select(d);
485-
if (!d)
486-
return -ENODEV;
489+
if (!d) {
490+
ret = -ENODEV;
491+
goto out;
492+
}
487493

488494
for (i = 0; i < nb; i++) {
489495
qbman_eq_desc_clear(&ed[i]);
490496
qbman_eq_desc_set_no_orp(&ed[i], 0);
491497
qbman_eq_desc_set_fq(&ed[i], fqid[i]);
492498
}
493499

494-
return qbman_swp_enqueue_multiple_desc(d->swp, &ed[0], fd, nb);
500+
ret = qbman_swp_enqueue_multiple_desc(d->swp, &ed[0], fd, nb);
501+
out:
502+
kfree(ed);
503+
return ret;
495504
}
496505
EXPORT_SYMBOL(dpaa2_io_service_enqueue_multiple_desc_fq);
497506

drivers/soc/fsl/dpio/qbman-portal.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -753,7 +753,7 @@ int qbman_swp_enqueue_multiple_mem_back(struct qbman_swp *s,
753753
if (!s->eqcr.available) {
754754
eqcr_ci = s->eqcr.ci;
755755
p = s->addr_cena + QBMAN_CENA_SWP_EQCR_CI_MEMBACK;
756-
s->eqcr.ci = __raw_readl(p) & full_mask;
756+
s->eqcr.ci = *p & full_mask;
757757
s->eqcr.available = qm_cyc_diff(s->eqcr.pi_ring_size,
758758
eqcr_ci, s->eqcr.ci);
759759
if (!s->eqcr.available) {
@@ -823,7 +823,6 @@ int qbman_swp_enqueue_multiple_desc_direct(struct qbman_swp *s,
823823
const uint32_t *cl;
824824
uint32_t eqcr_ci, eqcr_pi, half_mask, full_mask;
825825
int i, num_enqueued = 0;
826-
uint64_t addr_cena;
827826

828827
half_mask = (s->eqcr.pi_ci_mask>>1);
829828
full_mask = s->eqcr.pi_ci_mask;
@@ -867,7 +866,6 @@ int qbman_swp_enqueue_multiple_desc_direct(struct qbman_swp *s,
867866

868867
/* Flush all the cacheline without load/store in between */
869868
eqcr_pi = s->eqcr.pi;
870-
addr_cena = (uint64_t)s->addr_cena;
871869
for (i = 0; i < num_enqueued; i++)
872870
eqcr_pi++;
873871
s->eqcr.pi = eqcr_pi & full_mask;
@@ -901,7 +899,7 @@ int qbman_swp_enqueue_multiple_desc_mem_back(struct qbman_swp *s,
901899
if (!s->eqcr.available) {
902900
eqcr_ci = s->eqcr.ci;
903901
p = s->addr_cena + QBMAN_CENA_SWP_EQCR_CI_MEMBACK;
904-
s->eqcr.ci = __raw_readl(p) & full_mask;
902+
s->eqcr.ci = *p & full_mask;
905903
s->eqcr.available = qm_cyc_diff(s->eqcr.pi_ring_size,
906904
eqcr_ci, s->eqcr.ci);
907905
if (!s->eqcr.available)

drivers/soc/imx/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ config SOC_IMX8M
2121
bool "i.MX8M SoC family support"
2222
depends on ARCH_MXC || COMPILE_TEST
2323
default ARCH_MXC && ARM64
24+
select SOC_BUS
2425
help
2526
If you say yes here you get support for the NXP i.MX8M family
2627
support, it will provide the SoC info like SoC family,

drivers/soc/xilinx/Kconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ config XILINX_VCU
1919

2020
config ZYNQMP_POWER
2121
bool "Enable Xilinx Zynq MPSoC Power Management driver"
22-
depends on PM && ARCH_ZYNQMP
22+
depends on PM && ZYNQMP_FIRMWARE
2323
default y
2424
select MAILBOX
2525
select ZYNQMP_IPI_MBOX
@@ -35,7 +35,7 @@ config ZYNQMP_POWER
3535
config ZYNQMP_PM_DOMAINS
3636
bool "Enable Zynq MPSoC generic PM domains"
3737
default y
38-
depends on PM && ARCH_ZYNQMP && ZYNQMP_FIRMWARE
38+
depends on PM && ZYNQMP_FIRMWARE
3939
select PM_GENERIC_DOMAINS
4040
help
4141
Say yes to enable device power management through PM domains

include/soc/tegra/pmc.h

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ int tegra_io_pad_power_disable(enum tegra_io_pad id);
168168
int tegra_io_rail_power_on(unsigned int id);
169169
int tegra_io_rail_power_off(unsigned int id);
170170

171-
enum tegra_suspend_mode tegra_pmc_get_suspend_mode(void);
172171
void tegra_pmc_set_suspend_mode(enum tegra_suspend_mode mode);
173172
void tegra_pmc_enter_suspend_mode(enum tegra_suspend_mode mode);
174173

@@ -220,11 +219,6 @@ static inline int tegra_io_rail_power_off(unsigned int id)
220219
return -ENOSYS;
221220
}
222221

223-
static inline enum tegra_suspend_mode tegra_pmc_get_suspend_mode(void)
224-
{
225-
return TEGRA_SUSPEND_NONE;
226-
}
227-
228222
static inline void tegra_pmc_set_suspend_mode(enum tegra_suspend_mode mode)
229223
{
230224
}
@@ -235,4 +229,13 @@ static inline void tegra_pmc_enter_suspend_mode(enum tegra_suspend_mode mode)
235229

236230
#endif /* CONFIG_SOC_TEGRA_PMC */
237231

232+
#if defined(CONFIG_SOC_TEGRA_PMC) && defined(CONFIG_PM_SLEEP)
233+
enum tegra_suspend_mode tegra_pmc_get_suspend_mode(void);
234+
#else
235+
static inline enum tegra_suspend_mode tegra_pmc_get_suspend_mode(void)
236+
{
237+
return TEGRA_SUSPEND_NONE;
238+
}
239+
#endif
240+
238241
#endif /* __SOC_TEGRA_PMC_H__ */

0 commit comments

Comments
 (0)