ipq806x: refresh patches for kernel 5.4

Refresh patches and minor changes for new kernel support

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
master
Ansuel Smith 4 years ago committed by Petr Štetiar
parent 68b526e0a4
commit 71eb7b057b

@ -26,7 +26,7 @@ Signed-off-by: Thomas Pedersen <twp@codeaurora.org>
--- a/drivers/dma/qcom/Kconfig --- a/drivers/dma/qcom/Kconfig
+++ b/drivers/dma/qcom/Kconfig +++ b/drivers/dma/qcom/Kconfig
@@ -27,3 +27,13 @@ config QCOM_HIDMA @@ -28,3 +28,13 @@ config QCOM_HIDMA
(user to kernel, kernel to kernel, etc.). It only supports (user to kernel, kernel to kernel, etc.). It only supports
memcpy interface. The core is not intended for general memcpy interface. The core is not intended for general
purpose slave DMA. purpose slave DMA.

@ -12,7 +12,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
--- a/drivers/clk/qcom/gcc-ipq806x.c --- a/drivers/clk/qcom/gcc-ipq806x.c
+++ b/drivers/clk/qcom/gcc-ipq806x.c +++ b/drivers/clk/qcom/gcc-ipq806x.c
@@ -294,7 +294,7 @@ static struct clk_rcg gsbi1_uart_src = { @@ -365,7 +365,7 @@ static struct clk_rcg gsbi1_uart_src = {
.parent_names = gcc_pxo_pll8, .parent_names = gcc_pxo_pll8,
.num_parents = 2, .num_parents = 2,
.ops = &clk_rcg_ops, .ops = &clk_rcg_ops,
@ -21,7 +21,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
}, },
}, },
}; };
@@ -312,7 +312,7 @@ static struct clk_branch gsbi1_uart_clk @@ -383,7 +383,7 @@ static struct clk_branch gsbi1_uart_clk
}, },
.num_parents = 1, .num_parents = 1,
.ops = &clk_branch_ops, .ops = &clk_branch_ops,
@ -30,7 +30,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
}, },
}, },
}; };
@@ -890,6 +890,7 @@ static struct clk_branch gsbi1_h_clk = { @@ -961,6 +961,7 @@ static struct clk_branch gsbi1_h_clk = {
.hw.init = &(struct clk_init_data){ .hw.init = &(struct clk_init_data){
.name = "gsbi1_h_clk", .name = "gsbi1_h_clk",
.ops = &clk_branch_ops, .ops = &clk_branch_ops,

@ -10,17 +10,17 @@ SMEM and use it to register an MTD layout according to its content.
Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org> Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
Signed-off-by: Ram Chandra Jangir <rjangi@codeaurora.org> Signed-off-by: Ram Chandra Jangir <rjangi@codeaurora.org>
--- ---
drivers/mtd/Kconfig | 7 ++ drivers/mtd/parsers/Kconfig | 7 ++
drivers/mtd/Makefile | 1 + drivers/mtd/parsers/Makefile | 1 +
drivers/mtd/qcom_smem_part.c | 228 +++++++++++++++++++++++++++++++++++++++++++ drivers/mtd/parsers/qcom_smem_part.c | 228 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 236 insertions(+) 3 files changed, 236 insertions(+)
create mode 100644 drivers/mtd/qcom_smem_part.c create mode 100644 drivers/mtd/parsers/qcom_smem_part.c
--- a/drivers/mtd/Kconfig --- a/drivers/mtd/parsers/Kconfig
+++ b/drivers/mtd/Kconfig +++ b/drivers/mtd/parsers/Kconfig
@@ -193,6 +193,13 @@ config MTD_MYLOADER_PARTS @@ -20,6 +20,13 @@ config MTD_BCM63XX_PARTS
You will still need the parsing functions to be called by the driver This provides partition parsing for BCM63xx devices with CFE
for your particular device. It won't happen automatically. bootloaders.
+config MTD_QCOM_SMEM_PARTS +config MTD_QCOM_SMEM_PARTS
+ tristate "QCOM SMEM partitioning support" + tristate "QCOM SMEM partitioning support"
@ -29,11 +29,11 @@ Signed-off-by: Ram Chandra Jangir <rjangi@codeaurora.org>
+ This provides partitions parser for QCOM devices using SMEM + This provides partitions parser for QCOM devices using SMEM
+ such as IPQ806x. + such as IPQ806x.
+ +
comment "User Modules And Translation Layers" config MTD_CMDLINE_PARTS
tristate "Command line partition table parsing"
# depends on MTD
--- /dev/null --- /dev/null
+++ b/drivers/mtd/qcom_smem_part.c +++ b/drivers/mtd/parsers/qcom_smem_part.c
@@ -0,0 +1,235 @@ @@ -0,0 +1,235 @@
+/* +/*
+ * Copyright (c) 2015, The Linux Foundation. All rights reserved. + * Copyright (c) 2015, The Linux Foundation. All rights reserved.
@ -149,7 +149,7 @@ Signed-off-by: Ram Chandra Jangir <rjangi@codeaurora.org>
+ return 0; + return 0;
+} +}
+ +
+static int of_dev_node_match(struct device *dev, void *data) +static int of_dev_node_match(struct device *dev, const void *data)
+{ +{
+ return dev->of_node == data; + return dev->of_node == data;
+} +}
@ -270,13 +270,13 @@ Signed-off-by: Ram Chandra Jangir <rjangi@codeaurora.org>
+MODULE_LICENSE("GPL"); +MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Mathieu Olivari <mathieu@codeaurora.org>"); +MODULE_AUTHOR("Mathieu Olivari <mathieu@codeaurora.org>");
+MODULE_DESCRIPTION("Parsing code for SMEM based partition tables"); +MODULE_DESCRIPTION("Parsing code for SMEM based partition tables");
--- a/drivers/mtd/Makefile --- a/drivers/mtd/parsers/Makefile
+++ b/drivers/mtd/Makefile +++ b/drivers/mtd/parsers/Makefile
@@ -17,6 +17,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o @@ -3,6 +3,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
+obj-$(CONFIG_MTD_QCOM_SMEM_PARTS) += qcom_smem_part.o +obj-$(CONFIG_MTD_QCOM_SMEM_PARTS) += qcom_smem_part.o
obj-y += parsers/ obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
obj-$(CONFIG_MTD_PARSER_IMAGETAG) += parser_imagetag.o
# 'Users' - code which presents functionality to userspace. obj-$(CONFIG_MTD_AFS_PARTS) += afs.o

@ -8,7 +8,7 @@ Signed-off-by: Andy Gross <agross@codeaurora.org>
--- a/drivers/phy/qualcomm/Kconfig --- a/drivers/phy/qualcomm/Kconfig
+++ b/drivers/phy/qualcomm/Kconfig +++ b/drivers/phy/qualcomm/Kconfig
@@ -65,3 +65,15 @@ config PHY_QCOM_USB_HSIC @@ -91,3 +91,15 @@ config PHY_QCOM_USB_HSIC
select GENERIC_PHY select GENERIC_PHY
help help
Support for the USB HSIC ULPI compliant PHY on QCOM chipsets. Support for the USB HSIC ULPI compliant PHY on QCOM chipsets.
@ -26,8 +26,8 @@ Signed-off-by: Andy Gross <agross@codeaurora.org>
+ +
--- a/drivers/phy/qualcomm/Makefile --- a/drivers/phy/qualcomm/Makefile
+++ b/drivers/phy/qualcomm/Makefile +++ b/drivers/phy/qualcomm/Makefile
@@ -9,3 +9,4 @@ obj-$(CONFIG_PHY_QCOM_UFS) += phy-qcom- @@ -10,3 +10,4 @@ obj-$(CONFIG_PHY_QCOM_UFS_14NM) += phy-
obj-$(CONFIG_PHY_QCOM_UFS) += phy-qcom-ufs-qmp-20nm.o obj-$(CONFIG_PHY_QCOM_UFS_20NM) += phy-qcom-ufs-qmp-20nm.o
obj-$(CONFIG_PHY_QCOM_USB_HS) += phy-qcom-usb-hs.o obj-$(CONFIG_PHY_QCOM_USB_HS) += phy-qcom-usb-hs.o
obj-$(CONFIG_PHY_QCOM_USB_HSIC) += phy-qcom-usb-hsic.o obj-$(CONFIG_PHY_QCOM_USB_HSIC) += phy-qcom-usb-hsic.o
+obj-$(CONFIG_PHY_QCOM_DWC3) += phy-qcom-dwc3.o +obj-$(CONFIG_PHY_QCOM_DWC3) += phy-qcom-dwc3.o

@ -19,7 +19,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
--- a/arch/arm/mach-qcom/Kconfig --- a/arch/arm/mach-qcom/Kconfig
+++ b/arch/arm/mach-qcom/Kconfig +++ b/arch/arm/mach-qcom/Kconfig
@@ -6,6 +6,7 @@ menuconfig ARCH_QCOM @@ -7,6 +7,7 @@ menuconfig ARCH_QCOM
select ARM_AMBA select ARM_AMBA
select PINCTRL select PINCTRL
select QCOM_SCM if SMP select QCOM_SCM if SMP

@ -39,7 +39,7 @@ Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
--- a/drivers/opp/core.c --- a/drivers/opp/core.c
+++ b/drivers/opp/core.c +++ b/drivers/opp/core.c
@@ -1623,6 +1623,75 @@ put_table: @@ -2103,6 +2103,75 @@ put_table:
} }
/** /**
@ -117,7 +117,7 @@ Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
* @freq: OPP frequency to enable * @freq: OPP frequency to enable
--- a/include/linux/pm_opp.h --- a/include/linux/pm_opp.h
+++ b/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h
@@ -25,6 +25,7 @@ struct opp_table; @@ -22,6 +22,7 @@ struct opp_table;
enum dev_pm_opp_event { enum dev_pm_opp_event {
OPP_EVENT_ADD, OPP_EVENT_REMOVE, OPP_EVENT_ENABLE, OPP_EVENT_DISABLE, OPP_EVENT_ADD, OPP_EVENT_REMOVE, OPP_EVENT_ENABLE, OPP_EVENT_DISABLE,
@ -125,9 +125,9 @@ Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
}; };
/** /**
@@ -108,6 +109,10 @@ int dev_pm_opp_add(struct device *dev, u @@ -113,6 +114,10 @@ int dev_pm_opp_add(struct device *dev, u
unsigned long u_volt);
void dev_pm_opp_remove(struct device *dev, unsigned long freq); void dev_pm_opp_remove(struct device *dev, unsigned long freq);
void dev_pm_opp_remove_all_dynamic(struct device *dev);
+int dev_pm_opp_adjust_voltage(struct device *dev, unsigned long freq, +int dev_pm_opp_adjust_voltage(struct device *dev, unsigned long freq,
+ unsigned long u_volt, unsigned long u_volt_min, + unsigned long u_volt, unsigned long u_volt_min,
@ -136,7 +136,7 @@ Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
int dev_pm_opp_enable(struct device *dev, unsigned long freq); int dev_pm_opp_enable(struct device *dev, unsigned long freq);
int dev_pm_opp_disable(struct device *dev, unsigned long freq); int dev_pm_opp_disable(struct device *dev, unsigned long freq);
@@ -208,6 +213,14 @@ static inline void dev_pm_opp_remove(str @@ -242,6 +247,14 @@ static inline void dev_pm_opp_remove_all
{ {
} }

@ -12,7 +12,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
--- a/drivers/opp/core.c --- a/drivers/opp/core.c
+++ b/drivers/opp/core.c +++ b/drivers/opp/core.c
@@ -125,6 +125,27 @@ unsigned long dev_pm_opp_get_freq(struct @@ -127,6 +127,27 @@ unsigned long dev_pm_opp_get_freq(struct
} }
EXPORT_SYMBOL_GPL(dev_pm_opp_get_freq); EXPORT_SYMBOL_GPL(dev_pm_opp_get_freq);
@ -38,15 +38,15 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
+EXPORT_SYMBOL_GPL(dev_pm_opp_get_regulator); +EXPORT_SYMBOL_GPL(dev_pm_opp_get_regulator);
+ +
/** /**
* dev_pm_opp_is_turbo() - Returns if opp is turbo OPP or not * dev_pm_opp_get_level() - Gets the level corresponding to an available opp
* @opp: opp for which turbo mode is being verified * @opp: opp for which level value has to be returned for
--- a/include/linux/pm_opp.h --- a/include/linux/pm_opp.h
+++ b/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h
@@ -85,6 +85,7 @@ void dev_pm_opp_put_opp_table(struct opp @@ -83,6 +83,7 @@ void dev_pm_opp_put_opp_table(struct opp
unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp); unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp);
unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp); unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp);
+struct regulator *dev_pm_opp_get_regulator(struct device *dev); +struct regulator *dev_pm_opp_get_regulator(struct device *dev);
bool dev_pm_opp_is_turbo(struct dev_pm_opp *opp); unsigned int dev_pm_opp_get_level(struct dev_pm_opp *opp);

@ -17,7 +17,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
--- a/drivers/opp/core.c --- a/drivers/opp/core.c
+++ b/drivers/opp/core.c +++ b/drivers/opp/core.c
@@ -1663,6 +1663,7 @@ int dev_pm_opp_adjust_voltage(struct dev @@ -2143,6 +2143,7 @@ int dev_pm_opp_adjust_voltage(struct dev
struct opp_table *opp_table; struct opp_table *opp_table;
struct dev_pm_opp *tmp_opp, *opp = ERR_PTR(-ENODEV); struct dev_pm_opp *tmp_opp, *opp = ERR_PTR(-ENODEV);
int r = 0; int r = 0;
@ -25,7 +25,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
/* Find the opp_table */ /* Find the opp_table */
opp_table = _find_opp_table(dev); opp_table = _find_opp_table(dev);
@@ -1692,8 +1693,17 @@ int dev_pm_opp_adjust_voltage(struct dev @@ -2172,8 +2173,17 @@ int dev_pm_opp_adjust_voltage(struct dev
goto adjust_unlock; goto adjust_unlock;
opp->supplies->u_volt = u_volt; opp->supplies->u_volt = u_volt;

@ -31,7 +31,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
--- a/drivers/regulator/qcom_rpm-regulator.c --- a/drivers/regulator/qcom_rpm-regulator.c
+++ b/drivers/regulator/qcom_rpm-regulator.c +++ b/drivers/regulator/qcom_rpm-regulator.c
@@ -933,12 +933,21 @@ static const struct rpm_regulator_data r @@ -925,12 +925,21 @@ static const struct rpm_regulator_data r
{ } { }
}; };

@ -25,9 +25,9 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
--- a/drivers/cpufreq/cpufreq-dt.c --- a/drivers/cpufreq/cpufreq-dt.c
+++ b/drivers/cpufreq/cpufreq-dt.c +++ b/drivers/cpufreq/cpufreq-dt.c
@@ -32,6 +32,9 @@ struct private_data { @@ -27,6 +27,9 @@ struct private_data {
struct opp_table *opp_table;
struct device *cpu_dev; struct device *cpu_dev;
struct thermal_cooling_device *cdev;
const char *reg_name; const char *reg_name;
+ struct notifier_block opp_nb; + struct notifier_block opp_nb;
+ struct mutex lock; + struct mutex lock;
@ -35,7 +35,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
bool have_static_opps; bool have_static_opps;
}; };
@@ -47,12 +50,15 @@ static int set_target(struct cpufreq_pol @@ -42,12 +45,15 @@ static int set_target(struct cpufreq_pol
unsigned long freq = policy->freq_table[index].frequency; unsigned long freq = policy->freq_table[index].frequency;
int ret; int ret;
@ -51,7 +51,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
return ret; return ret;
} }
@@ -95,6 +101,39 @@ node_put: @@ -90,6 +96,39 @@ node_put:
return name; return name;
} }
@ -91,7 +91,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
static int resources_available(void) static int resources_available(void)
{ {
struct device *cpu_dev; struct device *cpu_dev;
@@ -251,10 +290,14 @@ static int cpufreq_init(struct cpufreq_p @@ -246,10 +285,14 @@ static int cpufreq_init(struct cpufreq_p
__func__, ret); __func__, ret);
} }
@ -107,7 +107,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
} }
priv->cpu_dev = cpu_dev; priv->cpu_dev = cpu_dev;
@@ -284,6 +327,8 @@ static int cpufreq_init(struct cpufreq_p @@ -281,6 +324,8 @@ static int cpufreq_init(struct cpufreq_p
out_free_cpufreq_table: out_free_cpufreq_table:
dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table); dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table);

@ -10,7 +10,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
--- a/drivers/cpufreq/cpufreq-dt.c --- a/drivers/cpufreq/cpufreq-dt.c
+++ b/drivers/cpufreq/cpufreq-dt.c +++ b/drivers/cpufreq/cpufreq-dt.c
@@ -173,8 +173,10 @@ static int opp_notifier(struct notifier_ @@ -178,8 +178,10 @@ static int opp_notifier(struct notifier_
ret = PTR_ERR(cpu_reg); ret = PTR_ERR(cpu_reg);
goto out; goto out;
} }

@ -109,8 +109,7 @@
+ drv_data->cpu_freq_threshold = 1000000000; + drv_data->cpu_freq_threshold = 1000000000;
+ } + }
+ +
+ drv_data->apps_fab_clk = devm_clk_get(&pdev->dev, "apps-fab-clk"); + apps_fab_clk = devm_clk_get(&pdev->dev, "apps-fab-clk");
+ apps_fab_clk = drv_data->apps_fab_clk;
+ ret = PTR_ERR_OR_ZERO(apps_fab_clk); + ret = PTR_ERR_OR_ZERO(apps_fab_clk);
+ if (ret) { + if (ret) {
+ /* + /*
@ -124,11 +123,11 @@
+ goto err; + goto err;
+ } + }
+ +
+ clk_set_rate(apps_fab_clk, drv_data->fab_freq_high);
+ clk_prepare_enable(apps_fab_clk); + clk_prepare_enable(apps_fab_clk);
+ clk_set_rate(apps_fab_clk, drv_data->fab_freq_high);
+ drv_data->apps_fab_clk = apps_fab_clk;
+ +
+ drv_data->ddr_fab_clk = devm_clk_get(&pdev->dev, "ddr-fab-clk"); + ddr_fab_clk = devm_clk_get(&pdev->dev, "ddr-fab-clk");
+ ddr_fab_clk = drv_data->ddr_fab_clk;
+ ret = PTR_ERR_OR_ZERO(ddr_fab_clk); + ret = PTR_ERR_OR_ZERO(ddr_fab_clk);
+ if (ret) { + if (ret) {
+ /* + /*
@ -143,8 +142,9 @@
+ goto err; + goto err;
+ } + }
+ +
+ clk_set_rate(ddr_fab_clk, drv_data->fab_freq_high);
+ clk_prepare_enable(ddr_fab_clk); + clk_prepare_enable(ddr_fab_clk);
+ clk_set_rate(ddr_fab_clk, drv_data->fab_freq_high);
+ drv_data->ddr_fab_clk = ddr_fab_clk;
+ +
+ return 0; + return 0;
+err: +err:
@ -219,7 +219,7 @@
+#endif +#endif
--- a/drivers/cpufreq/cpufreq-dt.c --- a/drivers/cpufreq/cpufreq-dt.c
+++ b/drivers/cpufreq/cpufreq-dt.c +++ b/drivers/cpufreq/cpufreq-dt.c
@@ -24,6 +24,7 @@ @@ -20,6 +20,7 @@
#include <linux/regulator/consumer.h> #include <linux/regulator/consumer.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/thermal.h> #include <linux/thermal.h>
@ -227,7 +227,7 @@
#include "cpufreq-dt.h" #include "cpufreq-dt.h"
@@ -106,6 +107,13 @@ static int set_target(struct cpufreq_pol @@ -111,6 +112,13 @@ static int set_target(struct cpufreq_pol
} }
} }
} }

@ -16,7 +16,7 @@ Signed-off-by: Lina Iyer <lina.iyer@linaro.org>
--- a/drivers/cpuidle/Kconfig.arm --- a/drivers/cpuidle/Kconfig.arm
+++ b/drivers/cpuidle/Kconfig.arm +++ b/drivers/cpuidle/Kconfig.arm
@@ -75,3 +75,10 @@ config ARM_MVEBU_V7_CPUIDLE @@ -86,3 +86,10 @@ config ARM_MVEBU_V7_CPUIDLE
depends on ARCH_MVEBU && !ARM64 depends on ARCH_MVEBU && !ARM64
help help
Select this to enable cpuidle on Armada 370, 38x and XP processors. Select this to enable cpuidle on Armada 370, 38x and XP processors.

@ -33,7 +33,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
--- a/arch/arm/Kconfig --- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig +++ b/arch/arm/Kconfig
@@ -331,7 +331,7 @@ config ARCH_MULTIPLATFORM @@ -318,7 +318,7 @@ config ARCH_MULTIPLATFORM
depends on MMU depends on MMU
select ARM_HAS_SG_CHAIN select ARM_HAS_SG_CHAIN
select ARM_PATCH_PHYS_VIRT select ARM_PATCH_PHYS_VIRT
@ -44,7 +44,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
select GENERIC_CLOCKEVENTS select GENERIC_CLOCKEVENTS
--- a/arch/arm/Makefile --- a/arch/arm/Makefile
+++ b/arch/arm/Makefile +++ b/arch/arm/Makefile
@@ -255,9 +255,11 @@ MACHINE := arch/arm/mach-$(word 1,$(mac @@ -258,9 +258,11 @@ MACHINE := arch/arm/mach-$(word 1,$(mac
else else
MACHINE := MACHINE :=
endif endif

@ -5,11 +5,11 @@ Subject: [PATCH 61/69] mtd: "rootfs" conflicts with OpenWrt auto mounting
Signed-off-by: John Crispin <john@phrozen.org> Signed-off-by: John Crispin <john@phrozen.org>
--- ---
drivers/mtd/qcom_smem_part.c | 4 ++++ drivers/mtd/parsers/qcom_smem_part.c | 4 ++++
1 file changed, 4 insertions(+) 1 file changed, 4 insertions(+)
--- a/drivers/mtd/qcom_smem_part.c --- a/drivers/mtd/parsers/qcom_smem_part.c
+++ b/drivers/mtd/qcom_smem_part.c +++ b/drivers/mtd/parsers/qcom_smem_part.c
@@ -189,6 +189,10 @@ static int parse_qcom_smem_partitions(st @@ -189,6 +189,10 @@ static int parse_qcom_smem_partitions(st
m_part->size = le32_to_cpu(s_part->size) * (*smem_blksz); m_part->size = le32_to_cpu(s_part->size) * (*smem_blksz);
m_part->offset = le32_to_cpu(s_part->start) * (*smem_blksz); m_part->offset = le32_to_cpu(s_part->start) * (*smem_blksz);

@ -14,7 +14,7 @@ Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
--- a/drivers/clk/qcom/gcc-ipq806x.c --- a/drivers/clk/qcom/gcc-ipq806x.c
+++ b/drivers/clk/qcom/gcc-ipq806x.c +++ b/drivers/clk/qcom/gcc-ipq806x.c
@@ -1233,6 +1233,8 @@ static struct clk_rcg prng_src = { @@ -1225,6 +1225,8 @@ static struct clk_rcg prng_src = {
.parent_map = gcc_pxo_pll8_map, .parent_map = gcc_pxo_pll8_map,
}, },
.clkr = { .clkr = {

@ -17,12 +17,12 @@ Signed-off-by: John Crispin <john@phrozen.org>
"qcom,rpmcc-apq8064", "qcom,rpmcc" "qcom,rpmcc-apq8064", "qcom,rpmcc"
"qcom,rpmcc-msm8996", "qcom,rpmcc" "qcom,rpmcc-msm8996", "qcom,rpmcc"
+ "qcom,rpmcc-ipq806x", "qcom,rpmcc" + "qcom,rpmcc-ipq806x", "qcom,rpmcc"
"qcom,rpmcc-msm8998", "qcom,rpmcc"
- #clock-cells : shall contain 1 "qcom,rpmcc-qcs404", "qcom,rpmcc"
--- a/include/dt-bindings/clock/qcom,rpmcc.h --- a/include/dt-bindings/clock/qcom,rpmcc.h
+++ b/include/dt-bindings/clock/qcom,rpmcc.h +++ b/include/dt-bindings/clock/qcom,rpmcc.h
@@ -45,6 +45,10 @@ @@ -37,6 +37,10 @@
#define RPM_XO_A0 27 #define RPM_XO_A0 27
#define RPM_XO_A1 28 #define RPM_XO_A1 28
#define RPM_XO_A2 29 #define RPM_XO_A2 29
@ -35,7 +35,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
#define RPM_SMD_XO_CLK_SRC 0 #define RPM_SMD_XO_CLK_SRC 0
--- a/drivers/clk/qcom/clk-rpm.c --- a/drivers/clk/qcom/clk-rpm.c
+++ b/drivers/clk/qcom/clk-rpm.c +++ b/drivers/clk/qcom/clk-rpm.c
@@ -520,6 +520,16 @@ DEFINE_CLK_RPM_XO_BUFFER(apq8064, xo_a0_ @@ -512,6 +512,16 @@ DEFINE_CLK_RPM_XO_BUFFER(apq8064, xo_a0_
DEFINE_CLK_RPM_XO_BUFFER(apq8064, xo_a1_clk, xo_a1_a_clk, 24); DEFINE_CLK_RPM_XO_BUFFER(apq8064, xo_a1_clk, xo_a1_a_clk, 24);
DEFINE_CLK_RPM_XO_BUFFER(apq8064, xo_a2_clk, xo_a2_a_clk, 28); DEFINE_CLK_RPM_XO_BUFFER(apq8064, xo_a2_clk, xo_a2_a_clk, 28);
@ -52,7 +52,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
static struct clk_rpm *apq8064_clks[] = { static struct clk_rpm *apq8064_clks[] = {
[RPM_APPS_FABRIC_CLK] = &apq8064_afab_clk, [RPM_APPS_FABRIC_CLK] = &apq8064_afab_clk,
[RPM_APPS_FABRIC_A_CLK] = &apq8064_afab_a_clk, [RPM_APPS_FABRIC_A_CLK] = &apq8064_afab_a_clk,
@@ -546,15 +556,40 @@ static struct clk_rpm *apq8064_clks[] = @@ -538,15 +548,40 @@ static struct clk_rpm *apq8064_clks[] =
[RPM_XO_A2] = &apq8064_xo_a2_clk, [RPM_XO_A2] = &apq8064_xo_a2_clk,
}; };

@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
--- a/arch/arm/Makefile --- a/arch/arm/Makefile
+++ b/arch/arm/Makefile +++ b/arch/arm/Makefile
@@ -64,7 +64,7 @@ KBUILD_CFLAGS += $(call cc-option,-fno-i @@ -67,7 +67,7 @@ KBUILD_CFLAGS += $(call cc-option,-fno-i
# macro, but instead defines a whole series of macros which makes # macro, but instead defines a whole series of macros which makes
# testing for a specific architecture or later rather impossible. # testing for a specific architecture or later rather impossible.
arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m

@ -22,7 +22,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
--- a/arch/arm/Kconfig --- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig +++ b/arch/arm/Kconfig
@@ -1926,6 +1926,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN @@ -1825,6 +1825,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
The command-line arguments provided by the boot loader will be The command-line arguments provided by the boot loader will be
appended to the the device tree bootargs property. appended to the the device tree bootargs property.
@ -133,7 +133,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
} }
*ptr = '\0'; *ptr = '\0';
@@ -148,7 +212,9 @@ int atags_to_fdt(void *atag_list, void * @@ -166,7 +230,9 @@ int atags_to_fdt(void *atag_list, void *
else else
setprop_string(fdt, "/chosen", "bootargs", setprop_string(fdt, "/chosen", "bootargs",
atag->u.cmdline.cmdline); atag->u.cmdline.cmdline);
@ -144,7 +144,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
if (memcount >= sizeof(mem_reg_property)/4) if (memcount >= sizeof(mem_reg_property)/4)
continue; continue;
if (!atag->u.mem.size) if (!atag->u.mem.size)
@@ -187,6 +253,10 @@ int atags_to_fdt(void *atag_list, void * @@ -210,6 +276,10 @@ int atags_to_fdt(void *atag_list, void *
setprop(fdt, "/memory", "reg", mem_reg_property, setprop(fdt, "/memory", "reg", mem_reg_property,
4 * memcount * memsize); 4 * memcount * memsize);
} }
@ -157,7 +157,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
} }
--- a/init/main.c --- a/init/main.c
+++ b/init/main.c +++ b/init/main.c
@@ -102,6 +102,10 @@ @@ -103,6 +103,10 @@
#define CREATE_TRACE_POINTS #define CREATE_TRACE_POINTS
#include <trace/events/initcall.h> #include <trace/events/initcall.h>
@ -168,7 +168,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
static int kernel_init(void *); static int kernel_init(void *);
extern void init_IRQ(void); extern void init_IRQ(void);
@@ -593,6 +597,18 @@ asmlinkage __visible void __init start_k @@ -632,6 +636,18 @@ asmlinkage __visible void __init start_k
pr_notice("Kernel command line: %s\n", boot_command_line); pr_notice("Kernel command line: %s\n", boot_command_line);
/* parameters may set static keys */ /* parameters may set static keys */
jump_label_init(); jump_label_init();

@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
--- a/arch/arm/boot/dts/Makefile --- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile
@@ -791,6 +791,18 @@ dtb-$(CONFIG_ARCH_QCOM) += \ @@ -843,6 +843,18 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-ipq4019-ap.dk07.1-c1.dtb \ qcom-ipq4019-ap.dk07.1-c1.dtb \
qcom-ipq4019-ap.dk07.1-c2.dtb \ qcom-ipq4019-ap.dk07.1-c2.dtb \
qcom-ipq8064-ap148.dtb \ qcom-ipq8064-ap148.dtb \

@ -4,9 +4,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/soc/qcom/spm.c --- a/drivers/soc/qcom/spm.c
+++ b/drivers/soc/qcom/spm.c +++ b/drivers/soc/qcom/spm.c
@@ -219,6 +219,9 @@ static int __init qcom_cpuidle_init(stru @@ -214,6 +214,9 @@ static int __init qcom_cpuidle_init(stru
cpumask_t mask; if (!qcom_scm_is_available())
bool use_scm_power_down = false; return -EPROBE_DEFER;
+ if (!qcom_scm_is_available()) + if (!qcom_scm_is_available())
+ return -EPROBE_DEFER; + return -EPROBE_DEFER;

@ -38,7 +38,7 @@ Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
/* Set the Max TLP size to 2K, instead of using default of 4K */ /* Set the Max TLP size to 2K, instead of using default of 4K */
@@ -1367,6 +1375,8 @@ static int qcom_pcie_probe(struct platfo @@ -1340,6 +1348,8 @@ static int qcom_pcie_probe(struct platfo
struct dw_pcie *pci; struct dw_pcie *pci;
struct qcom_pcie *pcie; struct qcom_pcie *pcie;
int ret; int ret;
@ -47,7 +47,7 @@ Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
if (!pcie) if (!pcie)
@@ -1397,6 +1407,9 @@ static int qcom_pcie_probe(struct platfo @@ -1370,6 +1380,9 @@ static int qcom_pcie_probe(struct platfo
goto err_pm_runtime_put; goto err_pm_runtime_put;
} }

@ -31,7 +31,7 @@ Signed-off-by: Gokul Sriram Palanisamy <gpalan@codeaurora.org>
#define QCOM_PCIE_2_1_0_MAX_SUPPLY 3 #define QCOM_PCIE_2_1_0_MAX_SUPPLY 3
struct qcom_pcie_resources_2_1_0 { struct qcom_pcie_resources_2_1_0 {
struct clk *iface_clk; struct clk *iface_clk;
@@ -1475,6 +1483,35 @@ err_pm_runtime_put: @@ -1448,6 +1456,35 @@ err_pm_runtime_put:
return ret; return ret;
} }

@ -1,12 +1,10 @@
--- a/drivers/firmware/qcom_scm.c --- a/drivers/firmware/qcom_scm.c
+++ b/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c
@@ -609,6 +609,9 @@ static const struct of_device_id qcom_sc @@ -601,6 +601,7 @@ static const struct of_device_id qcom_sc
{ .compatible = "qcom,scm-ipq4019", SCM_HAS_BUS_CLK)
.data = NULL, /* no clocks */
}, },
+ { .compatible = "qcom,scm-ipq806x", { .compatible = "qcom,scm-ipq4019" },
+ .data = NULL, /* no clocks */ + { .compatible = "qcom,scm-ipq806x" },
+ }, { .compatible = "qcom,scm-msm8660", .data = (void *) SCM_HAS_CORE_CLK },
{ .compatible = "qcom,scm", { .compatible = "qcom,scm-msm8960", .data = (void *) SCM_HAS_CORE_CLK },
.data = (void *)(SCM_HAS_CORE_CLK { .compatible = "qcom,scm-msm8916", .data = (void *)(SCM_HAS_CORE_CLK |
| SCM_HAS_IFACE_CLK

@ -14,7 +14,7 @@ Signed-off-by: Ajay Kishore <akisho@codeaurora.org>
--- a/drivers/pinctrl/qcom/pinctrl-msm.c --- a/drivers/pinctrl/qcom/pinctrl-msm.c
+++ b/drivers/pinctrl/qcom/pinctrl-msm.c +++ b/drivers/pinctrl/qcom/pinctrl-msm.c
@@ -30,7 +30,8 @@ @@ -22,7 +22,8 @@
#include <linux/reboot.h> #include <linux/reboot.h>
#include <linux/pm.h> #include <linux/pm.h>
#include <linux/log2.h> #include <linux/log2.h>
@ -24,7 +24,7 @@ Signed-off-by: Ajay Kishore <akisho@codeaurora.org>
#include "../core.h" #include "../core.h"
#include "../pinconf.h" #include "../pinconf.h"
#include "pinctrl-msm.h" #include "pinctrl-msm.h"
@@ -628,6 +629,9 @@ static void msm_gpio_irq_mask(struct irq @@ -706,6 +707,9 @@ static void msm_gpio_irq_mask(struct irq
const struct msm_pingroup *g; const struct msm_pingroup *g;
unsigned long flags; unsigned long flags;
u32 val; u32 val;
@ -34,22 +34,30 @@ Signed-off-by: Ajay Kishore <akisho@codeaurora.org>
g = &pctrl->soc->groups[d->hwirq]; g = &pctrl->soc->groups[d->hwirq];
@@ -732,11 +736,30 @@ static int msm_gpio_irq_set_type(struct @@ -819,6 +823,7 @@ static int msm_gpio_irq_set_type(struct
const struct msm_pingroup *g;
unsigned long flags;
u32 val;
+ int ret;
g = &pctrl->soc->groups[d->hwirq];
@@ -832,11 +837,30 @@ static int msm_gpio_irq_set_type(struct
else else
clear_bit(d->hwirq, pctrl->dual_edge_irqs); clear_bit(d->hwirq, pctrl->dual_edge_irqs);
+ int ret = of_device_is_compatible(pctrl->dev->of_node, + ret = of_device_is_compatible(pctrl->dev->of_node,
+ "qcom,ipq8064-pinctrl"); + "qcom,ipq8064-pinctrl");
/* Route interrupts to application cpu */ /* Route interrupts to application cpu */
- val = readl(pctrl->regs + g->intr_target_reg); - val = msm_readl_intr_target(pctrl, g);
- val &= ~(7 << g->intr_target_bit); - val &= ~(7 << g->intr_target_bit);
- val |= g->intr_target_kpss_val << g->intr_target_bit; - val |= g->intr_target_kpss_val << g->intr_target_bit;
- writel(val, pctrl->regs + g->intr_target_reg); - msm_writel_intr_target(val, pctrl, g);
+ if (!ret) { + if (!ret) {
+ val = readl(pctrl->regs + g->intr_target_reg); + val = msm_readl_intr_target(pctrl, g);
+ val &= ~(7 << g->intr_target_bit); + val &= ~(7 << g->intr_target_bit);
+ val |= g->intr_target_kpss_val << g->intr_target_bit; + val |= g->intr_target_kpss_val << g->intr_target_bit;
+ writel(val, pctrl->regs + g->intr_target_reg); + msm_writel_intr_target(val, pctrl, g);
+ } else { + } else {
+ const __be32 *reg = of_get_property(pctrl->dev->of_node, "reg", NULL); + const __be32 *reg = of_get_property(pctrl->dev->of_node, "reg", NULL);
+ if (reg) { + if (reg) {

@ -10,7 +10,7 @@ Signed-off-by: Ram Chandra Jangir <rjangir@codeaurora.org>
--- a/drivers/pinctrl/qcom/pinctrl-ipq8064.c --- a/drivers/pinctrl/qcom/pinctrl-ipq8064.c
+++ b/drivers/pinctrl/qcom/pinctrl-ipq8064.c +++ b/drivers/pinctrl/qcom/pinctrl-ipq8064.c
@@ -308,7 +308,7 @@ static const char * const gpio_groups[] @@ -299,7 +299,7 @@ static const char * const gpio_groups[]
}; };
static const char * const mdio_groups[] = { static const char * const mdio_groups[] = {
@ -19,7 +19,7 @@ Signed-off-by: Ram Chandra Jangir <rjangir@codeaurora.org>
}; };
static const char * const mi2s_groups[] = { static const char * const mi2s_groups[] = {
@@ -412,8 +412,8 @@ static const char * const usb2_hsic_grou @@ -403,8 +403,8 @@ static const char * const usb2_hsic_grou
}; };
static const char * const rgmii2_groups[] = { static const char * const rgmii2_groups[] = {
@ -30,7 +30,7 @@ Signed-off-by: Ram Chandra Jangir <rjangir@codeaurora.org>
}; };
static const char * const sata_groups[] = { static const char * const sata_groups[] = {
@@ -548,7 +548,7 @@ static const struct msm_function ipq8064 @@ -539,7 +539,7 @@ static const struct msm_function ipq8064
static const struct msm_pingroup ipq8064_groups[] = { static const struct msm_pingroup ipq8064_groups[] = {
PINGROUP(0, mdio, NA, NA, NA, NA, NA, NA, NA, NA, NA), PINGROUP(0, mdio, NA, NA, NA, NA, NA, NA, NA, NA, NA),
PINGROUP(1, mdio, NA, NA, NA, NA, NA, NA, NA, NA, NA), PINGROUP(1, mdio, NA, NA, NA, NA, NA, NA, NA, NA, NA),
@ -39,7 +39,7 @@ Signed-off-by: Ram Chandra Jangir <rjangir@codeaurora.org>
PINGROUP(3, pcie1_rst, pcie1_prsnt, pdm, NA, NA, NA, NA, NA, NA, NA), PINGROUP(3, pcie1_rst, pcie1_prsnt, pdm, NA, NA, NA, NA, NA, NA, NA),
PINGROUP(4, pcie1_pwren_n, pcie1_pwren, NA, NA, NA, NA, NA, NA, NA, NA), PINGROUP(4, pcie1_pwren_n, pcie1_pwren, NA, NA, NA, NA, NA, NA, NA, NA),
PINGROUP(5, pcie1_clk_req, pcie1_pwrflt, NA, NA, NA, NA, NA, NA, NA, NA), PINGROUP(5, pcie1_clk_req, pcie1_pwrflt, NA, NA, NA, NA, NA, NA, NA, NA),
@@ -612,7 +612,7 @@ static const struct msm_pingroup ipq8064 @@ -603,7 +603,7 @@ static const struct msm_pingroup ipq8064
PINGROUP(63, pcie3_rst, NA, NA, NA, NA, NA, NA, NA, NA, NA), PINGROUP(63, pcie3_rst, NA, NA, NA, NA, NA, NA, NA, NA, NA),
PINGROUP(64, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), PINGROUP(64, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA),
PINGROUP(65, pcie3_clk_req, NA, NA, NA, NA, NA, NA, NA, NA, NA), PINGROUP(65, pcie3_clk_req, NA, NA, NA, NA, NA, NA, NA, NA, NA),

@ -60,7 +60,7 @@ will be executed twice with the same parameters for the same pinctrl.
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi
@@ -668,6 +668,7 @@ @@ -671,6 +671,7 @@
reg = <0x800000 0x4000>; reg = <0x800000 0x4000>;
gpio-controller; gpio-controller;

@ -2,9 +2,9 @@ From: Christian Lamparter <chunkeey@googlemail.com>
Subject: SoC: add qualcomm syscon Subject: SoC: add qualcomm syscon
--- a/drivers/soc/qcom/Makefile --- a/drivers/soc/qcom/Makefile
+++ b/drivers/soc/qcom/Makefile +++ b/drivers/soc/qcom/Makefile
@@ -18,6 +18,7 @@ obj-$(CONFIG_QCOM_SMEM_STATE) += smem_st @@ -20,6 +20,7 @@ obj-$(CONFIG_QCOM_SMP2P) += smp2p.o
obj-$(CONFIG_QCOM_SMP2P) += smp2p.o
obj-$(CONFIG_QCOM_SMSM) += smsm.o obj-$(CONFIG_QCOM_SMSM) += smsm.o
obj-$(CONFIG_QCOM_SOCINFO) += socinfo.o
obj-$(CONFIG_QCOM_WCNSS_CTRL) += wcnss_ctrl.o obj-$(CONFIG_QCOM_WCNSS_CTRL) += wcnss_ctrl.o
+obj-$(CONFIG_QCOM_TCSR) += qcom_tcsr.o +obj-$(CONFIG_QCOM_TCSR) += qcom_tcsr.o
obj-$(CONFIG_QCOM_APR) += apr.o obj-$(CONFIG_QCOM_APR) += apr.o
@ -12,9 +12,9 @@ Subject: SoC: add qualcomm syscon
obj-$(CONFIG_QCOM_SDM845_LLCC) += llcc-sdm845.o obj-$(CONFIG_QCOM_SDM845_LLCC) += llcc-sdm845.o
--- a/drivers/soc/qcom/Kconfig --- a/drivers/soc/qcom/Kconfig
+++ b/drivers/soc/qcom/Kconfig +++ b/drivers/soc/qcom/Kconfig
@@ -146,6 +146,13 @@ config QCOM_SMSM @@ -183,6 +183,13 @@ config QCOM_SOCINFO
Say yes here to support the Qualcomm Shared Memory State Machine. Say yes here to support the Qualcomm socinfo driver, providing
The state machine is represented by bits in shared memory. information about the SoC to user space.
+config QCOM_TCSR +config QCOM_TCSR
+ tristate "QCOM Top Control and Status Registers" + tristate "QCOM Top Control and Status Registers"
@ -25,7 +25,7 @@ Subject: SoC: add qualcomm syscon
+ +
config QCOM_WCNSS_CTRL config QCOM_WCNSS_CTRL
tristate "Qualcomm WCNSS control driver" tristate "Qualcomm WCNSS control driver"
depends on ARCH_QCOM depends on ARCH_QCOM || COMPILE_TEST
--- /dev/null --- /dev/null
+++ b/drivers/soc/qcom/qcom_tcsr.c +++ b/drivers/soc/qcom/qcom_tcsr.c
@@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@

Loading…
Cancel
Save