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

Commit 41f93af9 authored by Sandeep Nair's avatar Sandeep Nair Committed by Santosh Shilimkar
Browse files

soc: ti: add Keystone Navigator QMSS driver



The QMSS (Queue Manager Sub System) found on Keystone SOCs is one of
the main hardware sub system which forms the backbone of the Keystone
Multi-core Navigator. QMSS consist of queue managers, packed-data structure
processors(PDSP), linking RAM, descriptor pools and infrastructure
Packet DMA.

The Queue Manager is a hardware module that is responsible for accelerating
management of the packet queues. Packets are queued/de-queued by writing or
reading descriptor address to a particular memory mapped location. The PDSPs
perform QMSS related functions like accumulation, QoS, or event management.
Linking RAM registers are used to link the descriptors which are stored in
descriptor RAM. Descriptor RAM is configurable as internal or external memory.

The QMSS driver manages the PDSP setups, linking RAM regions,
queue pool management (allocation, push, pop and notify) and descriptor
pool management. The specifics on the device tree bindings for
QMSS can be found in:
	Documentation/devicetree/bindings/soc/keystone-navigator-qmss.txt

Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Kumar Gala <galak@codeaurora.org>
Cc: Olof Johansson <olof@lixom.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Grant Likely <grant.likely@linaro.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: default avatarSandeep Nair <sandeep_n@ti.com>
Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
parent a4dfb8c4
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -148,6 +148,8 @@ source "drivers/remoteproc/Kconfig"

source "drivers/rpmsg/Kconfig"

source "drivers/soc/Kconfig"

source "drivers/devfreq/Kconfig"

source "drivers/extcon/Kconfig"
+1 −0
Original line number Diff line number Diff line
menu "SOC (System On Chip) specific Drivers"

source "drivers/soc/qcom/Kconfig"
source "drivers/soc/ti/Kconfig"

endmenu
+1 −0
Original line number Diff line number Diff line
@@ -4,3 +4,4 @@

obj-$(CONFIG_ARCH_QCOM)		+= qcom/
obj-$(CONFIG_ARCH_TEGRA)	+= tegra/
obj-$(CONFIG_SOC_TI)		+= ti/

drivers/soc/ti/Kconfig

0 → 100644
+21 −0
Original line number Diff line number Diff line
#
# TI SOC drivers
#
menuconfig SOC_TI
	bool "TI SOC drivers support"

if SOC_TI

config KEYSTONE_NAVIGATOR_QMSS
	tristate "Keystone Queue Manager Sub System"
	depends on ARCH_KEYSTONE
	help
	  Say y here to support the Keystone multicore Navigator Queue
	  Manager support. The Queue Manager is a hardware module that
	  is responsible for accelerating management of the packet queues.
	  Packets are queued/de-queued by writing/reading descriptor address
	  to a particular memory mapped location in the Queue Manager module.

	  If unsure, say N.

endif # SOC_TI
+4 −0
Original line number Diff line number Diff line
#
# TI Keystone SOC drivers
#
obj-$(CONFIG_KEYSTONE_NAVIGATOR_QMSS)	+= knav_qmss_queue.o knav_qmss_acc.o
Loading