Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 47a82730 authored by Hans de Goede's avatar Hans de Goede Committed by Felipe Balbi
Browse files

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: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent be780381
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -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;