[U-Boot] [PATCH 21/25] dm: usb: Convert echi-pci to use new DM PCI API
Marek Vasut
marex at denx.de
Tue Nov 17 09:03:25 CET 2015
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 <sjg at chromium.org>
> ---
>
> 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
More information about the U-Boot
mailing list