Re: [PATCH] x86_64: Add memcpy32_toio to write to PCI MMIO

From: Vinod Koul
Date: Tue Sep 16 2014 - 11:55:01 EST


On Tue, Sep 09, 2014 at 10:01:18AM +0200, Clemens Ladisch wrote:
> Subhransu S. Prusty wrote:
> > This is needed because the hardware
>
> Which hardware? Every x86-64 CPU ever built by AMD, Intel, and VIA?
Baytrail and few other SoCs
>
> > does not support 64-bit moveq insructions while writing to PCI MMIO.
>
> > +#ifndef CONFIG_X86_64
> > +#define MEMCPY_TOIO memcpy_toio
> > +#else
> > +#define MEMCPY_TOIO memcpy32_toio
> > +#endif
>
> This does not change any code that uses memcpy_toio().
So the devices cant do 64bit memcpy_toio so we are forced to use 32bit
copies only. This given us such an option
>
> > + for (i = 0; i < count/sizeof(u32); i++)
> > + writel(*src_32++, dst_32++);
>
> This breaks when count is not a multiple of four.
Ah yes, we can fix that

--
~Vinod

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/