iwlwifi: trans: add a new op for getting DMA data
Op mode will need this data in order to feed FW with it. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Этот коммит содержится в:

коммит произвёл
Luca Coelho

родитель
1b4bbe8bf2
Коммит
92536c9615
@@ -439,6 +439,20 @@ struct iwl_trans_txq_scd_cfg {
|
||||
int frame_limit;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iwl_trans_rxq_dma_data - RX queue DMA data
|
||||
* @fr_bd_cb: DMA address of free BD cyclic buffer
|
||||
* @fr_bd_wid: Initial write index of the free BD cyclic buffer
|
||||
* @urbd_stts_wrptr: DMA address of urbd_stts_wrptr
|
||||
* @ur_bd_cb: DMA address of used BD cyclic buffer
|
||||
*/
|
||||
struct iwl_trans_rxq_dma_data {
|
||||
u64 fr_bd_cb;
|
||||
u32 fr_bd_wid;
|
||||
u64 urbd_stts_wrptr;
|
||||
u64 ur_bd_cb;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iwl_trans_ops - transport specific operations
|
||||
*
|
||||
@@ -559,6 +573,8 @@ struct iwl_trans_ops {
|
||||
int cmd_id, int size,
|
||||
unsigned int queue_wdg_timeout);
|
||||
void (*txq_free)(struct iwl_trans *trans, int queue);
|
||||
int (*rxq_dma_data)(struct iwl_trans *trans, int queue,
|
||||
struct iwl_trans_rxq_dma_data *data);
|
||||
|
||||
void (*txq_set_shared_mode)(struct iwl_trans *trans, u32 txq_id,
|
||||
bool shared);
|
||||
@@ -947,6 +963,16 @@ iwl_trans_txq_enable_cfg(struct iwl_trans *trans, int queue, u16 ssn,
|
||||
cfg, queue_wdg_timeout);
|
||||
}
|
||||
|
||||
static inline int
|
||||
iwl_trans_get_rxq_dma_data(struct iwl_trans *trans, int queue,
|
||||
struct iwl_trans_rxq_dma_data *data)
|
||||
{
|
||||
if (WARN_ON_ONCE(!trans->ops->rxq_dma_data))
|
||||
return -ENOTSUPP;
|
||||
|
||||
return trans->ops->rxq_dma_data(trans, queue, data);
|
||||
}
|
||||
|
||||
static inline void
|
||||
iwl_trans_txq_free(struct iwl_trans *trans, int queue)
|
||||
{
|
||||
|
Ссылка в новой задаче
Block a user