> Please provide a valid email address here.

New email client helpfully stripped out the address...

>> called in a context where you can't iomap ? (ie with a spinlock held).

That is indeed the case. Keeping ehci generic is a valid point, but because of 
the above I don't think adding a "hook" is going to work. I'll take a look at 
the *platform_private option and re-post - this would also allow for better 
runtime checking, as you suggested.

 Cheers
  Jan




----------------------------------
> On Fri, 2009-03-06 at 11:30 +0000, - Reyneke wrote:
>> Patch applies to 440EPx devices in USB EHCI host mode (USB 2.0).
>>
>>>From the 440EPx errata:
>>
>> USBH_3: Host hangs after underrun or overrun occurs
>> USBH_5: EHCI0_INSNREGxx registers are reset by a Soft or Light Host 
>> Controller Reset
>>
>> Workround for USBH_3 is to enable Break Memory Transfer (BMT) in INSNREG3. 
>> But the controller is reset after this fix is applied, and thus the current 
>> workround is lost. The following short patch ensures INSNREG3 is correctly 
>> set after reset.
>
>> Signed-off-by: Jan Reyneke
>
> Please provide a valid email address here.
>
>> ---

>
> A few issues here. First, it would be preferable to have this in the
> ehci-ppc-of.c file. If you can't stick that in such a place that it will
> be called after ehci_reset, then maybe you can add a reset "hook" so
> that ehci-ppc-of.c gets to wrap the real ehci_reset().
>
> Also, while the ifdef CONFIG_440EPX is good to prevent building the code
> on machines that don't need it, it's also not enough. We allow building
> kernels that support multiple boards and SoC's within the same major CPU
> family and thus you -also- need runtime detection. Either using a quirk
> (I think the USB drivers have quirk flags) or just always doing the
> of_device_is_compatible() thingy which is yet another reason for finding
> a way to move that up into ehci-ppc-of.c
>
> That would also avoid some duplication...
>

>
> So if you manage to move the quirk here, you can thus re-use the
> existing code, or is the reset always called in a context where you
> can't iomap ? (ie with a spinlock held).
>
> In any case, I don't like adding a specific field to the generic ehci
> structure like that. If that's what it takes, add a void
> *platform_private to it, and use -that- to stick a host specific data
> structure, but for something not performance sensitive such as a reset,
> if you can get away with always mapping/unmapping, it's probably better.
>
> Cheers,
> Ben.
>
>

_________________________________________________________________
View your Twitter and Flickr updates from one place – Learn more!
http://clk.atdmt.com/UKM/go/137984870/direct/01/
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to