diff options
Diffstat (limited to 'drivers/mmc/host/sdhci-esdhc-imx.c')
| -rw-r--r-- | drivers/mmc/host/sdhci-esdhc-imx.c | 26 | 
1 files changed, 7 insertions, 19 deletions
| diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c index a20459744d21..b991cf0e60c5 100644 --- a/drivers/mmc/host/sdhci-esdhc-imx.c +++ b/drivers/mmc/host/sdhci-esdhc-imx.c @@ -434,10 +434,10 @@ static u32 esdhc_readl_le(struct sdhci_host *host, int reg)  			 * Do not advertise faster UHS modes if there are no  			 * pinctrl states for 100MHz/200MHz.  			 */ -			if (IS_ERR_OR_NULL(imx_data->pins_100mhz) || -			    IS_ERR_OR_NULL(imx_data->pins_200mhz)) -				val &= ~(SDHCI_SUPPORT_SDR50 | SDHCI_SUPPORT_DDR50 -					 | SDHCI_SUPPORT_SDR104 | SDHCI_SUPPORT_HS400); +			if (IS_ERR_OR_NULL(imx_data->pins_100mhz)) +				val &= ~(SDHCI_SUPPORT_SDR50 | SDHCI_SUPPORT_DDR50); +			if (IS_ERR_OR_NULL(imx_data->pins_200mhz)) +				val &= ~(SDHCI_SUPPORT_SDR104 | SDHCI_SUPPORT_HS400);  		}  	} @@ -1453,7 +1453,6 @@ static const struct cqhci_host_ops esdhc_cqhci_ops = {  	.dumpregs	= esdhc_sdhci_dumpregs,  }; -#ifdef CONFIG_OF  static int  sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,  			 struct sdhci_host *host, @@ -1486,9 +1485,9 @@ sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,  	if (of_property_read_u32(np, "fsl,delay-line", &boarddata->delay_line))  		boarddata->delay_line = 0; -	mmc_of_parse_voltage(np, &host->ocr_mask); +	mmc_of_parse_voltage(host->mmc, &host->ocr_mask); -	if (esdhc_is_usdhc(imx_data)) { +	if (esdhc_is_usdhc(imx_data) && !IS_ERR(imx_data->pinctrl)) {  		imx_data->pins_100mhz = pinctrl_lookup_state(imx_data->pinctrl,  						ESDHC_PINCTRL_STATE_100MHZ);  		imx_data->pins_200mhz = pinctrl_lookup_state(imx_data->pinctrl, @@ -1505,20 +1504,9 @@ sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,  	return 0;  } -#else -static inline int -sdhci_esdhc_imx_probe_dt(struct platform_device *pdev, -			 struct sdhci_host *host, -			 struct pltfm_imx_data *imx_data) -{ -	return -ENODEV; -} -#endif  static int sdhci_esdhc_imx_probe(struct platform_device *pdev)  { -	const struct of_device_id *of_id = -			of_match_device(imx_esdhc_dt_ids, &pdev->dev);  	struct sdhci_pltfm_host *pltfm_host;  	struct sdhci_host *host;  	struct cqhci_host *cq_host; @@ -1534,7 +1522,7 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)  	imx_data = sdhci_pltfm_priv(pltfm_host); -	imx_data->socdata = of_id->data; +	imx_data->socdata = device_get_match_data(&pdev->dev);  	if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS)  		cpu_latency_qos_add_request(&imx_data->pm_qos_req, 0); | 
