On 06/02/2019 12:46, Philipp Tomsich wrote: > On 11.01.2019, at 01:31, Andre Przywara <andre.przyw...@arm.com> wrote:
Hi, >> >> The normal MMIO accessor macros (readX/writeX) guarantee a strong ordering, >> even with normal memory accesses [1]. >> For some MMIO operations (framebuffers being a prominent example) this is >> not needed, and the rather costly barrier inserted on weakly ordered >> systems like ARM costs some performance. >> To mitigate this issue, Linux introduced readX_relaxed and >> writeX_relaxed primitives, which only guarantee ordering between each >> other, so are typically faster due to the missing barrier. >> >> We probably do not care so much about performance in U-Boot, but want to >> have those primitives for two other reasons: >> - Being able to use the _relaxed macros simplifies porting drivers from >> Linux. >> - The missing barrier typically allows to generate smaller code, which can >> relieve some chronically tight SPL builds. >> >> Add those macros definitions by using the __raw versions of the >> accessors, which matches an earlier (and less complicated) version of >> the Linux implementation. >> >> [1] https://lwn.net/Articles/698014/ > > No Signed-off-by? Doh, indeed. Got so excited about my commit message, that I forgot the obvious (and I only think about -s *after* hitting Enter). > Reviewed-by: Philipp Tomsich <philipp.toms...@theobroma-systems.com> > [On my experimental RK3399 after modifying a few drivers:] > Tested-by: Philipp Tomsich <philipp.toms...@theobroma-systems.com> Cool, many thanks for that! Out of curiosity, did you really need *_relaxed for some reason? Cheers, Andre. -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.