On 02/20/2013 11:26 PM, Joseph Lo wrote:
> On Thu, 2013-02-21 at 12:20 +0800, Stephen Warren wrote:
>> On 02/20/2013 07:23 PM, Joseph Lo wrote:
>>> On Thu, 2013-02-21 at 01:07 +0800, Stephen Warren wrote:
>>>> On 02/20/2013 12:05 AM, Joseph Lo wrote:
>>>>> Updating the sdhci-tegra driver to use mmc_of_parse to support standard
>>>>> MMC DT bindings. Then we can remove the redundant code that already
>>>>> support
>>
>>>>> @@ -220,15 +203,12 @@ static void sdhci_tegra_parse_dt(struct device *dev,
>>>>> struct sdhci_tegra *tegra_host)
>>>>> {
>>>> ...
>>>>> + struct sdhci_host *host;
>>>> ...
>>>>> + host = platform_get_drvdata(to_platform_device(dev));
>>>>> + mmc_of_parse(host->mmc);
>>>>> }
>>>>
>>>> It might be simpler to change the function prototype to simply pass in
>>>> the host object too.
>>>
>>> It's a interface problem that I can't fix now. If sdhci core is going to
>>> integrate mmc_of_parse into sdhci_get_of_property and mmc_gpio_get_ro
>>> into somethere sdhci_do_get_ro, then we can refine later.
>>
>> I meant to change the prototype of sdhci_tegra_parse_dt(). It would be
>> simple to change that function in this patch.
>
> Hmm. It might not too much different. Which version you prefer?
>
> 1. Original version
>
> 2.
sdhci_tegra_probe() already has all the values you need; I was thinking
of just passing in all of the values that this function needs, rather
than deriving anything within the function.
> static void sdhci_tegra_parse_dt(struct device *dev,
> - struct sdhci_tegra *tegra_host)
> + struct sdhci_host *host)
> {
> struct device_node *np = dev->of_node;
> - struct sdhci_host *host;
> + struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
> + struct sdhci_tegra *tegra_host = pltfm_host->priv;
>
> tegra_host->power_gpio = of_get_named_gpio(np, "power-gpios",0);
> -
> - host = platform_get_drvdata(to_platform_device(dev));
> mmc_of_parse(host->mmc);
> }
>
> @@ -240,7 +239,7 @@ static int sdhci_tegra_probe(struct platform_device
> *pdev)
> tegra_host->soc_data = soc_data;
> pltfm_host->priv = tegra_host;
>
> - sdhci_tegra_parse_dt(&pdev->dev, tegra_host);
> + sdhci_tegra_parse_dt(&pdev->dev, host);
That seems fairly direct though. Is "dev" available inside host,
platfm_host or tegra_host? You could obtain it from there if you wanted
to reduce the number of parameters passed to the function.
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html