habanalabs: add h/w queues module
This patch adds the H/W queues module and the code to initialize Goya's various compute and DMA engines and their queues. Goya has 5 DMA channels, 8 TPC engines and a single MME engine. For each channel/engine, there is a H/W queue logic which is used to pass commands from the user to the H/W. That logic is called QMAN. There are two types of QMANs: external and internal. The DMA QMANs are considered external while the TPC and MME QMANs are considered internal. For each external queue there is a completion queue, which is located on the Host memory. The differences between external and internal QMANs are: 1. The location of the queue's memory. External QMANs are located on the Host memory while internal QMANs are located on the on-chip memory. 2. The external QMAN write an entry to a completion queue and sends an MSI-X interrupt upon completion of a command buffer that was given to it. The internal QMAN doesn't do that. Reviewed-by:Mike Rapoport <rppt@linux.ibm.com> Signed-off-by:
Oded Gabbay <oded.gabbay@gmail.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Showing
- drivers/misc/habanalabs/Makefile 1 addition, 1 deletiondrivers/misc/habanalabs/Makefile
- drivers/misc/habanalabs/device.c 73 additions, 2 deletionsdrivers/misc/habanalabs/device.c
- drivers/misc/habanalabs/goya/goya.c 1415 additions, 112 deletionsdrivers/misc/habanalabs/goya/goya.c
- drivers/misc/habanalabs/goya/goyaP.h 7 additions, 0 deletionsdrivers/misc/habanalabs/goya/goyaP.h
- drivers/misc/habanalabs/habanalabs.h 173 additions, 1 deletiondrivers/misc/habanalabs/habanalabs.h
- drivers/misc/habanalabs/habanalabs_drv.c 5 additions, 0 deletionsdrivers/misc/habanalabs/habanalabs_drv.c
- drivers/misc/habanalabs/hw_queue.c 400 additions, 0 deletionsdrivers/misc/habanalabs/hw_queue.c
- drivers/misc/habanalabs/include/armcp_if.h 292 additions, 0 deletionsdrivers/misc/habanalabs/include/armcp_if.h
- drivers/misc/habanalabs/include/goya/goya_async_events.h 186 additions, 0 deletionsdrivers/misc/habanalabs/include/goya/goya_async_events.h
- drivers/misc/habanalabs/include/goya/goya_packets.h 129 additions, 0 deletionsdrivers/misc/habanalabs/include/goya/goya_packets.h
- drivers/misc/habanalabs/include/qman_if.h 56 additions, 0 deletionsdrivers/misc/habanalabs/include/qman_if.h
- drivers/misc/habanalabs/irq.c 149 additions, 0 deletionsdrivers/misc/habanalabs/irq.c
- include/uapi/misc/habanalabs.h 29 additions, 0 deletionsinclude/uapi/misc/habanalabs.h
Loading
Please register or sign in to comment