diff mbox series

[v2,03/17] mmc: rockchip_sdhci: Fix use of device private data

Message ID 20230418164618.2571309-4-jonas@kwiboo.se
State Accepted
Commit b8c394b7268d5a8f927b30296ffe9cb4d71b06fc
Delegated to: Kever Yang
Headers show
Series rockchip: eMMC fixes for RK3568 and support for RK3588 | expand

Commit Message

Jonas Karlman April 18, 2023, 4:46 p.m. UTC
The device private data is misused in rockchip_sdhci_of_to_plat and
rockchip_sdhci_execute_tuning.

In these functions dev_get_priv is assigned to struct sdhci_host:

  struct sdhci_host *host = dev_get_priv(dev);

Instead, the sdhci host should refer to host in struct rockchip_sdhc:

  struct rockchip_sdhc *priv = dev_get_priv(dev);
  struct sdhci_host *host = &priv->host;

Because host is the first member in struct rockchip_sdhc this is not a
real problem, lets fix it anyway and also use priv name consistently.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
v2:
- No change

 drivers/mmc/rockchip_sdhci.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

Comments

Kever Yang April 20, 2023, 9:55 a.m. UTC | #1
On 2023/4/19 00:46, Jonas Karlman wrote:
> The device private data is misused in rockchip_sdhci_of_to_plat and
> rockchip_sdhci_execute_tuning.
>
> In these functions dev_get_priv is assigned to struct sdhci_host:
>
>    struct sdhci_host *host = dev_get_priv(dev);
>
> Instead, the sdhci host should refer to host in struct rockchip_sdhc:
>
>    struct rockchip_sdhc *priv = dev_get_priv(dev);
>    struct sdhci_host *host = &priv->host;
>
> Because host is the first member in struct rockchip_sdhc this is not a
> real problem, lets fix it anyway and also use priv name consistently.
>
> Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

Thanks,
- Kever

> ---
> v2:
> - No change
>
>   drivers/mmc/rockchip_sdhci.c | 16 +++++++++-------
>   1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/mmc/rockchip_sdhci.c b/drivers/mmc/rockchip_sdhci.c
> index e1409dd2c749..ae28840f6081 100644
> --- a/drivers/mmc/rockchip_sdhci.c
> +++ b/drivers/mmc/rockchip_sdhci.c
> @@ -450,7 +450,8 @@ static int rockchip_sdhci_set_ios_post(struct sdhci_host *host)
>   
>   static int rockchip_sdhci_execute_tuning(struct mmc *mmc, u8 opcode)
>   {
> -	struct sdhci_host *host = dev_get_priv(mmc->dev);
> +	struct rockchip_sdhc *priv = dev_get_priv(mmc->dev);
> +	struct sdhci_host *host = &priv->host;
>   	char tuning_loop_counter = SDHCI_TUNING_LOOP_COUNT;
>   	struct mmc_cmd cmd;
>   	u32 ctrl, blk_size;
> @@ -531,9 +532,9 @@ static int rockchip_sdhci_probe(struct udevice *dev)
>   	struct sdhci_data *data = (struct sdhci_data *)dev_get_driver_data(dev);
>   	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
>   	struct rockchip_sdhc_plat *plat = dev_get_plat(dev);
> -	struct rockchip_sdhc *prv = dev_get_priv(dev);
> +	struct rockchip_sdhc *priv = dev_get_priv(dev);
>   	struct mmc_config *cfg = &plat->cfg;
> -	struct sdhci_host *host = &prv->host;
> +	struct sdhci_host *host = &priv->host;
>   	struct clk clk;
>   	int ret;
>   
> @@ -547,8 +548,8 @@ static int rockchip_sdhci_probe(struct udevice *dev)
>   		printf("%s fail to get clk\n", __func__);
>   	}
>   
> -	prv->emmc_clk = clk;
> -	prv->dev = dev;
> +	priv->emmc_clk = clk;
> +	priv->dev = dev;
>   
>   	if (data->get_phy) {
>   		ret = data->get_phy(dev);
> @@ -566,7 +567,7 @@ static int rockchip_sdhci_probe(struct udevice *dev)
>   	host->quirks = SDHCI_QUIRK_WAIT_SEND_CMD;
>   
>   	host->mmc = &plat->mmc;
> -	host->mmc->priv = &prv->host;
> +	host->mmc->priv = &priv->host;
>   	host->mmc->dev = dev;
>   	upriv->mmc = host->mmc;
>   
> @@ -580,8 +581,9 @@ static int rockchip_sdhci_probe(struct udevice *dev)
>   static int rockchip_sdhci_of_to_plat(struct udevice *dev)
>   {
>   	struct rockchip_sdhc_plat *plat = dev_get_plat(dev);
> -	struct sdhci_host *host = dev_get_priv(dev);
> +	struct rockchip_sdhc *priv = dev_get_priv(dev);
>   	struct mmc_config *cfg = &plat->cfg;
> +	struct sdhci_host *host = &priv->host;
>   	int ret;
>   
>   	host->name = dev->name;
diff mbox series

Patch

diff --git a/drivers/mmc/rockchip_sdhci.c b/drivers/mmc/rockchip_sdhci.c
index e1409dd2c749..ae28840f6081 100644
--- a/drivers/mmc/rockchip_sdhci.c
+++ b/drivers/mmc/rockchip_sdhci.c
@@ -450,7 +450,8 @@  static int rockchip_sdhci_set_ios_post(struct sdhci_host *host)
 
 static int rockchip_sdhci_execute_tuning(struct mmc *mmc, u8 opcode)
 {
-	struct sdhci_host *host = dev_get_priv(mmc->dev);
+	struct rockchip_sdhc *priv = dev_get_priv(mmc->dev);
+	struct sdhci_host *host = &priv->host;
 	char tuning_loop_counter = SDHCI_TUNING_LOOP_COUNT;
 	struct mmc_cmd cmd;
 	u32 ctrl, blk_size;
@@ -531,9 +532,9 @@  static int rockchip_sdhci_probe(struct udevice *dev)
 	struct sdhci_data *data = (struct sdhci_data *)dev_get_driver_data(dev);
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
 	struct rockchip_sdhc_plat *plat = dev_get_plat(dev);
-	struct rockchip_sdhc *prv = dev_get_priv(dev);
+	struct rockchip_sdhc *priv = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
-	struct sdhci_host *host = &prv->host;
+	struct sdhci_host *host = &priv->host;
 	struct clk clk;
 	int ret;
 
@@ -547,8 +548,8 @@  static int rockchip_sdhci_probe(struct udevice *dev)
 		printf("%s fail to get clk\n", __func__);
 	}
 
-	prv->emmc_clk = clk;
-	prv->dev = dev;
+	priv->emmc_clk = clk;
+	priv->dev = dev;
 
 	if (data->get_phy) {
 		ret = data->get_phy(dev);
@@ -566,7 +567,7 @@  static int rockchip_sdhci_probe(struct udevice *dev)
 	host->quirks = SDHCI_QUIRK_WAIT_SEND_CMD;
 
 	host->mmc = &plat->mmc;
-	host->mmc->priv = &prv->host;
+	host->mmc->priv = &priv->host;
 	host->mmc->dev = dev;
 	upriv->mmc = host->mmc;
 
@@ -580,8 +581,9 @@  static int rockchip_sdhci_probe(struct udevice *dev)
 static int rockchip_sdhci_of_to_plat(struct udevice *dev)
 {
 	struct rockchip_sdhc_plat *plat = dev_get_plat(dev);
-	struct sdhci_host *host = dev_get_priv(dev);
+	struct rockchip_sdhc *priv = dev_get_priv(dev);
 	struct mmc_config *cfg = &plat->cfg;
+	struct sdhci_host *host = &priv->host;
 	int ret;
 
 	host->name = dev->name;