Merged TI feature rpmsg_next into ti-linux-4.19.y-next
TI-Feature: rpmsg_next
TI-Tree: git://git.ti.com/rpmsg/rpmsg.git
TI-Branch: rpmsg-ti-linux-4.19.y-next
* 'rpmsg-ti-linux-4.19.y-next' of git://git.ti.com/rpmsg/rpmsg:
soc: ti: pruss: update pruss_get() to retrieve a PRUSS id
soc: ti: pruss: store the pruss instance id
remoteproc/pru: Use an enum for PRU core type
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: rpmsg_next
TI-Tree: git://git.ti.com/rpmsg/rpmsg.git
TI-Branch: rpmsg-ti-linux-4.19.y-next
* 'rpmsg-ti-linux-4.19.y-next' of git://git.ti.com/rpmsg/rpmsg:
soc: ti: pruss: update pruss_get() to retrieve a PRUSS id
soc: ti: pruss: store the pruss instance id
remoteproc/pru: Use an enum for PRU core type
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature connectivity_next into ti-linux-4.19.y-next
TI-Feature: connectivity_next
TI-Tree: ssh://git@bitbucket.itg.ti.com/~a0875516/ti-linux-kernel.git
TI-Branch: connectivity-next
* 'connectivity-next' of ssh://bitbucket.itg.ti.com/~a0875516/ti-linux-kernel:
net: ethernet: ti: introduce j721e virt cpsw-nuss mac driver
dt-bindings: net: Add binding for ti,j721e-cpsw-virt-mac device
rpmsg-kdrv: add support for remote eth device
dmaengine: ti: k3-navss-udma: add support for remote/virt udma channels
dmaengine: ti: k3-navss-udma: drop need_tisci_free
dmaengine: ti: k3-navss-udma: fix k3_nav_udmax_release_rx_flow()
dmaengine: ti: k3-navss-udma: fix gp rflow freeing in k3_nav_udmax_release_rx_chn()
dmaengine: ti: k3-navss-udma: fix access to udmax in k3_nav_udmax_release_rx_chn()
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
TI-Feature: connectivity_next
TI-Tree: ssh://git@bitbucket.itg.ti.com/~a0875516/ti-linux-kernel.git
TI-Branch: connectivity-next
* 'connectivity-next' of ssh://bitbucket.itg.ti.com/~a0875516/ti-linux-kernel:
net: ethernet: ti: introduce j721e virt cpsw-nuss mac driver
dt-bindings: net: Add binding for ti,j721e-cpsw-virt-mac device
rpmsg-kdrv: add support for remote eth device
dmaengine: ti: k3-navss-udma: add support for remote/virt udma channels
dmaengine: ti: k3-navss-udma: drop need_tisci_free
dmaengine: ti: k3-navss-udma: fix k3_nav_udmax_release_rx_flow()
dmaengine: ti: k3-navss-udma: fix gp rflow freeing in k3_nav_udmax_release_rx_chn()
dmaengine: ti: k3-navss-udma: fix access to udmax in k3_nav_udmax_release_rx_chn()
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
soc: ti: pruss: update pruss_get() to retrieve a PRUSS id
Update the pruss_get() function to take in an additional integer
pointer argument in which the PRUSS instance id is filled in and
provided back to the callers. This allows the drivers to add some
instance-specific logic/customization in their code, as the PRUSS
handle is not useful to build this logic.
The already existing usage within both the regular PRU Ethernet
and the ICSSG PRU Ethernet drivers have also been updated accordingly,
and this will cater to its need for supporting switching between
different Ethernet protocols dynamically per instance. The invocation
within the PRU Soft UART driver has also been updated, with this
driver not needing the PRUSS instance id at present.
Signed-off-by: Suman Anna <s-anna@ti.com>
Update the pruss_get() function to take in an additional integer
pointer argument in which the PRUSS instance id is filled in and
provided back to the callers. This allows the drivers to add some
instance-specific logic/customization in their code, as the PRUSS
handle is not useful to build this logic.
The already existing usage within both the regular PRU Ethernet
and the ICSSG PRU Ethernet drivers have also been updated accordingly,
and this will cater to its need for supporting switching between
different Ethernet protocols dynamically per instance. The invocation
within the PRU Soft UART driver has also been updated, with this
driver not needing the PRUSS instance id at present.
Signed-off-by: Suman Anna <s-anna@ti.com>
soc: ti: pruss: store the pruss instance id
Add logic to the PRUSS platform driver to store the instance id
of a PRUSS instance. This is being added to enable support for
the PRU Ethernet driver to be able to switch between different
Ethernet protocols dynamically per instance.
The values for instance ids are not always zero-indexed on all
SoCs, they were chosen to match the numbering used in the TRMs.
The instance ids are computed assigned using the PRUSS memory
region base address lookup table. The base address matching
logic is not robust for long-term for newer SoCs, but is okay
for currently supported SoCs as all the addresses are unique.
This is done this way to retain the current usage of minimal
static data and to avoid having to introduce the instance
specific static data just for the instance id data.
Signed-off-by: Suman Anna <s-anna@ti.com>
Add logic to the PRUSS platform driver to store the instance id
of a PRUSS instance. This is being added to enable support for
the PRU Ethernet driver to be able to switch between different
Ethernet protocols dynamically per instance.
The values for instance ids are not always zero-indexed on all
SoCs, they were chosen to match the numbering used in the TRMs.
The instance ids are computed assigned using the PRUSS memory
region base address lookup table. The base address matching
logic is not robust for long-term for newer SoCs, but is okay
for currently supported SoCs as all the addresses are unique.
This is done this way to retain the current usage of minimal
static data and to avoid having to introduce the instance
specific static data just for the instance id data.
Signed-off-by: Suman Anna <s-anna@ti.com>
remoteproc/pru: Use an enum for PRU core type
The K3 SoCs have different types of PRU cores and the is_rtu and
is_tx_pru flags are used to identify these at present. Replace
these with a single pru_type enum.
Signed-off-by: Suman Anna <s-anna@ti.com>
The K3 SoCs have different types of PRU cores and the is_rtu and
is_tx_pru flags are used to identify these at present. Replace
these with a single pru_type enum.
Signed-off-by: Suman Anna <s-anna@ti.com>
Merged TI feature rpmsg into ti-linux-4.19.y
* 'rpmsg-ti-linux-4.19.y-intg' of git://git.ti.com/rpmsg/rpmsg:
arm64: dts: ti: k3-j721e-main: Add ICSSG MDIO nodes
arm64: dts: ti: k3-j721e-main: Add PRU system events for virtio
arm64: dts: ti: k3-j721e-main: Add ICSSG nodes
remoteproc/pru: Add support for various PRU cores on K3 J721E SoCs
dt-bindings: remoteproc: pru: Update bindings for K3 J721E SoCs
irqchip/irq-pruss-intc: Add support for ICSSG INTC on K3 J721E SoCs
dt-bindings: irqchip: pruss-intc: Update bindings for K3 J721E SoCs
soc: ti: pruss: Enable support for ICSSG subsystems on K3 J721E SoCs
dt-bindings: soc: ti: pruss: Update bindings for K3 J721E SoCs
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
* 'rpmsg-ti-linux-4.19.y-intg' of git://git.ti.com/rpmsg/rpmsg:
arm64: dts: ti: k3-j721e-main: Add ICSSG MDIO nodes
arm64: dts: ti: k3-j721e-main: Add PRU system events for virtio
arm64: dts: ti: k3-j721e-main: Add ICSSG nodes
remoteproc/pru: Add support for various PRU cores on K3 J721E SoCs
dt-bindings: remoteproc: pru: Update bindings for K3 J721E SoCs
irqchip/irq-pruss-intc: Add support for ICSSG INTC on K3 J721E SoCs
dt-bindings: irqchip: pruss-intc: Update bindings for K3 J721E SoCs
soc: ti: pruss: Enable support for ICSSG subsystems on K3 J721E SoCs
dt-bindings: soc: ti: pruss: Update bindings for K3 J721E SoCs
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
arm64: dts: ti: k3-j721e-main: Add ICSSG MDIO nodes
The ICSSGs on K3 J721E SoCs contain an MDIO controller that can
be used to control external PHYs associated with the Industrial
Ethernet peripherals within each ICSSG instance. The MDIO module
used within the ICSSG is similar to the MDIO Controller used
in TI Davinci SoCs. A bus frequency of 1 MHz is chosen for the
MDIO operations.
The nodes are added to the common k3-j721e-main.dtsi file and are
disabled. These need to be enabled in the respective board files
supporting J721E SoCs and where the ethernet is pinned out and
connected properly.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
The ICSSGs on K3 J721E SoCs contain an MDIO controller that can
be used to control external PHYs associated with the Industrial
Ethernet peripherals within each ICSSG instance. The MDIO module
used within the ICSSG is similar to the MDIO Controller used
in TI Davinci SoCs. A bus frequency of 1 MHz is chosen for the
MDIO operations.
The nodes are added to the common k3-j721e-main.dtsi file and are
disabled. These need to be enabled in the respective board files
supporting J721E SoCs and where the ethernet is pinned out and
connected properly.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
arm64: dts: ti: k3-j721e-main: Add PRU system events for virtio
Two PRU system events "vring" and "kick" have been added to each
PRU and RTU node in each of the ICSSG0 and ICSSG1 remote processor
subsystems to enable the virtio/rpmsg communication between MPU and
that PRU/RTU core. No events have been added to the Tx_PRU cores
at present. The additions are done in the base k3-j721e-main.dtsi,
and so are inherited by all the K3 J721E boards.
The PRU system events is the preferred approach over using TI
mailboxes, as it eliminates an external peripheral access from
the PRU/RTU-side, and keeps the interrupt generation internal to
the ICSSG. The difference from MPU would be minimal in using one
versus the other.
Mailboxes can still be used if desired, but currently there is
no support on firmware-side for K3 SoCs to use mailboxes. Either
approach would require that an appropriate firmware image is
loaded/booted on the PRU.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
Two PRU system events "vring" and "kick" have been added to each
PRU and RTU node in each of the ICSSG0 and ICSSG1 remote processor
subsystems to enable the virtio/rpmsg communication between MPU and
that PRU/RTU core. No events have been added to the Tx_PRU cores
at present. The additions are done in the base k3-j721e-main.dtsi,
and so are inherited by all the K3 J721E boards.
The PRU system events is the preferred approach over using TI
mailboxes, as it eliminates an external peripheral access from
the PRU/RTU-side, and keeps the interrupt generation internal to
the ICSSG. The difference from MPU would be minimal in using one
versus the other.
Mailboxes can still be used if desired, but currently there is
no support on firmware-side for K3 SoCs to use mailboxes. Either
approach would require that an appropriate firmware image is
loaded/booted on the PRU.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
arm64: dts: ti: k3-j721e-main: Add ICSSG nodes
Add the DT nodes for the ICSSG0 and ICSSG1 processor subsystems that are
present on the K3 J721E SoCs. The two ICSSGs are identical to each other
for the most part, with the ICSSG1 supporting slightly enhanced features
for supporting SGMII PRU Ethernet. Each ICSSG instance is represented by
a pruss-soc-bus node and a child PRUSS subsystem node. These nodes are
enabled by default.
The ICSSGs on K3 J721E SoCs are revised versions of the ICSSG on the
AM65x SoCs. The PRU IRAMs are slightly smaller, and the IP includes
two new auxiliary PRU cores called Tx_PRUs. The Tx_PRUs have 6 KB of
IRAMs and leverage the same host interrupts as the regular PRU cores.
The ICSSG subsystem node contains the entire address space and the
various interrupts generated towards the main MPU. The various
sub-modules of the ICSSG are represented as individual child nodes (so
platform devices themselves) of the PRUSS subsystem node. These include
the two PRU cores, two RTU cores, two Tx_PRU cores and the interrupt
controller. The two Industrial Ethernet Peripheral (IEP) instances, the
Real Time Media Independent Interface controller (MII_RT), the Gigabit
capable MII_G_RT and the CFG sub-module are represented as syscon nodes.
All the Data RAMs are represented within a child node of its own named
'memories' without any compatible. The CFG sub-module provides two
internal clock muxes, and these are represented by the coreclk_mux and
iepclk_mux nodes.
The DT nodes use all standard properties. The regs property in the
PRU/RTU nodes define the addresses for the Instruction RAM, the Debug
and Control sub-modules for that PRU core. The firmware for each
PRU/RTU/Tx_PRU core is defined through a 'firmware-name' property.
The default clock sources for the IEP clocks are also defined using
the assigned-clock-parents property.
The default names for the firmware images for each PRU, RTU and Tx_PRU
cores are defined as follows (these can be adjusted either in derivative
board dts files or through sysfs at runtime if required):
ICSSG0 PRU0 Core: j7-pru0_0-fw ; ICSSG0 RTU0 Core: j7-rtu0_0-fw
ICSSG0 PRU1 Core: j7-pru0_1-fw ; ICSSG0 RTU1 Core: j7-rtu0_1-fw
ICSSG1 PRU0 Core: j7-pru1_0-fw ; ICSSG1 RTU0 Core: j7-rtu1_0-fw
ICSSG1 PRU1 Core: j7-pru1_1-fw ; ICSSG1 RTU1 Core: j7-rtu1_1-fw
ICSSG0 Tx_PRU0 Core: j7-txpru0_0-fw ; ICSSG0 Tx_PRU1 Core: j7-txpru0_1-fw
ICSSG1 Tx_PRU0 Core: j7-txpru1_0-fw ; ICSSG1 Tx_PRU1 Core: j7-txpru1_1-fw
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
Add the DT nodes for the ICSSG0 and ICSSG1 processor subsystems that are
present on the K3 J721E SoCs. The two ICSSGs are identical to each other
for the most part, with the ICSSG1 supporting slightly enhanced features
for supporting SGMII PRU Ethernet. Each ICSSG instance is represented by
a pruss-soc-bus node and a child PRUSS subsystem node. These nodes are
enabled by default.
The ICSSGs on K3 J721E SoCs are revised versions of the ICSSG on the
AM65x SoCs. The PRU IRAMs are slightly smaller, and the IP includes
two new auxiliary PRU cores called Tx_PRUs. The Tx_PRUs have 6 KB of
IRAMs and leverage the same host interrupts as the regular PRU cores.
The ICSSG subsystem node contains the entire address space and the
various interrupts generated towards the main MPU. The various
sub-modules of the ICSSG are represented as individual child nodes (so
platform devices themselves) of the PRUSS subsystem node. These include
the two PRU cores, two RTU cores, two Tx_PRU cores and the interrupt
controller. The two Industrial Ethernet Peripheral (IEP) instances, the
Real Time Media Independent Interface controller (MII_RT), the Gigabit
capable MII_G_RT and the CFG sub-module are represented as syscon nodes.
All the Data RAMs are represented within a child node of its own named
'memories' without any compatible. The CFG sub-module provides two
internal clock muxes, and these are represented by the coreclk_mux and
iepclk_mux nodes.
The DT nodes use all standard properties. The regs property in the
PRU/RTU nodes define the addresses for the Instruction RAM, the Debug
and Control sub-modules for that PRU core. The firmware for each
PRU/RTU/Tx_PRU core is defined through a 'firmware-name' property.
The default clock sources for the IEP clocks are also defined using
the assigned-clock-parents property.
The default names for the firmware images for each PRU, RTU and Tx_PRU
cores are defined as follows (these can be adjusted either in derivative
board dts files or through sysfs at runtime if required):
ICSSG0 PRU0 Core: j7-pru0_0-fw ; ICSSG0 RTU0 Core: j7-rtu0_0-fw
ICSSG0 PRU1 Core: j7-pru0_1-fw ; ICSSG0 RTU1 Core: j7-rtu0_1-fw
ICSSG1 PRU0 Core: j7-pru1_0-fw ; ICSSG1 RTU0 Core: j7-rtu1_0-fw
ICSSG1 PRU1 Core: j7-pru1_1-fw ; ICSSG1 RTU1 Core: j7-rtu1_1-fw
ICSSG0 Tx_PRU0 Core: j7-txpru0_0-fw ; ICSSG0 Tx_PRU1 Core: j7-txpru0_1-fw
ICSSG1 Tx_PRU0 Core: j7-txpru1_0-fw ; ICSSG1 Tx_PRU1 Core: j7-txpru1_1-fw
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
remoteproc/pru: Add support for various PRU cores on K3 J721E SoCs
The K3 J721E family of SoCs have a revised version of the AM65x ICSSG IP
and contains two instances of this newer ICSSG IP. Each ICSSG processor
subsystem contains 2 primary PRU cores, 2 auxiliary PRU cores called RTUs,
and 2 new auxiliary cores called Transmit PRUs (Tx_PRUs).
Each RTU and Tx_PRU cores have their own dedicated IRAM (smaller than
a PRU), Control and debug feature sets, but is different in terms of
sub-modules integrated around it and does not have the full capabilities
associated with a PRU core. The RTU core is typically used to aid a
PRU core in accelerating data transfers, while the Tx_PRU cores is
normally used to control the TX L2 FIFO if enabled in Ethernet
applications. Both can also be used to run independent applications.
The RTU and Tx_PRU cores though share the same Data RAMs as the PRU
cores, so the memories have to be partitioned carefully between different
applications. The new cores also support a new sub-module called Task
Manager to support two different context thread executions.
Enhance the existing PRU remoteproc driver to support these new PRU
and RTU cores by using specific compatibles. The cores have the same
memory copying limitations as on AM65x, so reuses the custom ELF loader
function. The initial names for the firmware images for each PRU core
are retrieved from DT nodes, and can be adjusted through sysfs if
required.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
The K3 J721E family of SoCs have a revised version of the AM65x ICSSG IP
and contains two instances of this newer ICSSG IP. Each ICSSG processor
subsystem contains 2 primary PRU cores, 2 auxiliary PRU cores called RTUs,
and 2 new auxiliary cores called Transmit PRUs (Tx_PRUs).
Each RTU and Tx_PRU cores have their own dedicated IRAM (smaller than
a PRU), Control and debug feature sets, but is different in terms of
sub-modules integrated around it and does not have the full capabilities
associated with a PRU core. The RTU core is typically used to aid a
PRU core in accelerating data transfers, while the Tx_PRU cores is
normally used to control the TX L2 FIFO if enabled in Ethernet
applications. Both can also be used to run independent applications.
The RTU and Tx_PRU cores though share the same Data RAMs as the PRU
cores, so the memories have to be partitioned carefully between different
applications. The new cores also support a new sub-module called Task
Manager to support two different context thread executions.
Enhance the existing PRU remoteproc driver to support these new PRU
and RTU cores by using specific compatibles. The cores have the same
memory copying limitations as on AM65x, so reuses the custom ELF loader
function. The initial names for the firmware images for each PRU core
are retrieved from DT nodes, and can be adjusted through sysfs if
required.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
dt-bindings: remoteproc: pru: Update bindings for K3 J721E SoCs
The K3 J721E SoCs have a revised version of the ICSSG IP present on K3
AM65x SoCs. The ICSSG IP on K3 J721E SoCs has the same set of two PRU
cores, two RTU cores and a new pair of custom auxiliary PRU cores called
Transmit PRUs (Tx_PRUs). Update the PRU remoteproc bindings for these
PRU cores on these newer ICSSG instances.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
The K3 J721E SoCs have a revised version of the ICSSG IP present on K3
AM65x SoCs. The ICSSG IP on K3 J721E SoCs has the same set of two PRU
cores, two RTU cores and a new pair of custom auxiliary PRU cores called
Transmit PRUs (Tx_PRUs). Update the PRU remoteproc bindings for these
PRU cores on these newer ICSSG instances.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
irqchip/irq-pruss-intc: Add support for ICSSG INTC on K3 J721E SoCs
The K3 J721E SoCs have a revised version of the ICSSG IP present on K3
AM65x SoCs. The J721E ICSSG INTC is identical to that of the AM65x ICSSG
INTC despite the presence of two new additional auxiliary Tx_PRU cores.
The Tx_PRU cores reuse the same host interrupts as the regular PRU cores,
so the recommended approach is to use the interrupt mapping configuration
through the corresponding PRU core.
Enhance the PRUSS INTC driver to add support for this ICSSG INTC instance.
This support is adding using a new SoC-specific compatible and reusing
the AM65x support code.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
The K3 J721E SoCs have a revised version of the ICSSG IP present on K3
AM65x SoCs. The J721E ICSSG INTC is identical to that of the AM65x ICSSG
INTC despite the presence of two new additional auxiliary Tx_PRU cores.
The Tx_PRU cores reuse the same host interrupts as the regular PRU cores,
so the recommended approach is to use the interrupt mapping configuration
through the corresponding PRU core.
Enhance the PRUSS INTC driver to add support for this ICSSG INTC instance.
This support is adding using a new SoC-specific compatible and reusing
the AM65x support code.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
dt-bindings: irqchip: pruss-intc: Update bindings for K3 J721E SoCs
The K3 J721E SoCs have a revised version of the ICSSG IP present on K3
AM65x SoCs. The ICSSG interrupt controller is identical to that of the
INTC on AM65x SoCs despite the presence of two additional Tx_PRU cores,
and supports 20 host interrupts and 160 input events from various SoC
interrupt sources. Update the PRUSS interrupt controller bindings for
this INTC on J721E SoCs.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
The K3 J721E SoCs have a revised version of the ICSSG IP present on K3
AM65x SoCs. The ICSSG interrupt controller is identical to that of the
INTC on AM65x SoCs despite the presence of two additional Tx_PRU cores,
and supports 20 host interrupts and 160 input events from various SoC
interrupt sources. Update the PRUSS interrupt controller bindings for
this INTC on J721E SoCs.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
soc: ti: pruss: Enable support for ICSSG subsystems on K3 J721E SoCs
The K3 J721E family of SoCs have a revised version of the PRU-ICSS (ICSSG)
processor subsystem present on K3 AM65x SoCs. These SoCs contain typically
two ICSSG instances named ICSSG0 and ICSSG1. The two ICSSGs are identical
to each other for the most part with minor SoC integration differences and
capabilities. The ICSSG1 supports slightly enhanced features like SGMII
mode Ethernet, while the ICSSG0 instance is limited to MII mode only.
The ICSSGs on K3 J721E SoCs have two new additional auxiliary PRU cores
called Tx_PRUs in addition to the PRU and RTU cores present within the
K3 AM65x ICSSG instances. There is no change in the Interrupt Controller
w.r.t AM65x. All other integration aspects are very similar to the ICSSGs
on AM65x SoCs.
The existing pruss_soc_bus and pruss platform drivers have been updated to
support these new ICSSG instances through new J721E specific compatibles.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
The K3 J721E family of SoCs have a revised version of the PRU-ICSS (ICSSG)
processor subsystem present on K3 AM65x SoCs. These SoCs contain typically
two ICSSG instances named ICSSG0 and ICSSG1. The two ICSSGs are identical
to each other for the most part with minor SoC integration differences and
capabilities. The ICSSG1 supports slightly enhanced features like SGMII
mode Ethernet, while the ICSSG0 instance is limited to MII mode only.
The ICSSGs on K3 J721E SoCs have two new additional auxiliary PRU cores
called Tx_PRUs in addition to the PRU and RTU cores present within the
K3 AM65x ICSSG instances. There is no change in the Interrupt Controller
w.r.t AM65x. All other integration aspects are very similar to the ICSSGs
on AM65x SoCs.
The existing pruss_soc_bus and pruss platform drivers have been updated to
support these new ICSSG instances through new J721E specific compatibles.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
dt-bindings: soc: ti: pruss: Update bindings for K3 J721E SoCs
The K3 J721E SoCs have a revised version of the ICSSG IP present on
AM65x. One of the chief differences is the presence of an additional
PRU core per slice called a Tx_PRU, while retaining almost all of the
sub-modules from AM65x. Update the PRUSS bindings for these newer ICSSG
instances.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
The K3 J721E SoCs have a revised version of the ICSSG IP present on
AM65x. One of the chief differences is the presence of an additional
PRU core per slice called a Tx_PRU, while retaining almost all of the
sub-modules from AM65x. Update the PRUSS bindings for these newer ICSSG
instances.
Signed-off-by: Suman Anna <s-anna@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
Merged TI feature graphics into ti-linux-4.19.y
* 'graphics-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/graphics:
gpu: HACK: Disable main_i2c4
gpu: Add carveouts for virtual GPU driver
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
* 'graphics-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/graphics:
gpu: HACK: Disable main_i2c4
gpu: Add carveouts for virtual GPU driver
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
gpu: HACK: Disable main_i2c4
Disables main_i2c4 to use it as an interrupt for a guest GPU. Since the
main GPU interrupt is already taken by root-cell in the jailhouse
configuration, a workaround was made to forward the interrupt to the
guests via the i2c4. This will be reverted once CLEC based routing is
enabled.
Signed-off-by: Erick Narvaez <e-narvaez@ti.com>
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
Disables main_i2c4 to use it as an interrupt for a guest GPU. Since the
main GPU interrupt is already taken by root-cell in the jailhouse
configuration, a workaround was made to forward the interrupt to the
guests via the i2c4. This will be reverted once CLEC based routing is
enabled.
Signed-off-by: Erick Narvaez <e-narvaez@ti.com>
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
gpu: Add carveouts for virtual GPU driver
The GPU can be used by multiple virtual machines in a hypervisor
environment. Part of the setup requires that the GPU has contiguous
memory allocated for the host and guest firmwares, where each region is
the same size.
Add the necessary carveouts to have the GPU firmware memory regions
reserved only if using the jailhouse setup.
Requires GPU to be enabled on the host/root-cell, so re-enable it in
the jailhouse overlay.
Acked-by: Nikhil Devshatwar <nikhil.nd@ti.com>
Signed-off-by: Erick Narvaez <e-narvaez@ti.com>
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
The GPU can be used by multiple virtual machines in a hypervisor
environment. Part of the setup requires that the GPU has contiguous
memory allocated for the host and guest firmwares, where each region is
the same size.
Add the necessary carveouts to have the GPU firmware memory regions
reserved only if using the jailhouse setup.
Requires GPU to be enabled on the host/root-cell, so re-enable it in
the jailhouse overlay.
Acked-by: Nikhil Devshatwar <nikhil.nd@ti.com>
Signed-off-by: Erick Narvaez <e-narvaez@ti.com>
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
Merged TI feature connectivity into ti-linux-4.19.y
* 'connectivity-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity:
net: ethernet: ti: am65-cpsw-nuss: enable 10Mbps link speed in rgmii mode
ethernet: ti: am65-cpsw: allow hwts for ptp sync msgs and others
Revert "HACK: arm64: dts: ti: k3-j721e-main: Drop dma-coherent for usb0"
arm64: dts: ti: k3-j721e: usb: Sync with driver changes
usb: cdns3: gadget: Fix full-speed mode
usb: cdns3: fix cdns3_core_init_role()
usb: cdns3: Add TI specific wrapper driver
usb:cdns3 Fix for stuck packets in on-chip OUT buffer.
usb:cdns3 Add Cadence USB3 DRD Driver
usb:common Simplify usb_decode_get_set_descriptor function.
usb:common Patch simplify usb_decode_set_clear_feature function.
usb:common Separated decoding functions from dwc3 driver.
dt-bindings: add binding for USBSS-DRD controller.
usb: cdns3: Remove Cadence usb driver
Revert "usb:common Separated decoding functions from dwc3 driver."
Revert "usb:common Patch simplify usb_decode_set_clear_feature function."
Revert "usb:common Simplify usb_decode_get_set_descriptor function."
Revert "usb: cdns3: Add TI specific wrapper driver"
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
* 'connectivity-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity:
net: ethernet: ti: am65-cpsw-nuss: enable 10Mbps link speed in rgmii mode
ethernet: ti: am65-cpsw: allow hwts for ptp sync msgs and others
Revert "HACK: arm64: dts: ti: k3-j721e-main: Drop dma-coherent for usb0"
arm64: dts: ti: k3-j721e: usb: Sync with driver changes
usb: cdns3: gadget: Fix full-speed mode
usb: cdns3: fix cdns3_core_init_role()
usb: cdns3: Add TI specific wrapper driver
usb:cdns3 Fix for stuck packets in on-chip OUT buffer.
usb:cdns3 Add Cadence USB3 DRD Driver
usb:common Simplify usb_decode_get_set_descriptor function.
usb:common Patch simplify usb_decode_set_clear_feature function.
usb:common Separated decoding functions from dwc3 driver.
dt-bindings: add binding for USBSS-DRD controller.
usb: cdns3: Remove Cadence usb driver
Revert "usb:common Separated decoding functions from dwc3 driver."
Revert "usb:common Patch simplify usb_decode_set_clear_feature function."
Revert "usb:common Simplify usb_decode_get_set_descriptor function."
Revert "usb: cdns3: Add TI specific wrapper driver"
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
net: ethernet: ti: introduce j721e virt cpsw-nuss mac driver
This patch introduces virtual CPSW MAC driver which implements standard
Linux netdev interface and uses RPC services provided by rpmsg-kdrv Eth
switch device which provides RPC interface to the Eth switch firmware
running on the one of R5F cores and fully controls J721E CPSW9G hardware
module.
Once probed the virtual CPSW MAC driver attaches itself to the Eth switch
FW and requests:
- TX and RX UDMA resources;
- set supported fetures;
- MAC address.
After this the virtual CPSW MAC driver allows to receive and send regular
nework traffic using dedicated UDMA TX channel and RX flow allocated for
Linux Host by Eth switch FW through the standard Linux netdev intf. Hence,
CPSW9G HW does not support redirection of broadcast traffic to muliple CPU
cores - it's required that Eth switch FW should implemnt ARP support for
cases when remote network hosts send ARP request to obtain MAC address of
the virtual CPSW MAC device. For such purposes the virtual CPSW MAC driver
registers itself for IPv4 address assignment notifications and passes pairs
of <IP>:<MAC> to the Eth switch FW.
Supported features:
- ifconfig dev up/down
- ifconfig dev <IP>
- ifconfig dev hw ether <MAC> -- only when intf is down
- ethtool -k dev
Reviewed-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
This patch introduces virtual CPSW MAC driver which implements standard
Linux netdev interface and uses RPC services provided by rpmsg-kdrv Eth
switch device which provides RPC interface to the Eth switch firmware
running on the one of R5F cores and fully controls J721E CPSW9G hardware
module.
Once probed the virtual CPSW MAC driver attaches itself to the Eth switch
FW and requests:
- TX and RX UDMA resources;
- set supported fetures;
- MAC address.
After this the virtual CPSW MAC driver allows to receive and send regular
nework traffic using dedicated UDMA TX channel and RX flow allocated for
Linux Host by Eth switch FW through the standard Linux netdev intf. Hence,
CPSW9G HW does not support redirection of broadcast traffic to muliple CPU
cores - it's required that Eth switch FW should implemnt ARP support for
cases when remote network hosts send ARP request to obtain MAC address of
the virtual CPSW MAC device. For such purposes the virtual CPSW MAC driver
registers itself for IPv4 address assignment notifications and passes pairs
of <IP>:<MAC> to the Eth switch FW.
Supported features:
- ifconfig dev up/down
- ifconfig dev <IP>
- ifconfig dev hw ether <MAC> -- only when intf is down
- ethtool -k dev
Reviewed-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
dt-bindings: net: Add binding for ti,j721e-cpsw-virt-mac device
This is the DT binding document for the TI J721E VIRT CPSWxg Ethernet mac
device.
Acked-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
This is the DT binding document for the TI J721E VIRT CPSWxg Ethernet mac
device.
Acked-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
rpmsg-kdrv: add support for remote eth device
In J721E, the remote R5F can run firmware which controls 9-port CPSW9G NUSS
module - Eth switch fw. Only the Eth Switch FW has full control over J721E
CPSW9G and allows segregate Ethernet traffic for each attached Remote CPU
by using programable ALE classifiers and exclusive UDMA TX channels and RX
flows. The Eth switch FW supports rpmsg-kdrv protocol and presents itself
as rpmsg-kdrv device, which provides CPSW9g resource management and
debugging functions for each attached Remote CPU:
- DMA resources allocation: TX UDMA channel and RX Flow
- MAC addresses assignment
- ARP helper for ARP requests processing from remote Net Hosts
- dbg: IPC ping
- dbg: CPSW9G register access
- dbg: statistic print request on R5F console (ioctl)
Reviewed-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
In J721E, the remote R5F can run firmware which controls 9-port CPSW9G NUSS
module - Eth switch fw. Only the Eth Switch FW has full control over J721E
CPSW9G and allows segregate Ethernet traffic for each attached Remote CPU
by using programable ALE classifiers and exclusive UDMA TX channels and RX
flows. The Eth switch FW supports rpmsg-kdrv protocol and presents itself
as rpmsg-kdrv device, which provides CPSW9g resource management and
debugging functions for each attached Remote CPU:
- DMA resources allocation: TX UDMA channel and RX Flow
- MAC addresses assignment
- ARP helper for ARP requests processing from remote Net Hosts
- dbg: IPC ping
- dbg: CPSW9G register access
- dbg: statistic print request on R5F console (ioctl)
Reviewed-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
dmaengine: ti: k3-navss-udma: add support for remote/virt udma channels
To support remote/virt UDMA channels to CPS9G which is under control of
firmware running on remote core:
- TX side: virt-net driver will access and fully control dedicated TX udma
channel. Hence, TX channel is dedicated - no changhes required on TX side.
- RX side: RX udma channel is under full control of RPC, and only dedicated
RX udma flows are allocated for Linux Host. So, when connecting to remote
UDMA channel - the UDMA RX channel should not be to touched, just dedicated
RX flows added and configured. The RX UDMA flow RX and RX FDQ rings have to
be switched to invalid rings IDs for disabling/enabling RX UDMA flow.
This patch implements above behavior.
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
To support remote/virt UDMA channels to CPS9G which is under control of
firmware running on remote core:
- TX side: virt-net driver will access and fully control dedicated TX udma
channel. Hence, TX channel is dedicated - no changhes required on TX side.
- RX side: RX udma channel is under full control of RPC, and only dedicated
RX udma flows are allocated for Linux Host. So, when connecting to remote
UDMA channel - the UDMA RX channel should not be to touched, just dedicated
RX flows added and configured. The RX UDMA flow RX and RX FDQ rings have to
be switched to invalid rings IDs for disabling/enabling RX UDMA flow.
This patch implements above behavior.
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
dmaengine: ti: k3-navss-udma: drop need_tisci_free
The need_tisci_free is obsolete after TI SCI API.
Hence - drop it.
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
The need_tisci_free is obsolete after TI SCI API.
Hence - drop it.
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
dmaengine: ti: k3-navss-udma: fix k3_nav_udmax_release_rx_flow()
Reset struct k3_nav_udmax_rx_flow->udma_rflow to avoid double calling of
xudma_rflow_put().
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Reset struct k3_nav_udmax_rx_flow->udma_rflow to avoid double calling of
xudma_rflow_put().
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
dmaengine: ti: k3-navss-udma: fix gp rflow freeing in k3_nav_udmax_release_rx_chn()
The GP rflows have to be freed only if they previously were allocated.
Hence check if low_id_base belongs to GP rflow range before calling
xudma_free_gp_rflow_range().
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
The GP rflows have to be freed only if they previously were allocated.
Hence check if low_id_base belongs to GP rflow range before calling
xudma_free_gp_rflow_range().
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
dmaengine: ti: k3-navss-udma: fix access to udmax in k3_nav_udmax_release_rx_chn()
The struct k3_nav_udmax_rx_channel->common.udmax has to be checked before
accessing it. Hence move corresponding check to the beginning of the
k3_nav_udmax_release_rx_chn().
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
The struct k3_nav_udmax_rx_channel->common.udmax has to be checked before
accessing it. Hence move corresponding check to the beginning of the
k3_nav_udmax_release_rx_chn().
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Merged TI feature platform_base into ti-linux-4.19.y
* 'platform-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/platform:
arm64: dts: ti: k3-j721e: Add support for pm2 som
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
* 'platform-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/platform:
arm64: dts: ti: k3-j721e: Add support for pm2 som
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature multimedia into ti-linux-4.19.y
* 'multimedia-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/multimedia:
ti_config_fragments: multimedia.cfg: Add video encode configuration
drivers: media: platorm: Kconfig: Add Video encoder kconfig entries
arm64: dts: ti: k3-j721e-main.dtsi: Add VXE384 node
dt-bindings: Add binding for img,vxe384 for J721E
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
* 'multimedia-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/multimedia:
ti_config_fragments: multimedia.cfg: Add video encode configuration
drivers: media: platorm: Kconfig: Add Video encoder kconfig entries
arm64: dts: ti: k3-j721e-main.dtsi: Add VXE384 node
dt-bindings: Add binding for img,vxe384 for J721E
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
ti_config_fragments: multimedia.cfg: Add video encode configuration
Add vxe384 vxe_enc configurations to multimedia.cfg
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Reviewed-by: Benoit Parrot <bparrot@ti.com>
Add vxe384 vxe_enc configurations to multimedia.cfg
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Reviewed-by: Benoit Parrot <bparrot@ti.com>
drivers: media: platorm: Kconfig: Add Video encoder kconfig entries
Add video encoder basic config to Kconfig
and select the required V4L2 modules.
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Reviewed-by: Benoit Parrot <bparrot@ti.com>
Add video encoder basic config to Kconfig
and select the required V4L2 modules.
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Reviewed-by: Benoit Parrot <bparrot@ti.com>
arm64: dts: ti: k3-j721e-main.dtsi: Add VXE384 node
Add VXE384 video encoder node for J721E.
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Reviewed-by: Benoit Parrot <bparrot@ti.com>
Add VXE384 video encoder node for J721E.
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Reviewed-by: Benoit Parrot <bparrot@ti.com>
dt-bindings: Add binding for img,vxe384 for J721E
Add the dt-binding for the img,vxe384 node for J721E.
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Reviewed-by: Benoit Parrot <bparrot@ti.com>
Add the dt-binding for the img,vxe384 node for J721E.
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Reviewed-by: Benoit Parrot <bparrot@ti.com>
net: ethernet: ti: am65-cpsw-nuss: enable 10Mbps link speed in rgmii mode
In RGMII mode the 10Mbps link speed is supported only when CPSW2G MAC SL is
configured for External Control ("in band") mode
CPSW_PN_MAC_CONTROL_REG.CTL_EN(18) = 1.
Hence update am65_cpsw_nuss_adjust_link() to follow documentation.
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
In RGMII mode the 10Mbps link speed is supported only when CPSW2G MAC SL is
configured for External Control ("in band") mode
CPSW_PN_MAC_CONTROL_REG.CTL_EN(18) = 1.
Hence update am65_cpsw_nuss_adjust_link() to follow documentation.
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
ethernet: ti: am65-cpsw: allow hwts for ptp sync msgs and others
Since am65-cpsw supports rx hardware timestamps for any packet
(HWTSTAMP_FILTER_ALL), allow hardware timestamp at least for existent
rx filters. Despite of this, hw supports only two filter modes:
HWTSTAMP_FILTER_NONE and HWTSTAMP_FILTER_ALL that is still shown with
"ethtool -T inf_name".
Acked-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Since am65-cpsw supports rx hardware timestamps for any packet
(HWTSTAMP_FILTER_ALL), allow hardware timestamp at least for existent
rx filters. Despite of this, hw supports only two filter modes:
HWTSTAMP_FILTER_NONE and HWTSTAMP_FILTER_ALL that is still shown with
"ethtool -T inf_name".
Acked-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
arm64: dts: ti: k3-j721e: Add support for pm2 som
The Beta EVMs will be having pm2 SoM which is mainly having Leo PMIC
instead of the prior pm1 SoM which has TPS65917 PMIC. Long term
support is for pm2 SoM.
So k3-j721e-som-p0.dtsi now points to the pm2 SoM &
k3-j721e-common-proc-board is pointing to the boards with pm2 SoM.
The older TPS65917 based pm1 SoMs are renamed to k3-j721e-som-tps65917.dtsi
& ti/k3-j721e-proc-board-tps65917.dts respectively.
Signed-off-by: Keerthy <j-keerthy@ti.com>
Acked-by: Nikhil Devshatwar <nikhil.nd@ti.com>
The Beta EVMs will be having pm2 SoM which is mainly having Leo PMIC
instead of the prior pm1 SoM which has TPS65917 PMIC. Long term
support is for pm2 SoM.
So k3-j721e-som-p0.dtsi now points to the pm2 SoM &
k3-j721e-common-proc-board is pointing to the boards with pm2 SoM.
The older TPS65917 based pm1 SoMs are renamed to k3-j721e-som-tps65917.dtsi
& ti/k3-j721e-proc-board-tps65917.dts respectively.
Signed-off-by: Keerthy <j-keerthy@ti.com>
Acked-by: Nikhil Devshatwar <nikhil.nd@ti.com>
Merged TI feature platform_base into ti-linux-4.19.y
* 'platform-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/platform:
HACK: ti_config_fragments: v8_baseport: Enable DMA-BUF export driver
HACK: ti_config_fragments: baseport: Enable DMA-BUF export driver
HACK: misc: Add dma-buf to physical address exporter
HACK: dt-bindings: misc: Add ti,dma_buf_phys binding doc
ti_config_fragments: v8_baseport: Enable PAT driver
soc: ti: Add Support for the TI Page-based Address Translator (PAT)
arm64: dts: ti: k3-j721e-main: Add MAIN domain PAT nodes
dt-bindings: soc: ti: Add TI PAT bindings
dma-buf: Make mmap callback actually optional
dma-buf: Remove requirement for ops->map() from dma_buf_export
crypto: sa2ul: Correct the length of payload that is transferred to rx_chan2
crypto: sa2ul: Add support for basic sha1/sha256 algorithms
crypto: tcrypt: Fix speed test case for hash to set up sg buffer size equal to payload
crypto: sa2ul: Add software fallback support
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
* 'platform-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/platform:
HACK: ti_config_fragments: v8_baseport: Enable DMA-BUF export driver
HACK: ti_config_fragments: baseport: Enable DMA-BUF export driver
HACK: misc: Add dma-buf to physical address exporter
HACK: dt-bindings: misc: Add ti,dma_buf_phys binding doc
ti_config_fragments: v8_baseport: Enable PAT driver
soc: ti: Add Support for the TI Page-based Address Translator (PAT)
arm64: dts: ti: k3-j721e-main: Add MAIN domain PAT nodes
dt-bindings: soc: ti: Add TI PAT bindings
dma-buf: Make mmap callback actually optional
dma-buf: Remove requirement for ops->map() from dma_buf_export
crypto: sa2ul: Correct the length of payload that is transferred to rx_chan2
crypto: sa2ul: Add support for basic sha1/sha256 algorithms
crypto: tcrypt: Fix speed test case for hash to set up sg buffer size equal to payload
crypto: sa2ul: Add software fallback support
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
HACK: ti_config_fragments: v8_baseport: Enable DMA-BUF export driver
Enable DMA-BUF export driver used by OpenCL/OpenVX usecases.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Enable DMA-BUF export driver used by OpenCL/OpenVX usecases.
Signed-off-by: Andrew F. Davis <afd@ti.com>
HACK: ti_config_fragments: baseport: Enable DMA-BUF export driver
Enable DMA-BUF export driver used by OpenCL/OpenVX usecases.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Enable DMA-BUF export driver used by OpenCL/OpenVX usecases.
Signed-off-by: Andrew F. Davis <afd@ti.com>
HACK: misc: Add dma-buf to physical address exporter
This is driver allows user-space to attach a DMA-BUF and
receive back its CPU physical address. This is a temporary
solution to allow CMEM like functionality from ION allocated
buffers. This is a hack and this will be removed when proper
solutions are implemented.
Signed-off-by: Andrew F. Davis <afd@ti.com>
This is driver allows user-space to attach a DMA-BUF and
receive back its CPU physical address. This is a temporary
solution to allow CMEM like functionality from ION allocated
buffers. This is a hack and this will be removed when proper
solutions are implemented.
Signed-off-by: Andrew F. Davis <afd@ti.com>
HACK: dt-bindings: misc: Add ti,dma_buf_phys binding doc
Driver allowing user-space attaching of DMA-BUFs returning CPU physical
addresses. The reasoning for making this act like a regular device
described by DT is so the virtual device that binds the buffer can be
made to act as if it is out on a bus or behind an IOMMU, for example.
Add this binding here.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Driver allowing user-space attaching of DMA-BUFs returning CPU physical
addresses. The reasoning for making this act like a regular device
described by DT is so the virtual device that binds the buffer can be
made to act as if it is out on a bus or behind an IOMMU, for example.
Add this binding here.
Signed-off-by: Andrew F. Davis <afd@ti.com>
ti_config_fragments: v8_baseport: Enable PAT driver
Enable PAT in v8 config.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Enable PAT in v8 config.
Signed-off-by: Andrew F. Davis <afd@ti.com>
soc: ti: Add Support for the TI Page-based Address Translator (PAT)
This patch adds a driver for the Page-based Address Translator (PAT)
present on various TI SoCs. A PAT device performs address translation
using tables stored in an internal SRAM. Each PAT supports a set number
of pages, each occupying a programmable 4KB, 16KB, 64KB, or 1MB of
addresses in a window for which an incoming transaction will be
translated.
Signed-off-by: Andrew F. Davis <afd@ti.com>
[t-kristo@ti.com: added depends on ARCH_K3 to Kconfig]
Signed-off-by: Tero Kristo <t-kristo@ti.com>
This patch adds a driver for the Page-based Address Translator (PAT)
present on various TI SoCs. A PAT device performs address translation
using tables stored in an internal SRAM. Each PAT supports a set number
of pages, each occupying a programmable 4KB, 16KB, 64KB, or 1MB of
addresses in a window for which an incoming transaction will be
translated.
Signed-off-by: Andrew F. Davis <afd@ti.com>
[t-kristo@ti.com: added depends on ARCH_K3 to Kconfig]
Signed-off-by: Tero Kristo <t-kristo@ti.com>
arm64: dts: ti: k3-j721e-main: Add MAIN domain PAT nodes
The NAVSS may contain page-based address translators (PAT) that perform
address translation using tables stored in an internal SRAM. Each PAT
supports a set number of pages, each occupying a programmable 4KB, 16KB,
64KB, or 1MB address window for which an incoming transaction will be
translated. J721E MAIN domain NAVSS contains 5 PAT instances, add DT
nodes for this here.
Signed-off-by: Andrew F. Davis <afd@ti.com>
The NAVSS may contain page-based address translators (PAT) that perform
address translation using tables stored in an internal SRAM. Each PAT
supports a set number of pages, each occupying a programmable 4KB, 16KB,
64KB, or 1MB address window for which an incoming transaction will be
translated. J721E MAIN domain NAVSS contains 5 PAT instances, add DT
nodes for this here.
Signed-off-by: Andrew F. Davis <afd@ti.com>
dt-bindings: soc: ti: Add TI PAT bindings
This patch adds the bindings for the Page-based Address Translator (PAT)
present on various TI SoCs. A Page-based Address Translator (PAT) device
performs address translation using tables stored in an internal SRAM.
Each PAT supports a set number of pages, each occupying a programmable
4KB, 16KB, 64KB, or 1MB of addresses in a window for which an incoming
transaction will be translated.
Signed-off-by: Andrew F. Davis <afd@ti.com>
This patch adds the bindings for the Page-based Address Translator (PAT)
present on various TI SoCs. A Page-based Address Translator (PAT) device
performs address translation using tables stored in an internal SRAM.
Each PAT supports a set number of pages, each occupying a programmable
4KB, 16KB, 64KB, or 1MB of addresses in a window for which an incoming
transaction will be translated.
Signed-off-by: Andrew F. Davis <afd@ti.com>
dma-buf: Make mmap callback actually optional
commit e3a9d6c53195591303b7f165f3bb0226741f911e upstream.
The docs state the callback is optional but it is not, make it optional.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190329165201.16233-1-afd@ti.com
commit e3a9d6c53195591303b7f165f3bb0226741f911e upstream.
The docs state the callback is optional but it is not, make it optional.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190329165201.16233-1-afd@ti.com
dma-buf: Remove requirement for ops->map() from dma_buf_export
commit f82aab2d521e4c1d4f9f98450b4a9a8abeaff1c4 upstream.
Since commit 9ea0dfbf972 ("dma-buf: make map_atomic and map function
pointers optional"), the core provides the no-op functions when map and
map_atomic are not provided, so we no longer need assert that are
supplied by a dma-buf exporter.
Fixes: 09ea0dfbf972 ("dma-buf: make map_atomic and map function pointers optional")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20180807183647.22626-1-chris@chris-wilson.co.uk
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
commit f82aab2d521e4c1d4f9f98450b4a9a8abeaff1c4 upstream.
Since commit 9ea0dfbf972 ("dma-buf: make map_atomic and map function
pointers optional"), the core provides the no-op functions when map and
map_atomic are not provided, so we no longer need assert that are
supplied by a dma-buf exporter.
Fixes: 09ea0dfbf972 ("dma-buf: make map_atomic and map function pointers optional")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20180807183647.22626-1-chris@chris-wilson.co.uk
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Merged TI feature audio-display into ti-linux-4.19.y
* 'audio_display-ti-linux-4.19.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree: (22 commits)
phy: ti: j721e-wiz: Fix "warning: unused variable ‘reg’"
drm/bridge: cdns-mhdp-common: remove unneeded semicolons
drm/bridge: cdns-mhdp: Do not pack the scrambler and SSC to lane count
drm/bridge: cdns-mhdp: Use new detect_ctx() instead of obsolete detect() cb
drm/bridge: cdns-mhdp: fail if fast LT is used
drm/bridge: cdns-mhdp: clean up debug prints
drm/bridge: cdns-mhdp-j721e: remove useless debug prints
drm/bridge: cdns-mhdp: drop uses of cdns_mhdp_set_video_status
phy: phy-cadence-dp: fix typo
drm/bridge: cdns-mhdp: disable framer on bridge_disable
drm/bridge: cdns-mhdp: enable/disable VIF clk/rst
drm/bridge: cdns-mhdp: fix h/v sync polarities
drm/bridge: cdns-mhdp: fix CDNS_DP_FRAMER_GLOBAL_CONFIG handling
drm/bridge: cdns-mhdp: remove CDNS_DP_SW_RESET (unused)
drm/omap: hdmi5: automatically choose limited/full range output
arm64: dts: ti: k3-j721e-common-proc-board: Switch to custom audio support
ti_config_fragments: audio_display.cfg: Enable custom audio driver for j721e-evm
ASoC: ti: Add custom machine driver for j721e Common Processor Board
bindings: sound: Add documentation for TI j721e Common Processor Board
ASoC: pcm3168a: Allow reconfiguration of tdm_slots and slot_width
...
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
* 'audio_display-ti-linux-4.19.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree: (22 commits)
phy: ti: j721e-wiz: Fix "warning: unused variable ‘reg’"
drm/bridge: cdns-mhdp-common: remove unneeded semicolons
drm/bridge: cdns-mhdp: Do not pack the scrambler and SSC to lane count
drm/bridge: cdns-mhdp: Use new detect_ctx() instead of obsolete detect() cb
drm/bridge: cdns-mhdp: fail if fast LT is used
drm/bridge: cdns-mhdp: clean up debug prints
drm/bridge: cdns-mhdp-j721e: remove useless debug prints
drm/bridge: cdns-mhdp: drop uses of cdns_mhdp_set_video_status
phy: phy-cadence-dp: fix typo
drm/bridge: cdns-mhdp: disable framer on bridge_disable
drm/bridge: cdns-mhdp: enable/disable VIF clk/rst
drm/bridge: cdns-mhdp: fix h/v sync polarities
drm/bridge: cdns-mhdp: fix CDNS_DP_FRAMER_GLOBAL_CONFIG handling
drm/bridge: cdns-mhdp: remove CDNS_DP_SW_RESET (unused)
drm/omap: hdmi5: automatically choose limited/full range output
arm64: dts: ti: k3-j721e-common-proc-board: Switch to custom audio support
ti_config_fragments: audio_display.cfg: Enable custom audio driver for j721e-evm
ASoC: ti: Add custom machine driver for j721e Common Processor Board
bindings: sound: Add documentation for TI j721e Common Processor Board
ASoC: pcm3168a: Allow reconfiguration of tdm_slots and slot_width
...
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.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
DP patches for .04
* 'ti/4.19-pull' of https://bitbucket.itg.ti.com/scm/~a0400822/linux:
phy: ti: j721e-wiz: Fix "warning: unused variable ‘reg’"
drm/bridge: cdns-mhdp-common: remove unneeded semicolons
drm/bridge: cdns-mhdp: Do not pack the scrambler and SSC to lane count
drm/bridge: cdns-mhdp: Use new detect_ctx() instead of obsolete detect() cb
drm/bridge: cdns-mhdp: fail if fast LT is used
drm/bridge: cdns-mhdp: clean up debug prints
drm/bridge: cdns-mhdp-j721e: remove useless debug prints
drm/bridge: cdns-mhdp: drop uses of cdns_mhdp_set_video_status
phy: phy-cadence-dp: fix typo
drm/bridge: cdns-mhdp: disable framer on bridge_disable
drm/bridge: cdns-mhdp: enable/disable VIF clk/rst
drm/bridge: cdns-mhdp: fix h/v sync polarities
drm/bridge: cdns-mhdp: fix CDNS_DP_FRAMER_GLOBAL_CONFIG handling
drm/bridge: cdns-mhdp: remove CDNS_DP_SW_RESET (unused)
DP patches for .04
* 'ti/4.19-pull' of https://bitbucket.itg.ti.com/scm/~a0400822/linux:
phy: ti: j721e-wiz: Fix "warning: unused variable ‘reg’"
drm/bridge: cdns-mhdp-common: remove unneeded semicolons
drm/bridge: cdns-mhdp: Do not pack the scrambler and SSC to lane count
drm/bridge: cdns-mhdp: Use new detect_ctx() instead of obsolete detect() cb
drm/bridge: cdns-mhdp: fail if fast LT is used
drm/bridge: cdns-mhdp: clean up debug prints
drm/bridge: cdns-mhdp-j721e: remove useless debug prints
drm/bridge: cdns-mhdp: drop uses of cdns_mhdp_set_video_status
phy: phy-cadence-dp: fix typo
drm/bridge: cdns-mhdp: disable framer on bridge_disable
drm/bridge: cdns-mhdp: enable/disable VIF clk/rst
drm/bridge: cdns-mhdp: fix h/v sync polarities
drm/bridge: cdns-mhdp: fix CDNS_DP_FRAMER_GLOBAL_CONFIG handling
drm/bridge: cdns-mhdp: remove CDNS_DP_SW_RESET (unused)
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
new ASoC machine driver for j721e CPB
* 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio/linux-audio:
arm64: dts: ti: k3-j721e-common-proc-board: Switch to custom audio support
ti_config_fragments: audio_display.cfg: Enable custom audio driver for j721e-evm
ASoC: ti: Add custom machine driver for j721e Common Processor Board
bindings: sound: Add documentation for TI j721e Common Processor Board
ASoC: pcm3168a: Allow reconfiguration of tdm_slots and slot_width
ASoC: pcm3168a: Retain the independence of DAC and ADC side of the codec
ASoC: core: Move pcm_mutex up to card level from snd_soc_pcm_runtime
new ASoC machine driver for j721e CPB
* 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio/linux-audio:
arm64: dts: ti: k3-j721e-common-proc-board: Switch to custom audio support
ti_config_fragments: audio_display.cfg: Enable custom audio driver for j721e-evm
ASoC: ti: Add custom machine driver for j721e Common Processor Board
bindings: sound: Add documentation for TI j721e Common Processor Board
ASoC: pcm3168a: Allow reconfiguration of tdm_slots and slot_width
ASoC: pcm3168a: Retain the independence of DAC and ADC side of the codec
ASoC: core: Move pcm_mutex up to card level from snd_soc_pcm_runtime
crypto: sa2ul: Correct the length of payload that is transferred to rx_chan2
The rx channel 2 becomes active as soon as the payload is greater
than or equal to 256 bytes so correct that.
Signed-off-by: Keerthy <j-keerthy@ti.com>
The rx channel 2 becomes active as soon as the payload is greater
than or equal to 256 bytes so correct that.
Signed-off-by: Keerthy <j-keerthy@ti.com>
crypto: sa2ul: Add support for basic sha1/sha256 algorithms
Add support for HW supported sha1/sha256 algorithms.
The HMAC basedsha1/sha256 are already supported.
Signed-off-by: Keerthy <j-keerthy@ti.com>
Add support for HW supported sha1/sha256 algorithms.
The HMAC basedsha1/sha256 are already supported.
Signed-off-by: Keerthy <j-keerthy@ti.com>
crypto: tcrypt: Fix speed test case for hash to set up sg buffer size equal to payload
Fix speed test case to set up sg buffer size equal to payload.
Signed-off-by: Keerthy <j-keerthy@ti.com>
Fix speed test case to set up sg buffer size equal to payload.
Signed-off-by: Keerthy <j-keerthy@ti.com>
crypto: sa2ul: Add software fallback support
The sa2ul hardware mandates upfront knowledge of the total
number of bytes that will be hashed. This causes cases like
partial update to fail. Hence add software fallback.
So all the finup, final, update cases go via software hashing
utilizing cpu cycles.
Signed-off-by: Keerthy <j-keerthy@ti.com>
The sa2ul hardware mandates upfront knowledge of the total
number of bytes that will be hashed. This causes cases like
partial update to fail. Hence add software fallback.
So all the finup, final, update cases go via software hashing
utilizing cpu cycles.
Signed-off-by: Keerthy <j-keerthy@ti.com>
Revert "HACK: arm64: dts: ti: k3-j721e-main: Drop dma-coherent for usb0"
This reverts commit def54d782c324d7d6b5e972e9c368fd74ef483b8.
This is no longer required as driver has been fixed.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
This reverts commit def54d782c324d7d6b5e972e9c368fd74ef483b8.
This is no longer required as driver has been fixed.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
arm64: dts: ti: k3-j721e: usb: Sync with driver changes
Adapt to changes in V10 of the cdns3 USB driver.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Adapt to changes in V10 of the cdns3 USB driver.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
usb: cdns3: gadget: Fix full-speed mode
We need to disable USB3 PHY for full-speed mode else
gadget mode is broken.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
We need to disable USB3 PHY for full-speed mode else
gadget mode is broken.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
usb: cdns3: fix cdns3_core_init_role()
At startup we should trigger the HW state machine
only if it is OTG mode. Otherwise we should just
start the respective role.
Initialize idle role by default. If we don't do this then
cdns3_idle_role_stop() is not called when switching to
host/device role and so lane switch mechanism
doesn't work. This results to super-speed device not working
in one orientation if it was plugged before driver probe.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
At startup we should trigger the HW state machine
only if it is OTG mode. Otherwise we should just
start the respective role.
Initialize idle role by default. If we don't do this then
cdns3_idle_role_stop() is not called when switching to
host/device role and so lane switch mechanism
doesn't work. This results to super-speed device not working
in one orientation if it was plugged before driver probe.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
usb: cdns3: Add TI specific wrapper driver
The J721e platform comes with 2 Cadence USB3 controller
instances. This driver supports the TI specific wrapper
on this platform.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
The J721e platform comes with 2 Cadence USB3 controller
instances. This driver supports the TI specific wrapper
on this platform.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
usb:cdns3 Fix for stuck packets in on-chip OUT buffer.
Controller for OUT endpoints has shared on-chip buffers for all incoming
packets, including ep0out. It's FIFO buffer, so packets must be handled
by DMA in correct order. If the first packet in the buffer will not be
handled, then the following packets directed for other endpoints and
functions will be blocked.
Additionally the packets directed to one endpoint can block entire on-chip
buffers. In this case transfer to other endpoints also will blocked.
To resolve this issue after raising the descriptor missing interrupt
driver prepares internal usb_request object and use it to arm DMA
transfer.
The problematic situation was observed in case when endpoint has
been enabled but no usb_request were queued. Driver try detects
such endpoints and will use this workaround only for these endpoint.
Driver use limited number of buffer. This number can be set by macro
CDNS_WA2_NUM_BUFFERS.
Such blocking situation was observed on ACM gadget. For this function
host send OUT data packet but ACM function is not prepared for
this packet. It's cause that buffer placed in on chip memory block
transfer to other endpoints.
Issue has been fixed for DEV_VER_V2 version of controller.
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Controller for OUT endpoints has shared on-chip buffers for all incoming
packets, including ep0out. It's FIFO buffer, so packets must be handled
by DMA in correct order. If the first packet in the buffer will not be
handled, then the following packets directed for other endpoints and
functions will be blocked.
Additionally the packets directed to one endpoint can block entire on-chip
buffers. In this case transfer to other endpoints also will blocked.
To resolve this issue after raising the descriptor missing interrupt
driver prepares internal usb_request object and use it to arm DMA
transfer.
The problematic situation was observed in case when endpoint has
been enabled but no usb_request were queued. Driver try detects
such endpoints and will use this workaround only for these endpoint.
Driver use limited number of buffer. This number can be set by macro
CDNS_WA2_NUM_BUFFERS.
Such blocking situation was observed on ACM gadget. For this function
host send OUT data packet but ACM function is not prepared for
this packet. It's cause that buffer placed in on chip memory block
transfer to other endpoints.
Issue has been fixed for DEV_VER_V2 version of controller.
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
usb:cdns3 Add Cadence USB3 DRD Driver
This patch introduce new Cadence USBSS DRD driver to Linux kernel.
The Cadence USBSS DRD Controller is a highly configurable IP Core which
can be instantiated as Dual-Role Device (DRD), Peripheral Only and
Host Only (XHCI)configurations.
The current driver has been validated with FPGA platform. We have
support for PCIe bus, which is used on FPGA prototyping.
The host side of USBSS-DRD controller is compliant with XHCI
specification, so it works with standard XHCI Linux driver.
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
This patch introduce new Cadence USBSS DRD driver to Linux kernel.
The Cadence USBSS DRD Controller is a highly configurable IP Core which
can be instantiated as Dual-Role Device (DRD), Peripheral Only and
Host Only (XHCI)configurations.
The current driver has been validated with FPGA platform. We have
support for PCIe bus, which is used on FPGA prototyping.
The host side of USBSS-DRD controller is compliant with XHCI
specification, so it works with standard XHCI Linux driver.
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
usb:common Simplify usb_decode_get_set_descriptor function.
Patch moves switch responsible for decoding descriptor type
outside snprintf. It improves code readability a little.
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Patch moves switch responsible for decoding descriptor type
outside snprintf. It improves code readability a little.
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
usb:common Patch simplify usb_decode_set_clear_feature function.
Patch adds usb_decode_test_mode and usb_decode_device_feature functions,
which allow to make more readable and simplify the
usb_decode_set_clear_feature function.
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Patch adds usb_decode_test_mode and usb_decode_device_feature functions,
which allow to make more readable and simplify the
usb_decode_set_clear_feature function.
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
usb:common Separated decoding functions from dwc3 driver.
Patch moves some decoding functions from driver/usb/dwc3/debug.h driver
to driver/usb/common/debug.c file. These moved functions include:
dwc3_decode_get_status
dwc3_decode_set_clear_feature
dwc3_decode_set_address
dwc3_decode_get_set_descriptor
dwc3_decode_get_configuration
dwc3_decode_set_configuration
dwc3_decode_get_intf
dwc3_decode_set_intf
dwc3_decode_synch_frame
dwc3_decode_set_sel
dwc3_decode_set_isoch_delay
dwc3_decode_ctrl
These functions are used also in inroduced cdns3 driver.
All functions prefixes were changed from dwc3 to usb.
Also, function's parameters has been extended according to the name
of fields in standard SETUP packet.
Additionally, patch adds usb_decode_ctrl function to
include/linux/usb/ch9.h file.
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Patch moves some decoding functions from driver/usb/dwc3/debug.h driver
to driver/usb/common/debug.c file. These moved functions include:
dwc3_decode_get_status
dwc3_decode_set_clear_feature
dwc3_decode_set_address
dwc3_decode_get_set_descriptor
dwc3_decode_get_configuration
dwc3_decode_set_configuration
dwc3_decode_get_intf
dwc3_decode_set_intf
dwc3_decode_synch_frame
dwc3_decode_set_sel
dwc3_decode_set_isoch_delay
dwc3_decode_ctrl
These functions are used also in inroduced cdns3 driver.
All functions prefixes were changed from dwc3 to usb.
Also, function's parameters has been extended according to the name
of fields in standard SETUP packet.
Additionally, patch adds usb_decode_ctrl function to
include/linux/usb/ch9.h file.
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
dt-bindings: add binding for USBSS-DRD controller.
This patch aim at documenting USB related dt-bindings for the
Cadence USBSS-DRD controller.
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
This patch aim at documenting USB related dt-bindings for the
Cadence USBSS-DRD controller.
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
usb: cdns3: Remove Cadence usb driver
This is to prepare for upgrade to v11 of the driver.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
This is to prepare for upgrade to v11 of the driver.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Revert "usb:common Separated decoding functions from dwc3 driver."
This reverts commit 191b62b8537ab55a9de324e8c256b933b0f69f20.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
This reverts commit 191b62b8537ab55a9de324e8c256b933b0f69f20.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Revert "usb:common Patch simplify usb_decode_set_clear_feature function."
This reverts commit b93c0c91de5ac4025917dcad3b830aba2b808e22.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
This reverts commit b93c0c91de5ac4025917dcad3b830aba2b808e22.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Revert "usb:common Simplify usb_decode_get_set_descriptor function."
This reverts commit c2852d4cd9af909aef47df9c1f390a663d112462.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
This reverts commit c2852d4cd9af909aef47df9c1f390a663d112462.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Revert "usb: cdns3: Add TI specific wrapper driver"
This reverts commit d9b9925c0235166f284051ecac9bef53c22218f2.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
This reverts commit d9b9925c0235166f284051ecac9bef53c22218f2.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Merged TI feature rpmsg into ti-linux-4.19.y
* 'rpmsg-ti-linux-4.19.y-intg' of git://git.ti.com/rpmsg/rpmsg:
remoteproc: Add a sysfs interface for name
rpmsg: virtio_rpmsg_bus: replace "%p" with "%pK"
rpmsg: core: fix comments
samples/rpmsg: Replace print_hex_dump() with print_hex_dump_debug()
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
* 'rpmsg-ti-linux-4.19.y-intg' of git://git.ti.com/rpmsg/rpmsg:
remoteproc: Add a sysfs interface for name
rpmsg: virtio_rpmsg_bus: replace "%p" with "%pK"
rpmsg: core: fix comments
samples/rpmsg: Replace print_hex_dump() with print_hex_dump_debug()
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.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 '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 adds a new sysfs
file 'name' to allow userspace to easily identify a remoteproc. An
equivalent file was already present in debugfs as well, but sysfs
provides a more standardized userspace interface since debugfs is
optional.
* 'rproc-linux-4.19.y' of git://git.ti.com/rpmsg/remoteproc:
remoteproc: Add a sysfs interface for name
Signed-off-by: Suman Anna <s-anna@ti.com>
Pull in the updated remoteproc feature branch that adds a new sysfs
file 'name' to allow userspace to easily identify a remoteproc. An
equivalent file was already present in debugfs as well, but sysfs
provides a more standardized userspace interface since debugfs is
optional.
* 'rproc-linux-4.19.y' of git://git.ti.com/rpmsg/remoteproc:
remoteproc: Add a sysfs interface for name
Signed-off-by: Suman Anna <s-anna@ti.com>
Merge branch 'rpmsg-linux-4.19.y' of git://git.ti.com/rpmsg/rpmsg into rpmsg-ti-linux-4.19.y
Pull in the updated rpmsg base feature branch that includes minor
typo fixes in the rpmsg core and minor dynamic-debug related printk
improvements to the virtio_rpmsg_bus and rpmsg_client_sample drivers.
* 'rpmsg-linux-4.19.y' of git://git.ti.com/rpmsg/rpmsg:
rpmsg: virtio_rpmsg_bus: replace "%p" with "%pK"
rpmsg: core: fix comments
samples/rpmsg: Replace print_hex_dump() with print_hex_dump_debug()
Signed-off-by: Suman Anna <s-anna@ti.com>
Pull in the updated rpmsg base feature branch that includes minor
typo fixes in the rpmsg core and minor dynamic-debug related printk
improvements to the virtio_rpmsg_bus and rpmsg_client_sample drivers.
* 'rpmsg-linux-4.19.y' of git://git.ti.com/rpmsg/rpmsg:
rpmsg: virtio_rpmsg_bus: replace "%p" with "%pK"
rpmsg: core: fix comments
samples/rpmsg: Replace print_hex_dump() with print_hex_dump_debug()
Signed-off-by: Suman Anna <s-anna@ti.com>
Merged TI feature connectivity into ti-linux-4.19.y
* 'connectivity-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity:
ARM: dts: k3-j721e-common-proc-board: Update MMC1 pinmux from the latest pinmux tool
phy: ti: j721e-wiz: Fix build warning
phy: cadence: Sierra: Fix build warning
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
* 'connectivity-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/connectivity:
ARM: dts: k3-j721e-common-proc-board: Update MMC1 pinmux from the latest pinmux tool
phy: ti: j721e-wiz: Fix build warning
phy: cadence: Sierra: Fix build warning
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
Merged TI feature platform_base into ti-linux-4.19.y
* 'platform-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/platform:
arm64: dts: ti: k3-j721e-main: Add ti,notdpkt flag to sa2ul psil-config
arm64: dts: ti: k3-am65-main: Add ti,notdpkt flag to sa2ul psil-config
crypto: sa2ul: Export function to enable trng
crypto: sa2ul: Add a member to store base address
char: hw_random: Kconfig: For ARCH_K3 add a dependency on SA2UL
dmaengine: ti: k3-udma: Add support for suppressing TDC message
dt-bindings: dma: ti: k3-udma: Add option to suppress TDCM
dmaengine: ti: k3-udma: Helper function to reset udma_chan parameters
dmaengine: ti: k3-udma: Use different byte counters in tx_status
dmaengine: ti: k3-udma: In case of error in filter_fn, reset the direction
dmaengine: ti: k3-udma: rework rflow management code
dmaengine: ti: k3-navss-udma: drop skip_psil cfg option
dmaengine: ti: k3-udma: print board res ranges
dmaengine: ti: k3-navss-udma: improve err print on rflow reservation
soc: ti: k3-ringacc: fix k3_ringacc_ring_reset_dma
arm64: dts: k3-j721e: jailhouse: Disable SW10 from root cell
arm64: dts: k3-j721e: Add gpio-keys on common processor board
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
* 'platform-ti-linux-4.19.y' of ssh://bitbucket.itg.ti.com/lcpdpublicdom/platform:
arm64: dts: ti: k3-j721e-main: Add ti,notdpkt flag to sa2ul psil-config
arm64: dts: ti: k3-am65-main: Add ti,notdpkt flag to sa2ul psil-config
crypto: sa2ul: Export function to enable trng
crypto: sa2ul: Add a member to store base address
char: hw_random: Kconfig: For ARCH_K3 add a dependency on SA2UL
dmaengine: ti: k3-udma: Add support for suppressing TDC message
dt-bindings: dma: ti: k3-udma: Add option to suppress TDCM
dmaengine: ti: k3-udma: Helper function to reset udma_chan parameters
dmaengine: ti: k3-udma: Use different byte counters in tx_status
dmaengine: ti: k3-udma: In case of error in filter_fn, reset the direction
dmaengine: ti: k3-udma: rework rflow management code
dmaengine: ti: k3-navss-udma: drop skip_psil cfg option
dmaengine: ti: k3-udma: print board res ranges
dmaengine: ti: k3-navss-udma: improve err print on rflow reservation
soc: ti: k3-ringacc: fix k3_ringacc_ring_reset_dma
arm64: dts: k3-j721e: jailhouse: Disable SW10 from root cell
arm64: dts: k3-j721e: Add gpio-keys on common processor board
Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
phy: ti: j721e-wiz: Fix "warning: unused variable ‘reg’"
There is an unused varaiable in wiz_phy_reset_deassert() that causes:
drivers/phy/ti/phy-j721e-wiz.c:692:7: warning: unused variable ‘reg’
Fixes: fa06d29814d07 ("phy: ti: j721e-wiz: Manage typec-gpio-dir")
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Acked-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
There is an unused varaiable in wiz_phy_reset_deassert() that causes:
drivers/phy/ti/phy-j721e-wiz.c:692:7: warning: unused variable ‘reg’
Fixes: fa06d29814d07 ("phy: ti: j721e-wiz: Manage typec-gpio-dir")
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Acked-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/bridge: cdns-mhdp-common: remove unneeded semicolons
Fix coccinelle warnings:
drivers/gpu/drm/bridge/cdns-mhdp-common.c:789:2-3: Unneeded semicolon
drivers/gpu/drm/bridge/cdns-mhdp-common.c:689:2-3: Unneeded semicolon
drivers/gpu/drm/bridge/cdns-mhdp-common.c:707:2-3: Unneeded semicolon
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Fix coccinelle warnings:
drivers/gpu/drm/bridge/cdns-mhdp-common.c:789:2-3: Unneeded semicolon
drivers/gpu/drm/bridge/cdns-mhdp-common.c:689:2-3: Unneeded semicolon
drivers/gpu/drm/bridge/cdns-mhdp-common.c:707:2-3: Unneeded semicolon
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/bridge: cdns-mhdp: Do not pack the scrambler and SSC to lane count
There is no need to pack scrambler and Spread Spectrum Clock setting
to lane_cnt data member in struct cdns_mhdp_host. Add separate
bit-fields for those and change the other true/false values to
bit-fields too.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
There is no need to pack scrambler and Spread Spectrum Clock setting
to lane_cnt data member in struct cdns_mhdp_host. Add separate
bit-fields for those and change the other true/false values to
bit-fields too.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/bridge: cdns-mhdp: Use new detect_ctx() instead of obsolete detect() cb
The atomic DRM driver are supposed use drm_connector_helper_funcs
detect_ctx() call back instead of the old drm_connector_funcs detect()
cb.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
The atomic DRM driver are supposed use drm_connector_helper_funcs
detect_ctx() call back instead of the old drm_connector_funcs detect()
cb.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/bridge: cdns-mhdp: fail if fast LT is used
Print an error and fail if fast LT is used. This should not happen as
fast LT is not supported, but it's better to fail than silently proceed.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Print an error and fail if fast LT is used. This should not happen as
fast LT is not supported, but it's better to fail than silently proceed.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/bridge: cdns-mhdp: clean up debug prints
Minor cleanups to debug prints.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Minor cleanups to debug prints.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/bridge: cdns-mhdp-j721e: remove useless debug prints
Remove slightly spammy debug prints that provide little value.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Remove slightly spammy debug prints that provide little value.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/bridge: cdns-mhdp: drop uses of cdns_mhdp_set_video_status
cdns_mhdp_set_video_status() is not needed with the current FW, and not
supported in future FW. So drop the calls.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
cdns_mhdp_set_video_status() is not needed with the current FW, and not
supported in future FW. So drop the calls.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
phy: phy-cadence-dp: fix typo
Rename cdns_dp_phy_set_ppl_en to cdns_dp_phy_set_pll_en.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Rename cdns_dp_phy_set_ppl_en to cdns_dp_phy_set_pll_en.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/bridge: cdns-mhdp: disable framer on bridge_disable
Disable the DP framer at bridge_disable.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Disable the DP framer at bridge_disable.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/bridge: cdns-mhdp: enable/disable VIF clk/rst
Currently the driver enables VIF stream 0 clk and deasserts reset at
probe time.
Improve the code to enable VIF stream 0 at bridge_enable, and disable it
at bridge disable.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Currently the driver enables VIF stream 0 clk and deasserts reset at
probe time.
Improve the code to enable VIF stream 0 at bridge_enable, and disable it
at bridge disable.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drm/bridge: cdns-mhdp: fix h/v sync polarities
CDNS_DP_FRAMER_SP address was wrong, and things worked by luck. Fixing
the register offset caused sync polarities to go wrong.
Drop the mode_fixup altogether, as we don't need to use hardcoded sync
polarities. It makes the code simpler if the input and output syncs are
the same.
Fix the code to write correct polarities to CDNS_HSYNC2VSYNC_POL_CTRL.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reported-by: Subhajit Paul <subhajit_paul@ti.com>
CDNS_DP_FRAMER_SP address was wrong, and things worked by luck. Fixing
the register offset caused sync polarities to go wrong.
Drop the mode_fixup altogether, as we don't need to use hardcoded sync
polarities. It makes the code simpler if the input and output syncs are
the same.
Fix the code to write correct polarities to CDNS_HSYNC2VSYNC_POL_CTRL.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reported-by: Subhajit Paul <subhajit_paul@ti.com>
drm/bridge: cdns-mhdp: fix CDNS_DP_FRAMER_GLOBAL_CONFIG handling
Fix multiple issues with CDNS_DP_FRAMER_GLOBAL_CONFIG handling:
- be32_to_cpu() was used in one place to read the register, resulting in
always reading 0, and writing that 0 back to the register.
- CDNS_DP_WR_FAILING_EDGE_VSYNC is a debug feature per documentation,
but the driver was always setting it.
- CDNS_DP_NO_VIDEO_MODE was cleared accidentally due to the first issue,
but never cleared intentionally.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reported-by: Subhajit Paul <subhajit_paul@ti.com>
Fix multiple issues with CDNS_DP_FRAMER_GLOBAL_CONFIG handling:
- be32_to_cpu() was used in one place to read the register, resulting in
always reading 0, and writing that 0 back to the register.
- CDNS_DP_WR_FAILING_EDGE_VSYNC is a debug feature per documentation,
but the driver was always setting it.
- CDNS_DP_NO_VIDEO_MODE was cleared accidentally due to the first issue,
but never cleared intentionally.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reported-by: Subhajit Paul <subhajit_paul@ti.com>
drm/bridge: cdns-mhdp: remove CDNS_DP_SW_RESET (unused)
The register is marked unused, we should not touch it.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
The register is marked unused, we should not touch it.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
arm64: dts: ti: k3-j721e-main: Add ti,notdpkt flag to sa2ul psil-config
SA2UL can not handle the teardown completion message, UDMA should suppress
sending it after the teardown completed.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Reviewed-by: Keerthy <j-keerthy@ti.com>
SA2UL can not handle the teardown completion message, UDMA should suppress
sending it after the teardown completed.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Reviewed-by: Keerthy <j-keerthy@ti.com>
arm64: dts: ti: k3-am65-main: Add ti,notdpkt flag to sa2ul psil-config
SA2UL can not handle the teardown completion message, UDMA should suppress
sending it after the teardown completed.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Reviewed-by: Keerthy <j-keerthy@ti.com>
SA2UL can not handle the teardown completion message, UDMA should suppress
sending it after the teardown completed.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Reviewed-by: Keerthy <j-keerthy@ti.com>
crypto: sa2ul: Export function to enable trng
The trng module has enable bit in the sa2ul register
space. Hence Export a function for trng driver to enable
the trng module.
Signed-off-by: Keerthy <j-keerthy@ti.com>
Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The trng module has enable bit in the sa2ul register
space. Hence Export a function for trng driver to enable
the trng module.
Signed-off-by: Keerthy <j-keerthy@ti.com>
Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
crypto: sa2ul: Add a member to store base address
Add a member to store base address of sa2ul in the
sa_crypto_data struct.
Signed-off-by: Keerthy <j-keerthy@ti.com>
Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Add a member to store base address of sa2ul in the
sa_crypto_data struct.
Signed-off-by: Keerthy <j-keerthy@ti.com>
Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
char: hw_random: Kconfig: For ARCH_K3 add a dependency on SA2UL
The enable bit is the sa2ul crypto module register space.
Hence add a dependency for K3 family.
Signed-off-by: Keerthy <j-keerthy@ti.com>
Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
The enable bit is the sa2ul crypto module register space.
Hence add a dependency for K3 family.
Signed-off-by: Keerthy <j-keerthy@ti.com>
Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
dmaengine: ti: k3-udma: Add support for suppressing TDC message
Some PSI-L peripheral can not or have identified issue with sending
Teardown Completion Message. For these threads adding ti,notdpkt will make
sure that it is suppressed.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Keerthy <j-keerthy@ti.com>
Some PSI-L peripheral can not or have identified issue with sending
Teardown Completion Message. For these threads adding ti,notdpkt will make
sure that it is suppressed.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Keerthy <j-keerthy@ti.com>
remoteproc: Add a sysfs interface for name
[ Upstream commit 6ed756aa0148a5ad0dbdced6f14f22e2f5748d35 ]
This patch adds a sysfs interface that provides the name of the
remote processor to userspace. This allows the userspace to identify
a remote processor as the remoteproc devices themselves are created
based on probe order and can change from one boot to another or
at runtime.
The name is made available in debugfs originally, and is being
retained for now. This can be cleaned up after couple of releases
once users get familiar with the new interface.
[s-anna@ti.com: cherry-pick commit '6ed756aa0148' from v5.4]
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
[ Upstream commit 6ed756aa0148a5ad0dbdced6f14f22e2f5748d35 ]
This patch adds a sysfs interface that provides the name of the
remote processor to userspace. This allows the userspace to identify
a remote processor as the remoteproc devices themselves are created
based on probe order and can change from one boot to another or
at runtime.
The name is made available in debugfs originally, and is being
retained for now. This can be cleaned up after couple of releases
once users get familiar with the new interface.
[s-anna@ti.com: cherry-pick commit '6ed756aa0148' from v5.4]
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
rpmsg: virtio_rpmsg_bus: replace "%p" with "%pK"
[ Upstream commit de4064af76537f13d74a814a962f4524e81436ac ]
The virtio_rpmsg_bus driver uses the "%p" format-specifier for
printing the vring buffer address. This prints only a hashed
pointer even for previliged users. Use "%pK" instead so that
the address can be printed during debug using kptr_restrict
sysctl.
[s-anna@ti.com: cherry-pick commit 'de4064af7653' from v5.4]
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
[ Upstream commit de4064af76537f13d74a814a962f4524e81436ac ]
The virtio_rpmsg_bus driver uses the "%p" format-specifier for
printing the vring buffer address. This prints only a hashed
pointer even for previliged users. Use "%pK" instead so that
the address can be printed during debug using kptr_restrict
sysctl.
[s-anna@ti.com: cherry-pick commit 'de4064af7653' from v5.4]
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
rpmsg: core: fix comments
[ Upstream commit 9ff166def8c1f5759555c2c94ddd0fef11a18c2b ]
Minor typos, grammar and copy/paste issues. Fix for consistency. No
functional or semantic change.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
[s-anna@ti.com: cherry-pick commit '9ff166def8c1' from v5.4]
Signed-off-by: Suman Anna <s-anna@ti.com>
[ Upstream commit 9ff166def8c1f5759555c2c94ddd0fef11a18c2b ]
Minor typos, grammar and copy/paste issues. Fix for consistency. No
functional or semantic change.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
[s-anna@ti.com: cherry-pick commit '9ff166def8c1' from v5.4]
Signed-off-by: Suman Anna <s-anna@ti.com>
samples/rpmsg: Replace print_hex_dump() with print_hex_dump_debug()
[ Upstream commit 2519fbb39711e5e6696685f29fe049af93c5987c ]
Replace the raw print_hex_dump() call in the rpmsg_sample_cb() function
with the equivalent print_hex_dump_debug() better suited for dynamic
debug. This switch allows flexibility of controlling this trace through
dynamic debug when enabled.
[s-anna@ti.com: cherry-pick commit '2519fbb39711' from v5.4]
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
[ Upstream commit 2519fbb39711e5e6696685f29fe049af93c5987c ]
Replace the raw print_hex_dump() call in the rpmsg_sample_cb() function
with the equivalent print_hex_dump_debug() better suited for dynamic
debug. This switch allows flexibility of controlling this trace through
dynamic debug when enabled.
[s-anna@ti.com: cherry-pick commit '2519fbb39711' from v5.4]
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>