diff options
| -rw-r--r-- | Documentation/devicetree/bindings/arm/msm/msm.txt | 6 | ||||
| -rw-r--r-- | drivers/net/wireless/cnss2/pci.c | 21 | ||||
| -rw-r--r-- | drivers/rtc/qpnp-rtc.c | 11 | ||||
| -rw-r--r-- | drivers/soc/qcom/secure_buffer.c | 5 | ||||
| -rw-r--r-- | drivers/soc/qcom/socinfo.c | 9 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_intf_cmd.c | 6 | ||||
| -rw-r--r-- | include/net/cnss2.h | 1 | ||||
| -rw-r--r-- | include/soc/qcom/socinfo.h | 6 |
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, }; |
