Pull ARM SoC fixes from Olof Johansson: "I didn't get a batch in this weekend, so here's what we queued up last week and today. - A couple of defconfigs add back debugfs -- it used to be implicitly enabled through CONFIG_TRACING, but 0e4a459f56c32d3e ("tracing: Remove unnecessary DEBUG_FS dependency") removed that. - The rest are mostly minor fixlets of the usual kind; some DT tweaks, a headerfile refactor that needs a build fix now, etc" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (30 commits) ARM: bcm: Add missing sentinel to bcm2711_compat[] ARM: shmobile: defconfig: Restore debugfs support bus: ti-sysc: Fix missing reset delay handling ARM: imx: Fix boot crash if ocotp is not found ARM: imx_v6_v7_defconfig: Explicitly restore CONFIG_DEBUG_FS ARM: dts: imx6ul-evk: Fix peripheral regulator arm64: dts: ls1028a: fix reboot node ARM: mmp: include the correct cputype.h ARM: dts: am437x-gp/epos-evm: fix panel compatible arm64: dts: ls1028a: fix typo in TMU calibration data ARM: imx: Correct ocotp id for serial number support of i.MX6ULL/ULZ SoCs ARM: dts: bcm283x: Fix critical trip point ARM: omap2plus_defconfig: Add back DEBUG_FS ARM: omap2plus_defconfig: enable NET_SWITCHDEV ARM: dts: am335x-sancloud-bbe: fix phy mode bus: ti-sysc: Fix missing force mstandby quirk handling reset: Do not register resource data for missing resets reset: Fix {of,devm}_reset_control_array_get kerneldoc return types reset: brcmstb: Remove resource checks dt-bindings: reset: Fix brcmstb-reset example ...
Unified · Split
| @@ -152,6 +152,7 @@ Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@web.de> · 151 unmodified lines | ||
| 152 | 152 | Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@ascom.ch> |
| 153 | 153 | Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org> |
| 154 | 154 | Li Yang <leoyang.li@nxp.com> <leoli@freescale.com> |
| 155 | +Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com> | |
| 155 | 156 | Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com> |
| 156 | 157 | Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com> |
| 157 | 158 | Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com> |
| @@ -22,6 +22,6 @@ Example: · 21 unmodified lines | ||
| 22 | 22 | }; |
| 23 | 23 | |
| 24 | 24 | ðernet_switch { |
| 25 | − resets = <&reset>; | |
| 25 | + resets = <&reset 26>; | |
| 26 | 26 | reset-names = "switch"; |
| 27 | 27 | }; |
| @@ -2272,6 +2272,7 @@ F: drivers/*/*s3c64xx* · 2271 unmodified lines | ||
| 2272 | 2272 | F: drivers/*/*s5pv210* |
| 2273 | 2273 | F: drivers/memory/samsung/ |
| 2274 | 2274 | F: drivers/soc/samsung/ |
| 2275 | +F: drivers/tty/serial/samsung* | |
| 2275 | 2276 | F: include/linux/soc/samsung/ |
| 2276 | 2277 | F: Documentation/arm/samsung/ |
| 2277 | 2278 | F: Documentation/devicetree/bindings/arm/samsung/ |
| @@ -5000,7 +5001,7 @@ F: include/linux/dma-mapping.h · 2722 unmodified lines | ||
| 5000 | 5001 | F: include/linux/dma-noncoherent.h |
| 5001 | 5002 | |
| 5002 | 5003 | DMC FREQUENCY DRIVER FOR SAMSUNG EXYNOS5422 |
| 5003 | −M: Lukasz Luba <l.luba@partner.samsung.com> | |
| 5004 | +M: Lukasz Luba <lukasz.luba@arm.com> | |
| 5004 | 5005 | L: linux-pm@vger.kernel.org |
| 5005 | 5006 | L: linux-samsung-soc@vger.kernel.org |
| 5006 | 5007 | S: Maintained |
| @@ -108,7 +108,7 @@ · 107 unmodified lines | ||
| 108 | 108 | |
| 109 | 109 | &cpsw_emac0 { |
| 110 | 110 | phy-handle = <ðphy0>; |
| 111 | − phy-mode = "rgmii-txid"; | |
| 111 | + phy-mode = "rgmii-id"; | |
| 112 | 112 | }; |
| 113 | 113 | |
| 114 | 114 | &i2c0 { |
| @@ -86,7 +86,7 @@ · 85 unmodified lines | ||
| 86 | 86 | }; |
| 87 | 87 | |
| 88 | 88 | lcd0: display { |
| 89 | − compatible = "osddisplays,osd057T0559-34ts", "panel-dpi"; | |
| 89 | + compatible = "osddisplays,osd070t1718-19ts", "panel-dpi"; | |
| 90 | 90 | label = "lcd"; |
| 91 | 91 | |
| 92 | 92 | backlight = <&lcd_bl>; |
| @@ -42,7 +42,7 @@ · 41 unmodified lines | ||
| 42 | 42 | }; |
| 43 | 43 | |
| 44 | 44 | lcd0: display { |
| 45 | − compatible = "osddisplays,osd057T0559-34ts", "panel-dpi"; | |
| 45 | + compatible = "osddisplays,osd070t1718-19ts", "panel-dpi"; | |
| 46 | 46 | label = "lcd"; |
| 47 | 47 | |
| 48 | 48 | backlight = <&lcd_bl>; |
| @@ -174,8 +174,8 @@ · 173 unmodified lines | ||
| 174 | 174 | mdio: mdio@18002000 { |
| 175 | 175 | compatible = "brcm,iproc-mdio"; |
| 176 | 176 | reg = <0x18002000 0x8>; |
| 177 | − #size-cells = <1>; | |
| 178 | − #address-cells = <0>; | |
| 177 | + #size-cells = <0>; | |
| 178 | + #address-cells = <1>; | |
| 179 | 179 | status = "disabled"; |
| 180 | 180 | |
| 181 | 181 | gphy0: ethernet-phy@0 { |
| @@ -43,7 +43,7 @@ · 42 unmodified lines | ||
| 43 | 43 | <0x7c000000 0x0 0xfc000000 0x02000000>, |
| 44 | 44 | <0x40000000 0x0 0xff800000 0x00800000>; |
| 45 | 45 | /* Emulate a contiguous 30-bit address range for DMA */ |
| 46 | − dma-ranges = <0xc0000000 0x0 0x00000000 0x3c000000>; | |
| 46 | + dma-ranges = <0xc0000000 0x0 0x00000000 0x40000000>; | |
| 47 | 47 | |
| 48 | 48 | /* |
| 49 | 49 | * This node is the provider for the enable-method for |
| @@ -37,7 +37,7 @@ · 36 unmodified lines | ||
| 37 | 37 | |
| 38 | 38 | trips { |
| 39 | 39 | cpu-crit { |
| 40 | − temperature = <80000>; | |
| 40 | + temperature = <90000>; | |
| 41 | 41 | hysteresis = <0>; |
| 42 | 42 | type = "critical"; |
| 43 | 43 | }; |
| @@ -353,8 +353,8 @@ · 352 unmodified lines | ||
| 353 | 353 | mdio: mdio@18003000 { |
| 354 | 354 | compatible = "brcm,iproc-mdio"; |
| 355 | 355 | reg = <0x18003000 0x8>; |
| 356 | − #size-cells = <1>; | |
| 357 | − #address-cells = <0>; | |
| 356 | + #size-cells = <0>; | |
| 357 | + #address-cells = <1>; | |
| 358 | 358 | }; |
| 359 | 359 | |
| 360 | 360 | mdio-bus-mux@18003000 { |
| @@ -265,11 +265,6 @@ · 264 unmodified lines | ||
| 265 | 265 | regulator-name = "LDORTC1"; |
| 266 | 266 | regulator-boot-on; |
| 267 | 267 | }; |
| 268 | − | |
| 269 | − ldortc2_reg: LDORTC2 { | |
| 270 | − regulator-name = "LDORTC2"; | |
| 271 | − regulator-boot-on; | |
| 272 | − }; | |
| 273 | 268 | }; |
| 274 | 269 | }; |
| 275 | 270 | }; |
| @@ -30,14 +30,26 @@ · 29 unmodified lines | ||
| 30 | 30 | enable-active-high; |
| 31 | 31 | }; |
| 32 | 32 | |
| 33 | − reg_sensors: regulator-sensors { | |
| 33 | + reg_peri_3v3: regulator-peri-3v3 { | |
| 34 | 34 | compatible = "regulator-fixed"; |
| 35 | 35 | pinctrl-names = "default"; |
| 36 | − pinctrl-0 = <&pinctrl_sensors_reg>; | |
| 37 | − regulator-name = "sensors-supply"; | |
| 36 | + pinctrl-0 = <&pinctrl_peri_3v3>; | |
| 37 | + regulator-name = "VPERI_3V3"; | |
| 38 | 38 | regulator-min-microvolt = <3300000>; |
| 39 | 39 | regulator-max-microvolt = <3300000>; |
| 40 | 40 | gpio = <&gpio5 2 GPIO_ACTIVE_LOW>; |
| 41 | + /* | |
| 42 | + * If you want to want to make this dynamic please | |
| 43 | + * check schematics and test all affected peripherals: | |
| 44 | + * | |
| 45 | + * - sensors | |
| 46 | + * - ethernet phy | |
| 47 | + * - can | |
| 48 | + * - bluetooth | |
| 49 | + * - wm8960 audio codec | |
| 50 | + * - ov5640 camera | |
| 51 | + */ | |
| 52 | + regulator-always-on; | |
| 41 | 53 | }; |
| 42 | 54 | |
| 43 | 55 | reg_can_3v3: regulator-can-3v3 { |
| @@ -140,6 +152,7 @@ · 96 unmodified lines | ||
| 140 | 152 | pinctrl-0 = <&pinctrl_enet1>; |
| 141 | 153 | phy-mode = "rmii"; |
| 142 | 154 | phy-handle = <ðphy0>; |
| 155 | + phy-supply = <®_peri_3v3>; | |
| 143 | 156 | status = "okay"; |
| 144 | 157 | }; |
| 145 | 158 | |
| @@ -148,6 +161,7 @@ · 2 unmodified lines | ||
| 148 | 161 | pinctrl-0 = <&pinctrl_enet2>; |
| 149 | 162 | phy-mode = "rmii"; |
| 150 | 163 | phy-handle = <ðphy1>; |
| 164 | + phy-supply = <®_peri_3v3>; | |
| 151 | 165 | status = "okay"; |
| 152 | 166 | |
| 153 | 167 | mdio { |
| @@ -193,8 +207,8 @@ · 39 unmodified lines | ||
| 193 | 207 | magnetometer@e { |
| 194 | 208 | compatible = "fsl,mag3110"; |
| 195 | 209 | reg = <0x0e>; |
| 196 | − vdd-supply = <®_sensors>; | |
| 197 | − vddio-supply = <®_sensors>; | |
| 210 | + vdd-supply = <®_peri_3v3>; | |
| 211 | + vddio-supply = <®_peri_3v3>; | |
| 198 | 212 | }; |
| 199 | 213 | }; |
| 200 | 214 | |
| @@ -227,7 +241,7 @@ · 26 unmodified lines | ||
| 227 | 241 | flash0: n25q256a@0 { |
| 228 | 242 | #address-cells = <1>; |
| 229 | 243 | #size-cells = <1>; |
| 230 | − compatible = "micron,n25q256a"; | |
| 244 | + compatible = "micron,n25q256a", "jedec,spi-nor"; | |
| 231 | 245 | spi-max-frequency = <29000000>; |
| 232 | 246 | spi-rx-bus-width = <4>; |
| 233 | 247 | spi-tx-bus-width = <4>; |
| @@ -462,7 +476,7 @@ · 228 unmodified lines | ||
| 462 | 476 | >; |
| 463 | 477 | }; |
| 464 | 478 | |
| 465 | − pinctrl_sensors_reg: sensorsreggrp { | |
| 479 | + pinctrl_peri_3v3: peri3v3grp { | |
| 466 | 480 | fsl,pins = < |
| 467 | 481 | MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x1b0b0 |
| 468 | 482 | >; |
| @@ -350,6 +350,7 @@ CONFIG_PRINTK_TIME=y · 349 unmodified lines | ||
| 350 | 350 | CONFIG_DYNAMIC_DEBUG=y |
| 351 | 351 | CONFIG_DEBUG_INFO=y |
| 352 | 352 | CONFIG_MAGIC_SYSRQ=y |
| 353 | +CONFIG_DEBUG_FS=y | |
| 353 | 354 | CONFIG_DEBUG_KERNEL=y |
| 354 | 355 | CONFIG_SOFTLOCKUP_DETECTOR=y |
| 355 | 356 | # CONFIG_DETECT_HUNG_TASK is not set |
| @@ -462,6 +462,7 @@ CONFIG_FONT_8x8=y · 461 unmodified lines | ||
| 462 | 462 | CONFIG_FONT_8x16=y |
| 463 | 463 | CONFIG_PRINTK_TIME=y |
| 464 | 464 | CONFIG_MAGIC_SYSRQ=y |
| 465 | +CONFIG_DEBUG_FS=y | |
| 465 | 466 | # CONFIG_SCHED_DEBUG is not set |
| 466 | 467 | CONFIG_PROVE_LOCKING=y |
| 467 | 468 | # CONFIG_DEBUG_BUGVERBOSE is not set |
| @@ -92,6 +92,7 @@ CONFIG_IP_PNP_BOOTP=y · 91 unmodified lines | ||
| 92 | 92 | CONFIG_IP_PNP_RARP=y |
| 93 | 93 | CONFIG_NETFILTER=y |
| 94 | 94 | CONFIG_PHONET=m |
| 95 | +CONFIG_NET_SWITCHDEV=y | |
| 95 | 96 | CONFIG_CAN=m |
| 96 | 97 | CONFIG_CAN_C_CAN=m |
| 97 | 98 | CONFIG_CAN_C_CAN_PLATFORM=m |
| @@ -181,6 +182,7 @@ CONFIG_SMSC911X=y · 83 unmodified lines | ||
| 181 | 182 | # CONFIG_NET_VENDOR_STMICRO is not set |
| 182 | 183 | CONFIG_TI_DAVINCI_EMAC=y |
| 183 | 184 | CONFIG_TI_CPSW=y |
| 185 | +CONFIG_TI_CPSW_SWITCHDEV=y | |
| 184 | 186 | CONFIG_TI_CPTS=y |
| 185 | 187 | # CONFIG_NET_VENDOR_VIA is not set |
| 186 | 188 | # CONFIG_NET_VENDOR_WIZNET is not set |
| @@ -554,6 +556,6 @@ CONFIG_DEBUG_INFO=y · 367 unmodified lines | ||
| 554 | 556 | CONFIG_DEBUG_INFO_SPLIT=y |
| 555 | 557 | CONFIG_DEBUG_INFO_DWARF4=y |
| 556 | 558 | CONFIG_MAGIC_SYSRQ=y |
| 559 | +CONFIG_DEBUG_FS=y | |
| 557 | 560 | CONFIG_SCHEDSTATS=y |
| 558 | 561 | # CONFIG_DEBUG_BUGVERBOSE is not set |
| 559 | −CONFIG_TI_CPSW_SWITCHDEV=y | |
| @@ -212,4 +212,5 @@ CONFIG_DMA_CMA=y · 211 unmodified lines | ||
| 212 | 212 | CONFIG_CMA_SIZE_MBYTES=64 |
| 213 | 213 | CONFIG_PRINTK_TIME=y |
| 214 | 214 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 215 | +CONFIG_DEBUG_FS=y | |
| 215 | 216 | CONFIG_DEBUG_KERNEL=y |
| @@ -13,6 +13,7 @@ static const char * const bcm2711_compat[] = { · 12 unmodified lines | ||
| 13 | 13 | #ifdef CONFIG_ARCH_MULTI_V7 |
| 14 | 14 | "brcm,bcm2711", |
| 15 | 15 | #endif |
| 16 | + NULL | |
| 16 | 17 | }; |
| 17 | 18 | |
| 18 | 19 | DT_MACHINE_START(BCM2711, "BCM2711") |
| @@ -84,7 +84,7 @@ struct device * __init imx_soc_device_init(void) · 83 unmodified lines | ||
| 84 | 84 | const char *ocotp_compat = NULL; |
| 85 | 85 | struct soc_device *soc_dev; |
| 86 | 86 | struct device_node *root; |
| 87 | − struct regmap *ocotp; | |
| 87 | + struct regmap *ocotp = NULL; | |
| 88 | 88 | const char *soc_id; |
| 89 | 89 | u64 soc_uid = 0; |
| 90 | 90 | u32 val; |
| @@ -148,11 +148,11 @@ struct device * __init imx_soc_device_init(void) · 57 unmodified lines | ||
| 148 | 148 | soc_id = "i.MX6UL"; |
| 149 | 149 | break; |
| 150 | 150 | case MXC_CPU_IMX6ULL: |
| 151 | − ocotp_compat = "fsl,imx6ul-ocotp"; | |
| 151 | + ocotp_compat = "fsl,imx6ull-ocotp"; | |
| 152 | 152 | soc_id = "i.MX6ULL"; |
| 153 | 153 | break; |
| 154 | 154 | case MXC_CPU_IMX6ULZ: |
| 155 | − ocotp_compat = "fsl,imx6ul-ocotp"; | |
| 155 | + ocotp_compat = "fsl,imx6ull-ocotp"; | |
| 156 | 156 | soc_id = "i.MX6ULZ"; |
| 157 | 157 | break; |
| 158 | 158 | case MXC_CPU_IMX6SLL: |
| @@ -175,7 +175,9 @@ struct device * __init imx_soc_device_init(void) · 16 unmodified lines | ||
| 175 | 175 | ocotp = syscon_regmap_lookup_by_compatible(ocotp_compat); |
| 176 | 176 | if (IS_ERR(ocotp)) |
| 177 | 177 | pr_err("%s: failed to find %s regmap!\n", __func__, ocotp_compat); |
| 178 | + } | |
| 178 | 179 | |
| 180 | + if (!IS_ERR_OR_NULL(ocotp)) { | |
| 179 | 181 | regmap_read(ocotp, OCOTP_UID_H, &val); |
| 180 | 182 | soc_uid = val; |
| 181 | 183 | regmap_read(ocotp, OCOTP_UID_L, &val); |
| @@ -17,9 +17,9 @@ extern void pxa168_clear_keypad_wakeup(void); · 16 unmodified lines | ||
| 17 | 17 | #include <linux/platform_data/keypad-pxa27x.h> |
| 18 | 18 | #include <linux/pxa168_eth.h> |
| 19 | 19 | #include <linux/platform_data/mv_usb.h> |
| 20 | +#include <linux/soc/mmp/cputype.h> | |
| 20 | 21 | |
| 21 | 22 | #include "devices.h" |
| 22 | −#include "cputype.h" | |
| 23 | 23 | |
| 24 | 24 | extern struct pxa_device_desc pxa168_device_uart1; |
| 25 | 25 | extern struct pxa_device_desc pxa168_device_uart2; |
| @@ -551,8 +551,9 @@ static struct clk *ve_spc_clk_register(struct device *cpu_dev) · 550 unmodified lines | ||
| 551 | 551 | |
| 552 | 552 | static int __init ve_spc_clk_init(void) |
| 553 | 553 | { |
| 554 | − int cpu; | |
| 554 | + int cpu, cluster; | |
| 555 | 555 | struct clk *clk; |
| 556 | + bool init_opp_table[MAX_CLUSTERS] = { false }; | |
| 556 | 557 | |
| 557 | 558 | if (!info) |
| 558 | 559 | return 0; /* Continue only if SPC is initialised */ |
| @@ -578,8 +579,17 @@ static int __init ve_spc_clk_init(void) · 19 unmodified lines | ||
| 578 | 579 | continue; |
| 579 | 580 | } |
| 580 | 581 | |
| 582 | + cluster = topology_physical_package_id(cpu_dev->id); | |
| 583 | + if (init_opp_table[cluster]) | |
| 584 | + continue; | |
| 585 | + | |
| 581 | 586 | if (ve_init_opp_table(cpu_dev)) |
| 582 | 587 | pr_warn("failed to initialise cpu%d opp table\n", cpu); |
| 588 | + else if (dev_pm_opp_set_sharing_cpus(cpu_dev, | |
| 589 | + topology_core_cpumask(cpu_dev->id))) | |
| 590 | + pr_warn("failed to mark OPPs shared for cpu%d\n", cpu); | |
| 591 | + else | |
| 592 | + init_opp_table[cluster] = true; | |
| 583 | 593 | } |
| 584 | 594 | |
| 585 | 595 | platform_device_register_simple("vexpress-spc-cpufreq", -1, NULL, 0); |
| @@ -88,7 +88,7 @@ · 87 unmodified lines | ||
| 88 | 88 | |
| 89 | 89 | reboot { |
| 90 | 90 | compatible ="syscon-reboot"; |
| 91 | − regmap = <&dcfg>; | |
| 91 | + regmap = <&rst>; | |
| 92 | 92 | offset = <0xb0>; |
| 93 | 93 | mask = <0x02>; |
| 94 | 94 | }; |
| @@ -178,6 +178,12 @@ · 83 unmodified lines | ||
| 178 | 178 | big-endian; |
| 179 | 179 | }; |
| 180 | 180 | |
| 181 | + rst: syscon@1e60000 { | |
| 182 | + compatible = "syscon"; | |
| 183 | + reg = <0x0 0x1e60000 0x0 0x10000>; | |
| 184 | + little-endian; | |
| 185 | + }; | |
| 186 | + | |
| 181 | 187 | scfg: syscon@1fc0000 { |
| 182 | 188 | compatible = "fsl,ls1028a-scfg", "syscon"; |
| 183 | 189 | reg = <0x0 0x1fc0000 0x0 0x10000>; |
| @@ -584,7 +590,7 @@ · 400 unmodified lines | ||
| 584 | 590 | 0x00010004 0x0000003d |
| 585 | 591 | 0x00010005 0x00000045 |
| 586 | 592 | 0x00010006 0x0000004d |
| 587 | − 0x00010007 0x00000045 | |
| 593 | + 0x00010007 0x00000055 | |
| 588 | 594 | 0x00010008 0x0000005e |
| 589 | 595 | 0x00010009 0x00000066 |
| 590 | 596 | 0x0001000a 0x0000006e |
| @@ -981,7 +981,8 @@ static int sysc_disable_module(struct device *dev) · 980 unmodified lines | ||
| 981 | 981 | return ret; |
| 982 | 982 | } |
| 983 | 983 | |
| 984 | − if (ddata->cfg.quirks & SYSC_QUIRK_SWSUP_MSTANDBY) | |
| 984 | + if (ddata->cfg.quirks & (SYSC_QUIRK_SWSUP_MSTANDBY) || | |
| 985 | + ddata->cfg.quirks & (SYSC_QUIRK_FORCE_MSTANDBY)) | |
| 985 | 986 | best_mode = SYSC_IDLE_FORCE; |
| 986 | 987 | |
| 987 | 988 | reg &= ~(SYSC_IDLE_MASK << regbits->midle_shift); |
| @@ -1583,6 +1584,10 @@ static int sysc_reset(struct sysc *ddata) · 595 unmodified lines | ||
| 1583 | 1584 | sysc_val |= sysc_mask; |
| 1584 | 1585 | sysc_write(ddata, sysc_offset, sysc_val); |
| 1585 | 1586 | |
| 1587 | + if (ddata->cfg.srst_udelay) | |
| 1588 | + usleep_range(ddata->cfg.srst_udelay, | |
| 1589 | + ddata->cfg.srst_udelay * 2); | |
| 1590 | + | |
| 1586 | 1591 | if (ddata->clk_enable_quirk) |
| 1587 | 1592 | ddata->clk_enable_quirk(ddata); |
| 1588 | 1593 | |
| @@ -434,7 +434,7 @@ static int ve_spc_cpufreq_init(struct cpufreq_policy *policy) · 433 unmodified lines | ||
| 434 | 434 | if (cur_cluster < MAX_CLUSTERS) { |
| 435 | 435 | int cpu; |
| 436 | 436 | |
| 437 | − cpumask_copy(policy->cpus, topology_core_cpumask(policy->cpu)); | |
| 437 | + dev_pm_opp_get_sharing_cpus(cpu_dev, policy->cpus); | |
| 438 | 438 | |
| 439 | 439 | for_each_cpu(cpu, policy->cpus) |
| 440 | 440 | per_cpu(physical_cluster, cpu) = cur_cluster; |
| @@ -787,7 +787,7 @@ struct reset_control *__devm_reset_control_get(struct device *dev, · 786 unmodified lines | ||
| 787 | 787 | return ERR_PTR(-ENOMEM); |
| 788 | 788 | |
| 789 | 789 | rstc = __reset_control_get(dev, id, index, shared, optional, acquired); |
| 790 | − if (!IS_ERR(rstc)) { | |
| 790 | + if (!IS_ERR_OR_NULL(rstc)) { | |
| 791 | 791 | *ptr = rstc; |
| 792 | 792 | devres_add(dev, ptr); |
| 793 | 793 | } else { |
| @@ -861,8 +861,7 @@ static int of_reset_control_get_count(struct device_node *node) · 67 unmodified lines | ||
| 861 | 861 | * @acquired: only one reset control may be acquired for a given controller |
| 862 | 862 | * and ID |
| 863 | 863 | * |
| 864 | − * Returns pointer to allocated reset_control_array on success or | |
| 865 | − * error on failure | |
| 864 | + * Returns pointer to allocated reset_control on success or error on failure | |
| 866 | 865 | */ |
| 867 | 866 | struct reset_control * |
| 868 | 867 | of_reset_control_array_get(struct device_node *np, bool shared, bool optional, |
| @@ -915,8 +914,7 @@ EXPORT_SYMBOL_GPL(of_reset_control_array_get); · 46 unmodified lines | ||
| 915 | 914 | * that just have to be asserted or deasserted, without any |
| 916 | 915 | * requirements on the order. |
| 917 | 916 | * |
| 918 | − * Returns pointer to allocated reset_control_array on success or | |
| 919 | − * error on failure | |
| 917 | + * Returns pointer to allocated reset_control on success or error on failure | |
| 920 | 918 | */ |
| 921 | 919 | struct reset_control * |
| 922 | 920 | devm_reset_control_array_get(struct device *dev, bool shared, bool optional) |
| @@ -930,7 +928,7 @@ devm_reset_control_array_get(struct device *dev, bool shared, bool optional) · 7 unmodified lines | ||
| 930 | 928 | return ERR_PTR(-ENOMEM); |
| 931 | 929 | |
| 932 | 930 | rstc = of_reset_control_array_get(dev->of_node, shared, optional, true); |
| 933 | − if (IS_ERR(rstc)) { | |
| 931 | + if (IS_ERR_OR_NULL(rstc)) { | |
| 934 | 932 | devres_free(devres); |
| 935 | 933 | return rstc; |
| 936 | 934 | } |
| @@ -91,12 +91,6 @@ static int brcmstb_reset_probe(struct platform_device *pdev) · 90 unmodified lines | ||
| 91 | 91 | return -ENOMEM; |
| 92 | 92 | |
| 93 | 93 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| 94 | − if (!IS_ALIGNED(res->start, SW_INIT_BANK_SIZE) || | |
| 95 | − !IS_ALIGNED(resource_size(res), SW_INIT_BANK_SIZE)) { | |
| 96 | − dev_err(kdev, "incorrect register range\n"); | |
| 97 | − return -EINVAL; | |
| 98 | − } | |
| 99 | − | |
| 100 | 94 | priv->base = devm_ioremap_resource(kdev, res); |
| 101 | 95 | if (IS_ERR(priv->base)) |
| 102 | 96 | return PTR_ERR(priv->base); |
| @@ -49,6 +49,7 @@ struct sysc_regbits { · 48 unmodified lines | ||
| 49 | 49 | s8 emufree_shift; |
| 50 | 50 | }; |
| 51 | 51 | |
| 52 | +#define SYSC_QUIRK_FORCE_MSTANDBY BIT(20) | |
| 52 | 53 | #define SYSC_MODULE_QUIRK_AESS BIT(19) |
| 53 | 54 | #define SYSC_MODULE_QUIRK_SGX BIT(18) |
| 54 | 55 | #define SYSC_MODULE_QUIRK_HDQ1W BIT(17) |