mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-24 10:11:26 +03:00
nvethernet: use osi_handle_dma_intr() API
Bug 200671160 Change-Id: Id293c02529beb7e72ef567508c74c1a7de6bae79 Signed-off-by: Bhadram Varka <vbhadram@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2497651 Reviewed-by: svcacv <svcacv@nvidia.com> Reviewed-by: Nagarjuna Kristam <nkristam@nvidia.com> Reviewed-by: Narayan Reddy <narayanr@nvidia.com> Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com> Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
Revanth Kumar Uppala
parent
e411787070
commit
71fa042ce4
@@ -490,20 +490,20 @@ irqreturn_t ether_vm_isr(int irq, void *data)
|
||||
txrx = temp & 1U;
|
||||
|
||||
if (txrx) {
|
||||
osi_clear_vm_rx_intr(osi_dma, chan);
|
||||
|
||||
rx_napi = pdata->rx_napi[chan];
|
||||
if (likely(napi_schedule_prep(&rx_napi->napi))) {
|
||||
osi_disable_chan_rx_intr(osi_dma, chan);
|
||||
osi_handle_dma_intr(osi_dma, chan,
|
||||
OSI_DMA_CH_RX_INTR,
|
||||
OSI_DMA_INTR_DISABLE);
|
||||
/* TODO: Schedule NAPI on different CPU core */
|
||||
__napi_schedule(&rx_napi->napi);
|
||||
}
|
||||
} else {
|
||||
osi_clear_vm_tx_intr(osi_dma, chan);
|
||||
|
||||
tx_napi = pdata->tx_napi[chan];
|
||||
if (likely(napi_schedule_prep(&tx_napi->napi))) {
|
||||
osi_disable_chan_tx_intr(osi_dma, chan);
|
||||
osi_handle_dma_intr(osi_dma, chan,
|
||||
OSI_DMA_CH_TX_INTR,
|
||||
OSI_DMA_INTR_DISABLE);
|
||||
/* TODO: Schedule NAPI on different CPU core */
|
||||
__napi_schedule(&tx_napi->napi);
|
||||
}
|
||||
@@ -542,7 +542,9 @@ static irqreturn_t ether_tx_chan_isr(int irq, void *data)
|
||||
unsigned long val;
|
||||
|
||||
raw_spin_lock_irqsave(&pdata->rlock, flags);
|
||||
osi_disable_chan_tx_intr(osi_dma, chan);
|
||||
osi_handle_dma_intr(osi_dma, chan,
|
||||
OSI_DMA_CH_TX_INTR,
|
||||
OSI_DMA_INTR_DISABLE);
|
||||
raw_spin_unlock_irqrestore(&pdata->rlock, flags);
|
||||
|
||||
val = osi_core->xstats.tx_normal_irq_n[chan];
|
||||
@@ -588,7 +590,9 @@ static irqreturn_t ether_rx_chan_isr(int irq, void *data)
|
||||
unsigned long val, flags;
|
||||
|
||||
raw_spin_lock_irqsave(&pdata->rlock, flags);
|
||||
osi_disable_chan_rx_intr(osi_dma, chan);
|
||||
osi_handle_dma_intr(osi_dma, chan,
|
||||
OSI_DMA_CH_RX_INTR,
|
||||
OSI_DMA_INTR_DISABLE);
|
||||
raw_spin_unlock_irqrestore(&pdata->rlock, flags);
|
||||
|
||||
val = osi_core->xstats.rx_normal_irq_n[chan];
|
||||
@@ -2821,7 +2825,9 @@ static int ether_napi_poll_rx(struct napi_struct *napi, int budget)
|
||||
if (received < budget) {
|
||||
napi_complete(napi);
|
||||
raw_spin_lock_irqsave(&pdata->rlock, flags);
|
||||
osi_enable_chan_rx_intr(osi_dma, chan);
|
||||
osi_handle_dma_intr(osi_dma, chan,
|
||||
OSI_DMA_CH_RX_INTR,
|
||||
OSI_DMA_INTR_ENABLE);
|
||||
raw_spin_unlock_irqrestore(&pdata->rlock, flags);
|
||||
}
|
||||
|
||||
@@ -2866,7 +2872,9 @@ static int ether_napi_poll_tx(struct napi_struct *napi, int budget)
|
||||
if (processed < budget) {
|
||||
napi_complete(napi);
|
||||
raw_spin_lock_irqsave(&pdata->rlock, flags);
|
||||
osi_enable_chan_tx_intr(osi_dma, chan);
|
||||
osi_handle_dma_intr(osi_dma, chan,
|
||||
OSI_DMA_CH_TX_INTR,
|
||||
OSI_DMA_INTR_ENABLE);
|
||||
raw_spin_unlock_irqrestore(&pdata->rlock, flags);
|
||||
}
|
||||
|
||||
@@ -4497,8 +4505,12 @@ static int ether_suspend_noirq(struct device *dev)
|
||||
|
||||
for (i = 0; i < osi_dma->num_dma_chans; i++) {
|
||||
chan = osi_dma->dma_chans[i];
|
||||
osi_disable_chan_tx_intr(osi_dma, chan);
|
||||
osi_disable_chan_rx_intr(osi_dma, chan);
|
||||
osi_handle_dma_intr(osi_dma, chan,
|
||||
OSI_DMA_CH_TX_INTR,
|
||||
OSI_DMA_INTR_DISABLE);
|
||||
osi_handle_dma_intr(osi_dma, chan,
|
||||
OSI_DMA_CH_RX_INTR,
|
||||
OSI_DMA_INTR_DISABLE);
|
||||
}
|
||||
|
||||
free_dma_resources(pdata);
|
||||
|
||||
Reference in New Issue
Block a user