• Inaky Perez-Gonzalez's avatar
    wimax/i2400m: during probe, call sdio_disable at most once · c77ca950
    Inaky Perez-Gonzalez authored
    In the Intel Wireless Multicomm 3200, the initialization is
    orchestrated by a component called Top. This component also monitors
    how many times a function is reset (via sdio_disable) to detect
    possible issues and will reset the whole multifunction device if any
    function triggers a maximum reset level.
    
    During WiMAX's probe, the driver needs to wait for Top to come up
    before it can enable the WiMAX function. If it cannot, it will return
    -ENODEV and the Top driver will rescan the SDIO bus once done
    loading.
    
    Currently, the WiMAX SDIO probe routine was trying a few times before
    returning -ENODEV, and this was triggering Top's too-many-resets
    detector. This is, in any case, unnecessary because the Top driver will
    force the bus rescan when the functions can be probed successfully.
    
    Added then a maxtries argument to i2400ms_enable_func() and set it to
    1 when calling from probe. We want to reuse this function instead of
    flat calling out sdio_enable_func() to take advantage of hardware
    quirk workarounds.
    Reported-by: default avatarCindy H Kao <cindy.h.kao@intel.com>
    Signed-off-by: default avatarInaky Perez-Gonzalez <inaky@linux.intel.com>
    c77ca950
sdio.c 16.5 KB