[lkml]   [2006]   [Nov]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: lib/iomap.c mmio_{in,out}s* vs. __raw_* accessors

    > The _only_ reason to use "ioread32be()" would be because the machine is
    > actually natively BE, and you want to avoid swab. That's kind of the point
    > of using "be32_to_cpu(__raw_readl(addr)))" like we do now - it will do the
    > byte swap only if it's necessary.
    > In contrast, your "swab(readl())" does _two_ byteswaps - once to turn it
    > into LE, then to turn it back into BE.

    I'm not doing a swab(readl()), I'm doing a swab(insl()) and have the
    arch provide a native BE accessor for readl_be(). The idea is that I
    don't want to add _be accessors for PIO and PIO is slow anyway. But I'm
    providing one for MMIO, along with the repeat versions. Have a second

    > So if we can't just rip it out, then we sure as hell shouldn't replace it
    > with something that is obviously worse either.
    > In other words - I don't see the reasoning here again. You seem to want to
    > make the code just worse.

    Wait, let's make thing clear, there are 2 things here:

    - MMIO : For that, I'm providing readw_be etc... which my patch defines
    based on __raw_* just as your suggest, I'm just adding a way for the
    arch to provide its own.

    - PIO : This is broken -now-. The current code doesn't swap at all in
    the PIO case, thus you get LE result when using ioread32be() on PIO. I
    propose to fix that with swab() because PIO sucks already, there is no
    "__raw" for PIO and it doesn't deserve new accessors nor speed.


    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2006-11-05 05:43    [W:0.019 / U:4.300 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site