• Andrea Merello's avatar
    rtl818x_pci: handle broken PIO mapping · f4cf6287
    Andrea Merello authored
    All boards supported by this driver could work using PIO or MMIO for accessing
    registers.
    This driver tries to access HW by using MMIO, and, if this fails for somewhat
    reason, the driver tries to fall back to PIO mode.
    
    MMIO-mode is straightforward on all boards.
    PIO-mode is straightforward on rtl8180 only.
    
    On rtl8185 and rtl8187se boards not all registers are directly available in PIO
    mode (they are paged).
    
    On rtl8185 there are two pages and it is known how to switch page.
    PIO mode works, except for only one access to a register out of default page,
    recently added by me in the initialization code with patch:
    rtl818x_pci: Fix rtl8185 excessive IFS after CTS-to-self
    This can be easily fixed to work in both cases (MMIO and PIO).
    
    On rtl8187se, for a number of reasons, there is much more work to do to fix PIO
    access.
    PIO access is currently broken on rtl8187se, and it never worked.
    
    This patch fixes the said register write for rtl8185 and makes the driver to
    fail cleanly if PIO mode is attempted with rtl8187se boards.
    
    While doing this, I converted also a couple of printk(KERN_ERR) to dev_err(), in
    order to make checkpatch happy.
    Signed-off-by: default avatarAndrea Merello <andrea.merello@gmail.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    f4cf6287
rtl8180.h 3.88 KB