|
@@ -60,7 +60,8 @@ static const u16 default_tid_to_tx_fifo[] = {
|
|
|
static inline int iwl_alloc_dma_ptr(struct iwl_priv *priv,
|
|
|
struct iwl_dma_ptr *ptr, size_t size)
|
|
|
{
|
|
|
- ptr->addr = pci_alloc_consistent(priv->pci_dev, size, &ptr->dma);
|
|
|
+ ptr->addr = dma_alloc_coherent(&priv->pci_dev->dev, size, &ptr->dma,
|
|
|
+ GFP_KERNEL);
|
|
|
if (!ptr->addr)
|
|
|
return -ENOMEM;
|
|
|
ptr->size = size;
|
|
@@ -73,7 +74,7 @@ static inline void iwl_free_dma_ptr(struct iwl_priv *priv,
|
|
|
if (unlikely(!ptr->addr))
|
|
|
return;
|
|
|
|
|
|
- pci_free_consistent(priv->pci_dev, ptr->size, ptr->addr, ptr->dma);
|
|
|
+ dma_free_coherent(&priv->pci_dev->dev, ptr->size, ptr->addr, ptr->dma);
|
|
|
memset(ptr, 0, sizeof(*ptr));
|
|
|
}
|
|
|
|
|
@@ -129,7 +130,7 @@ void iwl_tx_queue_free(struct iwl_priv *priv, int txq_id)
|
|
|
{
|
|
|
struct iwl_tx_queue *txq = &priv->txq[txq_id];
|
|
|
struct iwl_queue *q = &txq->q;
|
|
|
- struct pci_dev *dev = priv->pci_dev;
|
|
|
+ struct device *dev = &priv->pci_dev->dev;
|
|
|
int i;
|
|
|
|
|
|
if (q->n_bd == 0)
|
|
@@ -146,8 +147,8 @@ void iwl_tx_queue_free(struct iwl_priv *priv, int txq_id)
|
|
|
|
|
|
/* De-alloc circular buffer of TFDs */
|
|
|
if (txq->q.n_bd)
|
|
|
- pci_free_consistent(dev, priv->hw_params.tfd_size *
|
|
|
- txq->q.n_bd, txq->tfds, txq->q.dma_addr);
|
|
|
+ dma_free_coherent(dev, priv->hw_params.tfd_size *
|
|
|
+ txq->q.n_bd, txq->tfds, txq->q.dma_addr);
|
|
|
|
|
|
/* De-alloc array of per-TFD driver data */
|
|
|
kfree(txq->txb);
|
|
@@ -176,7 +177,7 @@ void iwl_cmd_queue_free(struct iwl_priv *priv)
|
|
|
{
|
|
|
struct iwl_tx_queue *txq = &priv->txq[IWL_CMD_QUEUE_NUM];
|
|
|
struct iwl_queue *q = &txq->q;
|
|
|
- struct pci_dev *dev = priv->pci_dev;
|
|
|
+ struct device *dev = &priv->pci_dev->dev;
|
|
|
int i;
|
|
|
|
|
|
if (q->n_bd == 0)
|
|
@@ -188,8 +189,8 @@ void iwl_cmd_queue_free(struct iwl_priv *priv)
|
|
|
|
|
|
/* De-alloc circular buffer of TFDs */
|
|
|
if (txq->q.n_bd)
|
|
|
- pci_free_consistent(dev, priv->hw_params.tfd_size *
|
|
|
- txq->q.n_bd, txq->tfds, txq->q.dma_addr);
|
|
|
+ dma_free_coherent(dev, priv->hw_params.tfd_size * txq->q.n_bd,
|
|
|
+ txq->tfds, txq->q.dma_addr);
|
|
|
|
|
|
/* deallocate arrays */
|
|
|
kfree(txq->cmd);
|
|
@@ -280,7 +281,7 @@ static int iwl_queue_init(struct iwl_priv *priv, struct iwl_queue *q,
|
|
|
static int iwl_tx_queue_alloc(struct iwl_priv *priv,
|
|
|
struct iwl_tx_queue *txq, u32 id)
|
|
|
{
|
|
|
- struct pci_dev *dev = priv->pci_dev;
|
|
|
+ struct device *dev = &priv->pci_dev->dev;
|
|
|
size_t tfd_sz = priv->hw_params.tfd_size * TFD_QUEUE_SIZE_MAX;
|
|
|
|
|
|
/* Driver private data, only for Tx (not command) queues,
|
|
@@ -299,8 +300,8 @@ static int iwl_tx_queue_alloc(struct iwl_priv *priv,
|
|
|
|
|
|
/* Circular buffer of transmit frame descriptors (TFDs),
|
|
|
* shared with device */
|
|
|
- txq->tfds = pci_alloc_consistent(dev, tfd_sz, &txq->q.dma_addr);
|
|
|
-
|
|
|
+ txq->tfds = dma_alloc_coherent(dev, tfd_sz, &txq->q.dma_addr,
|
|
|
+ GFP_KERNEL);
|
|
|
if (!txq->tfds) {
|
|
|
IWL_ERR(priv, "pci_alloc_consistent(%zd) failed\n", tfd_sz);
|
|
|
goto error;
|