mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 05:44:11 +00:00
ionic: drop q mapping
Now that we're not using desc_info pointers mapped in every q we can simplify and drop the unnecessary utility functions. Reviewed-by: Brett Creeley <brett.creeley@amd.com> Signed-off-by: Shannon Nelson <shannon.nelson@amd.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d60984d39f
commit
90c01ede6d
3 changed files with 10 additions and 35 deletions
|
@ -706,24 +706,6 @@ int ionic_q_init(struct ionic_lif *lif, struct ionic_dev *idev,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ionic_q_map(struct ionic_queue *q, void *base, dma_addr_t base_pa)
|
|
||||||
{
|
|
||||||
q->base = base;
|
|
||||||
q->base_pa = base_pa;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ionic_q_cmb_map(struct ionic_queue *q, void __iomem *base, dma_addr_t base_pa)
|
|
||||||
{
|
|
||||||
q->cmb_base = base;
|
|
||||||
q->cmb_base_pa = base_pa;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ionic_q_sg_map(struct ionic_queue *q, void *base, dma_addr_t base_pa)
|
|
||||||
{
|
|
||||||
q->sg_base = base;
|
|
||||||
q->sg_base_pa = base_pa;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ionic_q_post(struct ionic_queue *q, bool ring_doorbell, ionic_desc_cb cb,
|
void ionic_q_post(struct ionic_queue *q, bool ring_doorbell, ionic_desc_cb cb,
|
||||||
void *cb_arg)
|
void *cb_arg)
|
||||||
{
|
{
|
||||||
|
|
|
@ -381,9 +381,6 @@ int ionic_q_init(struct ionic_lif *lif, struct ionic_dev *idev,
|
||||||
struct ionic_queue *q, unsigned int index, const char *name,
|
struct ionic_queue *q, unsigned int index, const char *name,
|
||||||
unsigned int num_descs, size_t desc_size,
|
unsigned int num_descs, size_t desc_size,
|
||||||
size_t sg_desc_size, unsigned int pid);
|
size_t sg_desc_size, unsigned int pid);
|
||||||
void ionic_q_map(struct ionic_queue *q, void *base, dma_addr_t base_pa);
|
|
||||||
void ionic_q_cmb_map(struct ionic_queue *q, void __iomem *base, dma_addr_t base_pa);
|
|
||||||
void ionic_q_sg_map(struct ionic_queue *q, void *base, dma_addr_t base_pa);
|
|
||||||
void ionic_q_post(struct ionic_queue *q, bool ring_doorbell, ionic_desc_cb cb,
|
void ionic_q_post(struct ionic_queue *q, bool ring_doorbell, ionic_desc_cb cb,
|
||||||
void *cb_arg);
|
void *cb_arg);
|
||||||
void ionic_q_service(struct ionic_queue *q, struct ionic_cq_info *cq_info,
|
void ionic_q_service(struct ionic_queue *q, struct ionic_cq_info *cq_info,
|
||||||
|
|
|
@ -542,11 +542,9 @@ static int ionic_qcq_alloc(struct ionic_lif *lif, unsigned int type,
|
||||||
{
|
{
|
||||||
struct ionic_dev *idev = &lif->ionic->idev;
|
struct ionic_dev *idev = &lif->ionic->idev;
|
||||||
struct device *dev = lif->ionic->dev;
|
struct device *dev = lif->ionic->dev;
|
||||||
void *q_base, *cq_base, *sg_base;
|
|
||||||
dma_addr_t cq_base_pa = 0;
|
dma_addr_t cq_base_pa = 0;
|
||||||
dma_addr_t sg_base_pa = 0;
|
|
||||||
dma_addr_t q_base_pa = 0;
|
|
||||||
struct ionic_qcq *new;
|
struct ionic_qcq *new;
|
||||||
|
void *cq_base;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
*qcq = NULL;
|
*qcq = NULL;
|
||||||
|
@ -612,11 +610,10 @@ static int ionic_qcq_alloc(struct ionic_lif *lif, unsigned int type,
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
goto err_out_free_cq_info;
|
goto err_out_free_cq_info;
|
||||||
}
|
}
|
||||||
q_base = PTR_ALIGN(new->q_base, PAGE_SIZE);
|
new->q.base = PTR_ALIGN(new->q_base, PAGE_SIZE);
|
||||||
q_base_pa = ALIGN(new->q_base_pa, PAGE_SIZE);
|
new->q.base_pa = ALIGN(new->q_base_pa, PAGE_SIZE);
|
||||||
ionic_q_map(&new->q, q_base, q_base_pa);
|
|
||||||
|
|
||||||
cq_base = PTR_ALIGN(q_base + q_size, PAGE_SIZE);
|
cq_base = PTR_ALIGN(new->q_base + q_size, PAGE_SIZE);
|
||||||
cq_base_pa = ALIGN(new->q_base_pa + q_size, PAGE_SIZE);
|
cq_base_pa = ALIGN(new->q_base_pa + q_size, PAGE_SIZE);
|
||||||
ionic_cq_map(&new->cq, cq_base, cq_base_pa);
|
ionic_cq_map(&new->cq, cq_base, cq_base_pa);
|
||||||
ionic_cq_bind(&new->cq, &new->q);
|
ionic_cq_bind(&new->cq, &new->q);
|
||||||
|
@ -630,9 +627,8 @@ static int ionic_qcq_alloc(struct ionic_lif *lif, unsigned int type,
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
goto err_out_free_cq_info;
|
goto err_out_free_cq_info;
|
||||||
}
|
}
|
||||||
q_base = PTR_ALIGN(new->q_base, PAGE_SIZE);
|
new->q.base = PTR_ALIGN(new->q_base, PAGE_SIZE);
|
||||||
q_base_pa = ALIGN(new->q_base_pa, PAGE_SIZE);
|
new->q.base_pa = ALIGN(new->q_base_pa, PAGE_SIZE);
|
||||||
ionic_q_map(&new->q, q_base, q_base_pa);
|
|
||||||
|
|
||||||
if (flags & IONIC_QCQ_F_CMB_RINGS) {
|
if (flags & IONIC_QCQ_F_CMB_RINGS) {
|
||||||
/* on-chip CMB q descriptors */
|
/* on-chip CMB q descriptors */
|
||||||
|
@ -657,7 +653,8 @@ static int ionic_qcq_alloc(struct ionic_lif *lif, unsigned int type,
|
||||||
}
|
}
|
||||||
|
|
||||||
new->cmb_q_base_pa -= idev->phy_cmb_pages;
|
new->cmb_q_base_pa -= idev->phy_cmb_pages;
|
||||||
ionic_q_cmb_map(&new->q, new->cmb_q_base, new->cmb_q_base_pa);
|
new->q.cmb_base = new->cmb_q_base;
|
||||||
|
new->q.cmb_base_pa = new->cmb_q_base_pa;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* cq DMA descriptors */
|
/* cq DMA descriptors */
|
||||||
|
@ -684,9 +681,8 @@ static int ionic_qcq_alloc(struct ionic_lif *lif, unsigned int type,
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
goto err_out_free_cq;
|
goto err_out_free_cq;
|
||||||
}
|
}
|
||||||
sg_base = PTR_ALIGN(new->sg_base, PAGE_SIZE);
|
new->q.sg_base = PTR_ALIGN(new->sg_base, PAGE_SIZE);
|
||||||
sg_base_pa = ALIGN(new->sg_base_pa, PAGE_SIZE);
|
new->q.sg_base_pa = ALIGN(new->sg_base_pa, PAGE_SIZE);
|
||||||
ionic_q_sg_map(&new->q, sg_base, sg_base_pa);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
INIT_WORK(&new->dim.work, ionic_dim_work);
|
INIT_WORK(&new->dim.work, ionic_dim_work);
|
||||||
|
|
Loading…
Reference in a new issue