what is the difference between writel(), writel_relaxed, _raw_writel()
writel()
-- write to the little-endian hardware register with compiler memory barrier,
writel_relaxed
-- as above, without barrier,
__raw_writel()
-- as above (writel_relaxed()
) without endianess conversion (CPU ordering will be used).
Be careful, those are architecture-dependent.