• Tim Schumacher's avatar
    ath9k: Check for errors when reading SREV register · b1e7cc22
    Tim Schumacher authored
    [ Upstream commit 2f90c7e5 ]
    
    Right now, if an error is encountered during the SREV register
    read (i.e. an EIO in ath9k_regread()), that error code gets
    passed all the way to __ath9k_hw_init(), where it is visible
    during the "Chip rev not supported" message.
    
        ath9k_htc 1-1.4:1.0: ath9k_htc: HTC initialized with 33 credits
        ath: phy2: Mac Chip Rev 0x0f.3 is not supported by this driver
        ath: phy2: Unable to initialize hardware; initialization status: -95
        ath: phy2: Unable to initialize hardware; initialization status: -95
        ath9k_htc: Failed to initialize the device
    
    Check for -EIO explicitly in ath9k_hw_read_revisions() and return
    a boolean based on the success of the operation. Check for that in
    __ath9k_hw_init() and abort with a more debugging-friendly message
    if reading the revisions wasn't successful.
    
        ath9k_htc 1-1.4:1.0: ath9k_htc: HTC initialized with 33 credits
        ath: phy2: Failed to read SREV register
        ath: phy2: Could not read hardware revision
        ath: phy2: Unable to initialize hardware; initialization status: -95
        ath: phy2: Unable to initialize hardware; initialization status: -95
        ath9k_htc: Failed to initialize the device
    
    This helps when debugging by directly showing the first point of
    failure and it could prevent possible errors if a 0x0f.3 revision
    is ever supported.
    Signed-off-by: default avatarTim Schumacher <timschumi@gmx.de>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    b1e7cc22
hw.c 84.9 KB