Re: [PATCH] usb: musb: Fix fifo reads for dm816x with musb_dsps

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

 



* Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> [150401 14:36]:
> On Wed, 18 Mar 2015 15:48:02 -0700 Tony Lindgren <tony@xxxxxxxxxxx> wrote:
> 
> > Looks like dm81xx can only do 32-bit fifo reads like am35x. Let's set
> > up musb-dsps with a custom read_fifo function based on the compatible
> > flag.
> > 
> > Otherwise we can get the following errors when starting dhclient on a
> > asix USB Ethernet adapter:
> > 
> > asix 2-1:1.0 eth2: asix_rx_fixup() Bad Header Length 0xffff003c, offset 4
> > 
> > While at it, let's also remove pointless cast of the driver data.
> 
> This breaks my i386 allmodconfig build.
> 
> > +/* Similar to am35x, dm81xx support only 32-bit read operation */
> > +static void dsps_read_fifo32(struct musb_hw_ep *hw_ep, u16 len, u8 *dst)
> > +{
> > +	void __iomem *fifo = hw_ep->fifo;
> > +	u32		val;
> > +	int		i;
> > +
> > +	/* Read for 32bit-aligned destination address */
> > +	if (likely((0x03 & (unsigned long)dst) == 0) && len >= 4) {
> > +		readsl(fifo, dst, len >> 2);
> 
> akpm3:/usr/src/linux-4.0-rc6> grep -r readsl arch/x86 
> akpm3:/usr/src/linux-4.0-rc6> 

Yes sorry, the fix is to use ioread32_rep() instead. I already sent a fix
for that on the 25th as:

"[PATCH 1/1] usb: musb: dsps: fix build on i386 when COMPILE_TEST is set"

https://www.marc.info/?l=linux-usb&m=142731859732737&w=1

Felipe, can you please get that into Linux next?

Regards,

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




[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux