ath10k: ignore configuring the incorrect board_id
authorRyan Hsu <ryanhsu@qca.qualcomm.com>
Thu, 22 Dec 2016 23:02:37 +0000 (15:02 -0800)
committerKalle Valo <kvalo@qca.qualcomm.com>
Fri, 30 Dec 2016 09:15:37 +0000 (11:15 +0200)
With command to get board_id from otp, in the case of following

  boot get otp board id result 0x00000000 board_id 0 chip_id 0
  boot using board name 'bus=pci,bmi-chip-id=0,bmi-board-id=0"
  ...
  failed to fetch board data for bus=pci,bmi-chip-id=0,bmi-board-id=0 from
  ath10k/QCA6174/hw3.0/board-2.bin

The invalid board_id=0 will be used as index to search in the board-2.bin.

Ignore the case with board_id=0, as it means the otp is not carrying
the board id information.

Signed-off-by: Ryan Hsu <ryanhsu@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/core.c

index 3319db178c2eeb1d3204606d636344f4a6fc5b67..874c2a755c66aaaf030a45eebbe8a6044d4274f2 100644 (file)
@@ -694,8 +694,11 @@ static int ath10k_core_get_board_id_from_otp(struct ath10k *ar)
                   "boot get otp board id result 0x%08x board_id %d chip_id %d\n",
                   result, board_id, chip_id);
 
-       if ((result & ATH10K_BMI_BOARD_ID_STATUS_MASK) != 0)
+       if ((result & ATH10K_BMI_BOARD_ID_STATUS_MASK) != 0 ||
+           (board_id == 0)) {
+               ath10k_warn(ar, "board id is not exist in otp, ignore it\n");
                return -EOPNOTSUPP;
+       }
 
        ar->id.bmi_ids_valid = true;
        ar->id.bmi_board_id = board_id;