Re: [PATCH -v3 1/4] pci, usb: Make usb handoff func all take base remapping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01/10/2011 05:07 PM, Greg KH wrote:
> On Mon, Jan 10, 2011 at 04:55:17PM -0800, Yinghai Lu wrote:
>>
>> So later could reuse them to do usb handoff much early for x86.
>>
>> will make arch early code get MMIO BAR and do remapping itself.
>>
>> -v2: still keep pci_device *pdev as parameter according to BenH.
>> -v3: expose three functions that take *base instead of including .c file.
>>
>> Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx>
>>
>> ---
>>  drivers/usb/host/pci-quirks.c |  195 ++++++++++++++++++++++++------------------
>>  drivers/usb/host/pci-quirks.h |    6 +
>>  2 files changed, 120 insertions(+), 81 deletions(-)
>>
>> Index: linux-2.6/drivers/usb/host/pci-quirks.c
>> ===================================================================
>> --- linux-2.6.orig/drivers/usb/host/pci-quirks.c
>> +++ linux-2.6/drivers/usb/host/pci-quirks.c
>> @@ -17,6 +17,19 @@
>>  #include "pci-quirks.h"
>>  #include "xhci-ext-caps.h"
>>  
>> +static void default_usb_handoff_udelay(unsigned long usecs)
>> +{
>> +	udelay(usecs);
>> +}
>> +
>> +static void __devinit default_usb_handoff_msleep(unsigned long msecs)
>> +{
>> +	msleep(msecs);
>> +}
> 
> What?
> 
> Why in the world would you not just call the real functions here?
> That's not acceptable, sorry.

for early access, can not use udelay yet, it will take some one.
Also msleep will cause crash, because it needs scheduler there.

> 
> 
>> +
>> +void (*usb_handoff_udelay)(unsigned long) = default_usb_handoff_udelay;
>> +void (*usb_handoff_msleep)(unsigned long) __devinitdata =
>> +			default_usb_handoff_msleep;

or do you mean use ..
+void (*usb_handoff_udelay)(unsigned long) = udelay;
+void (*usb_handoff_msleep)(unsigned long) __devinitdata =
+			msleep;



>> --- linux-2.6.orig/drivers/usb/host/pci-quirks.h
>> +++ linux-2.6/drivers/usb/host/pci-quirks.h
>> @@ -3,5 +3,11 @@
>>  
>>  void uhci_reset_hc(struct pci_dev *pdev, unsigned long base);
>>  int uhci_check_and_reset_hc(struct pci_dev *pdev, unsigned long base);
>> +void __usb_handoff_ohci(struct pci_dev *pdev, void __iomem *base);
>> +void __usb_handoff_ehci(struct pci_dev *pdev, void __iomem *base);
>> +void __usb_handoff_xhci(struct pci_dev *pdev, void __iomem *base);
> 
> External functions should never have "__" at the start of them, sorry.

will change that.

Thanks

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux