Lines Matching refs:phy_db

118 	struct iwl_phy_db *phy_db = kzalloc(sizeof(struct iwl_phy_db),  in iwl_phy_db_init()  local
121 if (!phy_db) in iwl_phy_db_init()
122 return phy_db; in iwl_phy_db_init()
124 phy_db->trans = trans; in iwl_phy_db_init()
126 phy_db->n_group_txp = -1; in iwl_phy_db_init()
127 phy_db->n_group_papd = -1; in iwl_phy_db_init()
130 return phy_db; in iwl_phy_db_init()
139 iwl_phy_db_get_section(struct iwl_phy_db *phy_db, in iwl_phy_db_get_section() argument
143 if (!phy_db || type >= IWL_PHY_DB_MAX) in iwl_phy_db_get_section()
148 return &phy_db->cfg; in iwl_phy_db_get_section()
150 return &phy_db->calib_nch; in iwl_phy_db_get_section()
152 if (chg_id >= phy_db->n_group_papd) in iwl_phy_db_get_section()
154 return &phy_db->calib_ch_group_papd[chg_id]; in iwl_phy_db_get_section()
156 if (chg_id >= phy_db->n_group_txp) in iwl_phy_db_get_section()
158 return &phy_db->calib_ch_group_txp[chg_id]; in iwl_phy_db_get_section()
165 static void iwl_phy_db_free_section(struct iwl_phy_db *phy_db, in iwl_phy_db_free_section() argument
170 iwl_phy_db_get_section(phy_db, type, chg_id); in iwl_phy_db_free_section()
179 void iwl_phy_db_free(struct iwl_phy_db *phy_db) in iwl_phy_db_free() argument
183 if (!phy_db) in iwl_phy_db_free()
186 iwl_phy_db_free_section(phy_db, IWL_PHY_DB_CFG, 0); in iwl_phy_db_free()
187 iwl_phy_db_free_section(phy_db, IWL_PHY_DB_CALIB_NCH, 0); in iwl_phy_db_free()
189 for (i = 0; i < phy_db->n_group_papd; i++) in iwl_phy_db_free()
190 iwl_phy_db_free_section(phy_db, IWL_PHY_DB_CALIB_CHG_PAPD, i); in iwl_phy_db_free()
191 kfree(phy_db->calib_ch_group_papd); in iwl_phy_db_free()
193 for (i = 0; i < phy_db->n_group_txp; i++) in iwl_phy_db_free()
194 iwl_phy_db_free_section(phy_db, IWL_PHY_DB_CALIB_CHG_TXP, i); in iwl_phy_db_free()
195 kfree(phy_db->calib_ch_group_txp); in iwl_phy_db_free()
197 kfree(phy_db); in iwl_phy_db_free()
201 int iwl_phy_db_set_section(struct iwl_phy_db *phy_db, in iwl_phy_db_set_section() argument
211 if (!phy_db) in iwl_phy_db_set_section()
216 if (phy_db && !phy_db->calib_ch_group_papd) { in iwl_phy_db_set_section()
221 phy_db->calib_ch_group_papd = kcalloc(chg_id + 1, in iwl_phy_db_set_section()
224 if (!phy_db->calib_ch_group_papd) in iwl_phy_db_set_section()
226 phy_db->n_group_papd = chg_id + 1; in iwl_phy_db_set_section()
230 if (phy_db && !phy_db->calib_ch_group_txp) { in iwl_phy_db_set_section()
235 phy_db->calib_ch_group_txp = kcalloc(chg_id + 1, in iwl_phy_db_set_section()
238 if (!phy_db->calib_ch_group_txp) in iwl_phy_db_set_section()
240 phy_db->n_group_txp = chg_id + 1; in iwl_phy_db_set_section()
244 entry = iwl_phy_db_get_section(phy_db, type, chg_id); in iwl_phy_db_set_section()
257 IWL_DEBUG_INFO(phy_db->trans, in iwl_phy_db_set_section()
304 static u16 channel_id_to_txp(struct iwl_phy_db *phy_db, u16 ch_id) in channel_id_to_txp() argument
312 for (i = 0; i < phy_db->n_group_txp; i++) { in channel_id_to_txp()
313 txp_chg = (void *)phy_db->calib_ch_group_txp[i].data; in channel_id_to_txp()
326 int iwl_phy_db_get_section_data(struct iwl_phy_db *phy_db, in iwl_phy_db_get_section_data() argument
332 if (!phy_db) in iwl_phy_db_get_section_data()
339 ch_group_id = channel_id_to_txp(phy_db, ch_id); in iwl_phy_db_get_section_data()
341 entry = iwl_phy_db_get_section(phy_db, type, ch_group_id); in iwl_phy_db_get_section_data()
348 IWL_DEBUG_INFO(phy_db->trans, in iwl_phy_db_get_section_data()
355 static int iwl_send_phy_db_cmd(struct iwl_phy_db *phy_db, u16 type, in iwl_send_phy_db_cmd() argument
363 IWL_DEBUG_INFO(phy_db->trans, in iwl_send_phy_db_cmd()
378 return iwl_trans_send_cmd(phy_db->trans, &cmd); in iwl_send_phy_db_cmd()
382 struct iwl_phy_db *phy_db, in iwl_phy_db_send_all_channel_groups() argument
392 entry = iwl_phy_db_get_section(phy_db, in iwl_phy_db_send_all_channel_groups()
402 err = iwl_send_phy_db_cmd(phy_db, in iwl_phy_db_send_all_channel_groups()
407 IWL_ERR(phy_db->trans, in iwl_phy_db_send_all_channel_groups()
413 IWL_DEBUG_INFO(phy_db->trans, in iwl_phy_db_send_all_channel_groups()
421 int iwl_send_phy_db_data(struct iwl_phy_db *phy_db) in iwl_send_phy_db_data() argument
427 IWL_DEBUG_INFO(phy_db->trans, in iwl_send_phy_db_data()
431 err = iwl_phy_db_get_section_data(phy_db, IWL_PHY_DB_CFG, in iwl_send_phy_db_data()
434 IWL_ERR(phy_db->trans, "Cannot get Phy DB cfg section\n"); in iwl_send_phy_db_data()
438 err = iwl_send_phy_db_cmd(phy_db, IWL_PHY_DB_CFG, size, data); in iwl_send_phy_db_data()
440 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
445 err = iwl_phy_db_get_section_data(phy_db, IWL_PHY_DB_CALIB_NCH, in iwl_send_phy_db_data()
448 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
453 err = iwl_send_phy_db_cmd(phy_db, IWL_PHY_DB_CALIB_NCH, size, data); in iwl_send_phy_db_data()
455 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
461 err = iwl_phy_db_send_all_channel_groups(phy_db, in iwl_send_phy_db_data()
463 phy_db->n_group_papd); in iwl_send_phy_db_data()
465 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
471 err = iwl_phy_db_send_all_channel_groups(phy_db, in iwl_send_phy_db_data()
473 phy_db->n_group_txp); in iwl_send_phy_db_data()
475 IWL_ERR(phy_db->trans, in iwl_send_phy_db_data()
480 IWL_DEBUG_INFO(phy_db->trans, in iwl_send_phy_db_data()