kernel: bump 4.14 to 4.14.48 for 18.06
[openwrt/openwrt.git] / target / linux / ipq806x / patches-4.14 / 0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch
index 89e7490d773ba3d2e0012568ad23b64eeb3a5aef..c92393495b04e5c4a553abd82114754074fb9891 100644 (file)
@@ -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; }