Commit 38866d82 authored by Jaco Hofmann's avatar Jaco Hofmann Committed by Jaco A. Hofmann
Browse files

Add 16 slot buffer to interrupt handler

parent 56c0c2e9
......@@ -336,7 +336,7 @@
<spirit:parameters>
<spirit:parameter>
<spirit:name>viewChecksum</spirit:name>
<spirit:value>09ee8702</spirit:value>
<spirit:value>801496ed</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:view>
......@@ -352,7 +352,7 @@
<spirit:parameters>
<spirit:parameter>
<spirit:name>viewChecksum</spirit:name>
<spirit:value>a1f70f90</spirit:value>
<spirit:value>aec5ed73</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:view>
......@@ -903,7 +903,7 @@
<spirit:file>
<spirit:name>src/mkMSIXIntrCtrl.v</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType>
<spirit:userFileType>CHECKSUM_f42c23cf</spirit:userFileType>
<spirit:userFileType>CHECKSUM_a851cb3a</spirit:userFileType>
</spirit:file>
</spirit:fileSet>
<spirit:fileSet>
......@@ -975,7 +975,7 @@
<xilinx:displayName>MSIXIntrCtrl</xilinx:displayName>
<xilinx:definitionSource>package_project</xilinx:definitionSource>
<xilinx:coreRevision>1</xilinx:coreRevision>
<xilinx:coreCreationDateTime>2019-03-27T13:22:48Z</xilinx:coreCreationDateTime>
<xilinx:coreCreationDateTime>2019-03-27T16:28:40Z</xilinx:coreCreationDateTime>
<xilinx:tags>
<xilinx:tag xilinx:name="nopcore"/>
</xilinx:tags>
......@@ -984,7 +984,7 @@
<xilinx:xilinxVersion>2018.3</xilinx:xilinxVersion>
<xilinx:checksum xilinx:scope="busInterfaces" xilinx:value="005537d1"/>
<xilinx:checksum xilinx:scope="memoryMaps" xilinx:value="ce939530"/>
<xilinx:checksum xilinx:scope="fileGroups" xilinx:value="628e2b97"/>
<xilinx:checksum xilinx:scope="fileGroups" xilinx:value="06ce6604"/>
<xilinx:checksum xilinx:scope="ports" xilinx:value="9334f89d"/>
<xilinx:checksum xilinx:scope="parameters" xilinx:value="4ff74fe2"/>
</xilinx:packagingInfo>
......
This diff is collapsed.
......@@ -39,16 +39,22 @@
irqreturn_t blue_dma_intr_handler_read(int irq, void * dev_id)
{
struct dma_engine *dma = (struct dma_engine *)dev_id;
struct platform *p = &dma->dev->cls->platform;
volatile uint32_t* msix_ack = (volatile uint32_t*) (dma->dev->mmap.plat + ((0x500000 + 0x8120) - p->plat.base));
atomic64_inc(&dma->rq_processed);
wake_up_interruptible(&dma->rq);
msix_ack[0] = 0;
return IRQ_HANDLED;
}
irqreturn_t blue_dma_intr_handler_write(int irq, void * dev_id)
{
struct dma_engine *dma = (struct dma_engine *)dev_id;
struct platform *p = &dma->dev->cls->platform;
volatile uint32_t* msix_ack = (volatile uint32_t*) (dma->dev->mmap.plat + ((0x500000 + 0x8120) - p->plat.base));
atomic64_inc(&dma->wq_processed);
wake_up_interruptible(&dma->wq);
msix_ack[0] = 1;
return IRQ_HANDLED;
}
......
......@@ -40,8 +40,8 @@ struct dma_operations {
};
// Currently any chunk size smaller than 2 MB will result in failures due to missing interrupts
#define TLKM_DMA_CHUNK_SZ (size_t)(2 * 1024 * 1024) // 2 MiB
#define TLKM_DMA_CHUNKS (4)
#define TLKM_DMA_CHUNK_SZ (size_t)(256 * 1024) // 2 MiB
#define TLKM_DMA_CHUNKS (16)
struct dma_engine {
dev_id_t dev_id;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment