• Ivo van Doorn's avatar
    rt2x00: Add per-interface structure · 6bb40dd1
    Ivo van Doorn authored
    Rework the interface handling. Delete the interface structure
    and replace it with a per-interface structure. This changes the
    way rt2x00 handles the active interface drastically.
    Copy ieee80211_bss_conf to the this rt2x00_intf structure during
    the bss_info_changed() callback function. This will allow us to
    reference it later, and removes the requirement for the device flag
    SHORT_PREAMBLE flag which is interface specific.
    Drivers receive the option to give the maximum number of virtual
    interfaces the device can handle. Virtual interface support:
    rt2400pci: 1 sta or 1 ap, * monitor interfaces
    rt2500pci: 1 sta or 1 ap, * monitor interfaces
    rt2500usb: 1 sta or 1 ap, * monitor interfaces
    rt61pci: 1 sta or 4 ap, * monitor interfaces
    rt73usb: 1 sta or 4 ap, * monitor interfaces
    At the moment none of the drivers support AP and STA interfaces
    simultaneously, this is a hardware limitation so future support
    will be very unlikely.
    Each interface structure receives its dedicated beacon entry,
    with this we can easily work with beaconing while multiple master
    mode interfaces are currently active.
    The configuration handlers for the MAC, BSSID and type are
    often called together since they all belong to the interface
    configuration. Merge the 3 configuration calls and cleanup
    the API between rt2x00lib and the drivers. While we are cleaning
    up the interface configuration anyway, we might as well clean up
    the configuration handler as well.
    Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>