Patchwork [U-Boot] usb: ehci: exynos: Enable non-dt path

login
register
mail settings
Submitter Vivek Gautam
Date Jan. 11, 2013, 9:24 a.m.
Message ID <1357896269-4091-1-git-send-email-gautam.vivek@samsung.com>
Download mbox | patch
Permalink /patch/211250/
State Changes Requested
Delegated to: Minkyu Kang
Headers show

Comments

Vivek Gautam - Jan. 11, 2013, 9:24 a.m.
Enabling the non-dt path for the driver so that
we don't get any build errors for non-dt configuration.

Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
---

Earlier we had moved to fdt support for ehci-exynos driver, but
missed out the non-dt path. Although this driver serves for exysno5
onward only but better to keep the non-dt path also available.

 drivers/usb/host/ehci-exynos.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
Marek Vasut - Jan. 11, 2013, 9:32 a.m.
Dear Vivek Gautam,

> Enabling the non-dt path for the driver so that
> we don't get any build errors for non-dt configuration.
> 
> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>

Apply on the -samsung please

Best regards,
Marek Vasut
Vivek Gautam - Jan. 11, 2013, 9:55 a.m.
Hi Marek,


CCing Simon Glass, Minkyu Kang.

On Fri, Jan 11, 2013 at 3:02 PM, Marek Vasut <marex@denx.de> wrote:
> Dear Vivek Gautam,
>
>> Enabling the non-dt path for the driver so that
>> we don't get any build errors for non-dt configuration.
>>
>> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
>
> Apply on the -samsung please
>

Sorry !! missed to mention.
this patch is based and tested on u-boot-samsung.
Simon Glass - Jan. 11, 2013, 2:34 p.m.
Hi Vivek,

On Fri, Jan 11, 2013 at 1:24 AM, Vivek Gautam <gautam.vivek@samsung.com> wrote:
> Enabling the non-dt path for the driver so that
> we don't get any build errors for non-dt configuration.
>
> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>

Acked-by: Simon Glass <sjg@chromium.org>

But this has thrown up the issue that the FDT decode is done each
time. Could you (in a future patch) change this so that the FDT decode
happens once, and the values are put in a structure which is then used
subsequently?

Regards,
Simon

> ---
>
> Earlier we had moved to fdt support for ehci-exynos driver, but
> missed out the non-dt path. Although this driver serves for exysno5
> onward only but better to keep the non-dt path also available.
>
>  drivers/usb/host/ehci-exynos.c |   10 ++++++++++
>  1 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/usb/host/ehci-exynos.c b/drivers/usb/host/ehci-exynos.c
> index 3ca4c5c..6f0c6c3 100644
> --- a/drivers/usb/host/ehci-exynos.c
> +++ b/drivers/usb/host/ehci-exynos.c
> @@ -153,7 +153,12 @@ int ehci_hcd_init(int index, struct ehci_hccr **hccr, struct ehci_hcor **hcor)
>                 return -ENOMEM;
>         }
>
> +#ifdef CONFIG_OF_CONTROL
>         exynos_usb_parse_dt(gd->fdt_blob, exynos);
> +#else
> +       exynos->usb = (struct exynos_usb_phy *)samsung_get_base_usb_phy();
> +       exynos->hcd = samsung_get_base_usb_ehci();
> +#endif
>
>         setup_usb_phy(exynos->usb);
>
> @@ -185,7 +190,12 @@ int ehci_hcd_stop(int index)
>                 return -ENOMEM;
>         }
>
> +#ifdef CONFIG_OF_CONTROL
>         exynos_usb_parse_dt(gd->fdt_blob, exynos);
> +#else
> +       exynos->usb = (struct exynos_usb_phy *)samsung_get_base_usb_phy();
> +       exynos->hcd = samsung_get_base_usb_ehci();
> +#endif
>
>         reset_usb_phy(exynos->usb);
>
> --
> 1.7.6.5
>
Minkyu Kang - Feb. 12, 2013, 8:24 a.m.
Dear Vivek,

On 11/01/13 18:24, Vivek Gautam wrote:
> Enabling the non-dt path for the driver so that
> we don't get any build errors for non-dt configuration.
> 
> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
> ---
> 
> Earlier we had moved to fdt support for ehci-exynos driver, but
> missed out the non-dt path. Although this driver serves for exysno5
> onward only but better to keep the non-dt path also available.
> 
>  drivers/usb/host/ehci-exynos.c |   10 ++++++++++
>  1 files changed, 10 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/usb/host/ehci-exynos.c b/drivers/usb/host/ehci-exynos.c
> index 3ca4c5c..6f0c6c3 100644
> --- a/drivers/usb/host/ehci-exynos.c
> +++ b/drivers/usb/host/ehci-exynos.c
> @@ -153,7 +153,12 @@ int ehci_hcd_init(int index, struct ehci_hccr **hccr, struct ehci_hcor **hcor)
>  		return -ENOMEM;
>  	}
>  
> +#ifdef CONFIG_OF_CONTROL
>  	exynos_usb_parse_dt(gd->fdt_blob, exynos);
> +#else
> +	exynos->usb = (struct exynos_usb_phy *)samsung_get_base_usb_phy();
> +	exynos->hcd = samsung_get_base_usb_ehci();
> +#endif
>  
>  	setup_usb_phy(exynos->usb);
>  
> @@ -185,7 +190,12 @@ int ehci_hcd_stop(int index)
>  		return -ENOMEM;
>  	}
>  
> +#ifdef CONFIG_OF_CONTROL
>  	exynos_usb_parse_dt(gd->fdt_blob, exynos);
> +#else
> +	exynos->usb = (struct exynos_usb_phy *)samsung_get_base_usb_phy();
> +	exynos->hcd = samsung_get_base_usb_ehci();
> +#endif
>  
>  	reset_usb_phy(exynos->usb);
>  
> 

Patch looks good.
But I've got compiler warnings and errors when I disabled CONFIG_OF_CONTROL.

exynos_spi.c:391:12: warning: 'process_nodes' defined but not used [-Wunused-function]
ehci-exynos.c: In function 'ehci_hcd_init':
ehci-exynos.c:160:14: warning: assignment makes pointer from integer without a cast [enabled by default]
ehci-exynos.c: In function 'ehci_hcd_stop':
ehci-exynos.c:197:14: warning: assignment makes pointer from integer without a cast [enabled by default]
ehci-exynos.c: At top level:
ehci-exynos.c:48:12: warning: 'exynos_usb_parse_dt' defined but not used [-Wunused-function]
/opt/eldk-5.2/armv7a/sysroots/i686-eldk-linux/usr/bin/armv7a-vfp-neon-linux-gnueabi/arm-linux-gnueabi-ld.bfd:/home/share/Work/u-boot-samsung/spl/u-boot-spl.lds:1: ignoring invalid character `#' in expression
/opt/eldk-5.2/armv7a/sysroots/i686-eldk-linux/usr/bin/armv7a-vfp-neon-linux-gnueabi/arm-linux-gnueabi-ld.bfd:/home/share/Work/u-boot-samsung/spl/u-boot-spl.lds:1: syntax error
make[1]: *** [/home/share/Work/u-boot-samsung/spl/u-boot-spl] Error 1
make: *** [spl/u-boot-spl.bin] Error 2
make: *** Waiting for unfinished jobs....
smdk5250.c: In function 'board_eth_init':
smdk5250.c:152:6: warning: unused variable 'node' [-Wunused-variable]

Could you please check this issue also?

Thanks.
Minkyu Kang.
Vivek Gautam - Feb. 12, 2013, 9:26 a.m.
Hi Minkyu,


On Tue, Feb 12, 2013 at 1:54 PM, Minkyu Kang <mk7.kang@samsung.com> wrote:
> Dear Vivek,
>
> On 11/01/13 18:24, Vivek Gautam wrote:
>> Enabling the non-dt path for the driver so that
>> we don't get any build errors for non-dt configuration.
>>
>> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
>> ---
>>
>> Earlier we had moved to fdt support for ehci-exynos driver, but
>> missed out the non-dt path. Although this driver serves for exysno5
>> onward only but better to keep the non-dt path also available.
>>
>>  drivers/usb/host/ehci-exynos.c |   10 ++++++++++
>>  1 files changed, 10 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/usb/host/ehci-exynos.c b/drivers/usb/host/ehci-exynos.c
>> index 3ca4c5c..6f0c6c3 100644
>> --- a/drivers/usb/host/ehci-exynos.c
>> +++ b/drivers/usb/host/ehci-exynos.c
>> @@ -153,7 +153,12 @@ int ehci_hcd_init(int index, struct ehci_hccr **hccr, struct ehci_hcor **hcor)
>>               return -ENOMEM;
>>       }
>>
>> +#ifdef CONFIG_OF_CONTROL
>>       exynos_usb_parse_dt(gd->fdt_blob, exynos);
>> +#else
>> +     exynos->usb = (struct exynos_usb_phy *)samsung_get_base_usb_phy();
>> +     exynos->hcd = samsung_get_base_usb_ehci();
>> +#endif
>>
>>       setup_usb_phy(exynos->usb);
>>
>> @@ -185,7 +190,12 @@ int ehci_hcd_stop(int index)
>>               return -ENOMEM;
>>       }
>>
>> +#ifdef CONFIG_OF_CONTROL
>>       exynos_usb_parse_dt(gd->fdt_blob, exynos);
>> +#else
>> +     exynos->usb = (struct exynos_usb_phy *)samsung_get_base_usb_phy();
>> +     exynos->hcd = samsung_get_base_usb_ehci();
>> +#endif
>>
>>       reset_usb_phy(exynos->usb);
>>
>>
>
> Patch looks good.
> But I've got compiler warnings and errors when I disabled CONFIG_OF_CONTROL.
>
> exynos_spi.c:391:12: warning: 'process_nodes' defined but not used [-Wunused-function]
> ehci-exynos.c: In function 'ehci_hcd_init':
> ehci-exynos.c:160:14: warning: assignment makes pointer from integer without a cast [enabled by default]
> ehci-exynos.c: In function 'ehci_hcd_stop':
> ehci-exynos.c:197:14: warning: assignment makes pointer from integer without a cast [enabled by default]
> ehci-exynos.c: At top level:
> ehci-exynos.c:48:12: warning: 'exynos_usb_parse_dt' defined but not used [-Wunused-function]
> /opt/eldk-5.2/armv7a/sysroots/i686-eldk-linux/usr/bin/armv7a-vfp-neon-linux-gnueabi/arm-linux-gnueabi-ld.bfd:/home/share/Work/u-boot-samsung/spl/u-boot-spl.lds:1: ignoring invalid character `#' in expression
> /opt/eldk-5.2/armv7a/sysroots/i686-eldk-linux/usr/bin/armv7a-vfp-neon-linux-gnueabi/arm-linux-gnueabi-ld.bfd:/home/share/Work/u-boot-samsung/spl/u-boot-spl.lds:1: syntax error
> make[1]: *** [/home/share/Work/u-boot-samsung/spl/u-boot-spl] Error 1
> make: *** [spl/u-boot-spl.bin] Error 2
> make: *** Waiting for unfinished jobs....
> smdk5250.c: In function 'board_eth_init':
> smdk5250.c:152:6: warning: unused variable 'node' [-Wunused-variable]
>
> Could you please check this issue also?
>

Sure, will check this, and resolve the underlying issue.

Patch

diff --git a/drivers/usb/host/ehci-exynos.c b/drivers/usb/host/ehci-exynos.c
index 3ca4c5c..6f0c6c3 100644
--- a/drivers/usb/host/ehci-exynos.c
+++ b/drivers/usb/host/ehci-exynos.c
@@ -153,7 +153,12 @@  int ehci_hcd_init(int index, struct ehci_hccr **hccr, struct ehci_hcor **hcor)
 		return -ENOMEM;
 	}
 
+#ifdef CONFIG_OF_CONTROL
 	exynos_usb_parse_dt(gd->fdt_blob, exynos);
+#else
+	exynos->usb = (struct exynos_usb_phy *)samsung_get_base_usb_phy();
+	exynos->hcd = samsung_get_base_usb_ehci();
+#endif
 
 	setup_usb_phy(exynos->usb);
 
@@ -185,7 +190,12 @@  int ehci_hcd_stop(int index)
 		return -ENOMEM;
 	}
 
+#ifdef CONFIG_OF_CONTROL
 	exynos_usb_parse_dt(gd->fdt_blob, exynos);
+#else
+	exynos->usb = (struct exynos_usb_phy *)samsung_get_base_usb_phy();
+	exynos->hcd = samsung_get_base_usb_ehci();
+#endif
 
 	reset_usb_phy(exynos->usb);