ath10k: Add BMI param value to execute otp to hw_param
BMI parameter value to execute downloaded otp binary is different for QCA99X0. Have a member in hw_params to hold hw specific BMI param. Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
committed by
Kalle Valo
parent
dcb02db106
commit
d772703e70
@@ -49,6 +49,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|||||||
.patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR,
|
.patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR,
|
||||||
.uart_pin = 7,
|
.uart_pin = 7,
|
||||||
.has_shifted_cc_wraparound = true,
|
.has_shifted_cc_wraparound = true,
|
||||||
|
.otp_exe_param = 0,
|
||||||
.fw = {
|
.fw = {
|
||||||
.dir = QCA988X_HW_2_0_FW_DIR,
|
.dir = QCA988X_HW_2_0_FW_DIR,
|
||||||
.fw = QCA988X_HW_2_0_FW_FILE,
|
.fw = QCA988X_HW_2_0_FW_FILE,
|
||||||
@@ -63,6 +64,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|||||||
.name = "qca6174 hw2.1",
|
.name = "qca6174 hw2.1",
|
||||||
.patch_load_addr = QCA6174_HW_2_1_PATCH_LOAD_ADDR,
|
.patch_load_addr = QCA6174_HW_2_1_PATCH_LOAD_ADDR,
|
||||||
.uart_pin = 6,
|
.uart_pin = 6,
|
||||||
|
.otp_exe_param = 0,
|
||||||
.fw = {
|
.fw = {
|
||||||
.dir = QCA6174_HW_2_1_FW_DIR,
|
.dir = QCA6174_HW_2_1_FW_DIR,
|
||||||
.fw = QCA6174_HW_2_1_FW_FILE,
|
.fw = QCA6174_HW_2_1_FW_FILE,
|
||||||
@@ -77,6 +79,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|||||||
.name = "qca6174 hw3.0",
|
.name = "qca6174 hw3.0",
|
||||||
.patch_load_addr = QCA6174_HW_3_0_PATCH_LOAD_ADDR,
|
.patch_load_addr = QCA6174_HW_3_0_PATCH_LOAD_ADDR,
|
||||||
.uart_pin = 6,
|
.uart_pin = 6,
|
||||||
|
.otp_exe_param = 0,
|
||||||
.fw = {
|
.fw = {
|
||||||
.dir = QCA6174_HW_3_0_FW_DIR,
|
.dir = QCA6174_HW_3_0_FW_DIR,
|
||||||
.fw = QCA6174_HW_3_0_FW_FILE,
|
.fw = QCA6174_HW_3_0_FW_FILE,
|
||||||
@@ -91,6 +94,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|||||||
.name = "qca6174 hw3.2",
|
.name = "qca6174 hw3.2",
|
||||||
.patch_load_addr = QCA6174_HW_3_0_PATCH_LOAD_ADDR,
|
.patch_load_addr = QCA6174_HW_3_0_PATCH_LOAD_ADDR,
|
||||||
.uart_pin = 6,
|
.uart_pin = 6,
|
||||||
|
.otp_exe_param = 0,
|
||||||
.fw = {
|
.fw = {
|
||||||
/* uses same binaries as hw3.0 */
|
/* uses same binaries as hw3.0 */
|
||||||
.dir = QCA6174_HW_3_0_FW_DIR,
|
.dir = QCA6174_HW_3_0_FW_DIR,
|
||||||
@@ -106,6 +110,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|||||||
.name = "qca99x0 hw2.0",
|
.name = "qca99x0 hw2.0",
|
||||||
.patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR,
|
.patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR,
|
||||||
.uart_pin = 7,
|
.uart_pin = 7,
|
||||||
|
.otp_exe_param = 0x00000700,
|
||||||
.fw = {
|
.fw = {
|
||||||
.dir = QCA99X0_HW_2_0_FW_DIR,
|
.dir = QCA99X0_HW_2_0_FW_DIR,
|
||||||
.fw = QCA99X0_HW_2_0_FW_FILE,
|
.fw = QCA99X0_HW_2_0_FW_FILE,
|
||||||
@@ -413,6 +418,7 @@ out:
|
|||||||
static int ath10k_download_and_run_otp(struct ath10k *ar)
|
static int ath10k_download_and_run_otp(struct ath10k *ar)
|
||||||
{
|
{
|
||||||
u32 result, address = ar->hw_params.patch_load_addr;
|
u32 result, address = ar->hw_params.patch_load_addr;
|
||||||
|
u32 bmi_otp_exe_param = ar->hw_params.otp_exe_param;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = ath10k_download_board_data(ar, ar->board_data, ar->board_len);
|
ret = ath10k_download_board_data(ar, ar->board_data, ar->board_len);
|
||||||
@@ -438,7 +444,7 @@ static int ath10k_download_and_run_otp(struct ath10k *ar)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = ath10k_bmi_execute(ar, address, 0, &result);
|
ret = ath10k_bmi_execute(ar, address, bmi_otp_exe_param, &result);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
ath10k_err(ar, "could not execute otp (%d)\n", ret);
|
ath10k_err(ar, "could not execute otp (%d)\n", ret);
|
||||||
return ret;
|
return ret;
|
||||||
|
@@ -572,6 +572,7 @@ struct ath10k {
|
|||||||
const char *name;
|
const char *name;
|
||||||
u32 patch_load_addr;
|
u32 patch_load_addr;
|
||||||
int uart_pin;
|
int uart_pin;
|
||||||
|
u32 otp_exe_param;
|
||||||
|
|
||||||
/* This is true if given HW chip has a quirky Cycle Counter
|
/* This is true if given HW chip has a quirky Cycle Counter
|
||||||
* wraparound which resets to 0x7fffffff instead of 0. All
|
* wraparound which resets to 0x7fffffff instead of 0. All
|
||||||
|
Reference in New Issue
Block a user