iwlwifi: don't use the bus for ucode fw_desc any more

This is transport related

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
This commit is contained in:
Emmanuel Grumbach 2012-01-03 16:28:12 +02:00 committed by Wey-Yi Guy
parent ea4caade10
commit 8467ab4f42
3 changed files with 19 additions and 17 deletions

View File

@ -1023,31 +1023,33 @@ static void iwl_ucode_callback(const struct firmware *ucode_raw, void *context)
/* Runtime instructions and 2 copies of data: /* Runtime instructions and 2 copies of data:
* 1) unmodified from disk * 1) unmodified from disk
* 2) backup cache for save/restore during power-downs */ * 2) backup cache for save/restore during power-downs */
if (iwl_alloc_fw_desc(bus(priv), &trans(priv)->ucode_rt.code, if (iwl_alloc_fw_desc(trans(priv), &trans(priv)->ucode_rt.code,
pieces.inst, pieces.inst_size)) pieces.inst, pieces.inst_size))
goto err_pci_alloc; goto err_pci_alloc;
if (iwl_alloc_fw_desc(bus(priv), &trans(priv)->ucode_rt.data, if (iwl_alloc_fw_desc(trans(priv), &trans(priv)->ucode_rt.data,
pieces.data, pieces.data_size)) pieces.data, pieces.data_size))
goto err_pci_alloc; goto err_pci_alloc;
/* Initialization instructions and data */ /* Initialization instructions and data */
if (pieces.init_size && pieces.init_data_size) { if (pieces.init_size && pieces.init_data_size) {
if (iwl_alloc_fw_desc(bus(priv), &trans(priv)->ucode_init.code, if (iwl_alloc_fw_desc(trans(priv),
&trans(priv)->ucode_init.code,
pieces.init, pieces.init_size)) pieces.init, pieces.init_size))
goto err_pci_alloc; goto err_pci_alloc;
if (iwl_alloc_fw_desc(bus(priv), &trans(priv)->ucode_init.data, if (iwl_alloc_fw_desc(trans(priv),
&trans(priv)->ucode_init.data,
pieces.init_data, pieces.init_data_size)) pieces.init_data, pieces.init_data_size))
goto err_pci_alloc; goto err_pci_alloc;
} }
/* WoWLAN instructions and data */ /* WoWLAN instructions and data */
if (pieces.wowlan_inst_size && pieces.wowlan_data_size) { if (pieces.wowlan_inst_size && pieces.wowlan_data_size) {
if (iwl_alloc_fw_desc(bus(priv), if (iwl_alloc_fw_desc(trans(priv),
&trans(priv)->ucode_wowlan.code, &trans(priv)->ucode_wowlan.code,
pieces.wowlan_inst, pieces.wowlan_inst,
pieces.wowlan_inst_size)) pieces.wowlan_inst_size))
goto err_pci_alloc; goto err_pci_alloc;
if (iwl_alloc_fw_desc(bus(priv), if (iwl_alloc_fw_desc(trans(priv),
&trans(priv)->ucode_wowlan.data, &trans(priv)->ucode_wowlan.data,
pieces.wowlan_data, pieces.wowlan_data,
pieces.wowlan_data_size)) pieces.wowlan_data_size))

View File

@ -408,7 +408,7 @@ static inline u32 iwl_trans_read32(struct iwl_trans *trans, u32 ofs)
/***************************************************** /*****************************************************
* Utils functions * Utils functions
******************************************************/ ******************************************************/
int iwl_alloc_fw_desc(struct iwl_bus *bus, struct fw_desc *desc, int iwl_alloc_fw_desc(struct iwl_trans *trans, struct fw_desc *desc,
const void *data, size_t len); const void *data, size_t len);
void iwl_dealloc_ucode(struct iwl_trans *trans); void iwl_dealloc_ucode(struct iwl_trans *trans);

View File

@ -80,29 +80,29 @@ static struct iwl_wimax_coex_event_entry cu_priorities[COEX_NUM_OF_EVENTS] = {
* *
******************************************************************************/ ******************************************************************************/
static void iwl_free_fw_desc(struct iwl_bus *bus, struct fw_desc *desc) static void iwl_free_fw_desc(struct iwl_trans *trans, struct fw_desc *desc)
{ {
if (desc->v_addr) if (desc->v_addr)
dma_free_coherent(trans(bus)->dev, desc->len, dma_free_coherent(trans->dev, desc->len,
desc->v_addr, desc->p_addr); desc->v_addr, desc->p_addr);
desc->v_addr = NULL; desc->v_addr = NULL;
desc->len = 0; desc->len = 0;
} }
static void iwl_free_fw_img(struct iwl_bus *bus, struct fw_img *img) static void iwl_free_fw_img(struct iwl_trans *trans, struct fw_img *img)
{ {
iwl_free_fw_desc(bus, &img->code); iwl_free_fw_desc(trans, &img->code);
iwl_free_fw_desc(bus, &img->data); iwl_free_fw_desc(trans, &img->data);
} }
void iwl_dealloc_ucode(struct iwl_trans *trans) void iwl_dealloc_ucode(struct iwl_trans *trans)
{ {
iwl_free_fw_img(bus(trans), &trans->ucode_rt); iwl_free_fw_img(trans, &trans->ucode_rt);
iwl_free_fw_img(bus(trans), &trans->ucode_init); iwl_free_fw_img(trans, &trans->ucode_init);
iwl_free_fw_img(bus(trans), &trans->ucode_wowlan); iwl_free_fw_img(trans, &trans->ucode_wowlan);
} }
int iwl_alloc_fw_desc(struct iwl_bus *bus, struct fw_desc *desc, int iwl_alloc_fw_desc(struct iwl_trans *trans, struct fw_desc *desc,
const void *data, size_t len) const void *data, size_t len)
{ {
if (!len) { if (!len) {
@ -110,7 +110,7 @@ int iwl_alloc_fw_desc(struct iwl_bus *bus, struct fw_desc *desc,
return -EINVAL; return -EINVAL;
} }
desc->v_addr = dma_alloc_coherent(trans(bus)->dev, len, desc->v_addr = dma_alloc_coherent(trans->dev, len,
&desc->p_addr, GFP_KERNEL); &desc->p_addr, GFP_KERNEL);
if (!desc->v_addr) if (!desc->v_addr)
return -ENOMEM; return -ENOMEM;