ehci-pci: Fix PCI EHCI driver for 36-bit
authorZhao Chenhui <b35336@freescale.com>
Tue, 19 Apr 2011 02:47:05 +0000 (10:47 +0800)
committerRemy Bohmer <linux@bohmer.net>
Sat, 25 Jun 2011 07:53:10 +0000 (09:53 +0200)
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

index 4abe5e3b59a56946515ee1fff790d713d3973f3b..020ab11355eb81c5acfc44b33521fec37704c7bf 100644 (file)
@@ -42,7 +42,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) {
@@ -50,8 +49,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)));