diff options
Diffstat (limited to 'target/linux/ipq806x/patches-4.14/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch')
-rw-r--r-- | target/linux/ipq806x/patches-4.14/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/target/linux/ipq806x/patches-4.14/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch b/target/linux/ipq806x/patches-4.14/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch index 89e7490d77..c92393495b 100644 --- a/target/linux/ipq806x/patches-4.14/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch +++ b/target/linux/ipq806x/patches-4.14/0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch @@ -21,10 +21,10 @@ Signed-off-by: Ajay Kishore <akisho@codeaurora.org> --- a/drivers/firmware/qcom_scm-32.c +++ b/drivers/firmware/qcom_scm-32.c -@@ -561,6 +561,24 @@ - return ret ? : le32_to_cpu(out); +@@ -561,6 +561,24 @@ int __qcom_scm_pas_mss_reset(struct devi + return ret ? : le32_to_cpu(out); } - + +int __qcom_scm_pinmux_read(u32 svc_id, u32 cmd_id, u32 arg1) +{ + s32 ret; @@ -45,13 +45,13 @@ Signed-off-by: Ajay Kishore <akisho@codeaurora.org> + int __qcom_scm_set_remote_state(struct device *dev, u32 state, u32 id) { - struct { + struct { --- a/drivers/firmware/qcom_scm-64.c +++ b/drivers/firmware/qcom_scm-64.c -@@ -366,6 +366,16 @@ - return ret ? : res.a1; +@@ -366,6 +366,16 @@ int __qcom_scm_pas_mss_reset(struct devi + return ret ? : res.a1; } - + +int __qcom_scm_pinmux_read(u32 svc_id, u32 cmd_id, u32 arg1) +{ + return -ENOTSUPP; @@ -64,11 +64,11 @@ Signed-off-by: Ajay Kishore <akisho@codeaurora.org> + int __qcom_scm_set_remote_state(struct device *dev, u32 state, u32 id) { - struct qcom_scm_desc desc = {0}; + struct qcom_scm_desc desc = {0}; --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -470,3 +470,16 @@ static int __init qcom_scm_init(void) - return platform_driver_register(&qcom_scm_driver); + return platform_driver_register(&qcom_scm_driver); } subsys_initcall(qcom_scm_init); + @@ -89,7 +89,7 @@ Signed-off-by: Ajay Kishore <akisho@codeaurora.org> @@ -58,6 +58,13 @@ extern int __qcom_scm_pas_auth_and_rese extern int __qcom_scm_pas_shutdown(struct device *dev, u32 peripheral); extern int __qcom_scm_pas_mss_reset(struct device *dev, bool reset); - + +#define SCM_IO_READ 1 +#define SCM_IO_WRITE 2 +#define SCM_SVC_IO_ACCESS 0x5 @@ -112,23 +112,23 @@ Signed-off-by: Ajay Kishore <akisho@codeaurora.org> #include "../core.h" #include "../pinconf.h" #include "pinctrl-msm.h" -@@ -638,6 +639,9 @@ static int msm_gpio_irq_set_type(struct - const struct msm_pingroup *g; - unsigned long flags; - u32 val; +@@ -638,6 +639,9 @@ static void msm_gpio_irq_ack(struct irq_ + const struct msm_pingroup *g; + unsigned long flags; + u32 val; + u32 addr; + int ret; + const __be32 *reg; - - g = &pctrl->soc->groups[d->hwirq]; - + + g = &pctrl->soc->groups[d->hwirq]; + @@ -676,11 +680,30 @@ static int msm_gpio_irq_set_type(struct - else - clear_bit(d->hwirq, pctrl->dual_edge_irqs); - + else + clear_bit(d->hwirq, pctrl->dual_edge_irqs); + + int ret = of_device_is_compatible(pctrl->dev->of_node, + "qcom,ipq8064-pinctrl"); - /* Route interrupts to application cpu */ + /* Route interrupts to application cpu */ - val = readl(pctrl->regs + g->intr_target_reg); - val &= ~(7 << g->intr_target_bit); - val |= g->intr_target_kpss_val << g->intr_target_bit; @@ -154,17 +154,17 @@ Signed-off-by: Ajay Kishore <akisho@codeaurora.org> + pr_err("\n Routing interrupts to Apps proc failed"); + } + } - - /* Update configuration for gpio. - * RAW_STATUS_EN is left on for all gpio irqs. Due to the + + /* Update configuration for gpio. + * RAW_STATUS_EN is left on for all gpio irqs. Due to the @@ -954,4 +977,3 @@ int msm_pinctrl_remove(struct platform_d - return 0; + return 0; } EXPORT_SYMBOL(msm_pinctrl_remove); - --- a/include/linux/qcom_scm.h +++ b/include/linux/qcom_scm.h -@@ -43,6 +43,8 @@ +@@ -43,6 +43,8 @@ extern int qcom_scm_set_remote_state(u32 extern int qcom_scm_restore_sec_cfg(u32 device_id, u32 spare); extern int qcom_scm_iommu_secure_ptbl_size(u32 spare, size_t *size); extern int qcom_scm_iommu_secure_ptbl_init(u64 addr, u32 size, u32 spare); @@ -173,7 +173,7 @@ Signed-off-by: Ajay Kishore <akisho@codeaurora.org> #else static inline int qcom_scm_set_cold_boot_addr(void *entry, const cpumask_t *cpus) -@@ -73,5 +75,7 @@ +@@ -73,5 +75,7 @@ qcom_scm_set_remote_state(u32 state,u32 static inline int qcom_scm_restore_sec_cfg(u32 device_id, u32 spare) { return -ENODEV; } static inline int qcom_scm_iommu_secure_ptbl_size(u32 spare, size_t *size) { return -ENODEV; } static inline int qcom_scm_iommu_secure_ptbl_init(u64 addr, u32 size, u32 spare) { return -ENODEV; } |