Patchwork [U-Boot] ehci-pci: Fix PCI EHCI driver for 36-bit

login
register
mail settings
Submitter Zhao Chenhui
Date April 19, 2011, 2:47 a.m.
Message ID <1303181225-8066-1-git-send-email-b35336@freescale.com>
Download mbox | patch
Permalink /patch/91907/
State Accepted
Commit ae46d2a952b9f061b8b2b6c9e03b18274b48a30e
Delegated to: Remy Bohmer
Headers show

Comments

Zhao Chenhui - April 19, 2011, 2:47 a.m.
Convert the PCI base address into a virtual address.

Signed-off-by: Zhao Chenhui <b35336@freescale.com>
Signed-off-by: Li Yang <leoli@freescale.com>
---
 drivers/usb/host/ehci-pci.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
Kumar Gala - April 29, 2011, 3:41 p.m.
On Apr 18, 2011, at 9:47 PM, Zhao Chenhui wrote:

> Convert the PCI base address into a virtual address.
> 
> Signed-off-by: Zhao Chenhui <b35336@freescale.com>
> Signed-off-by: Li Yang <leoli@freescale.com>
> ---
> drivers/usb/host/ehci-pci.c |    5 ++---
> 1 files changed, 2 insertions(+), 3 deletions(-)

Remy,

any comments or acceptance of this patch?

- k

> 
> diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
> index a038b6c..e400aee 100644
> --- a/drivers/usb/host/ehci-pci.c
> +++ b/drivers/usb/host/ehci-pci.c
> @@ -43,7 +43,6 @@ static struct pci_device_id ehci_pci_ids[] = {
> int ehci_hcd_init(void)
> {
> 	pci_dev_t pdev;
> -	uint32_t addr;
> 
> 	pdev = pci_find_devices(ehci_pci_ids, CONFIG_PCI_EHCI_DEVICE);
> 	if (pdev == -1) {
> @@ -51,8 +50,8 @@ int ehci_hcd_init(void)
> 		return -1;
> 	}
> 
> -	pci_read_config_dword(pdev, PCI_BASE_ADDRESS_0, &addr);
> -	hccr = (struct ehci_hccr *)addr;
> +	hccr = (struct ehci_hccr *)pci_map_bar(pdev,
> +			PCI_BASE_ADDRESS_0, PCI_REGION_MEM);
> 	hcor = (struct ehci_hcor *)((uint32_t) hccr +
> 			HC_LENGTH(ehci_readl(&hccr->cr_capbase)));
> 
> -- 
> 1.6.4.1
> 
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
Kumar Gala - May 11, 2011, 10:41 a.m.
ping??
- k

On Apr 29, 2011, at 10:41 AM, Kumar Gala wrote:

> 
> On Apr 18, 2011, at 9:47 PM, Zhao Chenhui wrote:
> 
>> Convert the PCI base address into a virtual address.
>> 
>> Signed-off-by: Zhao Chenhui <b35336@freescale.com>
>> Signed-off-by: Li Yang <leoli@freescale.com>
>> ---
>> drivers/usb/host/ehci-pci.c |    5 ++---
>> 1 files changed, 2 insertions(+), 3 deletions(-)
> 
> Remy,
> 
> any comments or acceptance of this patch?
> 
> - k
> 
>> 
>> diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
>> index a038b6c..e400aee 100644
>> --- a/drivers/usb/host/ehci-pci.c
>> +++ b/drivers/usb/host/ehci-pci.c
>> @@ -43,7 +43,6 @@ static struct pci_device_id ehci_pci_ids[] = {
>> int ehci_hcd_init(void)
>> {
>> 	pci_dev_t pdev;
>> -	uint32_t addr;
>> 
>> 	pdev = pci_find_devices(ehci_pci_ids, CONFIG_PCI_EHCI_DEVICE);
>> 	if (pdev == -1) {
>> @@ -51,8 +50,8 @@ int ehci_hcd_init(void)
>> 		return -1;
>> 	}
>> 
>> -	pci_read_config_dword(pdev, PCI_BASE_ADDRESS_0, &addr);
>> -	hccr = (struct ehci_hccr *)addr;
>> +	hccr = (struct ehci_hccr *)pci_map_bar(pdev,
>> +			PCI_BASE_ADDRESS_0, PCI_REGION_MEM);
>> 	hcor = (struct ehci_hcor *)((uint32_t) hccr +
>> 			HC_LENGTH(ehci_readl(&hccr->cr_capbase)));
>> 
>> -- 
>> 1.6.4.1
>> 
>> 
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot@lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
Remy Bohmer - May 12, 2011, 8:05 p.m.
Hi,

2011/4/19 Zhao Chenhui <b35336@freescale.com>:
> Convert the PCI base address into a virtual address.
>
> Signed-off-by: Zhao Chenhui <b35336@freescale.com>
> Signed-off-by: Li Yang <leoli@freescale.com>
> ---
>  drivers/usb/host/ehci-pci.c |    5 ++---
>  1 files changed, 2 insertions(+), 3 deletions(-)

Applied to u-boot-usb.
Thanks.

Remy

Patch

diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
index a038b6c..e400aee 100644
--- a/drivers/usb/host/ehci-pci.c
+++ b/drivers/usb/host/ehci-pci.c
@@ -43,7 +43,6 @@  static struct pci_device_id ehci_pci_ids[] = {
 int ehci_hcd_init(void)
 {
 	pci_dev_t pdev;
-	uint32_t addr;
 
 	pdev = pci_find_devices(ehci_pci_ids, CONFIG_PCI_EHCI_DEVICE);
 	if (pdev == -1) {
@@ -51,8 +50,8 @@  int ehci_hcd_init(void)
 		return -1;
 	}
 
-	pci_read_config_dword(pdev, PCI_BASE_ADDRESS_0, &addr);
-	hccr = (struct ehci_hccr *)addr;
+	hccr = (struct ehci_hccr *)pci_map_bar(pdev,
+			PCI_BASE_ADDRESS_0, PCI_REGION_MEM);
 	hcor = (struct ehci_hcor *)((uint32_t) hccr +
 			HC_LENGTH(ehci_readl(&hccr->cr_capbase)));