4 years agoMerged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y ti-rt-linux-4.19.y-next-20191001
Merged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
ASoC: soc-pcm: Use different sequence for start/stop trigger
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
ASoC: soc-pcm: Use different sequence for start/stop trigger
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature audio-display into ti-linux-4.19.y
TI-Feature: audio-display
TI-Branch: audio_display-ti-linux-4.19.y
* 'audio_display-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/audio-display:
ASoC: soc-pcm: Use different sequence for start/stop trigger
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: audio-display
TI-Branch: audio_display-ti-linux-4.19.y
* 'audio_display-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/audio-display:
ASoC: soc-pcm: Use different sequence for start/stop trigger
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio/linux-audio into audio_display-ti-linux-4.19.y
2019.04 - ASoC: pcm trigger ordering to fix errors on stream stop/pause
* 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio/linux-audio:
ASoC: soc-pcm: Use different sequence for start/stop trigger
2019.04 - ASoC: pcm trigger ordering to fix errors on stream stop/pause
* 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio/linux-audio:
ASoC: soc-pcm: Use different sequence for start/stop trigger
ASoC: soc-pcm: Use different sequence for start/stop trigger
On stream stop currently we stop the DMA first followed by the CPU DAI.
This can cause underflow (playback) or overflow (capture) on the DAI side
as the DMA is no longer feeding data while the DAI is still active.
It can be observed easily if the DAI side does not have FIFO (or it is
disabled) to survive the time while the DMA is stopped, but still can
happen on relatively slow CPUs when relatively high sampling rate is used:
the FIFO is drained between the time the DMA is stopped and the DAI is
stopped.
It can only fixed by using different sequence within trigger for 'stop' and
'start':
case SNDRV_PCM_TRIGGER_START:
case SNDRV_PCM_TRIGGER_RESUME:
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
Trigger order: dai_link, DMA, CPU DAI then the codec
case SNDRV_PCM_TRIGGER_STOP:
case SNDRV_PCM_TRIGGER_SUSPEND:
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
Trigger order: codec, CPU DAI, DMA then dai_link
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
On stream stop currently we stop the DMA first followed by the CPU DAI.
This can cause underflow (playback) or overflow (capture) on the DAI side
as the DMA is no longer feeding data while the DAI is still active.
It can be observed easily if the DAI side does not have FIFO (or it is
disabled) to survive the time while the DMA is stopped, but still can
happen on relatively slow CPUs when relatively high sampling rate is used:
the FIFO is drained between the time the DMA is stopped and the DAI is
stopped.
It can only fixed by using different sequence within trigger for 'stop' and
'start':
case SNDRV_PCM_TRIGGER_START:
case SNDRV_PCM_TRIGGER_RESUME:
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
Trigger order: dai_link, DMA, CPU DAI then the codec
case SNDRV_PCM_TRIGGER_STOP:
case SNDRV_PCM_TRIGGER_SUSPEND:
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
Trigger order: codec, CPU DAI, DMA then dai_link
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
4 years agoMerged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y ti-rt-linux-4.19.y-next-20190930
Merged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
drm/tidss: dispc7: Update scaling limitations for J7 DSS
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
drm/tidss: dispc7: Update scaling limitations for J7 DSS
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature audio-display into ti-linux-4.19.y
TI-Feature: audio-display
TI-Branch: audio_display-ti-linux-4.19.y
* 'audio_display-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/audio-display:
drm/tidss: dispc7: Update scaling limitations for J7 DSS
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: audio-display
TI-Branch: audio_display-ti-linux-4.19.y
* 'audio_display-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/audio-display:
drm/tidss: dispc7: Update scaling limitations for J7 DSS
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
drm/tidss: dispc7: Update scaling limitations for J7 DSS
J721E DSS has larger linebuffers for scaling and different buffer
width limitations for scaling. The patch updates the values copied
from AM65x DSS support.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
J721E DSS has larger linebuffers for scaling and different buffer
width limitations for scaling. The patch updates the values copied
from AM65x DSS support.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
4 years agoMerged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y ti-rt-linux-4.19.y-next-20190928 ti-rt-linux-4.19.y-next-20190929
Merged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
remoteproc/k3-dsp: Add support for L2RAM loading on C66x DSPs
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
remoteproc/k3-dsp: Add support for L2RAM loading on C66x DSPs
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature rpmsg into ti-linux-4.19.y
TI-Feature: rpmsg
TI-Branch: rpmsg-ti-linux-4.19.y-intg
* 'rpmsg-ti-linux-4.19.y-intg' of git://git.ti.com/rpmsg/rpmsg:
remoteproc/k3-dsp: Add support for L2RAM loading on C66x DSPs
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: rpmsg
TI-Branch: rpmsg-ti-linux-4.19.y-intg
* 'rpmsg-ti-linux-4.19.y-intg' of git://git.ti.com/rpmsg/rpmsg:
remoteproc/k3-dsp: Add support for L2RAM loading on C66x DSPs
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
remoteproc/k3-dsp: Add support for L2RAM loading on C66x DSPs
The resets for the DSP processors on K3 SoCs are managed through the
Power and Sleep Controller (PSC) module. Each DSP typically has two
resets - a global module reset for powering on the device, and a local
reset that affects only the CPU while allowing access to the other
sub-modules within the DSP processor sub-systems.
The C66x DSPs have two levels of internal RAMs that can be used to
boot from, and the firmware loading into these RAMs require the
local reset to be asserted with the device powered on/enabled using
the module reset. Enhance the K3 DSP remoteproc driver to add support
for loading into the internal RAMs. The local reset is deasserted on
SoC power-on-reset, so logic has to be added in probe in remoteproc
mode to balance the remoteproc state-machine.
Note that the local resets are a no-op on C71x cores, and the hardware
does not supporting loading into its internal RAMs.
Signed-off-by: Suman Anna <s-anna@ti.com>
The resets for the DSP processors on K3 SoCs are managed through the
Power and Sleep Controller (PSC) module. Each DSP typically has two
resets - a global module reset for powering on the device, and a local
reset that affects only the CPU while allowing access to the other
sub-modules within the DSP processor sub-systems.
The C66x DSPs have two levels of internal RAMs that can be used to
boot from, and the firmware loading into these RAMs require the
local reset to be asserted with the device powered on/enabled using
the module reset. Enhance the K3 DSP remoteproc driver to add support
for loading into the internal RAMs. The local reset is deasserted on
SoC power-on-reset, so logic has to be added in probe in remoteproc
mode to balance the remoteproc state-machine.
Note that the local resets are a no-op on C71x cores, and the hardware
does not supporting loading into its internal RAMs.
Signed-off-by: Suman Anna <s-anna@ti.com>
Merged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
arm64: dts: ti: k3-j721e-proc-board-tps65917: Fix USB0 in super-speed
usb: cdns3: gadget: Fix broken gadget after role switch from host to device
arm64: dts: k3-j721e-proc-board: Add wait time for sampling Type-C DIR line
phy: ti: j721e-wiz: Add support Type-C DIR GPIO delay
dt-bindings: phy: ti,phy-j721e-wiz: Add Type-C dir GPIO debounce
phy: ti: j721e-wiz: Fix error path if Type-C GPIO is not available
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
arm64: dts: ti: k3-j721e-proc-board-tps65917: Fix USB0 in super-speed
usb: cdns3: gadget: Fix broken gadget after role switch from host to device
arm64: dts: k3-j721e-proc-board: Add wait time for sampling Type-C DIR line
phy: ti: j721e-wiz: Add support Type-C DIR GPIO delay
dt-bindings: phy: ti,phy-j721e-wiz: Add Type-C dir GPIO debounce
phy: ti: j721e-wiz: Fix error path if Type-C GPIO is not available
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature connectivity into ti-linux-4.19.y
TI-Feature: connectivity
TI-Branch: connectivity-ti-linux-4.19.y
* 'connectivity-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity:
arm64: dts: ti: k3-j721e-proc-board-tps65917: Fix USB0 in super-speed
usb: cdns3: gadget: Fix broken gadget after role switch from host to device
arm64: dts: k3-j721e-proc-board: Add wait time for sampling Type-C DIR line
phy: ti: j721e-wiz: Add support Type-C DIR GPIO delay
dt-bindings: phy: ti,phy-j721e-wiz: Add Type-C dir GPIO debounce
phy: ti: j721e-wiz: Fix error path if Type-C GPIO is not available
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: connectivity
TI-Branch: connectivity-ti-linux-4.19.y
* 'connectivity-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity:
arm64: dts: ti: k3-j721e-proc-board-tps65917: Fix USB0 in super-speed
usb: cdns3: gadget: Fix broken gadget after role switch from host to device
arm64: dts: k3-j721e-proc-board: Add wait time for sampling Type-C DIR line
phy: ti: j721e-wiz: Add support Type-C DIR GPIO delay
dt-bindings: phy: ti,phy-j721e-wiz: Add Type-C dir GPIO debounce
phy: ti: j721e-wiz: Fix error path if Type-C GPIO is not available
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
arm64: dts: ti: k3-j721e-proc-board-tps65917: Fix USB0 in super-speed
The controller bindings changed at some point but got missed
when this alpha board DTS was split.
Fixes: ff854b45b49f ("arm64: dts: ti: k3-j721e: Add support for pm2 som")
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
The controller bindings changed at some point but got missed
when this alpha board DTS was split.
Fixes: ff854b45b49f ("arm64: dts: ti: k3-j721e: Add support for pm2 som")
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
usb: cdns3: gadget: Fix broken gadget after role switch from host to device
On switching to host mode, xhci-plat.c sets controller device's
DMA mask to 64-bit. On switching back to gadget mode we need
to reset the DMA mask to 32-bit else gadget controller malfunctions.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
On switching to host mode, xhci-plat.c sets controller device's
DMA mask to 64-bit. On switching back to gadget mode we need
to reset the DMA mask to 32-bit else gadget controller malfunctions.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
arm64: dts: k3-j721e-proc-board: Add wait time for sampling Type-C DIR line
The Type-C compainon chip on the board needs ~133ms (tCCB_DEFAULT)
to debounce the CC lines in order to detect attach and plug orientation
and reflect the correct DIR status. [1]
Let's wait for 300ms before sampling the Type-C DIR line.
[1] http://www.ti.com/lit/ds/symlink/tusb321.pdf
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
The Type-C compainon chip on the board needs ~133ms (tCCB_DEFAULT)
to debounce the CC lines in order to detect attach and plug orientation
and reflect the correct DIR status. [1]
Let's wait for 300ms before sampling the Type-C DIR line.
[1] http://www.ti.com/lit/ds/symlink/tusb321.pdf
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
phy: ti: j721e-wiz: Add support Type-C DIR GPIO delay
Type-C companions typically need some time after the cable is
plugged before and before they reflect the correct status of
Type-C plug orientation on the DIR line.
Type-C Spec specifies CC attachment debounce time (tCCDebounce)
of 100 ms (min) to 200 ms (max).
Use the DT property to figure out if we need to add delay
or not before sampling the Type-C DIR line.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Type-C companions typically need some time after the cable is
plugged before and before they reflect the correct status of
Type-C plug orientation on the DIR line.
Type-C Spec specifies CC attachment debounce time (tCCDebounce)
of 100 ms (min) to 200 ms (max).
Use the DT property to figure out if we need to add delay
or not before sampling the Type-C DIR line.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
dt-bindings: phy: ti,phy-j721e-wiz: Add Type-C dir GPIO debounce
Type-C companions typically need some time after the cable is
plugged before and before they reflect the correct status of
Type-C plug orientation on the DIR line.
Type-C Spec specifies CC attachment debounce time (tCCDebounce)
of 100 ms (min) to 200 ms (max).
Allow the DT node to specify the time (in ms) that we need
to wait before sampling the DIR line.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Type-C companions typically need some time after the cable is
plugged before and before they reflect the correct status of
Type-C plug orientation on the DIR line.
Type-C Spec specifies CC attachment debounce time (tCCDebounce)
of 100 ms (min) to 200 ms (max).
Allow the DT node to specify the time (in ms) that we need
to wait before sampling the DIR line.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
phy: ti: j721e-wiz: Fix error path if Type-C GPIO is not available
We should not be complaining on console if we got -EPROBE_DEFER.
Also, fixup the error path.
Fixes: fa06d29814d0 ("phy: ti: j721e-wiz: Manage typec-gpio-dir")
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
We should not be complaining on console if we got -EPROBE_DEFER.
Also, fixup the error path.
Fixes: fa06d29814d0 ("phy: ti: j721e-wiz: Manage typec-gpio-dir")
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agoMerged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y ti-rt-linux-4.19.y-next-20190926 ti-rt-linux-4.19.y-next-20190927
Merged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
ASoC: ti: j721e-evm: Add rule to limit the available sampling rates
drm/omap: fix scaling limits
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
ASoC: ti: j721e-evm: Add rule to limit the available sampling rates
drm/omap: fix scaling limits
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature audio-display into ti-linux-4.19.y
TI-Feature: audio-display
TI-Branch: audio_display-ti-linux-4.19.y
* 'audio_display-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/audio-display:
ASoC: ti: j721e-evm: Add rule to limit the available sampling rates
drm/omap: fix scaling limits
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: audio-display
TI-Branch: audio_display-ti-linux-4.19.y
* 'audio_display-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/audio-display:
ASoC: ti: j721e-evm: Add rule to limit the available sampling rates
drm/omap: fix scaling limits
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio/linux-audio into audio_display-ti-linux-4.19.y
2019.04 - j7: do not allow unsupported rates
* 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio/linux-audio:
ASoC: ti: j721e-evm: Add rule to limit the available sampling rates
2019.04 - j7: do not allow unsupported rates
* 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio/linux-audio:
ASoC: ti: j721e-evm: Add rule to limit the available sampling rates
ASoC: ti: j721e-evm: Add rule to limit the available sampling rates
With the PLLs and the HSDIV we can only support a range of sampling rates.
Make sure that the unsupported rates are not available.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
With the PLLs and the HSDIV we can only support a range of sampling rates.
Make sure that the unsupported rates are not available.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Merge branch 'ti/4.19-pull' of https://bitbucket.itg.ti.com/scm/~a0400822/linux into audio_display-ti-linux-4.19.y
2019.04 DSS scaling fix
* 'ti/4.19-pull' of https://bitbucket.itg.ti.com/scm/~a0400822/linux:
drm/omap: fix scaling limits
2019.04 DSS scaling fix
* 'ti/4.19-pull' of https://bitbucket.itg.ti.com/scm/~a0400822/linux:
drm/omap: fix scaling limits
drm/omap: fix scaling limits
"drm/omap: dynamically assign hw overlays to planes" added a call to
drm_atomic_helper_check_plane_state() in omap_plane_atomic_check(), with
scaling limits that were supposed to allow all the valid setups.
However, the limits were backwards, and the limit meant for upscaling
limited downscaling, and vice versa.
Also, the limit for downscaling is a bit too restrictive (1/4).
Fix the limits so that they allow down to 1/8 downscaling and up to x8
upscaling.
Note that the "real" scaling limits are more complex and calculated in
dispc. Unfortunately that happens only at commit phase, but that is
another topic.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reported-by: Ram Prasad <x0038811@ti.com>
Reviewed-by: Benoit Parrot <bparrot@ti.com>
"drm/omap: dynamically assign hw overlays to planes" added a call to
drm_atomic_helper_check_plane_state() in omap_plane_atomic_check(), with
scaling limits that were supposed to allow all the valid setups.
However, the limits were backwards, and the limit meant for upscaling
limited downscaling, and vice versa.
Also, the limit for downscaling is a bit too restrictive (1/4).
Fix the limits so that they allow down to 1/8 downscaling and up to x8
upscaling.
Note that the "real" scaling limits are more complex and calculated in
dispc. Unfortunately that happens only at commit phase, but that is
another topic.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reported-by: Ram Prasad <x0038811@ti.com>
Reviewed-by: Benoit Parrot <bparrot@ti.com>
4 years agoMerged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y ti-rt-linux-4.19.y-next-20190924 ti-rt-linux-4.19.y-next-20190925
Merged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
ARM: dts: dra76-evm: Add CMA pool for GPU device
ARM: dts: dra7-evm: Add CMA pool for GPU
drm/bridge: cdns-mhdp: Probe and add the bridge even without firmware
drm/bridge: cdns-mhdp: Call phy_exit() in mhdp_remove()
drm/bridge: cdns-mhdp: Handle probe failures correctly
drm/bridge: cdns-mhdp: Drop useless container structs
drm/bridge: cdns-mhdp: Remove dependencies to cdns-mhdp-common
drm/rockchip: Restore everything to what is there in v4.19.73
drm/bridge: cdns-mhdp: Remove completely untested audio support
drm/tidss: constify rpmsg ops structs
drm/tidss: add missing static declarations in DSS sharing code
ASoC: pcm3168a: The codec does not support S32_LE
arm64: dts: ti: k3-j721e-proc-board-tps65917: Sync cpsw-virt-mac
serial: 8250: 8250_omap: Remove redundant call to omap_8250_rx_dma_flush
serial: 8250: 8250_omap: Fix DMA teardown sequence during RX timeout
crypto: sa2ul: Add sha512 HW crypto support
crypto: sa2ul: Do spin_lock_init on scid_lock
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
ARM: dts: dra76-evm: Add CMA pool for GPU device
ARM: dts: dra7-evm: Add CMA pool for GPU
drm/bridge: cdns-mhdp: Probe and add the bridge even without firmware
drm/bridge: cdns-mhdp: Call phy_exit() in mhdp_remove()
drm/bridge: cdns-mhdp: Handle probe failures correctly
drm/bridge: cdns-mhdp: Drop useless container structs
drm/bridge: cdns-mhdp: Remove dependencies to cdns-mhdp-common
drm/rockchip: Restore everything to what is there in v4.19.73
drm/bridge: cdns-mhdp: Remove completely untested audio support
drm/tidss: constify rpmsg ops structs
drm/tidss: add missing static declarations in DSS sharing code
ASoC: pcm3168a: The codec does not support S32_LE
arm64: dts: ti: k3-j721e-proc-board-tps65917: Sync cpsw-virt-mac
serial: 8250: 8250_omap: Remove redundant call to omap_8250_rx_dma_flush
serial: 8250: 8250_omap: Fix DMA teardown sequence during RX timeout
crypto: sa2ul: Add sha512 HW crypto support
crypto: sa2ul: Do spin_lock_init on scid_lock
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel: (25 commits)
ti_config_fragments/connectivity.cfg: Enable NTB configs
arm64: dts: ti: k3-j721e: Add DT overlay for PCIe Backplane
arm64: dts: ti: k3-j721e: Add reference to *phy* in PCIe EP DT node
NTB: tool: Enable the NTB/PCIe link on the local or remote side of bridge
NTB: Add support for EPF PCI-Express Non-Transparent Bridge
PCI: Add TI J721E device to pci ids
PCI: endpoint: Add EP function driver to provide NTB functionality
PCI: endpoint: *_free_bar() to return error codes on failure
PCI: endpoint: Fix missing mutex_unlock in error case
PCI: endpoint: Remove unused pci_epf_match_device()
PCI: cadence: Implement ->msi_map_irq() ops
PCI: endpoint: Add pci_epc_ops to map MSI irq
PCI: endpoint: Add support to associate secondary EPC with EPF
PCI: endpoint: Add helper API to populate header with values from DT
PCI: endpoint: Make pci_epf_driver ops optional
PCI: endpoint: Add helper API to get the 'next' unreserved BAR
PCI: endpoint: Make *_get_first_free_bar() take into account 64 bit BAR
PCI: endpoint: Add "pci-epf-bus" driver
PCI: endpoint: Add API to create EPF device from device tree
PCI: endpoint: Add API to get reference to EPC from device-tree
...
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel: (25 commits)
ti_config_fragments/connectivity.cfg: Enable NTB configs
arm64: dts: ti: k3-j721e: Add DT overlay for PCIe Backplane
arm64: dts: ti: k3-j721e: Add reference to *phy* in PCIe EP DT node
NTB: tool: Enable the NTB/PCIe link on the local or remote side of bridge
NTB: Add support for EPF PCI-Express Non-Transparent Bridge
PCI: Add TI J721E device to pci ids
PCI: endpoint: Add EP function driver to provide NTB functionality
PCI: endpoint: *_free_bar() to return error codes on failure
PCI: endpoint: Fix missing mutex_unlock in error case
PCI: endpoint: Remove unused pci_epf_match_device()
PCI: cadence: Implement ->msi_map_irq() ops
PCI: endpoint: Add pci_epc_ops to map MSI irq
PCI: endpoint: Add support to associate secondary EPC with EPF
PCI: endpoint: Add helper API to populate header with values from DT
PCI: endpoint: Make pci_epf_driver ops optional
PCI: endpoint: Add helper API to get the 'next' unreserved BAR
PCI: endpoint: Make *_get_first_free_bar() take into account 64 bit BAR
PCI: endpoint: Add "pci-epf-bus" driver
PCI: endpoint: Add API to create EPF device from device tree
PCI: endpoint: Add API to get reference to EPC from device-tree
...
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature graphics into ti-linux-4.19.y
TI-Feature: graphics
TI-Branch: graphics-ti-linux-4.19.y
* 'graphics-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/graphics:
ARM: dts: dra76-evm: Add CMA pool for GPU device
ARM: dts: dra7-evm: Add CMA pool for GPU
drm/bridge: cdns-mhdp: Probe and add the bridge even without firmware
drm/bridge: cdns-mhdp: Call phy_exit() in mhdp_remove()
drm/bridge: cdns-mhdp: Handle probe failures correctly
drm/bridge: cdns-mhdp: Drop useless container structs
drm/bridge: cdns-mhdp: Remove dependencies to cdns-mhdp-common
drm/rockchip: Restore everything to what is there in v4.19.73
drm/bridge: cdns-mhdp: Remove completely untested audio support
drm/tidss: constify rpmsg ops structs
drm/tidss: add missing static declarations in DSS sharing code
ASoC: pcm3168a: The codec does not support S32_LE
arm64: dts: ti: k3-j721e-proc-board-tps65917: Sync cpsw-virt-mac
serial: 8250: 8250_omap: Remove redundant call to omap_8250_rx_dma_flush
serial: 8250: 8250_omap: Fix DMA teardown sequence during RX timeout
crypto: sa2ul: Add sha512 HW crypto support
crypto: sa2ul: Do spin_lock_init on scid_lock
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: graphics
TI-Branch: graphics-ti-linux-4.19.y
* 'graphics-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/graphics:
ARM: dts: dra76-evm: Add CMA pool for GPU device
ARM: dts: dra7-evm: Add CMA pool for GPU
drm/bridge: cdns-mhdp: Probe and add the bridge even without firmware
drm/bridge: cdns-mhdp: Call phy_exit() in mhdp_remove()
drm/bridge: cdns-mhdp: Handle probe failures correctly
drm/bridge: cdns-mhdp: Drop useless container structs
drm/bridge: cdns-mhdp: Remove dependencies to cdns-mhdp-common
drm/rockchip: Restore everything to what is there in v4.19.73
drm/bridge: cdns-mhdp: Remove completely untested audio support
drm/tidss: constify rpmsg ops structs
drm/tidss: add missing static declarations in DSS sharing code
ASoC: pcm3168a: The codec does not support S32_LE
arm64: dts: ti: k3-j721e-proc-board-tps65917: Sync cpsw-virt-mac
serial: 8250: 8250_omap: Remove redundant call to omap_8250_rx_dma_flush
serial: 8250: 8250_omap: Fix DMA teardown sequence during RX timeout
crypto: sa2ul: Add sha512 HW crypto support
crypto: sa2ul: Do spin_lock_init on scid_lock
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature connectivity into ti-linux-4.19.y
TI-Feature: connectivity
TI-Branch: connectivity-ti-linux-4.19.y
* 'connectivity-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity: (25 commits)
ti_config_fragments/connectivity.cfg: Enable NTB configs
arm64: dts: ti: k3-j721e: Add DT overlay for PCIe Backplane
arm64: dts: ti: k3-j721e: Add reference to *phy* in PCIe EP DT node
NTB: tool: Enable the NTB/PCIe link on the local or remote side of bridge
NTB: Add support for EPF PCI-Express Non-Transparent Bridge
PCI: Add TI J721E device to pci ids
PCI: endpoint: Add EP function driver to provide NTB functionality
PCI: endpoint: *_free_bar() to return error codes on failure
PCI: endpoint: Fix missing mutex_unlock in error case
PCI: endpoint: Remove unused pci_epf_match_device()
PCI: cadence: Implement ->msi_map_irq() ops
PCI: endpoint: Add pci_epc_ops to map MSI irq
PCI: endpoint: Add support to associate secondary EPC with EPF
PCI: endpoint: Add helper API to populate header with values from DT
PCI: endpoint: Make pci_epf_driver ops optional
PCI: endpoint: Add helper API to get the 'next' unreserved BAR
PCI: endpoint: Make *_get_first_free_bar() take into account 64 bit BAR
PCI: endpoint: Add "pci-epf-bus" driver
PCI: endpoint: Add API to create EPF device from device tree
PCI: endpoint: Add API to get reference to EPC from device-tree
...
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: connectivity
TI-Branch: connectivity-ti-linux-4.19.y
* 'connectivity-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity: (25 commits)
ti_config_fragments/connectivity.cfg: Enable NTB configs
arm64: dts: ti: k3-j721e: Add DT overlay for PCIe Backplane
arm64: dts: ti: k3-j721e: Add reference to *phy* in PCIe EP DT node
NTB: tool: Enable the NTB/PCIe link on the local or remote side of bridge
NTB: Add support for EPF PCI-Express Non-Transparent Bridge
PCI: Add TI J721E device to pci ids
PCI: endpoint: Add EP function driver to provide NTB functionality
PCI: endpoint: *_free_bar() to return error codes on failure
PCI: endpoint: Fix missing mutex_unlock in error case
PCI: endpoint: Remove unused pci_epf_match_device()
PCI: cadence: Implement ->msi_map_irq() ops
PCI: endpoint: Add pci_epc_ops to map MSI irq
PCI: endpoint: Add support to associate secondary EPC with EPF
PCI: endpoint: Add helper API to populate header with values from DT
PCI: endpoint: Make pci_epf_driver ops optional
PCI: endpoint: Add helper API to get the 'next' unreserved BAR
PCI: endpoint: Make *_get_first_free_bar() take into account 64 bit BAR
PCI: endpoint: Add "pci-epf-bus" driver
PCI: endpoint: Add API to create EPF device from device tree
PCI: endpoint: Add API to get reference to EPC from device-tree
...
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
drm/tidss: WB: fix nested redefinition of enum kbuild error
drm/tidss: WB: fix frame size kbuild warning
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
drm/tidss: WB: fix nested redefinition of enum kbuild error
drm/tidss: WB: fix frame size kbuild warning
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature audio-display into ti-linux-4.19.y
TI-Feature: audio-display
TI-Branch: audio_display-ti-linux-4.19.y
* 'audio_display-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/audio-display:
drm/tidss: WB: fix nested redefinition of enum kbuild error
drm/tidss: WB: fix frame size kbuild warning
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: audio-display
TI-Branch: audio_display-ti-linux-4.19.y
* 'audio_display-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/audio-display:
drm/tidss: WB: fix nested redefinition of enum kbuild error
drm/tidss: WB: fix frame size kbuild warning
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
HACK: ARM: dts: dra7-ipu-common: Revert to CMA pools for IPU early boots
TEMP: ARM: dts: dra7-ipu-common: Add a common file for IPU early boots
TEMP: remoteproc/omap: add "late attach" support
TEMP: iommu/omap: add support for performing a "late attach"
ARM: OMAP2+: pdata-quirks: Add device_is_enabled ops for IOMMUs and rprocs
clocksource: timer-ti-dm: Add support to handle late attach of rproc timers
TEMP: remoteproc: call the non-zeroing allocation function
TEMP: remoteproc: add "late attach" support
HACK: dma-mapping: add non-zeroing coherent alloc function
HACK: ARM: dma-mapping: create non-zeroing dma_map_ops
ARM: dts: dra76-evm: Fix rproc reserved-memory labels and node names
ARM: dts: dra72-evm-revc: Fix rproc reserved-memory labels and node names
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
HACK: ARM: dts: dra7-ipu-common: Revert to CMA pools for IPU early boots
TEMP: ARM: dts: dra7-ipu-common: Add a common file for IPU early boots
TEMP: remoteproc/omap: add "late attach" support
TEMP: iommu/omap: add support for performing a "late attach"
ARM: OMAP2+: pdata-quirks: Add device_is_enabled ops for IOMMUs and rprocs
clocksource: timer-ti-dm: Add support to handle late attach of rproc timers
TEMP: remoteproc: call the non-zeroing allocation function
TEMP: remoteproc: add "late attach" support
HACK: dma-mapping: add non-zeroing coherent alloc function
HACK: ARM: dma-mapping: create non-zeroing dma_map_ops
ARM: dts: dra76-evm: Fix rproc reserved-memory labels and node names
ARM: dts: dra72-evm-revc: Fix rproc reserved-memory labels and node names
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature rpmsg into ti-linux-4.19.y
TI-Feature: rpmsg
TI-Branch: rpmsg-ti-linux-4.19.y-intg
* 'rpmsg-ti-linux-4.19.y-intg' of git://git.ti.com/rpmsg/rpmsg:
HACK: ARM: dts: dra7-ipu-common: Revert to CMA pools for IPU early boots
TEMP: ARM: dts: dra7-ipu-common: Add a common file for IPU early boots
TEMP: remoteproc/omap: add "late attach" support
TEMP: iommu/omap: add support for performing a "late attach"
ARM: OMAP2+: pdata-quirks: Add device_is_enabled ops for IOMMUs and rprocs
clocksource: timer-ti-dm: Add support to handle late attach of rproc timers
TEMP: remoteproc: call the non-zeroing allocation function
TEMP: remoteproc: add "late attach" support
HACK: dma-mapping: add non-zeroing coherent alloc function
HACK: ARM: dma-mapping: create non-zeroing dma_map_ops
ARM: dts: dra76-evm: Fix rproc reserved-memory labels and node names
ARM: dts: dra72-evm-revc: Fix rproc reserved-memory labels and node names
Signed-off-by: Dan Murphy <dmurphy@ti.com>
TI-Feature: rpmsg
TI-Branch: rpmsg-ti-linux-4.19.y-intg
* 'rpmsg-ti-linux-4.19.y-intg' of git://git.ti.com/rpmsg/rpmsg:
HACK: ARM: dts: dra7-ipu-common: Revert to CMA pools for IPU early boots
TEMP: ARM: dts: dra7-ipu-common: Add a common file for IPU early boots
TEMP: remoteproc/omap: add "late attach" support
TEMP: iommu/omap: add support for performing a "late attach"
ARM: OMAP2+: pdata-quirks: Add device_is_enabled ops for IOMMUs and rprocs
clocksource: timer-ti-dm: Add support to handle late attach of rproc timers
TEMP: remoteproc: call the non-zeroing allocation function
TEMP: remoteproc: add "late attach" support
HACK: dma-mapping: add non-zeroing coherent alloc function
HACK: ARM: dma-mapping: create non-zeroing dma_map_ops
ARM: dts: dra76-evm: Fix rproc reserved-memory labels and node names
ARM: dts: dra72-evm-revc: Fix rproc reserved-memory labels and node names
Signed-off-by: Dan Murphy <dmurphy@ti.com>
ARM: dts: dra76-evm: Add CMA pool for GPU device
The CMA reserved memory node is added for the GPU device on the DRA76
EVM board, and assigned to respective node. The configuration in here
matches to that on the DRA7 EVM board. This enables the driver to
allocate from CMA region and there by not limiting all GPU allocations
to come only from normal zone.
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
The CMA reserved memory node is added for the GPU device on the DRA76
EVM board, and assigned to respective node. The configuration in here
matches to that on the DRA7 EVM board. This enables the driver to
allocate from CMA region and there by not limiting all GPU allocations
to come only from normal zone.
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
ARM: dts: dra7-evm: Add CMA pool for GPU
The CMA reserved node has been added for GPU core and enabled for the
DRA7 EVM board. The GPU device cannot access LPAE addresses, and as
such the CMA region is set in the *highmem32* region. This enables the
driver to allocate from the CMA region and there by not limiting all
GPU allocations to come only from normal zone.
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
The CMA reserved node has been added for GPU core and enabled for the
DRA7 EVM board. The GPU device cannot access LPAE addresses, and as
such the CMA region is set in the *highmem32* region. This enables the
driver to allocate from the CMA region and there by not limiting all
GPU allocations to come only from normal zone.
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
drm/bridge: cdns-mhdp: Probe and add the bridge even without firmware
Load the firmware asynchronously and probe and add the bridge even we
do not yet have it. This makes it possible to pull up the DRM device
and get the other displays working even if we still have to wait for
display port firmware. The display port is locked in disconnected
state until the firmware is loaded and the DP IP is properly enabled.
The patch adds one lock to protect hw_state and bridge_attached in
the driver data struct from from a race between the DRM operations and
the asynchronous FW loading.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Load the firmware asynchronously and probe and add the bridge even we
do not yet have it. This makes it possible to pull up the DRM device
and get the other displays working even if we still have to wait for
display port firmware. The display port is locked in disconnected
state until the firmware is loaded and the DP IP is properly enabled.
The patch adds one lock to protect hw_state and bridge_attached in
the driver data struct from from a race between the DRM operations and
the asynchronous FW loading.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
drm/bridge: cdns-mhdp: Call phy_exit() in mhdp_remove()
We should call phy_exit() when we stop using phy, so call it in
mhdp_remove().
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
We should call phy_exit() when we stop using phy, so call it in
mhdp_remove().
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/bridge: cdns-mhdp: Handle probe failures correctly
If the probe fails after we have enabled and turned the power
management, we should also turn off and disable it.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
If the probe fails after we have enabled and turned the power
management, we should also turn off and disable it.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/bridge: cdns-mhdp: Drop useless container structs
There really is no need for cdns_mhdp_connector or cdns_mhdp_bridge
structs, so remove them. Reorder the struct cdns_mhdp_device members a
bit while at it.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
There really is no need for cdns_mhdp_connector or cdns_mhdp_bridge
structs, so remove them. Reorder the struct cdns_mhdp_device members a
bit while at it.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/bridge: cdns-mhdp: Remove dependencies to cdns-mhdp-common
Copy all necessary parts from cdns-mhdp-common and do not include
cdns-mhdp-common.h and link cdns-mhdp-common.c to cdns-mhdp any
more.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Copy all necessary parts from cdns-mhdp-common and do not include
cdns-mhdp-common.h and link cdns-mhdp-common.c to cdns-mhdp any
more.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/rockchip: Restore everything to what is there in v4.19.73
This patch restores Rockchip driver to a state that matches v4.19.73
tag. This cover the mess left by "drm: bridge: add support for Cadence
MHDP DPI/DP bridge"-patch.
Fixes: 5d9ccc098dff ("drm: bridge: add support for Cadence MHDP DPI/DP bridge")
Signed-off-by: Jyri Sarha <jsarha@ti.com>
This patch restores Rockchip driver to a state that matches v4.19.73
tag. This cover the mess left by "drm: bridge: add support for Cadence
MHDP DPI/DP bridge"-patch.
Fixes: 5d9ccc098dff ("drm: bridge: add support for Cadence MHDP DPI/DP bridge")
Signed-off-by: Jyri Sarha <jsarha@ti.com>
drm/bridge: cdns-mhdp: Remove completely untested audio support
The current cdns-mhdp audio support is completely untested. Remove it
until we have some confidence that it actually works.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
The current cdns-mhdp audio support is completely untested. Remove it
until we have some confidence that it actually works.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/tidss: constify rpmsg ops structs
The ops in struct rpmsg_remotedev can be const, so constify them.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
The ops in struct rpmsg_remotedev can be const, so constify them.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/tidss: add missing static declarations in DSS sharing code
Make functions static to fix sparse warnings.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Make functions static to fix sparse warnings.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
ASoC: pcm3168a: The codec does not support S32_LE
24 bits is supported in all modes and 16 bit only when the codec is slave
and the DAI is set to RIGHT_J.
Remove the unsupported sample format.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
24 bits is supported in all modes and 16 bit only when the codec is slave
and the DAI is set to RIGHT_J.
Remove the unsupported sample format.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
arm64: dts: ti: k3-j721e-proc-board-tps65917: Sync cpsw-virt-mac
Sync cpsw-virt-mac node with k3-j721e-common-proc-board.dts
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Sync cpsw-virt-mac node with k3-j721e-common-proc-board.dts
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
serial: 8250: 8250_omap: Remove redundant call to omap_8250_rx_dma_flush
omap_8250_rx_dma_flush() is called twice in am654_8250_handle_rx_dma()
and first call quite redundant in case of second one. Drop the redundant
call.
Tested-by: Bin Liu <b-liu@ti.com>
Reported-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
omap_8250_rx_dma_flush() is called twice in am654_8250_handle_rx_dma()
and first call quite redundant in case of second one. Drop the redundant
call.
Tested-by: Bin Liu <b-liu@ti.com>
Reported-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
serial: 8250: 8250_omap: Fix DMA teardown sequence during RX timeout
Calling dmaengine_terminate_async() does not guarantee all the data that
is picked up DMA and is in flight to memory is flushed immediately,
therefore poll for the in flight data to be flushed before pushing
buffer to tty ldisc.
Ideal way to solve this without polling is to call
dmaengine_synchronize() before pushing data to tty layer, but that
cannot be done in interrupt context and code cannot be moved to bottom
half as we need to hold rx_dma_lock spinlock.
Therefore introduce a bounded polling mechanism to know data has been
flushed. Since this is a flush at DMA hardware level, sequence should be
quite deterministic and loop upper bound is set to 5 times the observed
value.
Tested-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Calling dmaengine_terminate_async() does not guarantee all the data that
is picked up DMA and is in flight to memory is flushed immediately,
therefore poll for the in flight data to be flushed before pushing
buffer to tty ldisc.
Ideal way to solve this without polling is to call
dmaengine_synchronize() before pushing data to tty layer, but that
cannot be done in interrupt context and code cannot be moved to bottom
half as we need to hold rx_dma_lock spinlock.
Therefore introduce a bounded polling mechanism to know data has been
flushed. Since this is a flush at DMA hardware level, sequence should be
quite deterministic and loop upper bound is set to 5 times the observed
value.
Tested-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
crypto: sa2ul: Add sha512 HW crypto support
Add sha512 HW crypto support.
Signed-off-by: Keerthy <j-keerthy@ti.com>
Add sha512 HW crypto support.
Signed-off-by: Keerthy <j-keerthy@ti.com>
crypto: sa2ul: Do spin_lock_init on scid_lock
It might work w/o spin_lock_init, but it is not a good practice for sure.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
It might work w/o spin_lock_init, but it is not a good practice for sure.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Merge branch 'rpmsg-ti-linux-4.19.y' of git://git.ti.com/rpmsg/rpmsg into rpmsg-ti-linux-4.19.y-intg
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Merge branch 'topic/4.19/dra7-late-attach' of git://git.ti.com/rpmsg/remoteproc into rpmsg-ti-linux-4.19.y
Pull in a dedicated remoteproc topic branch that adds the infrastructure
support to allow "late-attach" of the IPU1 and IPU2 remote processors on
DRA7xx/AM57xx SoCs. The late-attach feature is the kernel counterpart to
the early-boot of these processors from U-Boot/SPL to achieve key system
response time goals.
The support is provided through temporary HACKs or workarounds to various
subsystems that includes the DMA API layers, remoteproc core, OMAP IOMMU,
OMAP DMTimer and OMAP remoteproc drivers. The early-booted remoteproc
devices need couple of DT modifications, and these are provided through
a common dtsi file. This common dtsi file needs to be included in the
desired target DRA7/AM57xx board dts files (not merged but available on
the above topic branch).
The following are the main HACKs and needs further rework:
- Introduce new non-zeroing DMA API to allow the remoteproc core to
still process the RSC_CARVEOUTs but not zero them (This will need to
be replaced with static carveout support)
- The new "late_attach" field added to remoteproc core needs to be
replaced with equivalent fields already present that supports the
K3 IPC-only mode and Keystone 2 Multi Proc Manager (MPM) stack.
- The .device_is_enabled() logic is only temporary and applicable only
with hwmod layers, this will need to be replaced with logic around
reset status from OMAP PRM reset driver (next LTS).
- The reserved memory regions used should actually be carveouts (DMA
pools), and this needs some resource table RSC_CARVEOUT entries split
on all the existing firmwares.
- The addition of the DT modifications needs to be evaluated if it can
be moved into U-Boot itself. The current logic requires that both
U-Boot and kernel configs are matched, without which kernel crashes
are seen.
* 'topic/4.19/dra7-late-attach' of git://git.ti.com/rpmsg/remoteproc:
HACK: ARM: dts: dra7-ipu-common: Revert to CMA pools for IPU early boots
TEMP: ARM: dts: dra7-ipu-common: Add a common file for IPU early boots
TEMP: remoteproc/omap: add "late attach" support
TEMP: iommu/omap: add support for performing a "late attach"
ARM: OMAP2+: pdata-quirks: Add device_is_enabled ops for IOMMUs and rprocs
clocksource: timer-ti-dm: Add support to handle late attach of rproc timers
TEMP: remoteproc: call the non-zeroing allocation function
TEMP: remoteproc: add "late attach" support
HACK: dma-mapping: add non-zeroing coherent alloc function
HACK: ARM: dma-mapping: create non-zeroing dma_map_ops
Signed-off-by: Suman Anna <s-anna@ti.com>
Pull in a dedicated remoteproc topic branch that adds the infrastructure
support to allow "late-attach" of the IPU1 and IPU2 remote processors on
DRA7xx/AM57xx SoCs. The late-attach feature is the kernel counterpart to
the early-boot of these processors from U-Boot/SPL to achieve key system
response time goals.
The support is provided through temporary HACKs or workarounds to various
subsystems that includes the DMA API layers, remoteproc core, OMAP IOMMU,
OMAP DMTimer and OMAP remoteproc drivers. The early-booted remoteproc
devices need couple of DT modifications, and these are provided through
a common dtsi file. This common dtsi file needs to be included in the
desired target DRA7/AM57xx board dts files (not merged but available on
the above topic branch).
The following are the main HACKs and needs further rework:
- Introduce new non-zeroing DMA API to allow the remoteproc core to
still process the RSC_CARVEOUTs but not zero them (This will need to
be replaced with static carveout support)
- The new "late_attach" field added to remoteproc core needs to be
replaced with equivalent fields already present that supports the
K3 IPC-only mode and Keystone 2 Multi Proc Manager (MPM) stack.
- The .device_is_enabled() logic is only temporary and applicable only
with hwmod layers, this will need to be replaced with logic around
reset status from OMAP PRM reset driver (next LTS).
- The reserved memory regions used should actually be carveouts (DMA
pools), and this needs some resource table RSC_CARVEOUT entries split
on all the existing firmwares.
- The addition of the DT modifications needs to be evaluated if it can
be moved into U-Boot itself. The current logic requires that both
U-Boot and kernel configs are matched, without which kernel crashes
are seen.
* 'topic/4.19/dra7-late-attach' of git://git.ti.com/rpmsg/remoteproc:
HACK: ARM: dts: dra7-ipu-common: Revert to CMA pools for IPU early boots
TEMP: ARM: dts: dra7-ipu-common: Add a common file for IPU early boots
TEMP: remoteproc/omap: add "late attach" support
TEMP: iommu/omap: add support for performing a "late attach"
ARM: OMAP2+: pdata-quirks: Add device_is_enabled ops for IOMMUs and rprocs
clocksource: timer-ti-dm: Add support to handle late attach of rproc timers
TEMP: remoteproc: call the non-zeroing allocation function
TEMP: remoteproc: add "late attach" support
HACK: dma-mapping: add non-zeroing coherent alloc function
HACK: ARM: dma-mapping: create non-zeroing dma_map_ops
Signed-off-by: Suman Anna <s-anna@ti.com>
Merge branch 'for19.04.01' of ssh://bitbucket.itg.ti.com/~a0869644/ti-linux-kernel into audio_display-ti-linux-4.19.y
2019.04-rc2 WB fixes
* 'for19.04.01' of ssh://bitbucket.itg.ti.com/~a0869644/ti-linux-kernel:
drm/tidss: WB: fix nested redefinition of enum kbuild error
drm/tidss: WB: fix frame size kbuild warning
2019.04-rc2 WB fixes
* 'for19.04.01' of ssh://bitbucket.itg.ti.com/~a0869644/ti-linux-kernel:
drm/tidss: WB: fix nested redefinition of enum kbuild error
drm/tidss: WB: fix frame size kbuild warning
Merged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
drm/bridge: cdns-mhdp: Probe and add the bridge even without firmware
drm/bridge: cdns-mhdp: Call phy_exit() in mhdp_remove()
drm/bridge: cdns-mhdp: Handle probe failures correctly
drm/bridge: cdns-mhdp: Drop useless container structs
drm/bridge: cdns-mhdp: Remove dependencies to cdns-mhdp-common
ASoC: pcm3168a: The codec does not support S32_LE
drm/rockchip: Restore everything to what is there in v4.19.73
drm/bridge: cdns-mhdp: Remove completely untested audio support
drm/tidss: constify rpmsg ops structs
drm/tidss: add missing static declarations in DSS sharing code
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
drm/bridge: cdns-mhdp: Probe and add the bridge even without firmware
drm/bridge: cdns-mhdp: Call phy_exit() in mhdp_remove()
drm/bridge: cdns-mhdp: Handle probe failures correctly
drm/bridge: cdns-mhdp: Drop useless container structs
drm/bridge: cdns-mhdp: Remove dependencies to cdns-mhdp-common
ASoC: pcm3168a: The codec does not support S32_LE
drm/rockchip: Restore everything to what is there in v4.19.73
drm/bridge: cdns-mhdp: Remove completely untested audio support
drm/tidss: constify rpmsg ops structs
drm/tidss: add missing static declarations in DSS sharing code
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature audio-display into ti-linux-4.19.y
TI-Feature: audio-display
TI-Branch: audio_display-ti-linux-4.19.y
* 'audio_display-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/audio-display:
drm/bridge: cdns-mhdp: Probe and add the bridge even without firmware
drm/bridge: cdns-mhdp: Call phy_exit() in mhdp_remove()
drm/bridge: cdns-mhdp: Handle probe failures correctly
drm/bridge: cdns-mhdp: Drop useless container structs
drm/bridge: cdns-mhdp: Remove dependencies to cdns-mhdp-common
ASoC: pcm3168a: The codec does not support S32_LE
drm/rockchip: Restore everything to what is there in v4.19.73
drm/bridge: cdns-mhdp: Remove completely untested audio support
drm/tidss: constify rpmsg ops structs
drm/tidss: add missing static declarations in DSS sharing code
Signed-off-by: Dan Murphy <dmurphy@ti.com>
TI-Feature: audio-display
TI-Branch: audio_display-ti-linux-4.19.y
* 'audio_display-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/audio-display:
drm/bridge: cdns-mhdp: Probe and add the bridge even without firmware
drm/bridge: cdns-mhdp: Call phy_exit() in mhdp_remove()
drm/bridge: cdns-mhdp: Handle probe failures correctly
drm/bridge: cdns-mhdp: Drop useless container structs
drm/bridge: cdns-mhdp: Remove dependencies to cdns-mhdp-common
ASoC: pcm3168a: The codec does not support S32_LE
drm/rockchip: Restore everything to what is there in v4.19.73
drm/bridge: cdns-mhdp: Remove completely untested audio support
drm/tidss: constify rpmsg ops structs
drm/tidss: add missing static declarations in DSS sharing code
Signed-off-by: Dan Murphy <dmurphy@ti.com>
ti_config_fragments/connectivity.cfg: Enable NTB configs
Enable NTB related configs to enable NTB both on the host and device
systems.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Enable NTB related configs to enable NTB both on the host and device
systems.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
arm64: dts: ti: k3-j721e: Add DT overlay for PCIe Backplane
Add DT overlay for PCIe Backplane to configure the PCIe instances
in EP mode and includes a NTB DT node.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add DT overlay for PCIe Backplane to configure the PCIe instances
in EP mode and includes a NTB DT node.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
arm64: dts: ti: k3-j721e: Add reference to *phy* in PCIe EP DT node
Add *phys* and *phy-names* property to PCIe EP DT nodes.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add *phys* and *phy-names* property to PCIe EP DT nodes.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
NTB: tool: Enable the NTB/PCIe link on the local or remote side of bridge
Invoke ntb_link_enable() to enable the NTB/PCIe link on the local
or remote side of the bridge.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Invoke ntb_link_enable() to enable the NTB/PCIe link on the local
or remote side of the bridge.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
NTB: Add support for EPF PCI-Express Non-Transparent Bridge
Add support for EPF PCI-Express Non-Transparent Bridge (NTB) device.
This driver is platform independent and could be used by any platform
which have multiple PCIe endpoint instances configured using the
pci-epf-ntb driver. The driver connnects to the standard NTB sub-system
interface. The EPF NTB device has configurable number of memory windows
(Max 4), configurable number of doorbell (Max 32), and configurable
number of scratch-pad registers.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add support for EPF PCI-Express Non-Transparent Bridge (NTB) device.
This driver is platform independent and could be used by any platform
which have multiple PCIe endpoint instances configured using the
pci-epf-ntb driver. The driver connnects to the standard NTB sub-system
interface. The EPF NTB device has configurable number of memory windows
(Max 4), configurable number of doorbell (Max 32), and configurable
number of scratch-pad registers.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: Add TI J721E device to pci ids
Add TI J721E device to the pci id database. Since this device has
a configurable PCIe endpoint, it could be used with different
drivers.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add TI J721E device to the pci id database. Since this device has
a configurable PCIe endpoint, it could be used with different
drivers.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: endpoint: Add EP function driver to provide NTB functionality
Add a new endpoint function driver to provide NTB functionality
using multiple PCIe endpoint instances.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add a new endpoint function driver to provide NTB functionality
using multiple PCIe endpoint instances.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: endpoint: *_free_bar() to return error codes on failure
Modify pci_epc_get_next_free_bar() and pci_epc_get_first_free_bar() to
return error values if there are no free BARs available.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Modify pci_epc_get_next_free_bar() and pci_epc_get_first_free_bar() to
return error values if there are no free BARs available.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: endpoint: Fix missing mutex_unlock in error case
There is a missing mutex_unlock() in pci_epc_add_epf() in one of the
error scenarios. Fix it here.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
There is a missing mutex_unlock() in pci_epc_add_epf() in one of the
error scenarios. Fix it here.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: endpoint: Remove unused pci_epf_match_device()
Remove unused pci_epf_match_device() function added in pci-epf-core.c
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Remove unused pci_epf_match_device() function added in pci-epf-core.c
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: cadence: Implement ->msi_map_irq() ops
Implement ->msi_map_irq() ops in order to map physical address to
MSI address and return MSI data.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Implement ->msi_map_irq() ops in order to map physical address to
MSI address and return MSI data.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: endpoint: Add pci_epc_ops to map MSI irq
Add pci_epc_ops to map physical address to MSI address and return MSI
data. The physical address is an address in the outbound region. This is
required to implement doorbell functionality of NTB (non transparent
bridge) wherein EPC on either side of the interface (primary and
secondary) can directly write to the physical address (in outbound
region) of the other interface to ring doorbell using MSI.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add pci_epc_ops to map physical address to MSI address and return MSI
data. The physical address is an address in the outbound region. This is
required to implement doorbell functionality of NTB (non transparent
bridge) wherein EPC on either side of the interface (primary and
secondary) can directly write to the physical address (in outbound
region) of the other interface to ring doorbell using MSI.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: endpoint: Add support to associate secondary EPC with EPF
In the case of standard endpoint functions, only one endpoint
controller (EPC) will be associated with an endpoint function
(EPF). However for providing NTB (non transparent bridge)
functionality, two EPCs should be associated with a single EPF.
Add support to associate secondary EPC with EPF. This is in
preparation for adding NTB endpoint function driver.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
In the case of standard endpoint functions, only one endpoint
controller (EPC) will be associated with an endpoint function
(EPF). However for providing NTB (non transparent bridge)
functionality, two EPCs should be associated with a single EPF.
Add support to associate secondary EPC with EPF. This is in
preparation for adding NTB endpoint function driver.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: endpoint: Add helper API to populate header with values from DT
Add helper API pci_epc_of_parse_header() to populate header with
values from device tree. These values will be written to the
configuration space header in the endpoint controller.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add helper API pci_epc_of_parse_header() to populate header with
values from device tree. These values will be written to the
configuration space header in the endpoint controller.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: endpoint: Make pci_epf_driver ops optional
pci_epf_driver had two ops for bind and unbind which will be invoked
when an endpoint controller is bound to an endpoint function (using
configfs). Now that endpoint core has support to define an endpoint
function using device tree alone, the bind and unbind ops can be
optional. Make pci_epf_driver ops optional here.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
pci_epf_driver had two ops for bind and unbind which will be invoked
when an endpoint controller is bound to an endpoint function (using
configfs). Now that endpoint core has support to define an endpoint
function using device tree alone, the bind and unbind ops can be
optional. Make pci_epf_driver ops optional here.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: endpoint: Add helper API to get the 'next' unreserved BAR
Add an API to get the next unreserved BAR starting from a given BAR
number that can be used by the endpoint function.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add an API to get the next unreserved BAR starting from a given BAR
number that can be used by the endpoint function.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: endpoint: Make *_get_first_free_bar() take into account 64 bit BAR
pci_epc_get_first_free_bar() uses only "reserved_bar" member in
epc_features to get the first unreserved BAR. However if the
reserved BAR is also a 64-bit BAR, then the next BAR shouldn't be
returned (since 64-bit BAR uses two BARs).
Make pci_epc_get_first_free_bar() take into account 64 bit BAR while
returning the first free unreserved BAR.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
pci_epc_get_first_free_bar() uses only "reserved_bar" member in
epc_features to get the first unreserved BAR. However if the
reserved BAR is also a 64-bit BAR, then the next BAR shouldn't be
returned (since 64-bit BAR uses two BARs).
Make pci_epc_get_first_free_bar() take into account 64 bit BAR while
returning the first free unreserved BAR.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: endpoint: Add "pci-epf-bus" driver
Add "pci-epf-bus" driver that helps to create EPF device from
device tree. This is added in order to define an endpoint function
completely from device tree.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add "pci-epf-bus" driver that helps to create EPF device from
device tree. This is added in order to define an endpoint function
completely from device tree.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: endpoint: Add API to create EPF device from device tree
Add API to create EPF device from device tree and the device managed
interface corresponding to it. This is added in order to define
an endpoint function completely from device tree.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add API to create EPF device from device tree and the device managed
interface corresponding to it. This is added in order to define
an endpoint function completely from device tree.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
PCI: endpoint: Add API to get reference to EPC from device-tree
Add of_pci_epc_get() and of_pci_epc_get_by_name() to get reference
to EPC from device-tree. This is added in preparation to define
an endpoint function from device tree.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add of_pci_epc_get() and of_pci_epc_get_by_name() to get reference
to EPC from device-tree. This is added in preparation to define
an endpoint function from device tree.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Documentation: PCI: Add specification for the *PCI NTB* function device
Add specification for the *PCI NTB* function device. The endpoint function
driver and the host PCI driver should be created based on this
specification.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add specification for the *PCI NTB* function device. The endpoint function
driver and the host PCI driver should be created based on this
specification.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
dt-bindings: PCI: Endpoint: Add DT bindings for PCI EPF NTB Device
Add device tree bindings for PCI endpoint NTB function device.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add device tree bindings for PCI endpoint NTB function device.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
dt-bindings: PCI: Endpoint: Add DT bindings for PCI EPF Device
Add device tree bindings for PCI endpoint function device. The
nodes for PCI endpoint function device should be attached to
PCI endpoint function bus.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add device tree bindings for PCI endpoint function device. The
nodes for PCI endpoint function device should be attached to
PCI endpoint function bus.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
dt-bindings: PCI: Endpoint: Add DT bindings for PCI EPF Bus
Add device tree bindings for PCI endpoint function bus to which
endpoint function devices should be attached.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add device tree bindings for PCI endpoint function bus to which
endpoint function devices should be attached.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
net: ethernet: ti: am65-cpsw: fix sw timestamping for non PTP packets
The cpts can timestmap only ptp packets at this moment, so driver
cannot mark every packet as though it's going to be timestamped,
only because h/w timestamping for given skb is enabled with
SKBTX_HW_TSTAMP. It doesn't allow to use sw timestamping, as result
outgoing packet is not timestamped at all if it's not PTP and h/w
timestamping is enabled. So, fix it by setting SKBTX_IN_PROGRESS
only for packets that can be timestamped. Also move this change to
cpts module it can be reused.
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
The cpts can timestmap only ptp packets at this moment, so driver
cannot mark every packet as though it's going to be timestamped,
only because h/w timestamping for given skb is enabled with
SKBTX_HW_TSTAMP. It doesn't allow to use sw timestamping, as result
outgoing packet is not timestamped at all if it's not PTP and h/w
timestamping is enabled. So, fix it by setting SKBTX_IN_PROGRESS
only for packets that can be timestamped. Also move this change to
cpts module it can be reused.
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
HACK: ARM: dts: dra7-ipu-common: Revert to CMA pools for IPU early boots
The patch d1a42fca5944 ("TEMP: ARM: dts: dra7-ipu-common: Add a common
file for IPU early boots") converts the default CMA pools used in regular
remoteproc mode to carveouts/DMA pools for early-boot usage scenarios
using the "no-map" property to avoid the kernel from corrupting the
remoteproc firmware image sections.
The allocation scheme with DMA pools though is different than with CMA
pools, and this may cause some of the existing firmwares used in the
regular remoteproc mode with CMA to fail. The DMA pools may require a
number of changes in general:
- Split the firmware RSC_CARVEOUT sections into better aligned memory
regions conducive to the DMA pool allocation scheme.
- Increase the vmalloc size, as the DMA pools are no longer mapped by
default in kernel linear memory (for DDR < 2 GB) and needs to be
mapped into vmalloc space to be accessed. This may depend on system
configuration, number of remote cores using a DMA pool, and the sizes
of the DMA pools.
- Increase the size of the carveouts (last resort)
Revert back to CMA pools temporarily to make the current firmware images
be functional. A short-term fix would be to update the firmwares and the
long-term fix would be to eliminate the allocation logic altogether and
rely on fixed memory carveout support.
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
The patch d1a42fca5944 ("TEMP: ARM: dts: dra7-ipu-common: Add a common
file for IPU early boots") converts the default CMA pools used in regular
remoteproc mode to carveouts/DMA pools for early-boot usage scenarios
using the "no-map" property to avoid the kernel from corrupting the
remoteproc firmware image sections.
The allocation scheme with DMA pools though is different than with CMA
pools, and this may cause some of the existing firmwares used in the
regular remoteproc mode with CMA to fail. The DMA pools may require a
number of changes in general:
- Split the firmware RSC_CARVEOUT sections into better aligned memory
regions conducive to the DMA pool allocation scheme.
- Increase the vmalloc size, as the DMA pools are no longer mapped by
default in kernel linear memory (for DDR < 2 GB) and needs to be
mapped into vmalloc space to be accessed. This may depend on system
configuration, number of remote cores using a DMA pool, and the sizes
of the DMA pools.
- Increase the size of the carveouts (last resort)
Revert back to CMA pools temporarily to make the current firmware images
be functional. A short-term fix would be to update the firmwares and the
long-term fix would be to eliminate the allocation logic altogether and
rely on fixed memory carveout support.
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
TEMP: ARM: dts: dra7-ipu-common: Add a common file for IPU early boots
The remoteproc 'late attach' functionality has the remote processors
configured, programmed and booted early even before the kernel is booted.
This includes loading the necessary firmware into memory, programming the
IOMMU, configuring the required timers, and programming the corresponding
device's clocks and resets.
The omap hwmod init sequence includes resetting all the hwmods and
idling them to put the devices in sane states to make them independent
of bootloader and corresponding drivers. The "ti,no-idle-on-init" and
"ti,no-reset-on-init" attributes are added to specific omap_hwmod's
associated with the IPU1 & IPU2 processor subsystems to support the
'late attach' feature on these devices, and change the omap hwmod init
behavior. The corresponding memory regions are also removed from the
default kernel memory map (DMA pools instead of CMA pools) so that the
kernel doesn't access anything in these regions until the remoteprocs
are booted.
The "ti,no-reset-on-init" attribute is needed to allow the omap_hwmod
layer to not perform a reset (and thereby reset the programming done
prior to kernel boot). The "ti,no-idle-on-init" is needed to leave the
modules/device in enabled state (and thereby avoid any disabling of the
clocks/modules).
These attributes are added in a new common dtsi file that should be
included into the corresponding TI DRA7xx and AM57xx boards that have
actually early-booted the IPU processors. This file _must_ be included
_only_ when both the IPU1 and IPU2 processors have been booted by
SPL/U-boot.
TODO:
Evaluate the approach where U-Boot can directly add/modify these required
properties using code. Such an approach would eliminate the need for
maintaining one or more dtsi files/overlays and make the support
self-contained within the bootloader.
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
Signed-off-by: Robert Tivy <rtivy@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Venkateswara Rao Mandela <venkat.mandela@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
The remoteproc 'late attach' functionality has the remote processors
configured, programmed and booted early even before the kernel is booted.
This includes loading the necessary firmware into memory, programming the
IOMMU, configuring the required timers, and programming the corresponding
device's clocks and resets.
The omap hwmod init sequence includes resetting all the hwmods and
idling them to put the devices in sane states to make them independent
of bootloader and corresponding drivers. The "ti,no-idle-on-init" and
"ti,no-reset-on-init" attributes are added to specific omap_hwmod's
associated with the IPU1 & IPU2 processor subsystems to support the
'late attach' feature on these devices, and change the omap hwmod init
behavior. The corresponding memory regions are also removed from the
default kernel memory map (DMA pools instead of CMA pools) so that the
kernel doesn't access anything in these regions until the remoteprocs
are booted.
The "ti,no-reset-on-init" attribute is needed to allow the omap_hwmod
layer to not perform a reset (and thereby reset the programming done
prior to kernel boot). The "ti,no-idle-on-init" is needed to leave the
modules/device in enabled state (and thereby avoid any disabling of the
clocks/modules).
These attributes are added in a new common dtsi file that should be
included into the corresponding TI DRA7xx and AM57xx boards that have
actually early-booted the IPU processors. This file _must_ be included
_only_ when both the IPU1 and IPU2 processors have been booted by
SPL/U-boot.
TODO:
Evaluate the approach where U-Boot can directly add/modify these required
properties using code. Such an approach would eliminate the need for
maintaining one or more dtsi files/overlays and make the support
self-contained within the bootloader.
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
Signed-off-by: Robert Tivy <rtivy@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Venkateswara Rao Mandela <venkat.mandela@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
TEMP: remoteproc/omap: add "late attach" support
Add the necessary support in the OMAP remoteproc driver to enable the
"late attach" functionality. The 'late attach' functionality has the
processors already loaded and running by the time the kernel has booted.
The 'late attach' support in OMAP remoteproc driver is added through
minimal changes like skipping the releasing of the processor reset.
The processor reset is skipped as this relies on the omap_hwmod /
omap_device API which perform a module disable/enable sequence in
addition to the reset programming. Other required functionality is
achieved through the late attach support in the remoteproc driver core.
During late attach, we use non-zeroing dma ops to prevent the kernel
from overwriting already loaded code and data segments. When shutting
down the processor, we restore the normal zeroing dma ops. This allows
the kernel to clear memory when loading a new remoteproc binary or
during error recovery with the current remoteproc binary.
The 'late attach' capability is determined through a .device_is_enabled
pdata ops. The rproc nodes along with the corresponding IOMMU and timer
nodes should all have the "ti,no-idle-on-init" and "ti,no-reset-on-init"
properties set to prevent omap_hwmod from resetting and idling these
devices on boot.
The .late_attach field in the rproc data structure is used to denote
the mode and differentiate a normal boot from a late-attach boot. The
late_attach functionality is relevant only for the first time boot of
the kernel, and will be reset for subsequent probes of the remoteproc
node. The flag is also reset during the stopping of the remoteproc,
so that any error recovery results in a regular boot.
TODO:
Move away from modifying the dma_ops for the device completely.
Signed-off-by: Robert Tivy <rtivy@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Venkateswara Rao Mandela <venkat.mandela@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Shravan Karthik <shravan.karthik@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
Add the necessary support in the OMAP remoteproc driver to enable the
"late attach" functionality. The 'late attach' functionality has the
processors already loaded and running by the time the kernel has booted.
The 'late attach' support in OMAP remoteproc driver is added through
minimal changes like skipping the releasing of the processor reset.
The processor reset is skipped as this relies on the omap_hwmod /
omap_device API which perform a module disable/enable sequence in
addition to the reset programming. Other required functionality is
achieved through the late attach support in the remoteproc driver core.
During late attach, we use non-zeroing dma ops to prevent the kernel
from overwriting already loaded code and data segments. When shutting
down the processor, we restore the normal zeroing dma ops. This allows
the kernel to clear memory when loading a new remoteproc binary or
during error recovery with the current remoteproc binary.
The 'late attach' capability is determined through a .device_is_enabled
pdata ops. The rproc nodes along with the corresponding IOMMU and timer
nodes should all have the "ti,no-idle-on-init" and "ti,no-reset-on-init"
properties set to prevent omap_hwmod from resetting and idling these
devices on boot.
The .late_attach field in the rproc data structure is used to denote
the mode and differentiate a normal boot from a late-attach boot. The
late_attach functionality is relevant only for the first time boot of
the kernel, and will be reset for subsequent probes of the remoteproc
node. The flag is also reset during the stopping of the remoteproc,
so that any error recovery results in a regular boot.
TODO:
Move away from modifying the dma_ops for the device completely.
Signed-off-by: Robert Tivy <rtivy@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Venkateswara Rao Mandela <venkat.mandela@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Shravan Karthik <shravan.karthik@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
TEMP: iommu/omap: add support for performing a "late attach"
The remoteproc module has a concept of "late attach" whereby a remote
core is loaded externally to remoteproc, for which remoteproc must
attach to the core without disrupting its existing state. Introduce an
iommu-based "late attach" model for the same use case.
In the "late attach" model, the iommu subsystem is mostly unused since
the external loader will have programmed the remote core's mmu, but
certain "attach" functionality must be performed so that subsequent
"detach" functionality can complete.
This logic is detected in the driver through a "ti,late-attach" property
set on the IOMMU node in the device tree. The IOMMU node should also have
the "ti,no-init-on-reset" and "ti,no-init-on-idle" so that the omap_hwmod
and omap_device layers do not reset and idle/disable the device during
the initial kernel boot. This "ti,late-attach" is therefore removed from
the device tree on the first probe so that further probes or remoteproc
recovery boots treat the IOMMU device normally.
Signed-off-by: Venkateswara Rao Mandela <venkat.mandela@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Subash Lakkimsetti <x0091084@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Shravan Karthik <shravan.karthik@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
The remoteproc module has a concept of "late attach" whereby a remote
core is loaded externally to remoteproc, for which remoteproc must
attach to the core without disrupting its existing state. Introduce an
iommu-based "late attach" model for the same use case.
In the "late attach" model, the iommu subsystem is mostly unused since
the external loader will have programmed the remote core's mmu, but
certain "attach" functionality must be performed so that subsequent
"detach" functionality can complete.
This logic is detected in the driver through a "ti,late-attach" property
set on the IOMMU node in the device tree. The IOMMU node should also have
the "ti,no-init-on-reset" and "ti,no-init-on-idle" so that the omap_hwmod
and omap_device layers do not reset and idle/disable the device during
the initial kernel boot. This "ti,late-attach" is therefore removed from
the device tree on the first probe so that further probes or remoteproc
recovery boots treat the IOMMU device normally.
Signed-off-by: Venkateswara Rao Mandela <venkat.mandela@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Subash Lakkimsetti <x0091084@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Shravan Karthik <shravan.karthik@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
ARM: OMAP2+: pdata-quirks: Add device_is_enabled ops for IOMMUs and rprocs
Add a new .device_is_enabled() platform data callback ops to both
the OMAP IOMMU and remoteproc devices to check if the corresponding
omap_device/hwmod is already enabled. This helps the OMAP IOMMU and
remoteproc drivers to figure out if the corresponding processors
have already been loaded and booted by bootloaders.
Signed-off-by: Keerthy <j-keerthy@ti.com>
[s-anna@ti.com: minor cleanups]
Signed-off-by: Suman Anna <s-anna@ti.com>
Add a new .device_is_enabled() platform data callback ops to both
the OMAP IOMMU and remoteproc devices to check if the corresponding
omap_device/hwmod is already enabled. This helps the OMAP IOMMU and
remoteproc drivers to figure out if the corresponding processors
have already been loaded and booted by bootloaders.
Signed-off-by: Keerthy <j-keerthy@ti.com>
[s-anna@ti.com: minor cleanups]
Signed-off-by: Suman Anna <s-anna@ti.com>
clocksource: timer-ti-dm: Add support to handle late attach of rproc timers
During late attach, the dmtimers used by remote processors would already
have been configured and running. To prevent the kernel from resetting or
reconfiguring the timers,
- Set the late attach parameter if the timer is already running.
- If late attach flag is set, increment the dmtimer's usage counter
immediately on probe and maintain this state until remoteproc starts
the timer. This prevents kernel power management functionality from
idling and disabling the dmtimers.
- If late attach flag is set, also prevent the dmtimer configuration
code from modifying the dmtimer registers.
The late attach flag in the omap_dm_timer structure is cleared on timer
start to allow normal operation to resume.
Signed-off-by: Venkateswara Rao Mandela <venkat.mandela@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Shravan Karthik <shravan.karthik@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
During late attach, the dmtimers used by remote processors would already
have been configured and running. To prevent the kernel from resetting or
reconfiguring the timers,
- Set the late attach parameter if the timer is already running.
- If late attach flag is set, increment the dmtimer's usage counter
immediately on probe and maintain this state until remoteproc starts
the timer. This prevents kernel power management functionality from
idling and disabling the dmtimers.
- If late attach flag is set, also prevent the dmtimer configuration
code from modifying the dmtimer registers.
The late attach flag in the omap_dm_timer structure is cleared on timer
start to allow normal operation to resume.
Signed-off-by: Venkateswara Rao Mandela <venkat.mandela@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Shravan Karthik <shravan.karthik@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
TEMP: remoteproc: call the non-zeroing allocation function
For DMA pool scenario the plugged in allocation ops are not
used for carveout allocation. It is necessary to call a differnt
function that does not zero the DMA pool memory gotten from
the call to dma_alloc_coherent.
Call the dma_malloc_coherent (non-zeroing) api in the case
of late attach to guarantee that the memory is not zero-ed for
either a CMA or DMA pool. The memory for virtio rings is not
used in U-Boot, so need not use the non-zeroing function.
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Shravan Karthik <shravan.karthik@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
For DMA pool scenario the plugged in allocation ops are not
used for carveout allocation. It is necessary to call a differnt
function that does not zero the DMA pool memory gotten from
the call to dma_alloc_coherent.
Call the dma_malloc_coherent (non-zeroing) api in the case
of late attach to guarantee that the memory is not zero-ed for
either a CMA or DMA pool. The memory for virtio rings is not
used in U-Boot, so need not use the non-zeroing function.
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Shravan Karthik <shravan.karthik@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
TEMP: remoteproc: add "late attach" support
The remoteproc driver core is, in general, responsible for allocating
the memory for firmware segments, parsing and loading the firmware
segments into the allocated memory regions, mapping these memory
regions into associated IOMMUs, starting/releasing the processors
from reset, and finally establishing IPC between the host and the
remote processors.
The "late attach" feature refers to a model wherein a remote processor
has already been configured, loaded and started by some external entity
prior to kernel boot (u-boot, for example), and the remoteproc driver
needs to be configured to 'attach' or establish a connection with the
currently running code on the remote processor without resetting or
reconfiguring the device and associated peripherals. The feature is
being added to support specific use-cases (eg: "early camera" or "early
video"), requiring certain KPI criteria. The feature is currently based
on having a remote processor perform all the necessary activities to
achieve the required KPI in a stand-alone mode without having to rely
on communicating with the MPU or perform any IPC activities until the
remoteproc driver is up.
The "late attach" support in the remoteproc driver core is currently
designed to not perform the loading of the firmware segments, or
programming of the IOMMUs. The driver though still goes through the
sequence of processing the firmware to set up the correct virtio
based IPC transports, and allocating the required memory segments
to mark these memory regions as used/reserved from kernel in the
corresponding rproc device's CMA pools. The driver expects the
allocator to not perform any memory initialization, to avoid wiping
out the pre-loaded code. Virtio-based IPC with the remote processors
is established once the driver completes processing the firmware,
just as in a regular boot.
Signed-off-by: Robert Tivy <rtivy@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
Signed-off-by: Venkateswara Rao Mandela <venkat.mandela@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
The remoteproc driver core is, in general, responsible for allocating
the memory for firmware segments, parsing and loading the firmware
segments into the allocated memory regions, mapping these memory
regions into associated IOMMUs, starting/releasing the processors
from reset, and finally establishing IPC between the host and the
remote processors.
The "late attach" feature refers to a model wherein a remote processor
has already been configured, loaded and started by some external entity
prior to kernel boot (u-boot, for example), and the remoteproc driver
needs to be configured to 'attach' or establish a connection with the
currently running code on the remote processor without resetting or
reconfiguring the device and associated peripherals. The feature is
being added to support specific use-cases (eg: "early camera" or "early
video"), requiring certain KPI criteria. The feature is currently based
on having a remote processor perform all the necessary activities to
achieve the required KPI in a stand-alone mode without having to rely
on communicating with the MPU or perform any IPC activities until the
remoteproc driver is up.
The "late attach" support in the remoteproc driver core is currently
designed to not perform the loading of the firmware segments, or
programming of the IOMMUs. The driver though still goes through the
sequence of processing the firmware to set up the correct virtio
based IPC transports, and allocating the required memory segments
to mark these memory regions as used/reserved from kernel in the
corresponding rproc device's CMA pools. The driver expects the
allocator to not perform any memory initialization, to avoid wiping
out the pre-loaded code. Virtio-based IPC with the remote processors
is established once the driver completes processing the firmware,
just as in a regular boot.
Signed-off-by: Robert Tivy <rtivy@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
Signed-off-by: Venkateswara Rao Mandela <venkat.mandela@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
HACK: dma-mapping: add non-zeroing coherent alloc function
Add a new function, dma_malloc_from_coherent(), which
takes a parameter that specifies if the allocated memory
should be zero-ed or not. Modify dma_alloc_from_coherent
to call dma_malloc_from_coherent with the flag set to
true in order to zero the memory. In this way
dma_alloc_from_coherent behaves the same as before.
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Add a new function, dma_malloc_from_coherent(), which
takes a parameter that specifies if the allocated memory
should be zero-ed or not. Modify dma_alloc_from_coherent
to call dma_malloc_from_coherent with the flag set to
true in order to zero the memory. In this way
dma_alloc_from_coherent behaves the same as before.
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
HACK: ARM: dma-mapping: create non-zeroing dma_map_ops
A new dma_ops, 'arm_dma_m_ops', is created from a copy of the
standard 'arm_dma_ops' but with a new non-zeroing .alloc method.
These ops are added mainly to support a 'late attach' feature in
the OMAP remoteproc driver. When remoteproc does a 'late attach'
to a remote processor, it does not load any firmware contents into
memory, but it still needs to allocate the processor's CMA memory
to mark the memory as reserved/used from the kernel. The standard
'arm_dma_ops' contains an .alloc method that zeroes out the memory,
thereby overwriting the firmware code/data in the memory that was
pre-loaded before the Linux kernel has booted.
This scenario is handled by adding a new non-zeroing allocation
function and using it as the .alloc method in a copy of the
'arm_dma_ops'. The so created 'arm_dma_m_ops' will be assigned
as the rproc device's dma_ops when supporting the 'late attach'
functionality.
Signed-off-by: Martin Ambrose <martin@ti.com>
Signed-off-by: Robert Tivy <rtivy@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
Signed-off-by: Venkateswara Rao Mandela <venkat.mandela@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
A new dma_ops, 'arm_dma_m_ops', is created from a copy of the
standard 'arm_dma_ops' but with a new non-zeroing .alloc method.
These ops are added mainly to support a 'late attach' feature in
the OMAP remoteproc driver. When remoteproc does a 'late attach'
to a remote processor, it does not load any firmware contents into
memory, but it still needs to allocate the processor's CMA memory
to mark the memory as reserved/used from the kernel. The standard
'arm_dma_ops' contains an .alloc method that zeroes out the memory,
thereby overwriting the firmware code/data in the memory that was
pre-loaded before the Linux kernel has booted.
This scenario is handled by adding a new non-zeroing allocation
function and using it as the .alloc method in a copy of the
'arm_dma_ops'. The so created 'arm_dma_m_ops' will be assigned
as the rproc device's dma_ops when supporting the 'late attach'
functionality.
Signed-off-by: Martin Ambrose <martin@ti.com>
Signed-off-by: Robert Tivy <rtivy@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Amarinder Bindra <a-bindra@ti.com>
Signed-off-by: Venkateswara Rao Mandela <venkat.mandela@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
drm/tidss: WB: fix nested redefinition of enum kbuild error
Kbuild test robot reported the following issue:
In file included from drivers/gpu/drm/tidss/tidss_wb.c:10:0:
>> drivers/gpu/drm/tidss/tidss_wb.h:77:6: error: nested redefinition
of 'enum wb_state'
enum wb_state {
^~~~~~~~
>> drivers/gpu/drm/tidss/tidss_wb.h:77:6: error: redeclaration of
'enum wb_state'
In file included from include/linux/writeback.h:12:0,
from include/linux/memcontrol.h:31,
from include/linux/swap.h:9,
from include/asm-generic/tlb.h:19,
from arch/m68k/include/asm/tlb.h:19,
from arch/m68k/include/asm/motorola_pgalloc.h:5,
from arch/m68k/include/asm/pgalloc.h:16,
from include/drm/drmP.h:62,
from drivers/gpu/drm/tidss/tidss_wb.h:15,
from drivers/gpu/drm/tidss/tidss_wb.c:10:
include/linux/backing-dev-defs.h:24:6: note: originally defined here
enum wb_state {
^~~~~~~~
fixed by renaming the enum to be more specific.
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Benoit Parrot <bparrot@ti.com>
Kbuild test robot reported the following issue:
In file included from drivers/gpu/drm/tidss/tidss_wb.c:10:0:
>> drivers/gpu/drm/tidss/tidss_wb.h:77:6: error: nested redefinition
of 'enum wb_state'
enum wb_state {
^~~~~~~~
>> drivers/gpu/drm/tidss/tidss_wb.h:77:6: error: redeclaration of
'enum wb_state'
In file included from include/linux/writeback.h:12:0,
from include/linux/memcontrol.h:31,
from include/linux/swap.h:9,
from include/asm-generic/tlb.h:19,
from arch/m68k/include/asm/tlb.h:19,
from arch/m68k/include/asm/motorola_pgalloc.h:5,
from arch/m68k/include/asm/pgalloc.h:16,
from include/drm/drmP.h:62,
from drivers/gpu/drm/tidss/tidss_wb.h:15,
from drivers/gpu/drm/tidss/tidss_wb.c:10:
include/linux/backing-dev-defs.h:24:6: note: originally defined here
enum wb_state {
^~~~~~~~
fixed by renaming the enum to be more specific.
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Benoit Parrot <bparrot@ti.com>
drm/tidss: WB: fix frame size kbuild warning
Kbuild test robot reported the following issue:
drivers/gpu//drm/tidss/tidss_wb_m2m.c: In function 'device_run':
>> drivers/gpu//drm/tidss/tidss_wb_m2m.c:256:1: warning: the frame size
of 1280 bytes is larger than 1024 bytes [-Wframe-larger-than=]
}
^
This is due to the fact that large struct variables were allocated on
the stack in device_run(). To fix this we moved the larger variables to
the wbm2m_ctx struct instead.
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Benoit Parrot <bparrot@ti.com>
Kbuild test robot reported the following issue:
drivers/gpu//drm/tidss/tidss_wb_m2m.c: In function 'device_run':
>> drivers/gpu//drm/tidss/tidss_wb_m2m.c:256:1: warning: the frame size
of 1280 bytes is larger than 1024 bytes [-Wframe-larger-than=]
}
^
This is due to the fact that large struct variables were allocated on
the stack in device_run(). To fix this we moved the larger variables to
the wbm2m_ctx struct instead.
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Benoit Parrot <bparrot@ti.com>
4 years agoMerged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y ti-rt-linux-4.19.y-next-20190921 ti-rt-linux-4.19.y-next-20190922 ti-rt-linux-4.19.y-next-20190923
Merged TI feature ti_linux_base_rt into ti-rt-linux-4.19.y
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
arm64: dts: ti: k3-j721e-proc-board-tps65917: Sync cpsw-virt-mac
serial: 8250: 8250_omap: Remove redundant call to omap_8250_rx_dma_flush
serial: 8250: 8250_omap: Fix DMA teardown sequence during RX timeout
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Branch: ti-linux-4.19.y
* 'ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpub/ti-linux-kernel:
arm64: dts: ti: k3-j721e-proc-board-tps65917: Sync cpsw-virt-mac
serial: 8250: 8250_omap: Remove redundant call to omap_8250_rx_dma_flush
serial: 8250: 8250_omap: Fix DMA teardown sequence during RX timeout
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature connectivity into ti-linux-4.19.y
TI-Feature: connectivity
TI-Branch: connectivity-ti-linux-4.19.y
* 'connectivity-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity:
arm64: dts: ti: k3-j721e-proc-board-tps65917: Sync cpsw-virt-mac
serial: 8250: 8250_omap: Remove redundant call to omap_8250_rx_dma_flush
serial: 8250: 8250_omap: Fix DMA teardown sequence during RX timeout
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: connectivity
TI-Branch: connectivity-ti-linux-4.19.y
* 'connectivity-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity:
arm64: dts: ti: k3-j721e-proc-board-tps65917: Sync cpsw-virt-mac
serial: 8250: 8250_omap: Remove redundant call to omap_8250_rx_dma_flush
serial: 8250: 8250_omap: Fix DMA teardown sequence during RX timeout
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'ti-linux-4.19.y-dp-fw-cleanup' into audio_display-ti-linux-4.19.y
drm/bridge: cdns-mhdp: Cleanup and async FW loading
* ti-linux-4.19.y-dp-fw-cleanup:
drm/bridge: cdns-mhdp: Probe and add the bridge even without firmware
drm/bridge: cdns-mhdp: Call phy_exit() in mhdp_remove()
drm/bridge: cdns-mhdp: Handle probe failures correctly
drm/bridge: cdns-mhdp: Drop useless container structs
drm/bridge: cdns-mhdp: Remove dependencies to cdns-mhdp-common
drm/rockchip: Restore everything to what is there in v4.19.73
drm/bridge: cdns-mhdp: Remove completely untested audio support
drm/bridge: cdns-mhdp: Cleanup and async FW loading
* ti-linux-4.19.y-dp-fw-cleanup:
drm/bridge: cdns-mhdp: Probe and add the bridge even without firmware
drm/bridge: cdns-mhdp: Call phy_exit() in mhdp_remove()
drm/bridge: cdns-mhdp: Handle probe failures correctly
drm/bridge: cdns-mhdp: Drop useless container structs
drm/bridge: cdns-mhdp: Remove dependencies to cdns-mhdp-common
drm/rockchip: Restore everything to what is there in v4.19.73
drm/bridge: cdns-mhdp: Remove completely untested audio support
drm/bridge: cdns-mhdp: Probe and add the bridge even without firmware
Load the firmware asynchronously and probe and add the bridge even we
do not yet have it. This makes it possible to pull up the DRM device
and get the other displays working even if we still have to wait for
display port firmware. The display port is locked in disconnected
state until the firmware is loaded and the DP IP is properly enabled.
The patch adds one lock to protect hw_state and bridge_attached in
the driver data struct from from a race between the DRM operations and
the asynchronous FW loading.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Load the firmware asynchronously and probe and add the bridge even we
do not yet have it. This makes it possible to pull up the DRM device
and get the other displays working even if we still have to wait for
display port firmware. The display port is locked in disconnected
state until the firmware is loaded and the DP IP is properly enabled.
The patch adds one lock to protect hw_state and bridge_attached in
the driver data struct from from a race between the DRM operations and
the asynchronous FW loading.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Merge branch 'ti/4.19-pull' of https://bitbucket.itg.ti.com/scm/~a0400822/linux into audio_display-ti-linux-4.19.y
2019.04: minor sparse fixes
* 'ti/4.19-pull' of https://bitbucket.itg.ti.com/scm/~a0400822/linux:
drm/tidss: constify rpmsg ops structs
drm/tidss: add missing static declarations in DSS sharing code
2019.04: minor sparse fixes
* 'ti/4.19-pull' of https://bitbucket.itg.ti.com/scm/~a0400822/linux:
drm/tidss: constify rpmsg ops structs
drm/tidss: add missing static declarations in DSS sharing code
Merge branch 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio/linux-audio into audio_display-ti-linux-4.19.y
2019.04 - Remove support for S32_LE for pcm3186a
* 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio/linux-audio:
ASoC: pcm3168a: The codec does not support S32_LE
2019.04 - Remove support for S32_LE for pcm3186a
* 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio/linux-audio:
ASoC: pcm3168a: The codec does not support S32_LE
arm64: dts: ti: k3-j721e-proc-board-tps65917: Sync cpsw-virt-mac
Sync cpsw-virt-mac node with k3-j721e-common-proc-board.dts
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Sync cpsw-virt-mac node with k3-j721e-common-proc-board.dts
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Merge branch 'rproc-linux-4.19.y' of git://git.ti.com/rpmsg/remoteproc into rpmsg-ti-linux-4.19.y
Pull in the updated remoteproc feature branch that renames the node names
and labels for the reserved memory regions on DRA76 and DRA72 rev.C EVM
boards to not use the CMA terminology.
* 'rproc-linux-4.19.y' of git://git.ti.com/rpmsg/remoteproc:
ARM: dts: dra76-evm: Fix rproc reserved-memory labels and node names
ARM: dts: dra72-evm-revc: Fix rproc reserved-memory labels and node names
Signed-off-by: Suman Anna <s-anna@ti.com>
Pull in the updated remoteproc feature branch that renames the node names
and labels for the reserved memory regions on DRA76 and DRA72 rev.C EVM
boards to not use the CMA terminology.
* 'rproc-linux-4.19.y' of git://git.ti.com/rpmsg/remoteproc:
ARM: dts: dra76-evm: Fix rproc reserved-memory labels and node names
ARM: dts: dra72-evm-revc: Fix rproc reserved-memory labels and node names
Signed-off-by: Suman Anna <s-anna@ti.com>
drm/bridge: cdns-mhdp: Call phy_exit() in mhdp_remove()
We should call phy_exit() when we stop using phy, so call it in
mhdp_remove().
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
We should call phy_exit() when we stop using phy, so call it in
mhdp_remove().
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>