Skip to content

Commit 45ae4df

Browse files
committed
Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes from Olof Johansson: - Fix interrupt type on ethernet switch for i.MX-based RDU2 - GPC on i.MX exposed too large a register window which resulted in userspace being able to crash the machine. - Fixup of bad merge resolution moving GPIO DT nodes under pinctrl on droid4. * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: dts: imx6: RDU2: fix irq type for mv88e6xxx switch soc: imx: gpc: restrict register range for regmap access ARM: dts: omap4-droid4: fix dts w.r.t. pwm
2 parents ef81e63 + 5858610 commit 45ae4df

File tree

3 files changed

+25
-7
lines changed

3 files changed

+25
-7
lines changed

arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -692,7 +692,7 @@
692692
dsa,member = <0 0>;
693693
eeprom-length = <512>;
694694
interrupt-parent = <&gpio6>;
695-
interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
695+
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
696696
interrupt-controller;
697697
#interrupt-cells = <2>;
698698

arch/arm/boot/dts/omap4-droid4-xt894.dts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -159,13 +159,7 @@
159159

160160
dais = <&mcbsp2_port>, <&mcbsp3_port>;
161161
};
162-
};
163-
164-
&dss {
165-
status = "okay";
166-
};
167162

168-
&gpio6 {
169163
pwm8: dmtimer-pwm-8 {
170164
pinctrl-names = "default";
171165
pinctrl-0 = <&vibrator_direction_pin>;
@@ -192,7 +186,10 @@
192186
pwm-names = "enable", "direction";
193187
direction-duty-cycle-ns = <10000000>;
194188
};
189+
};
195190

191+
&dss {
192+
status = "okay";
196193
};
197194

198195
&dsi1 {

drivers/soc/imx/gpc.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,16 @@
2727
#define GPC_PGC_SW2ISO_SHIFT 0x8
2828
#define GPC_PGC_SW_SHIFT 0x0
2929

30+
#define GPC_PGC_PCI_PDN 0x200
31+
#define GPC_PGC_PCI_SR 0x20c
32+
3033
#define GPC_PGC_GPU_PDN 0x260
3134
#define GPC_PGC_GPU_PUPSCR 0x264
3235
#define GPC_PGC_GPU_PDNSCR 0x268
36+
#define GPC_PGC_GPU_SR 0x26c
37+
38+
#define GPC_PGC_DISP_PDN 0x240
39+
#define GPC_PGC_DISP_SR 0x24c
3340

3441
#define GPU_VPU_PUP_REQ BIT(1)
3542
#define GPU_VPU_PDN_REQ BIT(0)
@@ -318,10 +325,24 @@ static const struct of_device_id imx_gpc_dt_ids[] = {
318325
{ }
319326
};
320327

328+
static const struct regmap_range yes_ranges[] = {
329+
regmap_reg_range(GPC_CNTR, GPC_CNTR),
330+
regmap_reg_range(GPC_PGC_PCI_PDN, GPC_PGC_PCI_SR),
331+
regmap_reg_range(GPC_PGC_GPU_PDN, GPC_PGC_GPU_SR),
332+
regmap_reg_range(GPC_PGC_DISP_PDN, GPC_PGC_DISP_SR),
333+
};
334+
335+
static const struct regmap_access_table access_table = {
336+
.yes_ranges = yes_ranges,
337+
.n_yes_ranges = ARRAY_SIZE(yes_ranges),
338+
};
339+
321340
static const struct regmap_config imx_gpc_regmap_config = {
322341
.reg_bits = 32,
323342
.val_bits = 32,
324343
.reg_stride = 4,
344+
.rd_table = &access_table,
345+
.wr_table = &access_table,
325346
.max_register = 0x2ac,
326347
};
327348

0 commit comments

Comments
 (0)