usb: musb: Fix platform code being unable to override ep access ops
musb-core was setting the ops to the default indexed or flat handlers after checking for platform overrides. Reverse the order of this so that platform overrides actually work. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
be78038177
commit
47a82730b5
|
@ -2032,13 +2032,7 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
|
|||
if (musb->ops->quirks)
|
||||
musb->io.quirks = musb->ops->quirks;
|
||||
|
||||
/* At least tusb6010 has it's own offsets.. */
|
||||
if (musb->ops->ep_offset)
|
||||
musb->io.ep_offset = musb->ops->ep_offset;
|
||||
if (musb->ops->ep_select)
|
||||
musb->io.ep_select = musb->ops->ep_select;
|
||||
|
||||
/* ..and some devices use indexed offset or flat offset */
|
||||
/* Set default ep access to indexed offset or flat offset ops */
|
||||
if (musb->io.quirks & MUSB_INDEXED_EP) {
|
||||
musb->io.ep_offset = musb_indexed_ep_offset;
|
||||
musb->io.ep_select = musb_indexed_ep_select;
|
||||
|
@ -2046,6 +2040,11 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
|
|||
musb->io.ep_offset = musb_flat_ep_offset;
|
||||
musb->io.ep_select = musb_flat_ep_select;
|
||||
}
|
||||
/* And override them with platform specific ops if specified. */
|
||||
if (musb->ops->ep_offset)
|
||||
musb->io.ep_offset = musb->ops->ep_offset;
|
||||
if (musb->ops->ep_select)
|
||||
musb->io.ep_select = musb->ops->ep_select;
|
||||
|
||||
if (musb->ops->fifo_mode)
|
||||
fifo_mode = musb->ops->fifo_mode;
|
||||
|
|
Loading…
Reference in New Issue