Commit ae6130fc authored by Don Fry's avatar Don Fry Committed by Wey-Yi Guy

iwlwifi: move device_pointers from iwl_priv to iwl_shared

Move the low level ucode device_pointers structure to iwl_shared.
Signed-off-by: default avatarDon Fry <donald.h.fry@intel.com>
Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
parent ab36eab2
...@@ -1165,7 +1165,7 @@ int iwl_rx_dispatch(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb, ...@@ -1165,7 +1165,7 @@ int iwl_rx_dispatch(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb,
pkt->hdr.cmd); pkt->hdr.cmd);
w->triggered = true; w->triggered = true;
if (w->fn) if (w->fn)
w->fn(priv, pkt, w->fn_data); w->fn(trans(priv), pkt, w->fn_data);
} }
spin_unlock(&priv->shrd->notif_wait_lock); spin_unlock(&priv->shrd->notif_wait_lock);
......
...@@ -366,7 +366,7 @@ static void iwl_continuous_event_trace(struct iwl_priv *priv) ...@@ -366,7 +366,7 @@ static void iwl_continuous_event_trace(struct iwl_priv *priv)
u32 num_wraps; /* # times uCode wrapped to top of log */ u32 num_wraps; /* # times uCode wrapped to top of log */
u32 next_entry; /* index of next entry to be written by uCode */ u32 next_entry; /* index of next entry to be written by uCode */
base = priv->device_pointers.error_event_table; base = priv->shrd->device_pointers.error_event_table;
if (iwlagn_hw_valid_rtc_data_addr(base)) { if (iwlagn_hw_valid_rtc_data_addr(base)) {
capacity = iwl_read_targ_mem(bus(priv), base); capacity = iwl_read_targ_mem(bus(priv), base);
num_wraps = iwl_read_targ_mem(bus(priv), num_wraps = iwl_read_targ_mem(bus(priv),
......
...@@ -865,11 +865,6 @@ struct iwl_priv { ...@@ -865,11 +865,6 @@ struct iwl_priv {
__le16 switch_channel; __le16 switch_channel;
struct {
u32 error_event_table;
u32 log_event_table;
} device_pointers;
u16 active_rate; u16 active_rate;
u8 start_calib; u8 start_calib;
......
...@@ -427,7 +427,7 @@ static int iwlagn_mac_resume(struct ieee80211_hw *hw) ...@@ -427,7 +427,7 @@ static int iwlagn_mac_resume(struct ieee80211_hw *hw)
iwl_write32(bus(priv), CSR_UCODE_DRV_GP1_CLR, iwl_write32(bus(priv), CSR_UCODE_DRV_GP1_CLR,
CSR_UCODE_DRV_GP1_BIT_D3_CFG_COMPLETE); CSR_UCODE_DRV_GP1_BIT_D3_CFG_COMPLETE);
base = priv->device_pointers.error_event_table; base = priv->shrd->device_pointers.error_event_table;
if (iwlagn_hw_valid_rtc_data_addr(base)) { if (iwlagn_hw_valid_rtc_data_addr(base)) {
spin_lock_irqsave(&bus(priv)->reg_lock, flags); spin_lock_irqsave(&bus(priv)->reg_lock, flags);
ret = iwl_grab_nic_access_silent(bus(priv)); ret = iwl_grab_nic_access_silent(bus(priv));
......
...@@ -97,6 +97,7 @@ ...@@ -97,6 +97,7 @@
struct iwl_cfg; struct iwl_cfg;
struct iwl_bus; struct iwl_bus;
struct iwl_priv; struct iwl_priv;
struct iwl_trans;
struct iwl_sensitivity_ranges; struct iwl_sensitivity_ranges;
struct iwl_trans_ops; struct iwl_trans_ops;
...@@ -294,7 +295,7 @@ enum iwl_ucode_type { ...@@ -294,7 +295,7 @@ enum iwl_ucode_type {
struct iwl_notification_wait { struct iwl_notification_wait {
struct list_head list; struct list_head list;
void (*fn)(struct iwl_priv *priv, struct iwl_rx_packet *pkt, void (*fn)(struct iwl_trans *trans, struct iwl_rx_packet *pkt,
void *data); void *data);
void *fn_data; void *fn_data;
...@@ -323,6 +324,7 @@ struct iwl_notification_wait { ...@@ -323,6 +324,7 @@ struct iwl_notification_wait {
* @notif_waits: things waiting for notification * @notif_waits: things waiting for notification
* @notif_wait_lock: lock protecting notification * @notif_wait_lock: lock protecting notification
* @notif_waitq: head of notification wait queue * @notif_waitq: head of notification wait queue
* @device_pointers: pointers to ucode event tables
*/ */
struct iwl_shared { struct iwl_shared {
#ifdef CONFIG_IWLWIFI_DEBUG #ifdef CONFIG_IWLWIFI_DEBUG
...@@ -361,6 +363,12 @@ struct iwl_shared { ...@@ -361,6 +363,12 @@ struct iwl_shared {
struct list_head notif_waits; struct list_head notif_waits;
spinlock_t notif_wait_lock; spinlock_t notif_wait_lock;
wait_queue_head_t notif_waitq; wait_queue_head_t notif_waitq;
struct {
u32 error_event_table;
u32 log_event_table;
} device_pointers;
}; };
/*Whatever _m is (iwl_trans, iwl_priv, iwl_bus, these macros will work */ /*Whatever _m is (iwl_trans, iwl_priv, iwl_bus, these macros will work */
...@@ -510,7 +518,7 @@ void __acquires(wait_entry) ...@@ -510,7 +518,7 @@ void __acquires(wait_entry)
iwl_init_notification_wait(struct iwl_shared *shrd, iwl_init_notification_wait(struct iwl_shared *shrd,
struct iwl_notification_wait *wait_entry, struct iwl_notification_wait *wait_entry,
u8 cmd, u8 cmd,
void (*fn)(struct iwl_priv *priv, void (*fn)(struct iwl_trans *trans,
struct iwl_rx_packet *pkt, struct iwl_rx_packet *pkt,
void *data), void *data),
void *fn_data); void *fn_data);
......
...@@ -594,7 +594,7 @@ static void iwl_dump_nic_error_log(struct iwl_trans *trans) ...@@ -594,7 +594,7 @@ static void iwl_dump_nic_error_log(struct iwl_trans *trans)
struct iwl_trans_pcie *trans_pcie = struct iwl_trans_pcie *trans_pcie =
IWL_TRANS_GET_PCIE_TRANS(trans); IWL_TRANS_GET_PCIE_TRANS(trans);
base = priv->device_pointers.error_event_table; base = trans->shrd->device_pointers.error_event_table;
if (trans->shrd->ucode_type == IWL_UCODE_INIT) { if (trans->shrd->ucode_type == IWL_UCODE_INIT) {
if (!base) if (!base)
base = priv->init_errlog_ptr; base = priv->init_errlog_ptr;
...@@ -724,7 +724,7 @@ static int iwl_print_event_log(struct iwl_trans *trans, u32 start_idx, ...@@ -724,7 +724,7 @@ static int iwl_print_event_log(struct iwl_trans *trans, u32 start_idx,
if (num_events == 0) if (num_events == 0)
return pos; return pos;
base = priv->device_pointers.log_event_table; base = trans->shrd->device_pointers.log_event_table;
if (trans->shrd->ucode_type == IWL_UCODE_INIT) { if (trans->shrd->ucode_type == IWL_UCODE_INIT) {
if (!base) if (!base)
base = priv->init_evtlog_ptr; base = priv->init_evtlog_ptr;
...@@ -838,7 +838,7 @@ int iwl_dump_nic_event_log(struct iwl_trans *trans, bool full_log, ...@@ -838,7 +838,7 @@ int iwl_dump_nic_event_log(struct iwl_trans *trans, bool full_log,
size_t bufsz = 0; size_t bufsz = 0;
struct iwl_priv *priv = priv(trans); struct iwl_priv *priv = priv(trans);
base = priv->device_pointers.log_event_table; base = trans->shrd->device_pointers.log_event_table;
if (trans->shrd->ucode_type == IWL_UCODE_INIT) { if (trans->shrd->ucode_type == IWL_UCODE_INIT) {
logsize = priv->init_evtlog_size; logsize = priv->init_evtlog_size;
if (!base) if (!base)
......
...@@ -550,7 +550,7 @@ struct iwlagn_alive_data { ...@@ -550,7 +550,7 @@ struct iwlagn_alive_data {
u8 subtype; u8 subtype;
}; };
static void iwl_alive_fn(struct iwl_priv *priv, static void iwl_alive_fn(struct iwl_trans *trans,
struct iwl_rx_packet *pkt, struct iwl_rx_packet *pkt,
void *data) void *data)
{ {
...@@ -559,14 +559,14 @@ static void iwl_alive_fn(struct iwl_priv *priv, ...@@ -559,14 +559,14 @@ static void iwl_alive_fn(struct iwl_priv *priv,
palive = &pkt->u.alive_frame; palive = &pkt->u.alive_frame;
IWL_DEBUG_FW(priv, "Alive ucode status 0x%08X revision " IWL_DEBUG_FW(trans, "Alive ucode status 0x%08X revision "
"0x%01X 0x%01X\n", "0x%01X 0x%01X\n",
palive->is_valid, palive->ver_type, palive->is_valid, palive->ver_type,
palive->ver_subtype); palive->ver_subtype);
priv->device_pointers.error_event_table = trans->shrd->device_pointers.error_event_table =
le32_to_cpu(palive->error_event_table_ptr); le32_to_cpu(palive->error_event_table_ptr);
priv->device_pointers.log_event_table = trans->shrd->device_pointers.log_event_table =
le32_to_cpu(palive->log_event_table_ptr); le32_to_cpu(palive->log_event_table_ptr);
alive_data->subtype = palive->ver_subtype; alive_data->subtype = palive->ver_subtype;
...@@ -577,7 +577,7 @@ static void iwl_alive_fn(struct iwl_priv *priv, ...@@ -577,7 +577,7 @@ static void iwl_alive_fn(struct iwl_priv *priv,
void iwl_init_notification_wait(struct iwl_shared *shrd, void iwl_init_notification_wait(struct iwl_shared *shrd,
struct iwl_notification_wait *wait_entry, struct iwl_notification_wait *wait_entry,
u8 cmd, u8 cmd,
void (*fn)(struct iwl_priv *priv, void (*fn)(struct iwl_trans *trans,
struct iwl_rx_packet *pkt, struct iwl_rx_packet *pkt,
void *data), void *data),
void *fn_data) void *fn_data)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment