From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Tue, 17 Nov 2015 09:03:25 +0100 Subject: [U-Boot] [PATCH 21/25] dm: usb: Convert echi-pci to use new DM PCI API In-Reply-To: <1447732444-30892-22-git-send-email-sjg@chromium.org> References: <1447732444-30892-1-git-send-email-sjg@chromium.org> <1447732444-30892-22-git-send-email-sjg@chromium.org> Message-ID: <201511170903.26030.marex@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Tuesday, November 17, 2015 at 04:53:59 AM, Simon Glass wrote: > Convert this driver to use the new driver model PCI API. Nit, in the subject, it should be ehci, not echi ;-) > Signed-off-by: Simon Glass > --- > > drivers/usb/host/ehci-pci.c | 43 > +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 > insertions(+), 8 deletions(-) [...] > @@ -38,12 +40,12 @@ static void ehci_pci_common_init(pci_dev_t pdev, struct > ehci_hccr **ret_hccr, *ret_hcor = hcor; > > /* enable busmaster */ > - pci_read_config_dword(pdev, PCI_COMMAND, &cmd); > + dm_pci_read_config32(dev, PCI_COMMAND, &cmd); Is the dm_ prefix really needed on these functions ? > cmd |= PCI_COMMAND_MASTER; > - pci_write_config_dword(pdev, PCI_COMMAND, cmd); > + dm_pci_write_config32(dev, PCI_COMMAND, cmd); > } > > -#ifndef CONFIG_DM_USB > +#else > > #ifdef CONFIG_PCI_EHCI_DEVICE > static struct pci_device_id ehci_pci_ids[] = { > @@ -55,6 +57,31 @@ static struct pci_device_id ehci_pci_ids[] = { > }; > #endif > > +static void ehci_pci_legacy_init(pci_dev_t pdev, struct ehci_hccr > **ret_hccr, + struct ehci_hcor **ret_hcor) > +{ > + struct ehci_hccr *hccr; > + struct ehci_hcor *hcor; > + uint32_t cmd; > + > + hccr = (struct ehci_hccr *)pci_map_bar(pdev, > + PCI_BASE_ADDRESS_0, PCI_REGION_MEM); > + hcor = (struct ehci_hcor *)((uint32_t) hccr + This should be uintptr_t instead of uint32_t . Oh, and uint32_t should not be used, use u32 where applicable. > + HC_LENGTH(ehci_readl(&hccr->cr_capbase))); > + > + debug("EHCI-PCI init hccr 0x%x and hcor 0x%x hc_length %d\n", > + (uint32_t)hccr, (uint32_t)hcor, > + (uint32_t)HC_LENGTH(ehci_readl(&hccr->cr_capbase))); > + > + *ret_hccr = hccr; > + *ret_hcor = hcor; > + > + /* enable busmaster */ > + pci_read_config_dword(pdev, PCI_COMMAND, &cmd); > + cmd |= PCI_COMMAND_MASTER; > + pci_write_config_dword(pdev, PCI_COMMAND, cmd); > +} [...] Best regards, Marek Vasut