[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