Re: [PATCH 2/2] mmc: core: Use device_property_read instead of of_property_read

2017-05-23 Thread David Woods

On 05/19/2017 04:23 AM, Ulf Hansson wrote:

On 18 May 2017 at 00:17, David Woods  wrote:

Using the device_property interfaces allows mmc drivers to work
on platforms which run on either device tree or ACPI.

Signed-off-by: David Woods 
Reviewed-by: Chris Metcalf 
Cc: sta...@vger.linux.org
---
  drivers/mmc/core/host.c | 72 -
  1 file changed, 35 insertions(+), 37 deletions(-)

diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c
index 3f8c85d..d2c059e 100644
--- a/drivers/mmc/core/host.c
+++ b/drivers/mmc/core/host.c
@@ -176,19 +176,17 @@ static void mmc_retune_timer(unsigned long data)
   */
  int mmc_of_parse(struct mmc_host *host)
  {
-   struct device_node *np;
+   struct device *dev = host->parent;
 u32 bus_width;
 int ret;
 bool cd_cap_invert, cd_gpio_invert = false;
 bool ro_cap_invert, ro_gpio_invert = false;

-   if (!host->parent || !host->parent->of_node)
+   if (!dev)
 return 0;


So earlier we stopped executing the OF parsing at this point, unless
we had valid a of_node pointer. To be safe, I think we need to do
something similar here.

In other words, perhaps check the result from dev_fwnode(), before continue.


I will add that check.


[...]

mmc_pwrseq_alloc() is called from mmc_of_parse() which currently only
supports OF parsing. I assume you would like to convert that as well?
Perhaps that should even be the first step?


Our board does not have a power sequence device, so this is not 
something I have the hardware available to test.  It's not very clear to 
me how a pwrseq reference would be represented in ACPI or how to access 
it with the device_property API.  As it is, of_parse_phandle just 
returns NULL in the case where there is no parent->of_node.


-David Woods



Kind regards
Uffe





Re: [PATCH 2/2] mmc: core: Use device_property_read instead of of_property_read

2017-05-19 Thread Ulf Hansson
On 18 May 2017 at 00:17, David Woods  wrote:
> Using the device_property interfaces allows mmc drivers to work
> on platforms which run on either device tree or ACPI.
>
> Signed-off-by: David Woods 
> Reviewed-by: Chris Metcalf 
> Cc: sta...@vger.linux.org
> ---
>  drivers/mmc/core/host.c | 72 
> -
>  1 file changed, 35 insertions(+), 37 deletions(-)
>
> diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c
> index 3f8c85d..d2c059e 100644
> --- a/drivers/mmc/core/host.c
> +++ b/drivers/mmc/core/host.c
> @@ -176,19 +176,17 @@ static void mmc_retune_timer(unsigned long data)
>   */
>  int mmc_of_parse(struct mmc_host *host)
>  {
> -   struct device_node *np;
> +   struct device *dev = host->parent;
> u32 bus_width;
> int ret;
> bool cd_cap_invert, cd_gpio_invert = false;
> bool ro_cap_invert, ro_gpio_invert = false;
>
> -   if (!host->parent || !host->parent->of_node)
> +   if (!dev)
> return 0;
>

So earlier we stopped executing the OF parsing at this point, unless
we had valid a of_node pointer. To be safe, I think we need to do
something similar here.

In other words, perhaps check the result from dev_fwnode(), before continue.

[...]

mmc_pwrseq_alloc() is called from mmc_of_parse() which currently only
supports OF parsing. I assume you would like to convert that as well?
Perhaps that should even be the first step?

Kind regards
Uffe