summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/arm/msm/msm.txt6
-rw-r--r--drivers/net/wireless/cnss2/pci.c21
-rw-r--r--drivers/rtc/qpnp-rtc.c11
-rw-r--r--drivers/soc/qcom/secure_buffer.c5
-rw-r--r--drivers/soc/qcom/socinfo.c9
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c6
-rw-r--r--include/net/cnss2.h1
-rw-r--r--include/soc/qcom/socinfo.h6
8 files changed, 55 insertions, 10 deletions
diff --git a/Documentation/devicetree/bindings/arm/msm/msm.txt b/Documentation/devicetree/bindings/arm/msm/msm.txt
index e4622558af55..a2b304344ef8 100644
--- a/Documentation/devicetree/bindings/arm/msm/msm.txt
+++ b/Documentation/devicetree/bindings/arm/msm/msm.txt
@@ -95,6 +95,9 @@ SoCs:
- SDM660
compatible = "qcom,sdm660"
+- SDM455
+ compatible = "qcom,sdm455"
+
- SDA658
compatible = "qcom,sda658"
@@ -292,6 +295,9 @@ compatible = "qcom,sdm660-cdp"
compatible = "qcom,sdm660-mtp"
compatible = "qcom,sdm660-qrd"
compatible = "qcom,sda660-qrd"
+compatible = "qcom,sdm455-mtp"
+compatible = "qcom,sdm455-qrd"
+compatible = "qcom,sdm455-cdp"
compatible = "qcom,sda658-mtp"
compatible = "qcom,sda658-cdp"
compatible = "qcom,sda660-mtp"
diff --git a/drivers/net/wireless/cnss2/pci.c b/drivers/net/wireless/cnss2/pci.c
index 4869b33c8526..8f9bc213cac3 100644
--- a/drivers/net/wireless/cnss2/pci.c
+++ b/drivers/net/wireless/cnss2/pci.c
@@ -236,6 +236,27 @@ static int cnss_set_pci_link(struct cnss_pci_data *pci_priv, bool link_up)
}
#endif /* CONFIG_PCI_MSM */
+int cnss_pci_is_device_down(struct device *dev)
+{
+ struct cnss_plat_data *plat_priv = cnss_bus_dev_to_plat_priv(dev);
+ struct cnss_pci_data *pci_priv;
+
+ if (!plat_priv) {
+ cnss_pr_err("plat_priv is NULL\n");
+ return -ENODEV;
+ }
+
+ pci_priv = plat_priv->bus_priv;
+ if (!pci_priv) {
+ cnss_pr_err("pci_priv is NULL\n");
+ return -ENODEV;
+ }
+
+ return test_bit(CNSS_DEV_ERR_NOTIFY, &plat_priv->driver_state) |
+ pci_priv->pci_link_down_ind;
+}
+EXPORT_SYMBOL(cnss_pci_is_device_down);
+
int cnss_pci_recovery_update_status(struct cnss_pci_data *pci_priv)
{
struct cnss_plat_data *plat_priv;
diff --git a/drivers/rtc/qpnp-rtc.c b/drivers/rtc/qpnp-rtc.c
index a2c004e0f7fd..bafcebb810de 100644
--- a/drivers/rtc/qpnp-rtc.c
+++ b/drivers/rtc/qpnp-rtc.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, 2017, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2015, 2017-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -374,6 +374,15 @@ qpnp_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alarm)
alarm->time.tm_sec, alarm->time.tm_mday,
alarm->time.tm_mon, alarm->time.tm_year);
+ rc = qpnp_read_wrapper(rtc_dd, value,
+ rtc_dd->alarm_base + REG_OFFSET_ALARM_CTRL1, 1);
+ if (rc) {
+ dev_err(dev, "Read from ALARM CTRL1 failed\n");
+ return rc;
+ }
+
+ alarm->enabled = !!(value[0] & BIT_RTC_ALARM_ENABLE);
+
return 0;
}
diff --git a/drivers/soc/qcom/secure_buffer.c b/drivers/soc/qcom/secure_buffer.c
index 38ccc62a8484..59341ebf5e72 100644
--- a/drivers/soc/qcom/secure_buffer.c
+++ b/drivers/soc/qcom/secure_buffer.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2011 Google, Inc
- * Copyright (c) 2011-2017, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -144,7 +144,8 @@ static int secure_buffer_change_table(struct sg_table *table, int lock)
* secure environment to ensure the data is actually present
* in RAM
*/
- dmac_flush_range(chunk_list, chunk_list + chunk_list_len);
+ dmac_flush_range(chunk_list,
+ (void *)chunk_list + chunk_list_len);
ret = secure_buffer_change_chunk(virt_to_phys(chunk_list),
nchunks, V2_CHUNK_SIZE, lock);
diff --git a/drivers/soc/qcom/socinfo.c b/drivers/soc/qcom/socinfo.c
index 74dbd4d42272..7604affe63a8 100644
--- a/drivers/soc/qcom/socinfo.c
+++ b/drivers/soc/qcom/socinfo.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009-2017, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2009-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -570,6 +570,9 @@ static struct msm_soc_info cpu_of_id[] = {
[345] = {MSM_CPU_636, "SDM636"},
[346] = {MSM_CPU_636, "SDA636"},
+ /* 455 ID */
+ [385] = {MSM_CPU_455, "SDM455"},
+
/* Uninitialized IDs are not known to run Linux.
MSM_CPU_UNKNOWN is set to 0 to ensure these IDs are
considered as unknown CPU. */
@@ -1277,6 +1280,10 @@ static void * __init setup_dummy_socinfo(void)
dummy_socinfo.id = 324;
strlcpy(dummy_socinfo.build_id, "sda660 - ",
sizeof(dummy_socinfo.build_id));
+ } else if (early_machine_is_sdm455()) {
+ dummy_socinfo.id = 385;
+ strlcpy(dummy_socinfo.build_id, "sdm455 - ",
+ sizeof(dummy_socinfo.build_id));
} else if (early_machine_is_sdm658()) {
dummy_socinfo.id = 325;
strlcpy(dummy_socinfo.build_id, "sdm658 - ",
diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c b/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c
index 2c92a480af6b..a259ddda2ce2 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2013-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -2161,10 +2161,6 @@ static int mdss_mdp_cmd_wait4pingpong(struct mdss_mdp_ctl *ctl, void *arg)
mdss_fb_report_panel_dead(ctl->mfd);
} else if (ctx->pp_timeout_report_cnt == 0) {
MDSS_XLOG(0xbad);
- MDSS_XLOG_TOUT_HANDLER("mdp", "dsi0_ctrl", "dsi0_phy",
- "dsi1_ctrl", "dsi1_phy", "vbif", "vbif_nrt",
- "dbg_bus", "vbif_dbg_bus",
- "dsi_dbg_bus", "panic");
} else if (ctx->pp_timeout_report_cnt == MAX_RECOVERY_TRIALS) {
MDSS_XLOG(0xbad2);
MDSS_XLOG_TOUT_HANDLER("mdp", "dsi0_ctrl", "dsi0_phy",
diff --git a/include/net/cnss2.h b/include/net/cnss2.h
index 3a8b503c1938..e06f0b670d90 100644
--- a/include/net/cnss2.h
+++ b/include/net/cnss2.h
@@ -167,6 +167,7 @@ static inline int cnss_wlan_pm_control(struct device *dev, bool vote)
return 0;
}
#endif /* CONFIG_PCI_MSM */
+extern int cnss_pci_is_device_down(struct device *dev);
extern void cnss_schedule_recovery(struct device *dev,
enum cnss_recovery_reason reason);
extern int cnss_self_recovery(struct device *dev,
diff --git a/include/soc/qcom/socinfo.h b/include/soc/qcom/socinfo.h
index 9110963d0e9f..6b11533685a5 100644
--- a/include/soc/qcom/socinfo.h
+++ b/include/soc/qcom/socinfo.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009-2017, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2009-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -96,6 +96,8 @@
of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,sdm660")
#define early_machine_is_sda660() \
of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,sda660")
+#define early_machine_is_sdm455() \
+ of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,sdm455")
#define early_machine_is_sdm636() \
of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,sdm636")
#define early_machine_is_sda636() \
@@ -146,6 +148,7 @@
#define early_machine_is_msmhamster() 0
#define early_machine_is_sdm660() 0
#define early_machine_is_sda660() 0
+#define early_machine_is_sdm455() 0
#define early_machine_is_sdm636() 0
#define early_machine_is_sda636() 0
#define early_machine_is_sdm658() 0
@@ -211,6 +214,7 @@ enum msm_cpu {
MSM_CPU_8998,
MSM_CPU_HAMSTER,
MSM_CPU_660,
+ MSM_CPU_455,
MSM_CPU_630,
MSM_CPU_636,
};