Lines Matching refs:phy_db
64 struct iwl_phy_db *phy_db = kzalloc(sizeof(struct iwl_phy_db), in iwl_phy_db_init() local
67 if (!phy_db) in iwl_phy_db_init()
68 return phy_db; in iwl_phy_db_init()
70 phy_db->trans = trans; in iwl_phy_db_init()
72 phy_db->n_group_txp = -1; in iwl_phy_db_init()
73 phy_db->n_group_papd = -1; in iwl_phy_db_init()
76 return phy_db; in iwl_phy_db_init()
85 iwl_phy_db_get_section(struct iwl_phy_db *phy_db, in iwl_phy_db_get_section() argument
89 if (!phy_db || type >= IWL_PHY_DB_MAX) in iwl_phy_db_get_section()
94 return &phy_db->cfg; in iwl_phy_db_get_section()
96 return &phy_db->calib_nch; in iwl_phy_db_get_section()
98 if (chg_id >= phy_db->n_group_papd) in iwl_phy_db_get_section()
100 return &phy_db->calib_ch_group_papd[chg_id]; in iwl_phy_db_get_section()
102 if (chg_id >= phy_db->n_group_txp) in iwl_phy_db_get_section()
104 return &phy_db->calib_ch_group_txp[chg_id]; in iwl_phy_db_get_section()
111 static void iwl_phy_db_free_section(struct iwl_phy_db *phy_db, in iwl_phy_db_free_section() argument
116 iwl_phy_db_get_section(phy_db, type, chg_id); in iwl_phy_db_free_section()
125 void iwl_phy_db_free(struct iwl_phy_db *phy_db) in iwl_phy_db_free() argument
129 if (!phy_db) in iwl_phy_db_free()
132 iwl_phy_db_free_section(phy_db, IWL_PHY_DB_CFG, 0); in iwl_phy_db_free()
133 iwl_phy_db_free_section(phy_db, IWL_PHY_DB_CALIB_NCH, 0); in iwl_phy_db_free()
135 for (i = 0; i < phy_db->n_group_papd; i++) in iwl_phy_db_free()
136 iwl_phy_db_free_section(phy_db, IWL_PHY_DB_CALIB_CHG_PAPD, i); in iwl_phy_db_free()
137 kfree(phy_db->calib_ch_group_papd); in iwl_phy_db_free()
139 for (i = 0; i < phy_db->n_group_txp; i++) in iwl_phy_db_free()
140 iwl_phy_db_free_section(phy_db, IWL_PHY_DB_CALIB_CHG_TXP, i); in iwl_phy_db_free()
141 kfree(phy_db->calib_ch_group_txp); in iwl_phy_db_free()
143 kfree(phy_db); in iwl_phy_db_free()
147 int iwl_phy_db_set_section(struct iwl_phy_db *phy_db, in iwl_phy_db_set_section() argument
167 if (!phy_db) in iwl_phy_db_set_section()
172 if (phy_db && !phy_db->calib_ch_group_papd) { in iwl_phy_db_set_section()
177 phy_db->calib_ch_group_papd = kcalloc(chg_id + 1, in iwl_phy_db_set_section()
180 if (!phy_db->calib_ch_group_papd) in iwl_phy_db_set_section()
182 phy_db->n_group_papd = chg_id + 1; in iwl_phy_db_set_section()
186 if (phy_db && !phy_db->calib_ch_group_txp) { in iwl_phy_db_set_section()
191 phy_db->calib_ch_group_txp = kcalloc(chg_id + 1, in iwl_phy_db_set_section()
194 if (!phy_db->calib_ch_group_txp) in iwl_phy_db_set_section()
196 phy_db->n_group_txp = chg_id + 1; in iwl_phy_db_set_section()
200 entry = iwl_phy_db_get_section(phy_db, type, chg_id); in iwl_phy_db_set_section()
213 IWL_DEBUG_INFO(phy_db->trans, in iwl_phy_db_set_section()
260 static u16 channel_id_to_txp(struct iwl_phy_db *phy_db, u16 ch_id) in channel_id_to_txp() argument
268 for (i = 0; i < phy_db->n_group_txp; i++) { in channel_id_to_txp()
269 txp_chg = (void *)phy_db->calib_ch_group_txp[i].data; in channel_id_to_txp()
282 int iwl_phy_db_get_section_data(struct iwl_phy_db *phy_db, in iwl_phy_db_get_section_data() argument
288 if (!phy_db) in iwl_phy_db_get_section_data()
295 ch_group_id = channel_id_to_txp(phy_db, ch_id); in iwl_phy_db_get_section_data()
297 entry = iwl_phy_db_get_section(phy_db, type, ch_group_id); in iwl_phy_db_get_section_data()
304 IWL_DEBUG_INFO(phy_db->trans, in iwl_phy_db_get_section_data()
311 static int iwl_send_phy_db_cmd(struct iwl_phy_db *phy_db, u16 type, in iwl_send_phy_db_cmd() argument
319 IWL_DEBUG_INFO(phy_db->trans, in iwl_send_phy_db_cmd()
334 return iwl_trans_send_cmd(phy_db->trans, &cmd); in iwl_send_phy_db_cmd()
338 struct iwl_phy_db *phy_db, in iwl_phy_db_send_all_channel_groups() argument
348 entry = iwl_phy_db_get_section(phy_db, in iwl_phy_db_send_all_channel_groups()
358 err = iwl_send_phy_db_cmd(phy_db, in iwl_phy_db_send_all_channel_groups()
363 IWL_ERR(phy_db->trans, in iwl_phy_db_send_all_channel_groups()
369 IWL_DEBUG_INFO(phy_db->trans, in iwl_phy_db_send_all_channel_groups()
377 int iwl_send_phy_db_data(struct iwl_phy_db *phy_db) in iwl_send_phy_db_data() argument
383 IWL_DEBUG_INFO(phy_db->trans, in iwl_send_phy_db_data()
387 err = iwl_phy_db_get_section_data(phy_db, IWL_PHY_DB_CFG, in iwl_send_phy_db_data()
390 IWL_ERR(phy_db->trans, "Cannot get Phy DB cfg section\n"); in iwl_send_phy_db_data()
394 err = iwl_send_phy_db_cmd(phy_db, IWL_PHY_DB_CFG, size, data); in iwl_send_phy_db_data()
396 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
401 err = iwl_phy_db_get_section_data(phy_db, IWL_PHY_DB_CALIB_NCH, in iwl_send_phy_db_data()
404 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
409 err = iwl_send_phy_db_cmd(phy_db, IWL_PHY_DB_CALIB_NCH, size, data); in iwl_send_phy_db_data()
411 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
417 err = iwl_phy_db_send_all_channel_groups(phy_db, in iwl_send_phy_db_data()
419 phy_db->n_group_papd); in iwl_send_phy_db_data()
421 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
427 err = iwl_phy_db_send_all_channel_groups(phy_db, in iwl_send_phy_db_data()
429 phy_db->n_group_txp); in iwl_send_phy_db_data()
431 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
436 IWL_DEBUG_INFO(phy_db->trans, in iwl_send_phy_db_data()