Lines Matching refs:phy_db
123 struct iwl_phy_db *phy_db = kzalloc(sizeof(struct iwl_phy_db), in iwl_phy_db_init() local
126 if (!phy_db) in iwl_phy_db_init()
127 return phy_db; in iwl_phy_db_init()
129 phy_db->trans = trans; in iwl_phy_db_init()
131 phy_db->n_group_txp = -1; in iwl_phy_db_init()
132 phy_db->n_group_papd = -1; in iwl_phy_db_init()
135 return phy_db; in iwl_phy_db_init()
144 iwl_phy_db_get_section(struct iwl_phy_db *phy_db, in iwl_phy_db_get_section() argument
148 if (!phy_db || type >= IWL_PHY_DB_MAX) in iwl_phy_db_get_section()
153 return &phy_db->cfg; in iwl_phy_db_get_section()
155 return &phy_db->calib_nch; in iwl_phy_db_get_section()
157 if (chg_id >= phy_db->n_group_papd) in iwl_phy_db_get_section()
159 return &phy_db->calib_ch_group_papd[chg_id]; in iwl_phy_db_get_section()
161 if (chg_id >= phy_db->n_group_txp) in iwl_phy_db_get_section()
163 return &phy_db->calib_ch_group_txp[chg_id]; in iwl_phy_db_get_section()
170 static void iwl_phy_db_free_section(struct iwl_phy_db *phy_db, in iwl_phy_db_free_section() argument
175 iwl_phy_db_get_section(phy_db, type, chg_id); in iwl_phy_db_free_section()
184 void iwl_phy_db_free(struct iwl_phy_db *phy_db) in iwl_phy_db_free() argument
188 if (!phy_db) in iwl_phy_db_free()
191 iwl_phy_db_free_section(phy_db, IWL_PHY_DB_CFG, 0); in iwl_phy_db_free()
192 iwl_phy_db_free_section(phy_db, IWL_PHY_DB_CALIB_NCH, 0); in iwl_phy_db_free()
194 for (i = 0; i < phy_db->n_group_papd; i++) in iwl_phy_db_free()
195 iwl_phy_db_free_section(phy_db, IWL_PHY_DB_CALIB_CHG_PAPD, i); in iwl_phy_db_free()
196 kfree(phy_db->calib_ch_group_papd); in iwl_phy_db_free()
198 for (i = 0; i < phy_db->n_group_txp; i++) in iwl_phy_db_free()
199 iwl_phy_db_free_section(phy_db, IWL_PHY_DB_CALIB_CHG_TXP, i); in iwl_phy_db_free()
200 kfree(phy_db->calib_ch_group_txp); in iwl_phy_db_free()
202 kfree(phy_db); in iwl_phy_db_free()
206 int iwl_phy_db_set_section(struct iwl_phy_db *phy_db, in iwl_phy_db_set_section() argument
216 if (!phy_db) in iwl_phy_db_set_section()
221 if (phy_db && !phy_db->calib_ch_group_papd) { in iwl_phy_db_set_section()
226 phy_db->calib_ch_group_papd = kcalloc(chg_id + 1, in iwl_phy_db_set_section()
229 if (!phy_db->calib_ch_group_papd) in iwl_phy_db_set_section()
231 phy_db->n_group_papd = chg_id + 1; in iwl_phy_db_set_section()
235 if (phy_db && !phy_db->calib_ch_group_txp) { in iwl_phy_db_set_section()
240 phy_db->calib_ch_group_txp = kcalloc(chg_id + 1, in iwl_phy_db_set_section()
243 if (!phy_db->calib_ch_group_txp) in iwl_phy_db_set_section()
245 phy_db->n_group_txp = chg_id + 1; in iwl_phy_db_set_section()
249 entry = iwl_phy_db_get_section(phy_db, type, chg_id); in iwl_phy_db_set_section()
262 IWL_DEBUG_INFO(phy_db->trans, in iwl_phy_db_set_section()
309 static u16 channel_id_to_txp(struct iwl_phy_db *phy_db, u16 ch_id) in channel_id_to_txp() argument
317 for (i = 0; i < phy_db->n_group_txp; i++) { in channel_id_to_txp()
318 txp_chg = (void *)phy_db->calib_ch_group_txp[i].data; in channel_id_to_txp()
331 int iwl_phy_db_get_section_data(struct iwl_phy_db *phy_db, in iwl_phy_db_get_section_data() argument
337 if (!phy_db) in iwl_phy_db_get_section_data()
344 ch_group_id = channel_id_to_txp(phy_db, ch_id); in iwl_phy_db_get_section_data()
346 entry = iwl_phy_db_get_section(phy_db, type, ch_group_id); in iwl_phy_db_get_section_data()
353 IWL_DEBUG_INFO(phy_db->trans, in iwl_phy_db_get_section_data()
360 static int iwl_send_phy_db_cmd(struct iwl_phy_db *phy_db, u16 type, in iwl_send_phy_db_cmd() argument
368 IWL_DEBUG_INFO(phy_db->trans, in iwl_send_phy_db_cmd()
383 return iwl_trans_send_cmd(phy_db->trans, &cmd); in iwl_send_phy_db_cmd()
387 struct iwl_phy_db *phy_db, in iwl_phy_db_send_all_channel_groups() argument
397 entry = iwl_phy_db_get_section(phy_db, in iwl_phy_db_send_all_channel_groups()
407 err = iwl_send_phy_db_cmd(phy_db, in iwl_phy_db_send_all_channel_groups()
412 IWL_ERR(phy_db->trans, in iwl_phy_db_send_all_channel_groups()
418 IWL_DEBUG_INFO(phy_db->trans, in iwl_phy_db_send_all_channel_groups()
426 int iwl_send_phy_db_data(struct iwl_phy_db *phy_db) in iwl_send_phy_db_data() argument
432 IWL_DEBUG_INFO(phy_db->trans, in iwl_send_phy_db_data()
436 err = iwl_phy_db_get_section_data(phy_db, IWL_PHY_DB_CFG, in iwl_send_phy_db_data()
439 IWL_ERR(phy_db->trans, "Cannot get Phy DB cfg section\n"); in iwl_send_phy_db_data()
443 err = iwl_send_phy_db_cmd(phy_db, IWL_PHY_DB_CFG, size, data); in iwl_send_phy_db_data()
445 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
450 err = iwl_phy_db_get_section_data(phy_db, IWL_PHY_DB_CALIB_NCH, in iwl_send_phy_db_data()
453 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
458 err = iwl_send_phy_db_cmd(phy_db, IWL_PHY_DB_CALIB_NCH, size, data); in iwl_send_phy_db_data()
460 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
466 err = iwl_phy_db_send_all_channel_groups(phy_db, in iwl_send_phy_db_data()
468 phy_db->n_group_papd); in iwl_send_phy_db_data()
470 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
476 err = iwl_phy_db_send_all_channel_groups(phy_db, in iwl_send_phy_db_data()
478 phy_db->n_group_txp); in iwl_send_phy_db_data()
480 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
485 IWL_DEBUG_INFO(phy_db->trans, in iwl_send_phy_db_data()