Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59606ffa authored by Samuel Ortiz's avatar Samuel Ortiz Committed by John W. Linville
Browse files

iwlwifi: make iwl_tx_queue->tfds void*



Instead of having both tfds and tfds39, we can just have a void *tfds.
It makes the tx_queue structure nicer, and the code cleaner. It also helps
with further TX queues management code merging.

Signed-off-by: default avatarSamuel Ortiz <samuel.ortiz@intel.com>
Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 77fecfb8
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -730,10 +730,11 @@ int iwl3945_hw_txq_attach_buf_to_tfd(struct iwl_priv *priv,
{
	int count;
	struct iwl_queue *q;
	struct iwl3945_tfd *tfd;
	struct iwl3945_tfd *tfd, *tfd_tmp;

	q = &txq->q;
	tfd = &txq->tfds39[q->write_ptr];
	tfd_tmp = (struct iwl3945_tfd *)txq->tfds;
	tfd = &tfd_tmp[q->write_ptr];

	if (reset)
		memset(tfd, 0, sizeof(*tfd));
@@ -764,7 +765,7 @@ int iwl3945_hw_txq_attach_buf_to_tfd(struct iwl_priv *priv,
 */
void iwl3945_hw_txq_free_tfd(struct iwl_priv *priv, struct iwl_tx_queue *txq)
{
	struct iwl3945_tfd *tfd_tmp = (struct iwl3945_tfd *)&txq->tfds39[0];
	struct iwl3945_tfd *tfd_tmp = (struct iwl3945_tfd *)txq->tfds;
	struct iwl3945_tfd *tfd = &tfd_tmp[txq->q.read_ptr];
	struct pci_dev *dev = priv->pci_dev;
	int i;
+4 −3
Original line number Diff line number Diff line
@@ -520,7 +520,7 @@ static inline u8 iwl_tfd_get_num_tbs(struct iwl_tfd *tfd)
 */
void iwl_hw_txq_free_tfd(struct iwl_priv *priv, struct iwl_tx_queue *txq)
{
	struct iwl_tfd *tfd_tmp = (struct iwl_tfd *)&txq->tfds[0];
	struct iwl_tfd *tfd_tmp = (struct iwl_tfd *)txq->tfds;
	struct iwl_tfd *tfd;
	struct pci_dev *dev = priv->pci_dev;
	int index = txq->q.read_ptr;
@@ -563,11 +563,12 @@ int iwl_hw_txq_attach_buf_to_tfd(struct iwl_priv *priv,
				 u8 reset, u8 pad)
{
	struct iwl_queue *q;
	struct iwl_tfd *tfd;
	struct iwl_tfd *tfd, *tfd_tmp;
	u32 num_tbs;

	q = &txq->q;
	tfd = &txq->tfds[q->write_ptr];
	tfd_tmp = (struct iwl_tfd *)txq->tfds;
	tfd = &tfd_tmp[q->write_ptr];

	if (reset)
		memset(tfd, 0, sizeof(*tfd));
+1 −2
Original line number Diff line number Diff line
@@ -149,8 +149,7 @@ struct iwl_tx_info {

struct iwl_tx_queue {
	struct iwl_queue q;
	struct iwl_tfd *tfds;
	struct iwl3945_tfd *tfds39;
	void *tfds;
	struct iwl_cmd *cmd[TFD_TX_CMD_SLOTS];
	struct iwl_tx_info *txb;
	u8 need_update;
+2 −2
Original line number Diff line number Diff line
@@ -295,12 +295,12 @@ 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,
			sizeof(txq->tfds[0]) * TFD_QUEUE_SIZE_MAX,
			sizeof(struct iwl_tfd) * TFD_QUEUE_SIZE_MAX,
			&txq->q.dma_addr);

	if (!txq->tfds) {
		IWL_ERR(priv, "pci_alloc_consistent(%zd) failed\n",
			  sizeof(txq->tfds[0]) * TFD_QUEUE_SIZE_MAX);
			  sizeof(struct iwl_tfd) * TFD_QUEUE_SIZE_MAX);
		goto error;
	}
	txq->q.id = id;
+6 −6
Original line number Diff line number Diff line
@@ -172,13 +172,13 @@ static int iwl3945_tx_queue_alloc(struct iwl_priv *priv,

	/* Circular buffer of transmit frame descriptors (TFDs),
	 * shared with device */
	txq->tfds39 = pci_alloc_consistent(dev,
			sizeof(txq->tfds39[0]) * TFD_QUEUE_SIZE_MAX,
	txq->tfds = pci_alloc_consistent(dev,
				sizeof(struct iwl3945_tfd) * TFD_QUEUE_SIZE_MAX,
				&txq->q.dma_addr);

	if (!txq->tfds39) {
	if (!txq->tfds) {
		IWL_ERR(priv, "pci_alloc_consistent(%zd) failed\n",
			  sizeof(txq->tfds39[0]) * TFD_QUEUE_SIZE_MAX);
			  sizeof(struct iwl3945_tfd) * TFD_QUEUE_SIZE_MAX);
		goto error;
	}
	txq->q.id = id;
@@ -287,7 +287,7 @@ void iwl3945_tx_queue_free(struct iwl_priv *priv, struct iwl_tx_queue *txq)
	/* De-alloc circular buffer of TFDs */
	if (txq->q.n_bd)
		pci_free_consistent(dev, sizeof(struct iwl3945_tfd) *
				    txq->q.n_bd, txq->tfds39, txq->q.dma_addr);
				    txq->q.n_bd, txq->tfds, txq->q.dma_addr);

	/* De-alloc array of per-TFD driver data */
	kfree(txq->txb);