Commit cbf05091 authored by Omar Ramirez Luna's avatar Omar Ramirez Luna Committed by Greg Kroah-Hartman
Browse files

staging: ti dspbridge: enable driver building



Add Kconfig + Makefile for TI's DSP Bridge driver
and expose it to the staging menu.

For now, have tidspbridge depend on ARCH_OMAP3.
That dependency should be relaxed as soon as required cleanups are applied.

Signed-off-by: default avatarOmar Ramirez Luna <omar.ramirez@ti.com>
Signed-off-by: default avatarKanigeri, Hari <h-kanigeri2@ti.com>
Signed-off-by: default avatarAmeya Palande <ameya.palande@nokia.com>
Signed-off-by: default avatarGuzman Lugo, Fernando <fernando.lugo@ti.com>
Signed-off-by: default avatarHebbar, Shivananda <x0hebbar@ti.com>
Signed-off-by: default avatarRamos Falcon, Ernesto <ernesto@ti.com>
Signed-off-by: default avatarFelipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: default avatarAnna, Suman <s-anna@ti.com>
Signed-off-by: default avatarGupta, Ramesh <grgupta@ti.com>
Signed-off-by: default avatarGomez Castellanos, Ivan <ivan.gomez@ti.com>
Signed-off-by: default avatarAndy Shevchenko <ext-andriy.shevchenko@nokia.com>
Signed-off-by: default avatarArmando Uribe De Leon <x0095078@ti.com>
Signed-off-by: default avatarDeepak Chitriki <deepak.chitriki@ti.com>
Signed-off-by: default avatarMenon, Nishanth <nm@ti.com>
Signed-off-by: default avatarPhil Carmody <ext-phil.2.carmody@nokia.com>
Signed-off-by: default avatarOhad Ben-Cohen <ohad@wizery.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 7454c8f6
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -153,5 +153,7 @@ source "drivers/staging/easycap/Kconfig"

source "drivers/staging/solo6x10/Kconfig"

source "drivers/staging/tidspbridge/Kconfig"

endif # !STAGING_EXCLUDE_BUILD
endif # STAGING
+1 −0
Original line number Diff line number Diff line
@@ -57,3 +57,4 @@ obj-$(CONFIG_TOUCHSCREEN_MRSTOUCH) += mrst-touchscreen/
obj-$(CONFIG_MSM_STAGING)	+= msm/
obj-$(CONFIG_EASYCAP)		+= easycap/
obj-$(CONFIG_SOLO6X10)		+= solo6x10/
obj-$(CONFIG_TIDSPBRIDGE)	+= tidspbridge/
+88 −0
Original line number Diff line number Diff line
#
# DSP Bridge Driver Support
#

menuconfig TIDSPBRIDGE
	tristate "DSP Bridge driver"
	depends on ARCH_OMAP3
	select OMAP_MBOX_FWK
	help
	  DSP/BIOS Bridge is designed for platforms that contain a GPP and
	  one or more attached DSPs.  The GPP is considered the master or
	  "host" processor, and the attached DSPs are processing resources
	  that can be utilized by applications and drivers running on the GPP.

	  This driver depends on OMAP Mailbox (OMAP_MBOX_FWK).

config BRIDGE_DVFS
	bool "Enable Bridge Dynamic Voltage and Frequency Scaling (DVFS)"
	depends on TIDSPBRIDGE && OMAP_PM_SRF && CPU_FREQ
	default n
	help
	  DVFS allows DSP Bridge to initiate the operating point change to
	  scale the chip voltage and frequency in order to match the
	  performance and power consumption to the current processing
	  requirements.

config BRIDGE_MEMPOOL_SIZE
	hex "Physical memory pool size (Byte)"
	depends on TIDSPBRIDGE
	default 0x600000
	help
	  Allocate specified size of memory at booting time to avoid allocation
	  failure under heavy memory fragmentation after some use time.

config BRIDGE_DEBUG
	bool "DSP Bridge Debug Support"
	depends on TIDSPBRIDGE
	help
	  Say Y to enable Bridge debugging capabilities

config BRIDGE_RECOVERY
	bool "DSP Recovery Support"
	depends on TIDSPBRIDGE
	help
	  In case of DSP fatal error, BRIDGE driver will try to
	  recover itself.

config BRIDGE_CACHE_LINE_CHECK
	bool "Check buffers to be 128 byte aligned"
	depends on TIDSPBRIDGE
	default n
	help
	  When the DSP processes data, the DSP cache controller loads 128-Byte
	  chunks (lines) from SDRAM and writes the data back in 128-Byte chunks.
	  If a DMM buffer does not start and end on a 128-Byte boundary, the data
	  preceding the start address (SA) from the 128-Byte boundary to the SA
	  and the data at addresses trailing the end address (EA) from the EA to
	  the next 128-Byte boundary will be loaded and written back as well.
	  This can lead to heap corruption. Say Y, to enforce the check for 128
	  byte alignment, buffers failing this check will be rejected.

config BRIDGE_WDT3
	bool "Enable WDT3 interruptions"
	depends on TIDSPBRIDGE
	default n
	help
	  WTD3 is managed by DSP and once it is enabled, DSP side bridge is in
	  charge of refreshing the timer before overflow, if the DSP hangs MPU
	  will caught the interrupt and try to recover DSP.

config WDT_TIMEOUT
	int "DSP watchdog timer timeout (in secs)"
	depends on BRIDGE_WDT3
	default 5
	help
	   Watchdog timer timeout value, after that time if the watchdog timer
	   counter is not reset the wdt overflow interrupt will be triggered

comment "Bridge Notifications"
	depends on TIDSPBRIDGE

config BRIDGE_NTFY_PWRERR
	bool "Notify DSP Power Error"
	depends on TIDSPBRIDGE
	help
	  Enable notifications to registered clients on the event of power errror
	  trying to suspend bridge driver. Say Y, to signal this event as a fatal
	  error, this will require a bridge restart to recover.
+34 −0
Original line number Diff line number Diff line
obj-$(CONFIG_TIDSPBRIDGE)	+= bridgedriver.o

libgen = gen/gb.o gen/gs.o gen/gh.o gen/uuidutil.o
libservices = services/sync.o services/cfg.o \
		services/ntfy.o services/services.o
libcore = core/chnl_sm.o core/msg_sm.o core/io_sm.o core/tiomap3430.o \
		core/tiomap3430_pwr.o core/tiomap_io.o \
		core/mmu_fault.o core/ue_deh.o core/wdt.o core/dsp-clock.o
libpmgr = pmgr/chnl.o pmgr/io.o pmgr/msg.o pmgr/cod.o pmgr/dev.o pmgr/dspapi.o \
		pmgr/dmm.o pmgr/cmm.o pmgr/dbll.o
librmgr = rmgr/dbdcd.o rmgr/disp.o rmgr/drv.o rmgr/mgr.o rmgr/node.o \
		rmgr/proc.o rmgr/pwr.o rmgr/rmm.o rmgr/strm.o rmgr/dspdrv.o \
		rmgr/nldr.o rmgr/drv_interface.o
libdload = dynload/cload.o dynload/getsection.o dynload/reloc.o \
		 dynload/tramp.o
libhw = hw/hw_mmu.o

bridgedriver-objs = $(libgen) $(libservices) $(libcore) $(libpmgr) $(librmgr) \
			$(libdload) $(libhw)

#Machine dependent
ccflags-y += -D_TI_ -D_DB_TIOMAP -DTMS32060 \
		-DTICFG_PROC_VER -DTICFG_EVM_TYPE -DCHNL_SMCLASS \
		-DCHNL_MESSAGES -DUSE_LEVEL_1_MACROS

ccflags-y += -Idrivers/staging/tidspbridge/include
ccflags-y += -Idrivers/staging/tidspbridge/services
ccflags-y += -Idrivers/staging/tidspbridge/core
ccflags-y += -Idrivers/staging/tidspbridge/pmgr
ccflags-y += -Idrivers/staging/tidspbridge/rmgr
ccflags-y += -Idrivers/staging/tidspbridge/dynload
ccflags-y += -Idrivers/staging/tidspbridge/hw
ccflags-y += -Iarch/arm