[U-Boot] [PATCH v2 22/26] dm: usb: Convert echi-pci to use new DM PCI API

Simon Glass sjg at chromium.org
Mon Dec 14 04:46:30 CET 2015


Hi Marek,

On 29 November 2015 at 13:43, Marek Vasut <marex at denx.de> wrote:
> On Sunday, November 29, 2015 at 09:18:07 PM, Simon Glass wrote:
>> Convert this driver to use the new driver model PCI API.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
>
> ad subject -- it's EHCI, not ECHI .
>
>> ---
>>
>> Changes in v2:
>> - Use u32 instead of uint32_t
>> - Use uintptr_t to cast the hcor address
>>
>>  drivers/usb/host/ehci-pci.c | 51
>> ++++++++++++++++++++++++++++++++++----------- 1 file changed, 39
>> insertions(+), 12 deletions(-)
>>
>> diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
>> index d607088..cda1c6d 100644
>> --- a/drivers/usb/host/ehci-pci.c
>> +++ b/drivers/usb/host/ehci-pci.c
>> @@ -18,32 +18,34 @@ struct ehci_pci_priv {
>>       struct ehci_ctrl ehci;
>>  };
>>
>> -static void ehci_pci_common_init(pci_dev_t pdev, struct ehci_hccr
>> **ret_hccr, -                          struct ehci_hcor **ret_hcor)
>> +#ifdef CONFIG_DM_USB
>> +
>> +static void ehci_pci_init(struct udevice *dev, struct ehci_hccr
>> **ret_hccr, +                   struct ehci_hcor **ret_hcor)
>>  {
>>       struct ehci_hccr *hccr;
>>       struct ehci_hcor *hcor;
>> -     uint32_t cmd;
>> +     u32 cmd;
>>
>> -     hccr = (struct ehci_hccr *)pci_map_bar(pdev,
>> +     hccr = (struct ehci_hccr *)dm_pci_map_bar(dev,
>>                       PCI_BASE_ADDRESS_0, PCI_REGION_MEM);
>> -     hcor = (struct ehci_hcor *)((uint32_t) hccr +
>> +     hcor = (struct ehci_hcor *)((uintptr_t) hccr +
>>                       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)));
>> +           (u32)hccr, (u32)hcor,
>> +           (u32)HC_LENGTH(ehci_readl(&hccr->cr_capbase)));
>
> Use uintptr here as well then ?

That's a length rather than a pointer isn't it? Also it looks the same
as the other example.

>
>>       *ret_hccr = hccr;
>>       *ret_hcor = hcor;
>>
>>       /* enable busmaster */
>> -     pci_read_config_dword(pdev, PCI_COMMAND, &cmd);
>> +     dm_pci_read_config32(dev, PCI_COMMAND, &cmd);
>>       cmd |= PCI_COMMAND_MASTER;
>> -     pci_write_config_dword(pdev, PCI_COMMAND, cmd);
>> +     dm_pci_write_config32(dev, PCI_COMMAND, cmd);
>>  }
>
> Looks good otherwise,
>
> Acked-by: Marek Vasut <marex at denx.de>

I can always update this with a patch or even rework this patch. But for now:

Applied to u-boot-dm/next.

Regards,
Simon


More information about the U-Boot mailing list