5 years agoMerge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into... ti-rt-linux-4.14.y-next-20181026 ti-rt-linux-4.14.y-next-20181027 ti-rt-linux-4.14.y-next-20181028 ti-rt-linux-4.14.y-next-20181029 ti-rt-linux-4.14.y-next-20181030
Merge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.14.y
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
net: ethernet: ti: am65-cpsw-nuss: use round robin mode for cppi tx queues
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
net: ethernet: ti: am65-cpsw-nuss: use round robin mode for cppi tx queues
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'connectivity-ti-linux-4.14.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel into ti-linux-4.14.y
TI-Feature: connectivity
TI-Tree: git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel.git
TI-Branch: connectivity-ti-linux-4.14.y
* 'connectivity-ti-linux-4.14.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel:
net: ethernet: ti: am65-cpsw-nuss: use round robin mode for cppi tx queues
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: connectivity
TI-Tree: git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel.git
TI-Branch: connectivity-ti-linux-4.14.y
* 'connectivity-ti-linux-4.14.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel:
net: ethernet: ti: am65-cpsw-nuss: use round robin mode for cppi tx queues
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.14.y
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
remoteproc/k3-r5: fix the R5 boot state machine for multiple combinations
remoteproc: add prepare and unprepare ops
remoteproc/k3-r5: fix use after free with reserved memory regions
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
remoteproc/k3-r5: fix the R5 boot state machine for multiple combinations
remoteproc: add prepare and unprepare ops
remoteproc/k3-r5: fix use after free with reserved memory regions
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'rpmsg-ti-linux-4.14.y-intg' of git://git.ti.com/rpmsg/rpmsg into ti-linux-4.14.y
TI-Feature: rpmsg
TI-Tree: git://git.ti.com/rpmsg/rpmsg.git
TI-Branch: rpmsg-ti-linux-4.14.y-intg
* 'rpmsg-ti-linux-4.14.y-intg' of git://git.ti.com/rpmsg/rpmsg:
remoteproc/k3-r5: fix the R5 boot state machine for multiple combinations
remoteproc: add prepare and unprepare ops
remoteproc/k3-r5: fix use after free with reserved memory regions
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: rpmsg
TI-Tree: git://git.ti.com/rpmsg/rpmsg.git
TI-Branch: rpmsg-ti-linux-4.14.y-intg
* 'rpmsg-ti-linux-4.14.y-intg' of git://git.ti.com/rpmsg/rpmsg:
remoteproc/k3-r5: fix the R5 boot state machine for multiple combinations
remoteproc: add prepare and unprepare ops
remoteproc/k3-r5: fix use after free with reserved memory regions
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
remoteproc/k3-r5: fix the R5 boot state machine for multiple combinations
The R5F processors on TI K3 SoCs require a specific sequence for booting
and shutting down the processors. This sequence is also dependent on the
mode (LockStep or Split) the R5F cluster is configured for. The R5F cores
have a Memory Protection Unit (MPU) that has a default configuration that
does not allow the cores to run out of DDR out of reset. This is resolved
by using the TCMs for boot-strapping code that applies the appropriate
executable permissions on desired DDR memory. The loading into the TCMs
requires that the resets be released first with the cores in halted state.
The Power Sleep Controller (PSC) module on K3 SoCs requires that the cores
be in WFI/WFE states with no active bus transactions before the cores can
be put back into reset.
The existing code uses an asymmetric logic for asserting and deasserting
the resets to satisfy the above conditions. The resets are released before
the rproc is registered (during probe), with the cores unhalted in .start()
ops. The cores are halted, resets asserted and released again in .stop()
ops to allow the remoteprocs to be started and stopped repeatedly using
the sysfs 'state' file. The resets are also asserted during remove, and
the deassertion logic in .stop() is done conditionally only if it not
invoked through the remove path. This covers the repeated insmod/rmmod
or sysfs stop/start sequences. This however causes a rproc boot hang
with sysfs stop, rmmod followed by an insmod, since the cores are not
in WFE/WFI during rmmod.
Fix the above issue and the asymmetrical usage properly leveraging the
newly introduce .prepare() and .unprepare() ops in the remoteproc core.
The .prepare() ops is invoked before any loading, and the .unprepare()
ops is invoked after the remoteproc resource cleanup. The R5F core resets
are deasserted in .prepare() and asserted in .unprepare() eliminating the
need for the previous complex logic.
Signed-off-by: Suman Anna <s-anna@ti.com>
The R5F processors on TI K3 SoCs require a specific sequence for booting
and shutting down the processors. This sequence is also dependent on the
mode (LockStep or Split) the R5F cluster is configured for. The R5F cores
have a Memory Protection Unit (MPU) that has a default configuration that
does not allow the cores to run out of DDR out of reset. This is resolved
by using the TCMs for boot-strapping code that applies the appropriate
executable permissions on desired DDR memory. The loading into the TCMs
requires that the resets be released first with the cores in halted state.
The Power Sleep Controller (PSC) module on K3 SoCs requires that the cores
be in WFI/WFE states with no active bus transactions before the cores can
be put back into reset.
The existing code uses an asymmetric logic for asserting and deasserting
the resets to satisfy the above conditions. The resets are released before
the rproc is registered (during probe), with the cores unhalted in .start()
ops. The cores are halted, resets asserted and released again in .stop()
ops to allow the remoteprocs to be started and stopped repeatedly using
the sysfs 'state' file. The resets are also asserted during remove, and
the deassertion logic in .stop() is done conditionally only if it not
invoked through the remove path. This covers the repeated insmod/rmmod
or sysfs stop/start sequences. This however causes a rproc boot hang
with sysfs stop, rmmod followed by an insmod, since the cores are not
in WFE/WFI during rmmod.
Fix the above issue and the asymmetrical usage properly leveraging the
newly introduce .prepare() and .unprepare() ops in the remoteproc core.
The .prepare() ops is invoked before any loading, and the .unprepare()
ops is invoked after the remoteproc resource cleanup. The R5F core resets
are deasserted in .prepare() and asserted in .unprepare() eliminating the
need for the previous complex logic.
Signed-off-by: Suman Anna <s-anna@ti.com>
remoteproc: add prepare and unprepare ops
On some SoC architecture, it is needed to enable HW like
clock, bus, regulator, memory region... before loading
co-processor firmware.
This patch introduces prepare and unprepare ops to execute
platform specific function before firmware loading and after
stop execution.
Signed-off-by: Loic Pallardy <loic.pallardy@st.com>
[s-anna@ti.com: cherry-pick linux-remoteproc patchwork id '10251897']
Signed-off-by: Suman Anna <s-anna@ti.com>
On some SoC architecture, it is needed to enable HW like
clock, bus, regulator, memory region... before loading
co-processor firmware.
This patch introduces prepare and unprepare ops to execute
platform specific function before firmware loading and after
stop execution.
Signed-off-by: Loic Pallardy <loic.pallardy@st.com>
[s-anna@ti.com: cherry-pick linux-remoteproc patchwork id '10251897']
Signed-off-by: Suman Anna <s-anna@ti.com>
remoteproc/k3-r5: fix use after free with reserved memory regions
The commit 6a28d115b972 ("remoteproc/k3-r5: add support for fixed reserved
memory regions") has replaced the of_reserved_mem_device_init/release()
functions with newer k3_r5_reserved_mem_init/exit() functions that include
the previous functionality. These new functions however have references
to the remoteproc structures, and the k3_r5_reserved_mem_exit() function
is currently invoked after the corresponding remoteproc is freed. This
can cause potential kernel crashes by accessing freed memory. Fix this
properly.
Fixes: 6a28d115b972 ("remoteproc/k3-r5: add support for fixed reserved memory regions")
Signed-off-by: Suman Anna <s-anna@ti.com>
The commit 6a28d115b972 ("remoteproc/k3-r5: add support for fixed reserved
memory regions") has replaced the of_reserved_mem_device_init/release()
functions with newer k3_r5_reserved_mem_init/exit() functions that include
the previous functionality. These new functions however have references
to the remoteproc structures, and the k3_r5_reserved_mem_exit() function
is currently invoked after the corresponding remoteproc is freed. This
can cause potential kernel crashes by accessing freed memory. Fix this
properly.
Fixes: 6a28d115b972 ("remoteproc/k3-r5: add support for fixed reserved memory regions")
Signed-off-by: Suman Anna <s-anna@ti.com>
Merge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.14.y
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
drm/tidss: Fix copy-paste error in fb uv-plane address calculations
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
drm/tidss: Fix copy-paste error in fb uv-plane address calculations
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree into ti-linux-4.14.y
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.14.y
* 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree:
drm/tidss: Fix copy-paste error in fb uv-plane address calculations
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.14.y
* 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree:
drm/tidss: Fix copy-paste error in fb uv-plane address calculations
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
drm/tidss: Fix copy-paste error in fb uv-plane address calculations
The offset calculation of frame buffers uv-plane were wrongly using
the the first planes cpp and pitches values. This patch fixes the
problem.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
The offset calculation of frame buffers uv-plane were wrongly using
the the first planes cpp and pitches values. This patch fixes the
problem.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
5 years agoMerge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into... ti-rt-linux-4.14.y-next-20181025
Merge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.14.y
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
drm/tidss: The CRTC state needs to be written to HW also in enable()
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
drm/tidss: The CRTC state needs to be written to HW also in enable()
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree into ti-linux-4.14.y
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.14.y
* 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree:
drm/tidss: The CRTC state needs to be written to HW also in enable()
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.14.y
* 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree:
drm/tidss: The CRTC state needs to be written to HW also in enable()
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
drm/tidss: The CRTC state needs to be written to HW also in enable()
The CRTC properties were written to HW only in tidss_crtc_atomic_flush(),
which is skipped if the CRTC is not yet enabled. Because of this we need
to set the video port state also in tidss_crtc_atomic_enable().
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
The CRTC properties were written to HW only in tidss_crtc_atomic_flush(),
which is skipped if the CRTC is not yet enabled. Because of this we need
to set the video port state also in tidss_crtc_atomic_enable().
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Merge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.14.y
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
drm/omap: omap_wb_m2m: add cropping parameter support
drm/omap: omap_wb_m2m: g/s_selection ioctl always fails
drm/omap: omap_wb: remove unneeded vb2_dma_addr_plus_data_offset()
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
drm/omap: omap_wb_m2m: add cropping parameter support
drm/omap: omap_wb_m2m: g/s_selection ioctl always fails
drm/omap: omap_wb: remove unneeded vb2_dma_addr_plus_data_offset()
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree into ti-linux-4.14.y
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.14.y
* 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree:
drm/omap: omap_wb_m2m: add cropping parameter support
drm/omap: omap_wb_m2m: g/s_selection ioctl always fails
drm/omap: omap_wb: remove unneeded vb2_dma_addr_plus_data_offset()
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.14.y
* 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree:
drm/omap: omap_wb_m2m: add cropping parameter support
drm/omap: omap_wb_m2m: g/s_selection ioctl always fails
drm/omap: omap_wb: remove unneeded vb2_dma_addr_plus_data_offset()
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'for18.05.00' of git.ti.com:~bparrot/ti-linux-kernel/bp-ti-linux into audio-display-ti-linux-4.14.y
OMAP-WB fixes 2018.05
* 'for18.05.00' of git.ti.com:~bparrot/ti-linux-kernel/bp-ti-linux:
drm/omap: omap_wb_m2m: add cropping parameter support
drm/omap: omap_wb_m2m: g/s_selection ioctl always fails
drm/omap: omap_wb: remove unneeded vb2_dma_addr_plus_data_offset()
OMAP-WB fixes 2018.05
* 'for18.05.00' of git.ti.com:~bparrot/ti-linux-kernel/bp-ti-linux:
drm/omap: omap_wb_m2m: add cropping parameter support
drm/omap: omap_wb_m2m: g/s_selection ioctl always fails
drm/omap: omap_wb: remove unneeded vb2_dma_addr_plus_data_offset()
drm/omap: omap_wb_m2m: add cropping parameter support
Implement support for cropping functionality.
Signed-off-by: Benoit Parrot <bparrot@ti.com>
Implement support for cropping functionality.
Signed-off-by: Benoit Parrot <bparrot@ti.com>
drm/omap: omap_wb_m2m: g/s_selection ioctl always fails
When checking the v4l2_selection.type parameter the driver was checking
against either V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE or
V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE values but the proper values to check
against would be either V4L2_BUF_TYPE_VIDEO_OUTPUT or
V4L2_BUF_TYPE_VIDEO_CAPTURE.
This was causing the g/s_selection ioctls to always return -EINVAL.
In addition a copy/paste mistake was having the driver validate both
V4L2_SEL_TGT_COMPOSE and V4L2_SEL_TGT_CROP operation against
V4L2_BUF_TYPE_VIDEO_OUTPUT. But for the proper validation
V4L2_SEL_TGT_COMPOSE operations are valid on
V4L2_BUF_TYPE_VIDEO_CAPTURE type while V4L2_SEL_TGT_CROP operations are
valid on V4L2_BUF_TYPE_VIDEO_OUTPUT type.
This was causing s_selection ioctl to also return -EINVAL.
Signed-off-by: Benoit Parrot <bparrot@ti.com>
When checking the v4l2_selection.type parameter the driver was checking
against either V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE or
V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE values but the proper values to check
against would be either V4L2_BUF_TYPE_VIDEO_OUTPUT or
V4L2_BUF_TYPE_VIDEO_CAPTURE.
This was causing the g/s_selection ioctls to always return -EINVAL.
In addition a copy/paste mistake was having the driver validate both
V4L2_SEL_TGT_COMPOSE and V4L2_SEL_TGT_CROP operation against
V4L2_BUF_TYPE_VIDEO_OUTPUT. But for the proper validation
V4L2_SEL_TGT_COMPOSE operations are valid on
V4L2_BUF_TYPE_VIDEO_CAPTURE type while V4L2_SEL_TGT_CROP operations are
valid on V4L2_BUF_TYPE_VIDEO_OUTPUT type.
This was causing s_selection ioctl to also return -EINVAL.
Signed-off-by: Benoit Parrot <bparrot@ti.com>
drm/omap: omap_wb: remove unneeded vb2_dma_addr_plus_data_offset()
vb2_dma_addr_plus_data_offset() was originally created for the VPE
driver as a hack to handle NV12 frames and make them look like 2 plane
buffer by mis-using the .data_offset to point to the beginning of the UV
part of the image for the second plane. However .data_offset was meant
to be used by userspace using frame buffer which would contain an info
header where the actual video data starts. Sometime after kernel v3.14
the V4L2 framework started to check that the .data_offset could not be
larger than the .bytesused, meaning .data_offset could not indicate an
offset outside of the current buffer. The V4L2 framework nows issue WARN
if data_offset is anything but zero.
Since .data_offset is forced to zero by the framework then this change
does not change the code behavior.
Both VPE and OMAP WB-M2M driver were updated to properly deal NV12
format but the above helper function was not removed from the OMAP WB
M2M driver when we removed it from VPE. We are now correcting that
mistake.
Signed-off-by: Benoit Parrot <bparrot@ti.com>
vb2_dma_addr_plus_data_offset() was originally created for the VPE
driver as a hack to handle NV12 frames and make them look like 2 plane
buffer by mis-using the .data_offset to point to the beginning of the UV
part of the image for the second plane. However .data_offset was meant
to be used by userspace using frame buffer which would contain an info
header where the actual video data starts. Sometime after kernel v3.14
the V4L2 framework started to check that the .data_offset could not be
larger than the .bytesused, meaning .data_offset could not indicate an
offset outside of the current buffer. The V4L2 framework nows issue WARN
if data_offset is anything but zero.
Since .data_offset is forced to zero by the framework then this change
does not change the code behavior.
Both VPE and OMAP WB-M2M driver were updated to properly deal NV12
format but the above helper function was not removed from the OMAP WB
M2M driver when we removed it from VPE. We are now correcting that
mistake.
Signed-off-by: Benoit Parrot <bparrot@ti.com>
5 years agoMerge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into... ti-rt-linux-4.14.y-next-20181020 ti-rt-linux-4.14.y-next-20181021 ti-rt-linux-4.14.y-next-20181022 ti-rt-linux-4.14.y-next-20181023 ti-rt-linux-4.14.y-next-20181024
Merge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.14.y
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
arm64: dts: ti: k3-am654-base-board: split the R5F memory regions
remoteproc/k3-r5: add support for fixed reserved memory regions
dt-bindings: remoteproc: k3-r5f: Update bindings for multiple memory regions
of: reserved_mem: Accessor for acquiring reserved_mem
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
arm64: dts: ti: k3-am654-base-board: split the R5F memory regions
remoteproc/k3-r5: add support for fixed reserved memory regions
dt-bindings: remoteproc: k3-r5f: Update bindings for multiple memory regions
of: reserved_mem: Accessor for acquiring reserved_mem
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'rpmsg-ti-linux-4.14.y-intg' of git://git.ti.com/rpmsg/rpmsg into ti-linux-4.14.y
TI-Feature: rpmsg
TI-Tree: git://git.ti.com/rpmsg/rpmsg.git
TI-Branch: rpmsg-ti-linux-4.14.y-intg
* 'rpmsg-ti-linux-4.14.y-intg' of git://git.ti.com/rpmsg/rpmsg:
arm64: dts: ti: k3-am654-base-board: split the R5F memory regions
remoteproc/k3-r5: add support for fixed reserved memory regions
dt-bindings: remoteproc: k3-r5f: Update bindings for multiple memory regions
of: reserved_mem: Accessor for acquiring reserved_mem
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: rpmsg
TI-Tree: git://git.ti.com/rpmsg/rpmsg.git
TI-Branch: rpmsg-ti-linux-4.14.y-intg
* 'rpmsg-ti-linux-4.14.y-intg' of git://git.ti.com/rpmsg/rpmsg:
arm64: dts: ti: k3-am654-base-board: split the R5F memory regions
remoteproc/k3-r5: add support for fixed reserved memory regions
dt-bindings: remoteproc: k3-r5f: Update bindings for multiple memory regions
of: reserved_mem: Accessor for acquiring reserved_mem
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
arm64: dts: ti: k3-am654-base-board: split the R5F memory regions
The commit 44dc2a65ba1d ("arm64: dts: ti: k3-am654-evm: Add DDR carveout
memory nodes for R5Fs") adds two carveout reserved memory nodes for each
of the MCU R5F remote processor devices. Split each of these regions into
two different regions for the all the TI K3 AM65x boards to support R5F
firmwares without any RSC_CARVEOUT entries in their resource tables. The
first region will be used as the DMA pool for the rproc devices, and the
second region will furnish the static carveout regions for the firmware
memory.
Signed-off-by: Suman Anna <s-anna@ti.com>
The commit 44dc2a65ba1d ("arm64: dts: ti: k3-am654-evm: Add DDR carveout
memory nodes for R5Fs") adds two carveout reserved memory nodes for each
of the MCU R5F remote processor devices. Split each of these regions into
two different regions for the all the TI K3 AM65x boards to support R5F
firmwares without any RSC_CARVEOUT entries in their resource tables. The
first region will be used as the DMA pool for the rproc devices, and the
second region will furnish the static carveout regions for the firmware
memory.
Signed-off-by: Suman Anna <s-anna@ti.com>
remoteproc/k3-r5: add support for fixed reserved memory regions
The R5F remote processors do not have an MMU, and so require fixed
memory carveout regions matching the firmware image addresses. The
R5F remoteproc driver currently relies on a single memory region
provided to the device and uses it to dynamically allocate memory
for both the vrings/vring buffers as well as for the firmware image
segments. The latter is done through matching RSC_CARVEOUT entries.
This is not a scalable solution though as there is no way to ensure
the allocated memories will match the exact firmware image addresses.
Enhance the current R5F remoteproc driver to remove this limitation.
Support for this is added by mandating multiple memory regions to be
attached to the remoteproc device. The first memory region will be
used to serve as the DMA pool for all dynamic allocations like the
vrings and vring buffers. The remaining memory regions are mapped
into the kernel at device probe time, and are used to provide address
translations for firmware image segments without the need for any
RSC_CARVEOUT entries. Any firmware image using memory outside of
the supplied reserved memory carveout regions will be errored out.
NOTE:
The R5F remoteproc driver currently does not support the Region
Address Translator allowing the R5F cores to use a 32-bit processor
address for leveraging a physical address > 32-bit address. All
the reserved memory regions are therefore expected to be using
memory regions within the first 2 GB.
Signed-off-by: Suman Anna <s-anna@ti.com>
The R5F remote processors do not have an MMU, and so require fixed
memory carveout regions matching the firmware image addresses. The
R5F remoteproc driver currently relies on a single memory region
provided to the device and uses it to dynamically allocate memory
for both the vrings/vring buffers as well as for the firmware image
segments. The latter is done through matching RSC_CARVEOUT entries.
This is not a scalable solution though as there is no way to ensure
the allocated memories will match the exact firmware image addresses.
Enhance the current R5F remoteproc driver to remove this limitation.
Support for this is added by mandating multiple memory regions to be
attached to the remoteproc device. The first memory region will be
used to serve as the DMA pool for all dynamic allocations like the
vrings and vring buffers. The remaining memory regions are mapped
into the kernel at device probe time, and are used to provide address
translations for firmware image segments without the need for any
RSC_CARVEOUT entries. Any firmware image using memory outside of
the supplied reserved memory carveout regions will be errored out.
NOTE:
The R5F remoteproc driver currently does not support the Region
Address Translator allowing the R5F cores to use a 32-bit processor
address for leveraging a physical address > 32-bit address. All
the reserved memory regions are therefore expected to be using
memory regions within the first 2 GB.
Signed-off-by: Suman Anna <s-anna@ti.com>
dt-bindings: remoteproc: k3-r5f: Update bindings for multiple memory regions
The R5F remote processors do not have an MMU, and so require fixed memory
carveout regions matching the firmware image addresses. Update the bindings
to require more than one memory region, with the first memory region used
for DMA allocations at runtime. The remaining memory regions are reserved
and are used for the loading and running of the R5F remote processors.
The AM65x example has also been updated accordingly.
Signed-off-by: Suman Anna <s-anna@ti.com>
The R5F remote processors do not have an MMU, and so require fixed memory
carveout regions matching the firmware image addresses. Update the bindings
to require more than one memory region, with the first memory region used
for DMA allocations at runtime. The remaining memory regions are reserved
and are used for the loading and running of the R5F remote processors.
The AM65x example has also been updated accordingly.
Signed-off-by: Suman Anna <s-anna@ti.com>
of: reserved_mem: Accessor for acquiring reserved_mem
In some cases drivers referencing a reserved-memory region might want to
remap the entire region, but when defining the reserved-memory by "size"
the client driver has no means to know the associated base address of
the reserved memory region.
This patch adds an accessor for such drivers to acquire a handle to
their associated reserved-memory for this purpose.
A complicating factor for the implementation is that the reserved_mem
objects are created from the flattened DeviceTree, as such we can't
use the device_node address for comparison. Fortunately the name of the
node will be used as "name" of the reserved_mem and will be used when
building the full_name, so we can compare the "name" with the basename
of the full_name to find the match.
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
[s-anna@ti.com: cherry-pick commit 'eb297bc716ec' from v4.15]
Signed-off-by: Suman Anna <s-anna@ti.com>
In some cases drivers referencing a reserved-memory region might want to
remap the entire region, but when defining the reserved-memory by "size"
the client driver has no means to know the associated base address of
the reserved memory region.
This patch adds an accessor for such drivers to acquire a handle to
their associated reserved-memory for this purpose.
A complicating factor for the implementation is that the reserved_mem
objects are created from the flattened DeviceTree, as such we can't
use the device_node address for comparison. Fortunately the name of the
node will be used as "name" of the reserved_mem and will be used when
building the full_name, so we can compare the "name" with the basename
of the full_name to find the match.
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
[s-anna@ti.com: cherry-pick commit 'eb297bc716ec' from v4.15]
Signed-off-by: Suman Anna <s-anna@ti.com>
Merge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.14.y
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
drm/tidss: dispc7: Remove unneeded semicolon at the end of switch-block
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
drm/tidss: dispc7: Remove unneeded semicolon at the end of switch-block
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree into ti-linux-4.14.y
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.14.y
* 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree:
drm/tidss: dispc7: Remove unneeded semicolon at the end of switch-block
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.14.y
* 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree:
drm/tidss: dispc7: Remove unneeded semicolon at the end of switch-block
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
drm/tidss: dispc7: Remove unneeded semicolon at the end of switch-block
Remove unneeded semicolon at the end of the newly added switch-case-block.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Remove unneeded semicolon at the end of the newly added switch-case-block.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
5 years agoMerge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into... ti-rt-linux-4.14.y-next-20181019
Merge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.14.y
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
drm/tidss: dispc7: Remove double spaces from scaling code
drm/tidss: dispc7: Simplify assignment of VP POL FREQ bits in vp_enable()
drm/tidss: Add TI custom "background" color property and functionality
drm/tidss: Add TI custom transparency key properties and functionality
drm/tidss: dispc7: Add conversion modes to argb8888_to_argb12121212()
drm/tidss: Add skeleton code for custom crtc properties
drm/tidss: Add missing dispc_ops->vp_setup() call to crtc_atomic_flush()
drm/tidss: dispc7: Statically assign OLDI and DPI bus types to vp
drm/tidss: Add missing static to dispc[67]_plane_feat() functions
drm/tidss: dispc7: Drop entry print in dispc7_init() to dbg level
drm/tidss: dispc7: Cleanup OVR handling
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
drm/tidss: dispc7: Remove double spaces from scaling code
drm/tidss: dispc7: Simplify assignment of VP POL FREQ bits in vp_enable()
drm/tidss: Add TI custom "background" color property and functionality
drm/tidss: Add TI custom transparency key properties and functionality
drm/tidss: dispc7: Add conversion modes to argb8888_to_argb12121212()
drm/tidss: Add skeleton code for custom crtc properties
drm/tidss: Add missing dispc_ops->vp_setup() call to crtc_atomic_flush()
drm/tidss: dispc7: Statically assign OLDI and DPI bus types to vp
drm/tidss: Add missing static to dispc[67]_plane_feat() functions
drm/tidss: dispc7: Drop entry print in dispc7_init() to dbg level
drm/tidss: dispc7: Cleanup OVR handling
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree into ti-linux-4.14.y
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.14.y
* 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree:
drm/tidss: dispc7: Remove double spaces from scaling code
drm/tidss: dispc7: Simplify assignment of VP POL FREQ bits in vp_enable()
drm/tidss: Add TI custom "background" color property and functionality
drm/tidss: Add TI custom transparency key properties and functionality
drm/tidss: dispc7: Add conversion modes to argb8888_to_argb12121212()
drm/tidss: Add skeleton code for custom crtc properties
drm/tidss: Add missing dispc_ops->vp_setup() call to crtc_atomic_flush()
drm/tidss: dispc7: Statically assign OLDI and DPI bus types to vp
drm/tidss: Add missing static to dispc[67]_plane_feat() functions
drm/tidss: dispc7: Drop entry print in dispc7_init() to dbg level
drm/tidss: dispc7: Cleanup OVR handling
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.14.y
* 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree:
drm/tidss: dispc7: Remove double spaces from scaling code
drm/tidss: dispc7: Simplify assignment of VP POL FREQ bits in vp_enable()
drm/tidss: Add TI custom "background" color property and functionality
drm/tidss: Add TI custom transparency key properties and functionality
drm/tidss: dispc7: Add conversion modes to argb8888_to_argb12121212()
drm/tidss: Add skeleton code for custom crtc properties
drm/tidss: Add missing dispc_ops->vp_setup() call to crtc_atomic_flush()
drm/tidss: dispc7: Statically assign OLDI and DPI bus types to vp
drm/tidss: Add missing static to dispc[67]_plane_feat() functions
drm/tidss: dispc7: Drop entry print in dispc7_init() to dbg level
drm/tidss: dispc7: Cleanup OVR handling
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch '2018.05LTS-tidss' into audio-display-ti-linux-4.14.y
drm/tidss changes for 2018.05
* 2018.05LTS-tidss:
drm/tidss: dispc7: Remove double spaces from scaling code
drm/tidss: dispc7: Simplify assignment of VP POL FREQ bits in vp_enable()
drm/tidss: Add TI custom "background" color property and functionality
drm/tidss: Add TI custom transparency key properties and functionality
drm/tidss: dispc7: Add conversion modes to argb8888_to_argb12121212()
drm/tidss: Add skeleton code for custom crtc properties
drm/tidss: Add missing dispc_ops->vp_setup() call to crtc_atomic_flush()
drm/tidss: dispc7: Statically assign OLDI and DPI bus types to vp
drm/tidss: Add missing static to dispc[67]_plane_feat() functions
drm/tidss: dispc7: Drop entry print in dispc7_init() to dbg level
drm/tidss: dispc7: Cleanup OVR handling
drm/tidss changes for 2018.05
* 2018.05LTS-tidss:
drm/tidss: dispc7: Remove double spaces from scaling code
drm/tidss: dispc7: Simplify assignment of VP POL FREQ bits in vp_enable()
drm/tidss: Add TI custom "background" color property and functionality
drm/tidss: Add TI custom transparency key properties and functionality
drm/tidss: dispc7: Add conversion modes to argb8888_to_argb12121212()
drm/tidss: Add skeleton code for custom crtc properties
drm/tidss: Add missing dispc_ops->vp_setup() call to crtc_atomic_flush()
drm/tidss: dispc7: Statically assign OLDI and DPI bus types to vp
drm/tidss: Add missing static to dispc[67]_plane_feat() functions
drm/tidss: dispc7: Drop entry print in dispc7_init() to dbg level
drm/tidss: dispc7: Cleanup OVR handling
Merge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.14.y
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
arm64: dts: Add k3-am654-evm-tc358876.dtso
arm64: dts: am654-base-board: add mcu_i2c0 pinmux
ti_config_fragments: audio_display: add TC358767
drm/omap: fix missing scaler pixel fmt limitations
drm/omap: DMM: Fix interrupt request/free sequence during probe/remove
drm/omap: fbdev: avoid double initializer entry
drm/omap: fbdev: use 'screen_buffer' field
drm/omap: acx565akm: use __be32 when reading status
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
arm64: dts: Add k3-am654-evm-tc358876.dtso
arm64: dts: am654-base-board: add mcu_i2c0 pinmux
ti_config_fragments: audio_display: add TC358767
drm/omap: fix missing scaler pixel fmt limitations
drm/omap: DMM: Fix interrupt request/free sequence during probe/remove
drm/omap: fbdev: avoid double initializer entry
drm/omap: fbdev: use 'screen_buffer' field
drm/omap: acx565akm: use __be32 when reading status
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
drm/tidss: dispc7: Remove double spaces from scaling code
Remove double spaces from scaling code debug print command lines.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Remove double spaces from scaling code debug print command lines.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/tidss: dispc7: Simplify assignment of VP POL FREQ bits in vp_enable()
Replace if statements that assign DISPC_VP_POL_FREQ bits according to
struct drm_display_mode flags with more compact logical expressions.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Replace if statements that assign DISPC_VP_POL_FREQ bits according to
struct drm_display_mode flags with more compact logical expressions.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/tidss: Add TI custom "background" color property and functionality
Add TI custom "background" color property and functionality for both
DSS6 and DSS7. The property should work the same way as the same
property in omapdrm.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Add TI custom "background" color property and functionality for both
DSS6 and DSS7. The property should work the same way as the same
property in omapdrm.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/tidss: Add TI custom transparency key properties and functionality
Add TI custom transparency key properties and functionality for
DSS7. The properties should work the same way as the same
properties in omapdrm.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Add TI custom transparency key properties and functionality for
DSS7. The properties should work the same way as the same
properties in omapdrm.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/tidss: dispc7: Add conversion modes to argb8888_to_argb12121212()
Add selection for min, max, and replicate conversion modes for 8-bit
to 12-bit color format conversion. With the mode the caller can select
how the four least significant bits are generated.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Add selection for min, max, and replicate conversion modes for 8-bit
to 12-bit color format conversion. With the mode the caller can select
how the four least significant bits are generated.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/tidss: Add skeleton code for custom crtc properties
This patch does not add any working functionality, just callbacks
needed for custom properties.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This patch does not add any working functionality, just callbacks
needed for custom properties.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/tidss: Add missing dispc_ops->vp_setup() call to crtc_atomic_flush()
The tidss->dispc_ops->vp_setup() should always be called in
tidss_crtc_atomic_flush(), even if the current implementation works
well without it. This patch adds the call.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
The tidss->dispc_ops->vp_setup() should always be called in
tidss_crtc_atomic_flush(), even if the current implementation works
well without it. This patch adds the call.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/tidss: dispc7: Statically assign OLDI and DPI bus types to vp
This patch assigns statically OLDI and DPI bus types to video ports in
struct dispc7_features. Actually this was done already before, but
there was still some residual code allowing dynamic VP bus type
configuration. This patch removes all traces of the dynamic VP bus
type code.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This patch assigns statically OLDI and DPI bus types to video ports in
struct dispc7_features. Actually this was done already before, but
there was still some residual code allowing dynamic VP bus type
configuration. This patch removes all traces of the dynamic VP bus
type code.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Merge branch 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree into ti-linux-4.14.y
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.14.y
* 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree:
arm64: dts: Add k3-am654-evm-tc358876.dtso
arm64: dts: am654-base-board: add mcu_i2c0 pinmux
ti_config_fragments: audio_display: add TC358767
drm/omap: fix missing scaler pixel fmt limitations
drm/omap: DMM: Fix interrupt request/free sequence during probe/remove
drm/omap: fbdev: avoid double initializer entry
drm/omap: fbdev: use 'screen_buffer' field
drm/omap: acx565akm: use __be32 when reading status
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.14.y
* 'audio-display-ti-linux-4.14.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree:
arm64: dts: Add k3-am654-evm-tc358876.dtso
arm64: dts: am654-base-board: add mcu_i2c0 pinmux
ti_config_fragments: audio_display: add TC358767
drm/omap: fix missing scaler pixel fmt limitations
drm/omap: DMM: Fix interrupt request/free sequence during probe/remove
drm/omap: fbdev: avoid double initializer entry
drm/omap: fbdev: use 'screen_buffer' field
drm/omap: acx565akm: use __be32 when reading status
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'ti/4.14-pull' of https://bitbucket.itg.ti.com/scm/~a0400822/linux into audio-display-ti-linux-4.14.y
2018.05 dss patches
* 'ti/4.14-pull' of https://bitbucket.itg.ti.com/scm/~a0400822/linux:
arm64: dts: Add k3-am654-evm-tc358876.dtso
arm64: dts: am654-base-board: add mcu_i2c0 pinmux
ti_config_fragments: audio_display: add TC358767
drm/omap: fix missing scaler pixel fmt limitations
drm/omap: fbdev: avoid double initializer entry
drm/omap: fbdev: use 'screen_buffer' field
drm/omap: acx565akm: use __be32 when reading status
2018.05 dss patches
* 'ti/4.14-pull' of https://bitbucket.itg.ti.com/scm/~a0400822/linux:
arm64: dts: Add k3-am654-evm-tc358876.dtso
arm64: dts: am654-base-board: add mcu_i2c0 pinmux
ti_config_fragments: audio_display: add TC358767
drm/omap: fix missing scaler pixel fmt limitations
drm/omap: fbdev: avoid double initializer entry
drm/omap: fbdev: use 'screen_buffer' field
drm/omap: acx565akm: use __be32 when reading status
Merge branch 'peter/ti-linux-4.14.y/topic/display' of https://github.com/omap-audio/linux-audio into audio-display-ti-linux-4.14.y
2018.05 - Fix DMM crash on module removal
* 'peter/ti-linux-4.14.y/topic/display' of https://github.com/omap-audio/linux-audio:
drm/omap: DMM: Fix interrupt request/free sequence during probe/remove
2018.05 - Fix DMM crash on module removal
* 'peter/ti-linux-4.14.y/topic/display' of https://github.com/omap-audio/linux-audio:
drm/omap: DMM: Fix interrupt request/free sequence during probe/remove
arm64: dts: Add k3-am654-evm-tc358876.dtso
Add support for Toshiba TC358876 based expansion board for AM6 EVM. The
expansion board has a DisplayPort 1.1 output with 2 lanes.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Add support for Toshiba TC358876 based expansion board for AM6 EVM. The
expansion board has a DisplayPort 1.1 output with 2 lanes.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
arm64: dts: am654-base-board: add mcu_i2c0 pinmux
Add mcu_i2c0 pinmux.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Acked-by: Sekhar Nori <nsekhar@ti.com>
Add mcu_i2c0 pinmux.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Acked-by: Sekhar Nori <nsekhar@ti.com>
ti_config_fragments: audio_display: add TC358767
Enable TC358767 DisplayPort bridge.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Enable TC358767 DisplayPort bridge.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/omap: fix missing scaler pixel fmt limitations
OMAP2 and OMAP3/AM4 have limitations with the scaler:
- OMAP2 can only scale XRGB8888
- OMAP3/AM4 can only scale XRGB8888, RGB565, YUYV and UYVY
The driver doesn't check these limitations, which leads to sync-lost
floods.
This patch adds a check for the pixel formats when scaling.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
OMAP2 and OMAP3/AM4 have limitations with the scaler:
- OMAP2 can only scale XRGB8888
- OMAP3/AM4 can only scale XRGB8888, RGB565, YUYV and UYVY
The driver doesn't check these limitations, which leads to sync-lost
floods.
This patch adds a check for the pixel formats when scaling.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/omap: DMM: Fix interrupt request/free sequence during probe/remove
The interrupts should be enabled after the driver initialization to avoid
early interrupts while the driver is not yet ready to handle them.
On removal the interrupts must be disabled before other resources are
released, freed up.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The interrupts should be enabled after the driver initialization to avoid
early interrupts while the driver is not yet ready to handle them.
On removal the interrupts must be disabled before other resources are
released, freed up.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
5 years agoMerge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into... ti-rt-linux-4.14.y-next-20181017 ti-rt-linux-4.14.y-next-20181018
Merge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.14.y
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel: (39 commits)
ti_config_fragments: v8_baseport: enable K3 thermal
soc/dmaengine: ti: Move cppi5.h header under dma as ti-cppi5.h
dmaengine: ti: k3-udma: Set the supported metadata modes
dmaengine: Update the descriptor metadata support as per mainline
dmaengine: ti: k3-udma: Do not set device_attach_metadata callback
dmaengine: ti: k3-udma: Remove unnecessary dev_width <-> elsize conversions
soc: ti: cppi5: Alignment fixes
dmaengine: ti: k3-udma: Use the cppi5 helpers for TR descriptor setup
soc: ti: cppi5: Update the TR descriptor init helper
soc: ti: cppi5: Rename cppi5_desc_is_epib_present to cppi5_hdesc_epib_present
soc: ti: cppi5: Collect generic Packet/TR descriptor helpers in one place
dmaengine: ti: k3-udma: Use cppi5_tr_calc_size() from cppi5.h
soc: ti: cppi5: Fix TR packet size calculation
soc: ti: cppi5: Move TR inline functions after the definition
dmaengine: ti: k3-udma: Use the cppi5_desc_hdr_t instead cppi50_tr_req_desc
dmaengine: ti: k3-udma: Fix (again) the TR descriptor size calculation
dmaengine: ti: k3-udma: Rename slave_thread_id to remote_thread_id
soc: ti: Add header file for k3-navss-desc-pool (tree-wide)
soc: ti: cppi5: Change prefixes from knav_udmap_ to cppi5_ (tree-wide)
crypto: sa2ul: Omit error print for DMA channel in case of deferred probe
...
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel: (39 commits)
ti_config_fragments: v8_baseport: enable K3 thermal
soc/dmaengine: ti: Move cppi5.h header under dma as ti-cppi5.h
dmaengine: ti: k3-udma: Set the supported metadata modes
dmaengine: Update the descriptor metadata support as per mainline
dmaengine: ti: k3-udma: Do not set device_attach_metadata callback
dmaengine: ti: k3-udma: Remove unnecessary dev_width <-> elsize conversions
soc: ti: cppi5: Alignment fixes
dmaengine: ti: k3-udma: Use the cppi5 helpers for TR descriptor setup
soc: ti: cppi5: Update the TR descriptor init helper
soc: ti: cppi5: Rename cppi5_desc_is_epib_present to cppi5_hdesc_epib_present
soc: ti: cppi5: Collect generic Packet/TR descriptor helpers in one place
dmaengine: ti: k3-udma: Use cppi5_tr_calc_size() from cppi5.h
soc: ti: cppi5: Fix TR packet size calculation
soc: ti: cppi5: Move TR inline functions after the definition
dmaengine: ti: k3-udma: Use the cppi5_desc_hdr_t instead cppi50_tr_req_desc
dmaengine: ti: k3-udma: Fix (again) the TR descriptor size calculation
dmaengine: ti: k3-udma: Rename slave_thread_id to remote_thread_id
soc: ti: Add header file for k3-navss-desc-pool (tree-wide)
soc: ti: cppi5: Change prefixes from knav_udmap_ to cppi5_ (tree-wide)
crypto: sa2ul: Omit error print for DMA channel in case of deferred probe
...
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'platform-ti-linux-4.14.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree into ti-linux-4.14.y
TI-Feature: platform_base
TI-Tree: git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree.git
TI-Branch: platform-ti-linux-4.14.y
* 'platform-ti-linux-4.14.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree: (39 commits)
ti_config_fragments: v8_baseport: enable K3 thermal
soc/dmaengine: ti: Move cppi5.h header under dma as ti-cppi5.h
dmaengine: ti: k3-udma: Set the supported metadata modes
dmaengine: Update the descriptor metadata support as per mainline
dmaengine: ti: k3-udma: Do not set device_attach_metadata callback
dmaengine: ti: k3-udma: Remove unnecessary dev_width <-> elsize conversions
soc: ti: cppi5: Alignment fixes
dmaengine: ti: k3-udma: Use the cppi5 helpers for TR descriptor setup
soc: ti: cppi5: Update the TR descriptor init helper
soc: ti: cppi5: Rename cppi5_desc_is_epib_present to cppi5_hdesc_epib_present
soc: ti: cppi5: Collect generic Packet/TR descriptor helpers in one place
dmaengine: ti: k3-udma: Use cppi5_tr_calc_size() from cppi5.h
soc: ti: cppi5: Fix TR packet size calculation
soc: ti: cppi5: Move TR inline functions after the definition
dmaengine: ti: k3-udma: Use the cppi5_desc_hdr_t instead cppi50_tr_req_desc
dmaengine: ti: k3-udma: Fix (again) the TR descriptor size calculation
dmaengine: ti: k3-udma: Rename slave_thread_id to remote_thread_id
soc: ti: Add header file for k3-navss-desc-pool (tree-wide)
soc: ti: cppi5: Change prefixes from knav_udmap_ to cppi5_ (tree-wide)
crypto: sa2ul: Omit error print for DMA channel in case of deferred probe
...
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: platform_base
TI-Tree: git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree.git
TI-Branch: platform-ti-linux-4.14.y
* 'platform-ti-linux-4.14.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree: (39 commits)
ti_config_fragments: v8_baseport: enable K3 thermal
soc/dmaengine: ti: Move cppi5.h header under dma as ti-cppi5.h
dmaengine: ti: k3-udma: Set the supported metadata modes
dmaengine: Update the descriptor metadata support as per mainline
dmaengine: ti: k3-udma: Do not set device_attach_metadata callback
dmaengine: ti: k3-udma: Remove unnecessary dev_width <-> elsize conversions
soc: ti: cppi5: Alignment fixes
dmaengine: ti: k3-udma: Use the cppi5 helpers for TR descriptor setup
soc: ti: cppi5: Update the TR descriptor init helper
soc: ti: cppi5: Rename cppi5_desc_is_epib_present to cppi5_hdesc_epib_present
soc: ti: cppi5: Collect generic Packet/TR descriptor helpers in one place
dmaengine: ti: k3-udma: Use cppi5_tr_calc_size() from cppi5.h
soc: ti: cppi5: Fix TR packet size calculation
soc: ti: cppi5: Move TR inline functions after the definition
dmaengine: ti: k3-udma: Use the cppi5_desc_hdr_t instead cppi50_tr_req_desc
dmaengine: ti: k3-udma: Fix (again) the TR descriptor size calculation
dmaengine: ti: k3-udma: Rename slave_thread_id to remote_thread_id
soc: ti: Add header file for k3-navss-desc-pool (tree-wide)
soc: ti: cppi5: Change prefixes from knav_udmap_ to cppi5_ (tree-wide)
crypto: sa2ul: Omit error print for DMA channel in case of deferred probe
...
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
drm/tidss: Add missing static to dispc[67]_plane_feat() functions
The implementation of dispc6_plane_feat() and dispc7_plane_feat()
without declaration trigger sparse warnings. This commit fixes them.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
The implementation of dispc6_plane_feat() and dispc7_plane_feat()
without declaration trigger sparse warnings. This commit fixes them.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/tidss: dispc7: Drop entry print in dispc7_init() to dbg level
Drop entry print in dispc7_init() from info to dbg level.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Drop entry print in dispc7_init() from info to dbg level.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/tidss: dispc7: Cleanup OVR handling
Implement dispc7_ovr_set_plane() and dispc7_ovr_enable_plane() and use
them in dispc7_plane_setup() and dispc7_plane_enable() instead of
having the ovr-code inline.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Implement dispc7_ovr_set_plane() and dispc7_ovr_enable_plane() and use
them in dispc7_plane_setup() and dispc7_plane_enable() instead of
having the ovr-code inline.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
ti_config_fragments: v8_baseport: enable K3 thermal
K3 thermal driver is disabled by default, so enable it.
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Acked-by: Keerthy <j-keerthy@ti.com>
Tested-by: Keerthy <j-keerthy@ti.com>
K3 thermal driver is disabled by default, so enable it.
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Acked-by: Keerthy <j-keerthy@ti.com>
Tested-by: Keerthy <j-keerthy@ti.com>
Merge branch 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.14.y
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
net: ti: icssg_prueth: fix command done check and cancel command
net: ti: icssg_prueth: clear SMEM portion for the slice
net: ti: icssg_prueth: Add ethtool support
net: ti: icssg_prueth: Follow proper shutdown sequence
net: ti: icssg_prueth: Support Promiscuous mode properly
net: ti: icssg: Add classifier helpers
net: ti: icssg_prueth: Increase port buffer in MSMC
arm64: dts: ti: Add mii-g-rt to prueth nodes
dt-bindings: net: ti,icssg-prueth: Add mii-g-rt property
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.14.y
* 'ti-linux-4.14.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
net: ti: icssg_prueth: fix command done check and cancel command
net: ti: icssg_prueth: clear SMEM portion for the slice
net: ti: icssg_prueth: Add ethtool support
net: ti: icssg_prueth: Follow proper shutdown sequence
net: ti: icssg_prueth: Support Promiscuous mode properly
net: ti: icssg: Add classifier helpers
net: ti: icssg_prueth: Increase port buffer in MSMC
arm64: dts: ti: Add mii-g-rt to prueth nodes
dt-bindings: net: ti,icssg-prueth: Add mii-g-rt property
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merge branch 'connectivity-ti-linux-4.14.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel into ti-linux-4.14.y
TI-Feature: connectivity
TI-Tree: git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel.git
TI-Branch: connectivity-ti-linux-4.14.y
* 'connectivity-ti-linux-4.14.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel:
net: ti: icssg_prueth: fix command done check and cancel command
net: ti: icssg_prueth: clear SMEM portion for the slice
net: ti: icssg_prueth: Add ethtool support
net: ti: icssg_prueth: Follow proper shutdown sequence
net: ti: icssg_prueth: Support Promiscuous mode properly
net: ti: icssg: Add classifier helpers
net: ti: icssg_prueth: Increase port buffer in MSMC
arm64: dts: ti: Add mii-g-rt to prueth nodes
dt-bindings: net: ti,icssg-prueth: Add mii-g-rt property
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: connectivity
TI-Tree: git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel.git
TI-Branch: connectivity-ti-linux-4.14.y
* 'connectivity-ti-linux-4.14.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel:
net: ti: icssg_prueth: fix command done check and cancel command
net: ti: icssg_prueth: clear SMEM portion for the slice
net: ti: icssg_prueth: Add ethtool support
net: ti: icssg_prueth: Follow proper shutdown sequence
net: ti: icssg_prueth: Support Promiscuous mode properly
net: ti: icssg: Add classifier helpers
net: ti: icssg_prueth: Increase port buffer in MSMC
arm64: dts: ti: Add mii-g-rt to prueth nodes
dt-bindings: net: ti,icssg-prueth: Add mii-g-rt property
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
net: ethernet: ti: am65-cpsw-nuss: use round robin mode for cppi tx queues
By default Linux network stack does not assume the multiqueue network
device works in fixed priority mode. As result, it will try to dispatch
packets between HW queues fairly - basing on skb hash (and XPS map if
enabled). So, by default, MCU CPSW TX statistic looks like below:
tx_pri0: 14
tx_pri1: 2
tx_pri2: 0
tx_pri3: 12
tx_pri4: 12
tx_pri5: 0
tx_pri6: 306127
tx_pri7: 0
From another side, MCU CPSW HW processes TX queues in fixed priority mode
(7 - high prio) and this is does not corresponds to what Linux network
stack expects as some packets might be delayed.
To fix this switch MCU CPSW CPPI interface to Round Robin mode
(CPPI_P0_Pri_Ctl.p0_rx_ptype) by default, and implement the same in driver
for TX completion queues processing. Also, introduce netdev private flag
"p0-rx-ptype-rrobin", so switch between Round Robin and Fixed priority
modes:
# ethtool --show-priv-flags eth0
Private flags for eth0:
p0-rx-ptype-rrobin: on
# ethtool --set-priv-flags eth0 p0-rx-ptype-rrobin off
Fixed priority can be used with multiq, prio and mqprio qdisc's.
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
By default Linux network stack does not assume the multiqueue network
device works in fixed priority mode. As result, it will try to dispatch
packets between HW queues fairly - basing on skb hash (and XPS map if
enabled). So, by default, MCU CPSW TX statistic looks like below:
tx_pri0: 14
tx_pri1: 2
tx_pri2: 0
tx_pri3: 12
tx_pri4: 12
tx_pri5: 0
tx_pri6: 306127
tx_pri7: 0
From another side, MCU CPSW HW processes TX queues in fixed priority mode
(7 - high prio) and this is does not corresponds to what Linux network
stack expects as some packets might be delayed.
To fix this switch MCU CPSW CPPI interface to Round Robin mode
(CPPI_P0_Pri_Ctl.p0_rx_ptype) by default, and implement the same in driver
for TX completion queues processing. Also, introduce netdev private flag
"p0-rx-ptype-rrobin", so switch between Round Robin and Fixed priority
modes:
# ethtool --show-priv-flags eth0
Private flags for eth0:
p0-rx-ptype-rrobin: on
# ethtool --set-priv-flags eth0 p0-rx-ptype-rrobin off
Fixed priority can be used with multiq, prio and mqprio qdisc's.
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
soc/dmaengine: ti: Move cppi5.h header under dma as ti-cppi5.h
The CPPI5 contains the defines, types and helpers to handle DMA descriptors
used by UDMA, it is better placed under dma than soc.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The CPPI5 contains the defines, types and helpers to handle DMA descriptors
used by UDMA, it is better placed under dma than soc.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Set the supported metadata modes
The driver supports both DESC_METADATA_CLIENT and DESC_METADATA_EMBEDDED
mode of accessing to metadata.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The driver supports both DESC_METADATA_CLIENT and DESC_METADATA_EMBEDDED
mode of accessing to metadata.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: Update the descriptor metadata support as per mainline
To be aligned with what we have ended up in upstream to help client driver
upstreaming.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
To be aligned with what we have ended up in upstream to help client driver
upstreaming.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Do not set device_attach_metadata callback
It is deprecated and going to be removed
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
It is deprecated and going to be removed
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Remove unnecessary dev_width <-> elsize conversions
There is no point of converting dma_slave_buswidth to elsize, then when
needed convert elsize to number of bytes.
The dma_slave_buswidth is telling the number of bytes.
Furthermore for Static TR we can save code to do the dma_slave_buswidth to
elsize conversion when configuring the static_tr.
Lastly we can remove the whole elsize related defines and struct.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
There is no point of converting dma_slave_buswidth to elsize, then when
needed convert elsize to number of bytes.
The dma_slave_buswidth is telling the number of bytes.
Furthermore for Static TR we can save code to do the dma_slave_buswidth to
elsize conversion when configuring the static_tr.
Lastly we can remove the whole elsize related defines and struct.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
soc: ti: cppi5: Alignment fixes
To get uniform look for the header file.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
To get uniform look for the header file.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Use the cppi5 helpers for TR descriptor setup
Remove the custom code for setting up the TR descriptor and use the cppi5
header's helpers to do the same.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Remove the custom code for setting up the TR descriptor and use the cppi5
header's helpers to do the same.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
soc: ti: cppi5: Update the TR descriptor init helper
The implementation was obsolete.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The implementation was obsolete.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
soc: ti: cppi5: Rename cppi5_desc_is_epib_present to cppi5_hdesc_epib_present
EPIB is only supported in packet mode.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
EPIB is only supported in packet mode.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
soc: ti: cppi5: Collect generic Packet/TR descriptor helpers in one place
Move the helpers applicable for bot packet and TR descriptors in one place
and rename them if needed - causes tree-wide changes.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Move the helpers applicable for bot packet and TR descriptors in one place
and rename them if needed - causes tree-wide changes.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Use cppi5_tr_calc_size() from cppi5.h
No need to duplicate the TR packet size calculation.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
No need to duplicate the TR packet size calculation.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
soc: ti: cppi5: Fix TR packet size calculation
The correct way to calculate size needed for a given TR descriptor:
1 x tr_size : the first 16 bytes is used by the packet info block +
tr_count x tr_size : Transfer Request Records +
tr_count x sizeof(struct cppi5_tr_resp) : Transfer Response Records
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The correct way to calculate size needed for a given TR descriptor:
1 x tr_size : the first 16 bytes is used by the packet info block +
tr_count x tr_size : Transfer Request Records +
tr_count x sizeof(struct cppi5_tr_resp) : Transfer Response Records
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
soc: ti: cppi5: Move TR inline functions after the definition
We should have the definitions (defines, structures) before the helper
functions.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
We should have the definitions (defines, structures) before the helper
functions.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Use the cppi5_desc_hdr_t instead cppi50_tr_req_desc
Use the cppi5_desc_hdr_t from the cppi5.h for the TR packet header.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Use the cppi5_desc_hdr_t from the cppi5.h for the TR packet header.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Fix (again) the TR descriptor size calculation
We must not count the size of the packet info block (packet header) as it
is actually covered by the extra tr we count with the number of TRs.
Add a comment to make sure that I will not change this again.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
We must not count the size of the packet info block (packet header) as it
is actually covered by the extra tr we count with the number of TRs.
Add a comment to make sure that I will not change this again.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Rename slave_thread_id to remote_thread_id
It is the thread id of the remote end of the PSI-L link from the point of
UDMA.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
It is the thread id of the remote end of the PSI-L link from the point of
UDMA.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
soc: ti: Add header file for k3-navss-desc-pool (tree-wide)
Remove the descriptor pool functions from the cppi5 header and move them
to separate header file as they are not strictly related.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Remove the descriptor pool functions from the cppi5 header and move them
to separate header file as they are not strictly related.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
soc: ti: cppi5: Change prefixes from knav_udmap_ to cppi5_ (tree-wide)
To be aligned with the file name and the content (we are describing CPPI5
descriptors).
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
To be aligned with the file name and the content (we are describing CPPI5
descriptors).
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
crypto: sa2ul: Omit error print for DMA channel in case of deferred probe
Do not print error message if the DMA channel request fails becase of
deferred probing.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Do not print error message if the DMA channel request fails becase of
deferred probing.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
arm64: dts: k3-am6: Remove the ghost psil node
The psil node is no longer needed. The driver has been removed and the
thread management should be done via the DMA driver.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The psil node is no longer needed. The driver has been removed and the
thread management should be done via the DMA driver.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
soc: ti: k3: navss: Remove the psil driver
It is no longer needed.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
It is no longer needed.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
ti_config_fragments: v8_baseport: Drop CONFIG_TI_K3_NAVSS_PSILCFG
The driver is no longer needed to be compiled.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The driver is no longer needed to be compiled.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: Kconfig: Drop TI_K3_NAVSS_PSILCFG for k3-udma
The PSIL driver is no longer needed by the k3-udma driver.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The PSIL driver is no longer needed by the k3-udma driver.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: glue: Switch to use the local PSI-L thread API
Stop using the psil driver for thread pairing/unpairing.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Stop using the psil driver for thread pairing/unpairing.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Handle the PSI-L pairing/unpairing locally
Use directly the tisci API to handle the pairing/unpairing instead of the
psil driver's wrappers for the messages.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Use directly the tisci API to handle the pairing/unpairing instead of the
psil driver's wrappers for the messages.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
arm64: dts: k3-am6: Add tisci-dev-id to NAVSS nodes
The dev-id 118 and 119 is referred in the sysfw documentation as NAVSS
device id and it is used by the PSI-L pairing API.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The dev-id 118 and 119 is referred in the sysfw documentation as NAVSS
device id and it is used by the PSI-L pairing API.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dt-bindings: dma: ti: k3-udma: Update for PSI-L thread management
Remove the ti,psi-proxy from the documentation and update it to clarify
the thread handling.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Remove the ti,psi-proxy from the documentation and update it to clarify
the thread handling.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Mark the TR descriptor as 64 byte aligned
The descriptor should be aligned to 64 bytes in memory.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The descriptor should be aligned to 64 bytes in memory.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Use dma_pool for DMA_MEM_TO_MEM channels
While the MEM_TO_MEM channel is used in TR mode we know that we will have
either one or two TRs per transfer.
Create dma_pool providing TR descriptor with two TRs size of chunks.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
While the MEM_TO_MEM channel is used in TR mode we know that we will have
either one or two TRs per transfer.
Create dma_pool providing TR descriptor with two TRs size of chunks.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Use dma_pool for packet mode channel descriptors
If the channel is configured in packet mode the cppi5 descriptor sizes are
fixed (HPD, HBD). Instead of the expensive dma_zalloc_coherent use dma_pool
for the cppi5 descriptors.
The dma_pool will allocate memory on demand providing the channel enough
space to work without the need to allocate memory over time, which saves
time in prepare time.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
If the channel is configured in packet mode the cppi5 descriptor sizes are
fixed (HPD, HBD). Instead of the expensive dma_zalloc_coherent use dma_pool
for the cppi5 descriptors.
The dma_pool will allocate memory on demand providing the channel enough
space to work without the need to allocate memory over time, which saves
time in prepare time.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Simplify push to ring parameters
The udma_desc is redundant parameter, it can be fetch internally.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The udma_desc is redundant parameter, it can be fetch internally.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Pre-calculate the descriptor size for packet mode
The size of the CPPI5 descriptor is constant in packet mode and can be
calculated once when the channel is requested.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The size of the CPPI5 descriptor is constant in packet mode and can be
calculated once when the channel is requested.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Do not count the terminated transfer's length
When a descriptor is terminated we should not add the whole size of the
terminated descriptor to our counter and after termination the counters
are going to be reset anyways.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
When a descriptor is terminated we should not add the whole size of the
terminated descriptor to our counter and after termination the counters
are going to be reset anyways.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Do a complete reset of the channel to recover
PSI-L unpair and pair will toggle the ENABLE of the UDMA and peer, but after
this the channel needs to be reconfigured.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
PSI-L unpair and pair will toggle the ENABLE of the UDMA and peer, but after
this the channel needs to be reconfigured.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Replace magic numbers with defines
We had lots of magic bits open coded which is hard to read and understand.
Replace them with defines and document them when it make sense.
At the same time remove unnecessary TR flag settings to not confuse the
reader of the code.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
We had lots of magic bits open coded which is hard to read and understand.
Replace them with defines and document them when it make sense.
At the same time remove unnecessary TR flag settings to not confuse the
reader of the code.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Correct the packet descriptor alignment
According to the documentation the descriptors must be 64 byte aligned.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
According to the documentation the descriptors must be 64 byte aligned.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Do not allow slave transfers bigger than 4M-1
The packet size is limited to 4M-1 and instead of just printing an error
message we should fail the prepare to avoid mis-configuration.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The packet size is limited to 4M-1 and instead of just printing an error
message we should fail the prepare to avoid mis-configuration.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Remove unused struct definitions and defines
The driver uses the cppi5 definition for packet mode from the cppi5.h
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The driver uses the cppi5 definition for packet mode from the cppi5.h
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
net: ti: icssg_prueth: fix command done check and cancel command
We need to check if firmware read the command by checking the
BUSY bit, before checking if the command is done (i.e. DONE bit).
Use the common icss_hs_send_cmd() helper to issue CANCEL command
so it goes through the proper done check.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
We need to check if firmware read the command by checking the
BUSY bit, before checking if the command is done (i.e. DONE bit).
Use the common icss_hs_send_cmd() helper to issue CANCEL command
so it goes through the proper done check.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
net: ti: icssg_prueth: clear SMEM portion for the slice
SMEM area is used for handshake between Firmware and OS.
Clear the area so that we start with a clean slate on
every boot.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
SMEM area is used for handshake between Firmware and OS.
Clear the area so that we start with a clean slate on
every boot.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
net: ti: icssg_prueth: Add ethtool support
Add support for hardware stats over ethtool.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Add support for hardware stats over ethtool.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
net: ti: icssg_prueth: Follow proper shutdown sequence
We need to disable all RX traffic before issuing CANCEL
command and finally issue RX teardown.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
We need to disable all RX traffic before issuing CANCEL
command and finally issue RX teardown.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
net: ti: icssg_prueth: Support Promiscuous mode properly
Setup a default classifier setup to accept
broadcast and own-address packets.
Support promiscuous mode by configuring filter 1 (FT1-0)
to accept all unicast, broadcast and multicast packets.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Setup a default classifier setup to accept
broadcast and own-address packets.
Support promiscuous mode by configuring filter 1 (FT1-0)
to accept all unicast, broadcast and multicast packets.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>