diff options
Diffstat (limited to 'meta-rcar-gen3/recipes-kernel/linux/linux-renesas')
7 files changed, 8 insertions, 375 deletions
diff --git a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-soc-renesas-rcar-sysc-Update-power-control-flow-for-.patch b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-soc-renesas-rcar-sysc-Update-power-control-flow-for-.patch deleted file mode 100644 index a8403b5..0000000 --- a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0001-soc-renesas-rcar-sysc-Update-power-control-flow-for-.patch +++ /dev/null @@ -1,108 +0,0 @@ -From c8623487a0716301221dfbceee63856ed6f0c15f Mon Sep 17 00:00:00 2001 -From: Dien Pham <dien.pham.ry@renesas.com> -Date: Wed, 11 Apr 2018 16:19:03 +0700 -Subject: [PATCH 1/6] soc: renesas: rcar-sysc: Update power control flow for - SYSCEXTMASK register - -On H3 v3.0, it can observe the system hang up after changing -power domains many times (~2000 times) continuously. -This occurs because there is conflict when changing state -of power domains. - -To overcome this issue, power domain on/off control flow -need to be updated. It needs to set/clear value of SYSCEXTMASK register. - -This patch is updated for above purpose. - -Signed-off-by: Dien Pham <dien.pham.ry@renesas.com> ---- - drivers/soc/renesas/rcar-sysc.c | 22 +++++++++++++++++++++- - drivers/soc/renesas/rcar-sysc.h | 8 ++++++++ - 2 files changed, 29 insertions(+), 1 deletion(-) - -diff --git a/drivers/soc/renesas/rcar-sysc.c b/drivers/soc/renesas/rcar-sysc.c -index a063887..b170f9b 100644 ---- a/drivers/soc/renesas/rcar-sysc.c -+++ b/drivers/soc/renesas/rcar-sysc.c -@@ -96,10 +96,24 @@ - - static void __iomem *rcar_sysc_base; - static DEFINE_SPINLOCK(rcar_sysc_lock); /* SMP CPUs + I/O devices */ -- -+static struct rcar_sysc_extra_regs *extra_regs; - - static const char *to_pd_name(const struct rcar_sysc_ch *sysc_ch); - -+static void rcar_sysc_extmask_ctrl(bool on) -+{ -+ u32 extmask_msks = 0; -+ -+ if (!extra_regs || !extra_regs->sysc_extmask_msks) -+ return; -+ -+ if (on) -+ extmask_msks = extra_regs->sysc_extmask_msks; -+ -+ iowrite32(extmask_msks, -+ rcar_sysc_base + extra_regs->sysc_extmask_offs); -+} -+ - static int rcar_sysc_pwr_on_off(const struct rcar_sysc_ch *sysc_ch, bool on) - { - unsigned int sr_bit, reg_offs; -@@ -147,6 +161,7 @@ static int rcar_sysc_power(const struct rcar_sysc_ch *sysc_ch, bool on) - - spin_lock_irqsave(&rcar_sysc_lock, flags); - -+ rcar_sysc_extmask_ctrl(1); /* set EXTMSK0 */ - iowrite32(isr_mask, rcar_sysc_base + SYSCISCR); - - /* Submit power shutoff or resume request until it was accepted */ -@@ -181,6 +196,7 @@ static int rcar_sysc_power(const struct rcar_sysc_ch *sysc_ch, bool on) - iowrite32(isr_mask, rcar_sysc_base + SYSCISCR); - - out: -+ rcar_sysc_extmask_ctrl(0); /* clear EXTMSK0 */ - spin_unlock_irqrestore(&rcar_sysc_lock, flags); - - pr_debug("sysc power %s domain %d: %08x -> %d\n", on ? "on" : "off", -@@ -436,6 +452,10 @@ static int __init rcar_sysc_pd_init(void) - - rcar_sysc_base = base; - -+ /* Check and get extra registers */ -+ if (info->extra_regs) -+ extra_regs = info->extra_regs; -+ - domains = kzalloc(sizeof(*domains), GFP_KERNEL); - if (!domains) { - error = -ENOMEM; -diff --git a/drivers/soc/renesas/rcar-sysc.h b/drivers/soc/renesas/rcar-sysc.h -index cfc7e30..1c3aedb 100644 ---- a/drivers/soc/renesas/rcar-sysc.h -+++ b/drivers/soc/renesas/rcar-sysc.h -@@ -38,6 +38,13 @@ struct rcar_sysc_area { - unsigned int flags; /* See PD_* */ - }; - -+/* -+ * List of registers that are not common in all platform. -+ */ -+struct rcar_sysc_extra_regs { -+ u16 sysc_extmask_offs; /* Offset of SYSCEXTMASK register */ -+ u32 sysc_extmask_msks; /* Mask value of SYSCEXTMASK register */ -+}; - - /* - * SoC-specific Power Area Description -@@ -47,6 +54,7 @@ struct rcar_sysc_info { - int (*init)(void); /* Optional */ - const struct rcar_sysc_area *areas; - unsigned int num_areas; -+ struct rcar_sysc_extra_regs *extra_regs; - }; - - extern const struct rcar_sysc_info r8a7743_sysc_info; --- -1.9.1 - diff --git a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0002-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0002-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch deleted file mode 100644 index c29cfee..0000000 --- a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0002-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch +++ /dev/null @@ -1,60 +0,0 @@ -From e1fcb7cf84d92cbb31f5e1bcff24247fbc23fa77 Mon Sep 17 00:00:00 2001 -From: Dien Pham <dien.pham.ry@renesas.com> -Date: Wed, 11 Apr 2018 16:20:49 +0700 -Subject: [PATCH 2/6] soc: renesas: rcar-sysc: Add SYSCEXTMASK info for r8a7795 - -Add specific SYSCEXTMASK register info so that -it is controlled during power domain on/off. - -Signed-off-by: Dien Pham <dien.pham.ry@renesas.com> ---- - drivers/soc/renesas/r8a7795-sysc.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/drivers/soc/renesas/r8a7795-sysc.c b/drivers/soc/renesas/r8a7795-sysc.c -index 7412666..aac1053 100644 ---- a/drivers/soc/renesas/r8a7795-sysc.c -+++ b/drivers/soc/renesas/r8a7795-sysc.c -@@ -8,6 +8,7 @@ - * the Free Software Foundation; version 2 of the License. - */ - -+#include <linux/bitops.h> - #include <linux/bug.h> - #include <linux/kernel.h> - #include <linux/sys_soc.h> -@@ -62,17 +63,31 @@ - { /* sentinel */ } - }; - -+static const struct soc_device_attribute r8a7795es2[] __initconst = { -+ { .soc_id = "r8a7795", .revision = "ES2.*" }, -+ { /* sentinel */ } -+}; -+ - static int __init r8a7795_sysc_init(void) - { - if (!soc_device_match(r8a7795es1)) - rcar_sysc_nullify(r8a7795_areas, ARRAY_SIZE(r8a7795_areas), - R8A7795_PD_A2VC0); - -+ if (soc_device_match(r8a7795es1) || soc_device_match(r8a7795es2)) -+ r8a7795_sysc_info.extra_regs->sysc_extmask_msks = 0; -+ - return 0; - } - -+static struct rcar_sysc_extra_regs r8a7795_extra_regs = { -+ .sysc_extmask_offs = 0x2F8, .sysc_extmask_msks = BIT(0) -+}; -+ -+ - const struct rcar_sysc_info r8a7795_sysc_info __initconst = { - .init = r8a7795_sysc_init, - .areas = r8a7795_areas, - .num_areas = ARRAY_SIZE(r8a7795_areas), -+ .extra_regs = &r8a7795_extra_regs, - }; --- -1.9.1 - diff --git a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0003-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0003-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch deleted file mode 100644 index 39d3fb1..0000000 --- a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0003-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 7a0a2b88f8b1fe0f36ffaa1c56e404b12eb5effc Mon Sep 17 00:00:00 2001 -From: Dien Pham <dien.pham.ry@renesas.com> -Date: Thu, 12 Apr 2018 16:03:30 +0700 -Subject: [PATCH 3/6] soc: renesas: rcar-sysc: Add SYSCEXTMASK info for r8a7796 - -Add specific SYSCEXTMASK register info so that -it is controlled during power domain on/off. - -Signed-off-by: Dien Pham <dien.pham.ry@renesas.com> ---- - drivers/soc/renesas/r8a7796-sysc.c | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/drivers/soc/renesas/r8a7796-sysc.c b/drivers/soc/renesas/r8a7796-sysc.c -index f700c84..afab100 100644 ---- a/drivers/soc/renesas/r8a7796-sysc.c -+++ b/drivers/soc/renesas/r8a7796-sysc.c -@@ -8,8 +8,10 @@ - * the Free Software Foundation; version 2 of the License. - */ - -+#include <linux/bitops.h> - #include <linux/bug.h> - #include <linux/kernel.h> -+#include <linux/sys_soc.h> - - #include <dt-bindings/power/r8a7796-sysc.h> - -@@ -42,7 +44,26 @@ - { "a3ir", 0x180, 0, R8A7796_PD_A3IR, R8A7796_PD_ALWAYS_ON }, - }; - -+static const struct soc_device_attribute r8a7796es1[] __initconst = { -+ { .soc_id = "r8a7796", .revision = "ES1.*" }, -+ { /* sentinel */ } -+}; -+ -+static int __init r8a7796_sysc_init(void) -+{ -+ if (soc_device_match(r8a7796es1)) -+ r8a7796_sysc_info.extra_regs->sysc_extmask_msks = 0; -+ -+ return 0; -+} -+ -+static struct rcar_sysc_extra_regs r8a7796_extra_regs = { -+ .sysc_extmask_offs = 0x2F8, .sysc_extmask_msks = BIT(0) -+}; -+ - const struct rcar_sysc_info r8a7796_sysc_info __initconst = { -+ .init = r8a7796_sysc_init, - .areas = r8a7796_areas, - .num_areas = ARRAY_SIZE(r8a7796_areas), -+ .extra_regs = &r8a7796_extra_regs, - }; --- -1.9.1 - diff --git a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0004-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0004-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch deleted file mode 100644 index 839c2a7..0000000 --- a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0004-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 3a194570273ba919d6e8bd2276a3da7c4a4e56bf Mon Sep 17 00:00:00 2001 -From: Dien Pham <dien.pham.ry@renesas.com> -Date: Thu, 12 Apr 2018 16:19:39 +0700 -Subject: [PATCH 4/6] soc: renesas: rcar-sysc: Add SYSCEXTMASK info for - r8a77990 - -Add specific SYSCEXTMASK register info so that -it is controlled during power domain on/off. - -Signed-off-by: Dien Pham <dien.pham.ry@renesas.com> ---- - drivers/soc/renesas/r8a77990-sysc.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/drivers/soc/renesas/r8a77990-sysc.c b/drivers/soc/renesas/r8a77990-sysc.c -index 84789f0..f011256 100644 ---- a/drivers/soc/renesas/r8a77990-sysc.c -+++ b/drivers/soc/renesas/r8a77990-sysc.c -@@ -8,6 +8,7 @@ - * the Free Software Foundation; version 2 of the License. - */ - -+#include <linux/bitops.h> - #include <linux/bug.h> - #include <linux/kernel.h> - -@@ -30,7 +31,12 @@ - { "3dg-a", 0x100, 0, R8A77990_PD_3DG_A, R8A77990_PD_3DG_B }, - }; - -+static struct rcar_sysc_extra_regs r8a77990_extra_regs = { -+ .sysc_extmask_offs = 0x2F8, .sysc_extmask_msks = BIT(0) -+}; -+ - const struct rcar_sysc_info r8a77990_sysc_info __initconst = { - .areas = r8a77990_areas, - .num_areas = ARRAY_SIZE(r8a77990_areas), -+ .extra_regs = &r8a77990_extra_regs, - }; --- -1.9.1 - diff --git a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0005-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0005-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch deleted file mode 100644 index fa43c4c..0000000 --- a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0005-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 5ff3017324652ef42ca7cf3a1d6ae3c33f6192a9 Mon Sep 17 00:00:00 2001 -From: Dien Pham <dien.pham.ry@renesas.com> -Date: Thu, 12 Apr 2018 16:22:58 +0700 -Subject: [PATCH 5/6] soc: renesas: rcar-sysc: Add SYSCEXTMASK info for - r8a77965 - -Add specific SYSCEXTMASK register info so that -it is controlled during power domain on/off. - -Signed-off-by: Dien Pham <dien.pham.ry@renesas.com> ---- - drivers/soc/renesas/r8a77965-sysc.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/drivers/soc/renesas/r8a77965-sysc.c b/drivers/soc/renesas/r8a77965-sysc.c -index 65e805e..60751cf 100644 ---- a/drivers/soc/renesas/r8a77965-sysc.c -+++ b/drivers/soc/renesas/r8a77965-sysc.c -@@ -8,6 +8,7 @@ - * the Free Software Foundation; version 2 of the License. - */ - -+#include <linux/bitops.h> - #include <linux/bug.h> - #include <linux/kernel.h> - -@@ -32,7 +33,12 @@ - { "a3ir", 0x180, 0, R8A77965_PD_A3IR, R8A77965_PD_ALWAYS_ON }, - }; - -+static struct rcar_sysc_extra_regs r8a77965_extra_regs = { -+ .sysc_extmask_offs = 0x2F8, .sysc_extmask_msks = BIT(0) -+}; -+ - const struct rcar_sysc_info r8a77965_sysc_info __initconst = { - .areas = r8a77965_areas, - .num_areas = ARRAY_SIZE(r8a77965_areas), -+ .extra_regs = &r8a77965_extra_regs, - }; --- -1.9.1 - diff --git a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0006-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0006-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch deleted file mode 100644 index 2d59618..0000000 --- a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0006-soc-renesas-rcar-sysc-Add-SYSCEXTMASK-info-for-r8a77.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 9264b321a1de7ff851f2015384cc0fcbd35e2736 Mon Sep 17 00:00:00 2001 -From: Dien Pham <dien.pham.ry@renesas.com> -Date: Thu, 12 Apr 2018 16:27:44 +0700 -Subject: [PATCH 6/6] soc: renesas: rcar-sysc: Add SYSCEXTMASK info for - r8a77970 - -Add specific SYSCEXTMASK register info so that -it is controlled during power domain on/off. - -Signed-off-by: Dien Pham <dien.pham.ry@renesas.com> ---- - drivers/soc/renesas/r8a77970-sysc.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/drivers/soc/renesas/r8a77970-sysc.c b/drivers/soc/renesas/r8a77970-sysc.c -index 8c61416..db7b0de 100644 ---- a/drivers/soc/renesas/r8a77970-sysc.c -+++ b/drivers/soc/renesas/r8a77970-sysc.c -@@ -8,6 +8,7 @@ - * published by the Free Software Foundation. - */ - -+#include <linux/bitops.h> - #include <linux/bug.h> - #include <linux/kernel.h> - -@@ -33,7 +34,12 @@ - { "a2sc1", 0x400, 5, R8A77970_PD_A2SC1, R8A77970_PD_A2SC0 }, - }; - -+static struct rcar_sysc_extra_regs r8a77970_extra_regs = { -+ .sysc_extmask_offs = 0x1B0, .sysc_extmask_msks = BIT(0) -+}; -+ - const struct rcar_sysc_info r8a77970_sysc_info __initconst = { - .areas = r8a77970_areas, - .num_areas = ARRAY_SIZE(r8a77970_areas), -+ .extra_regs = &r8a77970_extra_regs, - }; --- -1.9.1 - diff --git a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/defconfig b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/defconfig index c5ca754..102f46b 100644 --- a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/defconfig +++ b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/defconfig @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 4.14.0 Kernel Configuration +# Linux/arm64 4.14.35 Kernel Configuration # CONFIG_ARM64=y CONFIG_64BIT=y @@ -503,6 +503,7 @@ CONFIG_CAVIUM_ERRATUM_30115=y CONFIG_QCOM_FALKOR_ERRATUM_1003=y CONFIG_QCOM_FALKOR_ERRATUM_1009=y CONFIG_QCOM_QDF2400_ERRATUM_0065=y +CONFIG_QCOM_FALKOR_ERRATUM_E1041=y CONFIG_ARM64_4K_PAGES=y # CONFIG_ARM64_16K_PAGES is not set # CONFIG_ARM64_64K_PAGES is not set @@ -591,6 +592,8 @@ CONFIG_CRASH_DUMP=y CONFIG_XEN_DOM0=y CONFIG_XEN=y CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_UNMAP_KERNEL_AT_EL0=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y # CONFIG_ARMV8_DEPRECATED is not set # CONFIG_ARM64_SW_TTBR0_PAN is not set @@ -2486,8 +2489,7 @@ CONFIG_SPI_ROCKCHIP=y CONFIG_SPI_QUP=y CONFIG_SPI_S3C64XX=y # CONFIG_SPI_SC18IS602 is not set -CONFIG_SPI_SH_MSIOF=y -# CONFIG_SPI_SH_MSIOF_TRANSFER_SYNC_DEBUG is not set +# CONFIG_SPI_SH_MSIOF is not set # CONFIG_SPI_SH_HSPI is not set # CONFIG_SPI_SUN4I is not set # CONFIG_SPI_SUN6I is not set @@ -2503,7 +2505,7 @@ CONFIG_SPI_SH_MSIOF=y # # SPI Protocol Masters # -CONFIG_SPI_SPIDEV=y +CONFIG_SPI_SPIDEV=m # CONFIG_SPI_LOOPBACK_TEST is not set # CONFIG_SPI_TLE62X0 is not set # CONFIG_SPI_SLAVE is not set @@ -2908,7 +2910,6 @@ CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR=y CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y CONFIG_CPU_THERMAL=y # CONFIG_CLOCK_THERMAL is not set -# CONFIG_DEVFREQ_THERMAL is not set CONFIG_THERMAL_EMULATION=y CONFIG_HISI_THERMAL=y # CONFIG_MAX77620_THERMAL is not set @@ -4203,7 +4204,6 @@ CONFIG_HID_CHICONY=y # CONFIG_HID_CORSAIR is not set # CONFIG_HID_PRODIKEYS is not set # CONFIG_HID_CMEDIA is not set -# CONFIG_HID_CP2112 is not set CONFIG_HID_CYPRESS=y # CONFIG_HID_DRAGONRISE is not set # CONFIG_HID_EMS_FF is not set @@ -5090,23 +5090,7 @@ CONFIG_SOC_TEGRA_PMC_TEGRA186=y CONFIG_SOC_TEGRA_POWERGATE_BPMP=y # CONFIG_SOC_TI is not set # CONFIG_SOC_ZTE is not set -CONFIG_PM_DEVFREQ=y - -# -# DEVFREQ Governors -# -CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y -CONFIG_DEVFREQ_GOV_PERFORMANCE=y -CONFIG_DEVFREQ_GOV_POWERSAVE=y -CONFIG_DEVFREQ_GOV_USERSPACE=y -CONFIG_DEVFREQ_GOV_PASSIVE=y - -# -# DEVFREQ Drivers -# -# CONFIG_ARM_EXYNOS_BUS_DEVFREQ is not set -# CONFIG_ARM_RK3399_DMC_DEVFREQ is not set -# CONFIG_PM_DEVFREQ_EVENT is not set +# CONFIG_PM_DEVFREQ is not set CONFIG_EXTCON=y # @@ -6144,6 +6128,7 @@ CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_KPP=m CONFIG_CRYPTO_ACOMP2=y # CONFIG_CRYPTO_RSA is not set # CONFIG_CRYPTO_DH is not set |