Loading arch/arm/boot/dts/qcom/sdxhedgehog-nand-dualwifi-cdp.dts +1 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ qcom,clk-rates = <400000 20000000 25000000 50000000>; qcom,bus-width = <4>; qcom,core_3_0v_support; qcom,nonremovable; pinctrl-names = "active", "sleep"; Loading arch/arm/boot/dts/qcom/sdxhedgehog-nand-dualwifi-mtp.dts +1 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ qcom,clk-rates = <400000 20000000 25000000 50000000>; qcom,bus-width = <4>; qcom,core_3_0v_support; qcom,nonremovable; pinctrl-names = "active", "sleep"; Loading drivers/mmc/host/sdhci-msm.c +5 −3 Original line number Diff line number Diff line Loading @@ -1780,7 +1780,7 @@ struct sdhci_msm_pltfm_data *sdhci_msm_populate_pdata(struct device *dev, sdhci_msm_pm_qos_parse(dev, pdata); if (of_get_property(np, "qcom,core_3_0v_support", NULL)) pdata->core_3_0v_support = true; msm_host->core_3_0v_support = true; return pdata; out: Loading Loading @@ -2445,7 +2445,9 @@ static irqreturn_t sdhci_msm_pwr_irq(int irq, void *data) */ mb(); if ((io_level & REQ_IO_HIGH) && (msm_host->caps_0 & CORE_3_0V_SUPPORT)) if ((io_level & REQ_IO_HIGH) && (msm_host->caps_0 & CORE_3_0V_SUPPORT) && !msm_host->core_3_0v_support) writel_relaxed((readl_relaxed(host->ioaddr + CORE_VENDOR_SPEC) & ~CORE_IO_PAD_PWR_SWITCH), host->ioaddr + CORE_VENDOR_SPEC); Loading Loading @@ -3856,7 +3858,7 @@ static void sdhci_set_default_hw_caps(struct sdhci_msm_host *msm_host, msm_host->use_14lpp_dll = true; /* Fake 3.0V support for SDIO devices which requires such voltage */ if (msm_host->pdata->core_3_0v_support) { if (msm_host->core_3_0v_support) { caps |= CORE_3_0V_SUPPORT; writel_relaxed( (readl_relaxed(host->ioaddr + SDHCI_CAPABILITIES) | Loading drivers/mmc/host/sdhci-msm.h +2 −2 Original line number Diff line number Diff line /* * Copyright (c) 2015, The Linux Foundation. All rights reserved. * Copyright (c) 2015, 2017, 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 Loading Loading @@ -152,7 +152,6 @@ struct sdhci_msm_pltfm_data { u32 ice_clk_max; u32 ice_clk_min; struct sdhci_msm_pm_qos_data pm_qos_data; bool core_3_0v_support; }; struct sdhci_msm_bus_vote { Loading Loading @@ -214,6 +213,7 @@ struct sdhci_msm_host { bool pm_qos_group_enable; struct sdhci_msm_pm_qos_irq pm_qos_irq; bool tuning_in_progress; bool core_3_0v_support; }; extern char *saved_command_line; Loading Loading
arch/arm/boot/dts/qcom/sdxhedgehog-nand-dualwifi-cdp.dts +1 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ qcom,clk-rates = <400000 20000000 25000000 50000000>; qcom,bus-width = <4>; qcom,core_3_0v_support; qcom,nonremovable; pinctrl-names = "active", "sleep"; Loading
arch/arm/boot/dts/qcom/sdxhedgehog-nand-dualwifi-mtp.dts +1 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ qcom,clk-rates = <400000 20000000 25000000 50000000>; qcom,bus-width = <4>; qcom,core_3_0v_support; qcom,nonremovable; pinctrl-names = "active", "sleep"; Loading
drivers/mmc/host/sdhci-msm.c +5 −3 Original line number Diff line number Diff line Loading @@ -1780,7 +1780,7 @@ struct sdhci_msm_pltfm_data *sdhci_msm_populate_pdata(struct device *dev, sdhci_msm_pm_qos_parse(dev, pdata); if (of_get_property(np, "qcom,core_3_0v_support", NULL)) pdata->core_3_0v_support = true; msm_host->core_3_0v_support = true; return pdata; out: Loading Loading @@ -2445,7 +2445,9 @@ static irqreturn_t sdhci_msm_pwr_irq(int irq, void *data) */ mb(); if ((io_level & REQ_IO_HIGH) && (msm_host->caps_0 & CORE_3_0V_SUPPORT)) if ((io_level & REQ_IO_HIGH) && (msm_host->caps_0 & CORE_3_0V_SUPPORT) && !msm_host->core_3_0v_support) writel_relaxed((readl_relaxed(host->ioaddr + CORE_VENDOR_SPEC) & ~CORE_IO_PAD_PWR_SWITCH), host->ioaddr + CORE_VENDOR_SPEC); Loading Loading @@ -3856,7 +3858,7 @@ static void sdhci_set_default_hw_caps(struct sdhci_msm_host *msm_host, msm_host->use_14lpp_dll = true; /* Fake 3.0V support for SDIO devices which requires such voltage */ if (msm_host->pdata->core_3_0v_support) { if (msm_host->core_3_0v_support) { caps |= CORE_3_0V_SUPPORT; writel_relaxed( (readl_relaxed(host->ioaddr + SDHCI_CAPABILITIES) | Loading
drivers/mmc/host/sdhci-msm.h +2 −2 Original line number Diff line number Diff line /* * Copyright (c) 2015, The Linux Foundation. All rights reserved. * Copyright (c) 2015, 2017, 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 Loading Loading @@ -152,7 +152,6 @@ struct sdhci_msm_pltfm_data { u32 ice_clk_max; u32 ice_clk_min; struct sdhci_msm_pm_qos_data pm_qos_data; bool core_3_0v_support; }; struct sdhci_msm_bus_vote { Loading Loading @@ -214,6 +213,7 @@ struct sdhci_msm_host { bool pm_qos_group_enable; struct sdhci_msm_pm_qos_irq pm_qos_irq; bool tuning_in_progress; bool core_3_0v_support; }; extern char *saved_command_line; Loading