]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - ti-linux-kernel/ti-linux-kernel-next.git/log
ti-linux-kernel/ti-linux-kernel-next.git
4 years agoMerge branch 'ti-linux-4.19.y-next' of git.ti.com:ti-linux-kernel/ti-linux-kernel... ti-rt-linux-4.19.y-next-20190607
LCPD Auto Merger [Fri, 7 Jun 2019 07:35:26 +0000 (02:35 -0500)]
Merge branch 'ti-linux-4.19.y-next' of git.ti.com:ti-linux-kernel/ti-linux-kernel-next into ti-rt-linux-4.19.y-next

TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel-next.git
TI-Branch: ti-linux-4.19.y-next

* 'ti-linux-4.19.y-next' of git.ti.com:ti-linux-kernel/ti-linux-kernel-next:
  remoteproc: Add a sysfs interface for name
  soc: ti: pruss: update pruss_get() to retrieve a PRUSS id
  soc: ti: pruss: store the pruss instance id
  TST: arm64: dts: ti: k3-j721e-common-proc-board: Add a mailbox test node
  TST: arm64: dts: ti: k3-j721e-main: Add mailbox loopback devices for testing
  TST: arm64: dts: ti: k3-am654-base-board: Add a mailbox test node
  TST: arm64: dts: ti: k3-am65-main: Add a mailbox loopback device for testing
  TEST: mailbox/omap: add a stand-alone test module for loopback devices
  TST: arm64: dts: ti: k3-j721e-common-proc-board: Add a hwspinlock test node
  TST: arm64: dts: ti: k3-am654-base-board: Add a hwspinlock test node
  TEST: hwspinlock/omap: Add a stand-alone unit-test module
  net: ethernet: ti: prueth: Stop building prueth on K3 platforms
  ARM: dts: k2e-evm: enable PCIe on port 1
  ARM: dts: keystone-k2e: Use the updated binding to describe PCIe in k2e
  ARM: keystone: dts: add PCI serdes driver bindings

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'ti-linux-4.19.y-for-next' of git://git.ti.com/linux-phy/kishons-ti... ti-linux-4.19.y-next-20190607
LCPD Auto Merger [Fri, 7 Jun 2019 07:28:47 +0000 (02:28 -0500)]
Merge branch 'ti-linux-4.19.y-for-next' of git://git.ti.com/linux-phy/kishons-ti-linux-kernel into ti-linux-4.19.y-next

TI-Feature: kishon_next
TI-Tree: git://git.ti.com/linux-phy/kishons-ti-linux-kernel.git
TI-Branch: ti-linux-4.19.y-for-next

* 'ti-linux-4.19.y-for-next' of git://git.ti.com/linux-phy/kishons-ti-linux-kernel:
  ARM: dts: k2e-evm: enable PCIe on port 1
  ARM: dts: keystone-k2e: Use the updated binding to describe PCIe in k2e
  ARM: keystone: dts: add PCI serdes driver bindings

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'rpmsg-ti-linux-4.19.y-next' of git://git.ti.com/rpmsg/rpmsg into ti...
LCPD Auto Merger [Fri, 7 Jun 2019 07:28:41 +0000 (02:28 -0500)]
Merge branch 'rpmsg-ti-linux-4.19.y-next' of git://git.ti.com/rpmsg/rpmsg 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:
  remoteproc: Add a sysfs interface for name
  soc: ti: pruss: update pruss_get() to retrieve a PRUSS id
  soc: ti: pruss: store the pruss instance id
  TST: arm64: dts: ti: k3-j721e-common-proc-board: Add a mailbox test node
  TST: arm64: dts: ti: k3-j721e-main: Add mailbox loopback devices for testing
  TST: arm64: dts: ti: k3-am654-base-board: Add a mailbox test node
  TST: arm64: dts: ti: k3-am65-main: Add a mailbox loopback device for testing
  TEST: mailbox/omap: add a stand-alone test module for loopback devices
  TST: arm64: dts: ti: k3-j721e-common-proc-board: Add a hwspinlock test node
  TST: arm64: dts: ti: k3-am654-base-board: Add a hwspinlock test node
  TEST: hwspinlock/omap: Add a stand-alone unit-test module
  net: ethernet: ti: prueth: Stop building prueth on K3 platforms

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into...
LCPD Auto Merger [Thu, 6 Jun 2019 23:35:00 +0000 (18:35 -0500)]
Merge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.19.y

TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.19.y

* 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel: (23 commits)
  mmc: sdhci_am654: Fix DLL trim and driver strength configuration
  mmc: sdhci_am654: Fix SLOTTYPE write
  mmc: sdhci_am654: Print error message if the DLL fails to lock
  mmc: sdhci_am654: Improve line wrapping with regmap_*() calls
  ti_config_fragments: connectivity.cfg: Enable Cadence USB3 drivers
  usb: cdns3: Implement Idle state for Type-C
  usb: cdns3: make dynamic role switching work
  usb: cdns3: use phy power on/off
  usb: cdns3: Add TI specific wrapper driver
  dt-bindings: usb: Add binding for the TI wrapper for Cadence USB3 controller
  usb: cdns3: drd: print error on xhci/dev ready timeout
  usb: cdns3: drd: don't call drd_update_mode in drd_init()
  usb: cdns3: support separate IRQs for otg/xhci/dev
  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: dwc3: debug: purge usage of strcat
  ...

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'connectivity-ti-linux-4.19.y' of git://git.ti.com/connectivity-integrat...
LCPD Auto Merger [Thu, 6 Jun 2019 22:45:30 +0000 (17:45 -0500)]
Merge branch 'connectivity-ti-linux-4.19.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel into ti-linux-4.19.y

TI-Feature: connectivity
TI-Tree: git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel.git
TI-Branch: connectivity-ti-linux-4.19.y

* 'connectivity-ti-linux-4.19.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel: (23 commits)
  mmc: sdhci_am654: Fix DLL trim and driver strength configuration
  mmc: sdhci_am654: Fix SLOTTYPE write
  mmc: sdhci_am654: Print error message if the DLL fails to lock
  mmc: sdhci_am654: Improve line wrapping with regmap_*() calls
  ti_config_fragments: connectivity.cfg: Enable Cadence USB3 drivers
  usb: cdns3: Implement Idle state for Type-C
  usb: cdns3: make dynamic role switching work
  usb: cdns3: use phy power on/off
  usb: cdns3: Add TI specific wrapper driver
  dt-bindings: usb: Add binding for the TI wrapper for Cadence USB3 controller
  usb: cdns3: drd: print error on xhci/dev ready timeout
  usb: cdns3: drd: don't call drd_update_mode in drd_init()
  usb: cdns3: support separate IRQs for otg/xhci/dev
  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: dwc3: debug: purge usage of strcat
  ...

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into...
LCPD Auto Merger [Thu, 6 Jun 2019 05:35:19 +0000 (00:35 -0500)]
Merge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.19.y

TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.19.y

* 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
  arm64: dts: ti: k3-j721e-main: Add IPC sub-mailbox nodes for all R5Fs & DSPs
  arm64: dts: ti: k3-j721e-main: Add mailbox cluster nodes
  dt-bindings: mailbox: omap: Update binding for J721E SoCs
  arm64: dts: ti: k3-j721e-main: Add hwspinlock node
  dt-bindings: hwlock: Update OMAP HwSpinlock binding for J721E SoCs
  mailbox/omap: Simplify mbox_msg_t usage
  arm64: dts: ti: k3-am65-main: Move mailbox nodes to main_navss interconnect
  arm64: dts: ti: k3-am65-main: Move hwspinlock node to main_navss interconnect

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'rpmsg-ti-linux-4.19.y-intg' of git://git.ti.com/rpmsg/rpmsg into ti...
LCPD Auto Merger [Thu, 6 Jun 2019 03:45:09 +0000 (22:45 -0500)]
Merge branch 'rpmsg-ti-linux-4.19.y-intg' of git://git.ti.com/rpmsg/rpmsg into ti-linux-4.19.y

TI-Feature: rpmsg
TI-Tree: git://git.ti.com/rpmsg/rpmsg.git
TI-Branch: rpmsg-ti-linux-4.19.y-intg

* 'rpmsg-ti-linux-4.19.y-intg' of git://git.ti.com/rpmsg/rpmsg:
  arm64: dts: ti: k3-j721e-main: Add IPC sub-mailbox nodes for all R5Fs & DSPs
  arm64: dts: ti: k3-j721e-main: Add mailbox cluster nodes
  dt-bindings: mailbox: omap: Update binding for J721E SoCs
  arm64: dts: ti: k3-j721e-main: Add hwspinlock node
  dt-bindings: hwlock: Update OMAP HwSpinlock binding for J721E SoCs
  mailbox/omap: Simplify mbox_msg_t usage
  arm64: dts: ti: k3-am65-main: Move mailbox nodes to main_navss interconnect
  arm64: dts: ti: k3-am65-main: Move hwspinlock node to main_navss interconnect

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoremoteproc: Add a sysfs interface for name
Suman Anna [Wed, 13 Mar 2019 19:13:31 +0000 (14:13 -0500)]
remoteproc: Add a sysfs interface for name

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.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agosoc: ti: pruss: update pruss_get() to retrieve a PRUSS id
Suman Anna [Fri, 3 May 2019 00:06:26 +0000 (19:06 -0500)]
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.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agosoc: ti: pruss: store the pruss instance id
Suman Anna [Thu, 2 May 2019 22:18:05 +0000 (17:18 -0500)]
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>
4 years agoTST: arm64: dts: ti: k3-j721e-common-proc-board: Add a mailbox test node
Suman Anna [Thu, 30 May 2019 16:55:14 +0000 (11:55 -0500)]
TST: arm64: dts: ti: k3-j721e-common-proc-board: Add a mailbox test node

Add mbox_test node to the K3 J721E common processor board upon which the
mailbox can be tested. The node can be used to test any of the loopback
sub-mailbox nodes on each of the enabled Mailbox Clusters 0 through 4,
one at a time.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoTST: arm64: dts: ti: k3-j721e-main: Add mailbox loopback devices for testing
Suman Anna [Tue, 29 Jan 2019 21:52:28 +0000 (15:52 -0600)]
TST: arm64: dts: ti: k3-j721e-main: Add mailbox loopback devices for testing

Add some loopback sub-mailbox devices within each of the Mailbox Clusters
0 through 4 on the J721E SoCs for testing. The loopback device uses the
same mailbox fifo for sending and receiving messages on the MPU itself,
facilitating a unit-test. The last FIFO within each cluster is chosen for
the loopback to not conflict with the actual FIFOs at the beginning that
will be used to communicate with the remote processors.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoTST: arm64: dts: ti: k3-am654-base-board: Add a mailbox test node
Suman Anna [Fri, 18 May 2018 16:23:05 +0000 (11:23 -0500)]
TST: arm64: dts: ti: k3-am654-base-board: Add a mailbox test node

Add a mbox_test node to the AM654 base board which allows the
mailbox to be tested on any of the derivative boards. The node
can be used to test any of the loopback sub-mailbox nodes on each
of the enabled Mailbox Clusters 0 or 1, one at a time.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoTST: arm64: dts: ti: k3-am65-main: Add a mailbox loopback device for testing
Suman Anna [Thu, 29 Jun 2017 00:13:33 +0000 (19:13 -0500)]
TST: arm64: dts: ti: k3-am65-main: Add a mailbox loopback device for testing

Add a loopback sub-mailbox device within Mailbox clusters 1 and 2 on the
AM65x SoCs for testing. The loopback device uses the same mailbox fifo
for sending and receiving messages on the MPU itself, facilitating a
unit-test. The last FIFO within the IP is chosen for the loopback to
not conflict with the actual FIFOs at the beginning that will be used
to communicate with the remote processors.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoTEST: mailbox/omap: add a stand-alone test module for loopback devices
Suman Anna [Fri, 13 Jul 2018 20:46:05 +0000 (15:46 -0500)]
TEST: mailbox/omap: add a stand-alone test module for loopback devices

Add a preliminary unit-test module for the OMAP Mailbox driver. The test
uses the API provided by the Mailbox framework and performs a loop-back
test (send and receive on the same OMAP Mailbox FIFO on the Linux host
processor). The test module requires specific sub-mailbox loop-back child
device(s) to be added to the desired OMAP Mailbox nodes, and a test node
referencing the added sub-mailbox nodes.

Two module parameters, 'count' (default = 16) and 'mbox_id' (default = 0),
are provided to dictate the number of messages to be exchanged and the
index of the sub-mailbox device in the test node's mboxes property. The
test status and number of messages received are printed upon the module's
removal.

NOTE:
The module needs to be installed and uninstalled with specific mbox_id
parameter to test the corresponding loopback sub-device if the test node
has multiple sub-devices to test.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoTST: arm64: dts: ti: k3-j721e-common-proc-board: Add a hwspinlock test node
Suman Anna [Thu, 30 May 2019 16:34:55 +0000 (11:34 -0500)]
TST: arm64: dts: ti: k3-j721e-common-proc-board: Add a hwspinlock test node

Add hwspin_test node to the K3 J721E common processor board upon which the
hwspinlock DT client usage can be tested.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoTST: arm64: dts: ti: k3-am654-base-board: Add a hwspinlock test node
Suman Anna [Mon, 11 Jun 2018 23:15:28 +0000 (18:15 -0500)]
TST: arm64: dts: ti: k3-am654-base-board: Add a hwspinlock test node

Add hwspin_test node to the K3 AM654 base board upon which the
hwspinlock DT client usage can be tested.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoTEST: hwspinlock/omap: Add a stand-alone unit-test module
Suman Anna [Mon, 25 Mar 2019 21:57:45 +0000 (16:57 -0500)]
TEST: hwspinlock/omap: Add a stand-alone unit-test module

Add an unit-test module to test all the possible hwspinlocks supported
on a bank using the regular hwspinlock request API. The module also
tests DT client usage optionally (based on presence of a test-node)
using the appropriate OF request API of_hwspin_get_lock_id() request
API.

The test module is re-implemented as a regular module instead of a
platform driver so that it can be run even without the presence of any
test nodes. The module uses some SoC data for figuring out the maximum
number of locks on a SoC.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agonet: ethernet: ti: prueth: Stop building prueth on K3 platforms
Suman Anna [Fri, 3 May 2019 00:21:19 +0000 (19:21 -0500)]
net: ethernet: ti: prueth: Stop building prueth on K3 platforms

The PRU Ethernet driver is only applicable for SoCs containing a
PRUSS subsystem, and there is a separate equivalent driver for
SoCs containing the next generation ICSSG subsystem. The driver
currently depends on PRU_REMOTEPROC which is also enabled for TI
K3 family of SoCs, and therefore is getting built for TI K3 platforms
as well. Add an additional Kconfig dependency so that the driver
is not built for K3 platforms.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoMerge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into...
LCPD Auto Merger [Wed, 5 Jun 2019 21:36:08 +0000 (16:36 -0500)]
Merge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.19.y

TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.19.y

* 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
  dmaengine: ti: k3-udma: Make slave TR mode operational with PDMAs
  dmaengine: ti: k3-udma: Fix kernel crash when _prep* callback fails
  dmaengine: ti: k3-udma: new workaround for packet mode rx
  dmaengine: ti: k3-udma: Use define for the default ring size

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoarm64: dts: ti: k3-j721e-main: Add IPC sub-mailbox nodes for all R5Fs & DSPs
Suman Anna [Wed, 5 Jun 2019 03:22:28 +0000 (03:22 +0000)]
arm64: dts: ti: k3-j721e-main: Add IPC sub-mailbox nodes for all R5Fs & DSPs

Add the sub-mailbox nodes that are used to communicate between MPU and
various remote processors present in the J721E SoCs. These include the
R5F remote processors in the dual-R5F cluster (MCU_R5FSS0) in the MCU
domain and the two dual-R5F clusters (MAIN_R5FSS0 & MAIN_R5FSS1) in the
MAIN domain; the two C66x DSP remote processors and the single C71x DSP
remote processor in the MAIN domain. The parent mailbox cluster nodes
are also enabled.

The sub-mailbox nodes utilize the System Mailbox clusters 0 through 4.
These sub-mailbox nodes are added to match the hard-coded mailbox
configuration used within the TI RTOS IPC software packages. The R5F
processor sub-systems are assumed to be running in Split mode, so a
sub-mailbox node is used by each of the R5F cores. The sub-mailbox node
for the first R5F core in each cluster is used in case of Lockstep mode.

NOTE:
The GIC_SPI interrupts to be used are dynamically allocated and managed
by the System Firmware through the ti-sci-irqchip driver. So, only valid
interrupts (each cluster's User 0 IRQ output) that are used by the
sub-mailbox devices are enabled. This is done to minimize the number
of NavSS Interrupt Router outputs utilized.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoarm64: dts: ti: k3-j721e-main: Add mailbox cluster nodes
Suman Anna [Wed, 5 Jun 2019 03:22:27 +0000 (03:22 +0000)]
arm64: dts: ti: k3-j721e-main: Add mailbox cluster nodes

The J721E Main NavSS block contains a Mailbox IP instance with
multiple clusters. Each cluster is equivalent to an Mailbox IP
instance on OMAP platforms.

Add all the Mailbox clusters as their own nodes under the MAIN
NavSS cbass_main_navss interconnect node instead of creating an
almost empty parent node for the new K3 mailbox IP and the clusters
as its child nodes. All these nodes are marked as disabled, and
they need to be enabled along with the appropriate child nodes
on a need basis.

NOTE:
The NavSS only has a limited number of interrupts, so all the
interrupts generated by a Mailbox IP are not added by default.
Only the needed interrupts that are targeted towards the A72
GIC will need to be be added later on when some sub-mailbox
child nodes are added.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agodt-bindings: mailbox: omap: Update binding for J721E SoCs
Suman Anna [Wed, 5 Jun 2019 03:22:26 +0000 (03:22 +0000)]
dt-bindings: mailbox: omap: Update binding for J721E SoCs

Update the existing OMAP Mailbox binding to include the info
for J721E SoCs. The same compatible from AM65x SoCs is reused
for J721E SoCs as well.

The overall binding has also been updated to add additional
details, fix up various typos and update the AM65x example
to reflect the latest usage.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoarm64: dts: ti: k3-j721e-main: Add hwspinlock node
Suman Anna [Sat, 1 Jun 2019 04:56:41 +0000 (04:56 +0000)]
arm64: dts: ti: k3-j721e-main: Add hwspinlock node

The Main NavSS block on J721E SoCs contains a HwSpinlock IP instance that
is same as the IP on AM65x SoCs and similar to the IP on some OMAP SoCs.
Add the DT node for this on J721E SoCs. The node is present within the
Main NavSS block, and is added as a child node under the cbass_main_navss
interconnect node.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agodt-bindings: hwlock: Update OMAP HwSpinlock binding for J721E SoCs
Suman Anna [Sat, 1 Jun 2019 04:56:40 +0000 (04:56 +0000)]
dt-bindings: hwlock: Update OMAP HwSpinlock binding for J721E SoCs

Update the existing OMAP HwSpinlock binding to also include the
info for J721E SoCs. The same compatible from AM65x SoCs is
reused for J721E SoCs as well. The AM65x example is also updated
to reflect the new interconnect location.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoMerge branch 'rpmsg-ti-linux-4.19.y' of git://git.ti.com/rpmsg/rpmsg into rpmsg-ti...
Suman Anna [Wed, 5 Jun 2019 20:45:40 +0000 (15:45 -0500)]
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>
4 years agoMerge branch 'topic/4.19/am65x' of git://git.ti.com/rpmsg/remoteproc into rpmsg-ti...
Suman Anna [Wed, 5 Jun 2019 19:47:52 +0000 (14:47 -0500)]
Merge branch 'topic/4.19/am65x' of git://git.ti.com/rpmsg/remoteproc into rpmsg-ti-linux-4.19.y

Pull in the dedicated AM65x remoteproc topic branch to bring in couple
of AM65x mailbox cleanup patches. Changes include mbox_msg_t type
simplification and the relocation of the AM65x Mailbox DT nodes from
the cbass_main interconnect node to the more accurate main_navss
interconnect node.

* 'topic/4.19/am65x' of git://git.ti.com/rpmsg/remoteproc:
  mailbox/omap: Simplify mbox_msg_t usage
  arm64: dts: ti: k3-am65-main: Move mailbox nodes to main_navss interconnect

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoMerge branch 'mailbox-linux-4.19.y' of git://git.ti.com/rpmsg/mailbox into topic...
Suman Anna [Wed, 5 Jun 2019 19:30:49 +0000 (14:30 -0500)]
Merge branch 'mailbox-linux-4.19.y' of git://git.ti.com/rpmsg/mailbox into topic/4.19/am65x

Merge in the mailbox feature tree into the AM65x remoteproc topic branch
that pulls in the changes to simplify the mbox_msg_t usage and move the
AM65x Mailbox DT node from cbass_main interconnect node to the more
accurate main_navss interconnect node.

* 'mailbox-linux-4.19.y' of git://git.ti.com/rpmsg/mailbox:
  mailbox/omap: Simplify mbox_msg_t usage
  arm64: dts: ti: k3-am65-main: Move mailbox nodes to main_navss interconnect

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoMerge branch 'platform-ti-linux-4.19.y' of git://git.ti.com/~rrnayak/ti-linux-kernel...
LCPD Auto Merger [Wed, 5 Jun 2019 08:44:52 +0000 (03:44 -0500)]
Merge branch 'platform-ti-linux-4.19.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree into ti-linux-4.19.y

TI-Feature: platform_base
TI-Tree: git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree.git
TI-Branch: platform-ti-linux-4.19.y

* 'platform-ti-linux-4.19.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree:
  dmaengine: ti: k3-udma: Make slave TR mode operational with PDMAs
  dmaengine: ti: k3-udma: Fix kernel crash when _prep* callback fails
  dmaengine: ti: k3-udma: new workaround for packet mode rx
  dmaengine: ti: k3-udma: Use define for the default ring size

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agomailbox/omap: Simplify mbox_msg_t usage
Suman Anna [Mon, 3 Jun 2019 21:13:47 +0000 (16:13 -0500)]
mailbox/omap: Simplify mbox_msg_t usage

Simplify the mbox_msg_t type definition and the to_omap_mbox_msg
macro to use the uintptr_t type that can scale better to both
32-bit and 64-bit platforms.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoMerge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into...
LCPD Auto Merger [Tue, 4 Jun 2019 15:34:56 +0000 (10:34 -0500)]
Merge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.19.y

TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.19.y

* 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
  ASoC: pcm3168a: Implement set_tdm_slot callback
  ASoC: pcm3168a: Enable TDM support for DSP_A/B modes

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'audio_display-ti-linux-4.19.y' of git.ti.com:~jyrisarha/ti-linux-kernel...
LCPD Auto Merger [Tue, 4 Jun 2019 14:24:00 +0000 (09:24 -0500)]
Merge branch 'audio_display-ti-linux-4.19.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree into ti-linux-4.19.y

TI-Feature: audio-display
TI-Tree: git@git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
TI-Branch: audio_display-ti-linux-4.19.y

* 'audio_display-ti-linux-4.19.y' of git.ti.com:~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree:
  ASoC: pcm3168a: Implement set_tdm_slot callback
  ASoC: pcm3168a: Enable TDM support for DSP_A/B modes

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio...
Jyri Sarha [Tue, 4 Jun 2019 12:27:03 +0000 (15:27 +0300)]
Merge branch 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio/linux-audio into audio_display-ti-linux-4.19.y

2019.02 - pcm3168a fixes needed for j721e

* 'peter/ti-linux-4.19.y/topic/audio' of https://github.com/omap-audio/linux-audio:
  ASoC: pcm3168a: Implement set_tdm_slot callback
  ASoC: pcm3168a: Enable TDM support for DSP_A/B modes

4 years agoASoC: pcm3168a: Implement set_tdm_slot callback
Peter Ujfalusi [Thu, 23 May 2019 14:07:46 +0000 (17:07 +0300)]
ASoC: pcm3168a: Implement set_tdm_slot callback

Initially we only going to care about the slot_width as for example
DSP_A/B needs 32 bclk per slots and to be able to use TDM mode the codec
(and CPU) needs to use DSP_A/B modes.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
4 years agoASoC: pcm3168a: Enable TDM support for DSP_A/B modes
Peter Ujfalusi [Wed, 17 Apr 2019 11:31:40 +0000 (14:31 +0300)]
ASoC: pcm3168a: Enable TDM support for DSP_A/B modes

The 24-bit TDM mode also applies to DSP_A and DSP_B modes.
Most dais on the SoC side can not interpret I2S/Left_j with other than 2
channels of audio.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
4 years agodmaengine: ti: k3-udma: Make slave TR mode operational with PDMAs
Peter Ujfalusi [Fri, 26 Apr 2019 10:54:53 +0000 (13:54 +0300)]
dmaengine: ti: k3-udma: Make slave TR mode operational with PDMAs

If we use TR mode for peripherals (serviced by PDMA) which is not a
streaming type (cyclic) then PDMA will not return all the data it has
received from the remote end causing the RX operation to stall.

However telling PDMA to close the packet and flush it's FIFO makes the TR
slave mode operational with the same limitation as with packet mode.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
4 years agodmaengine: ti: k3-udma: Fix kernel crash when _prep* callback fails
Peter Ujfalusi [Fri, 26 Apr 2019 12:40:06 +0000 (15:40 +0300)]
dmaengine: ti: k3-udma: Fix kernel crash when _prep* callback fails

Since the descriptor is not yet prepared, the vd->tx.chan is not yet valid
and when trying to free up the memory we will hit NULL pointer dereference.

Change the udma_free_hwdesc() parameters to fix this.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
4 years agodmaengine: ti: k3-udma: new workaround for packet mode rx
Peter Ujfalusi [Fri, 26 Apr 2019 07:07:50 +0000 (10:07 +0300)]
dmaengine: ti: k3-udma: new workaround for packet mode rx

Instead of creating a temporary continuous buffer to do the transfer and
when it is finished copy the received data back to the client's sgl:

Create host buffer descriptors for each sg section and push them to fdr and
let UDMA to fill them and return the packet.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
4 years agodmaengine: ti: k3-udma: Use define for the default ring size
Peter Ujfalusi [Fri, 26 Apr 2019 07:07:49 +0000 (10:07 +0300)]
dmaengine: ti: k3-udma: Use define for the default ring size

In case we might need to adjust the ring size it is going to be easier if
there is only one place to touch.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
4 years agoMerge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into...
LCPD Auto Merger [Tue, 4 Jun 2019 08:34:01 +0000 (03:34 -0500)]
Merge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.19.y

TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.19.y

* 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
  dt-bindings: pinctrl: k3: Introduce pinmux definitions for J721E
  arm64: dts: ti: k3-j721e: Update the power domain cells
  arm64: dts: ti: k3-j721e-main: Add Main NavSS Interrupt controller node
  Revert "soc: ti: am6: Enable interrupt controller drivers"
  Revert "soc: ti: Add TI_MESSAGE_MANAGER to default K3 AM65x SoC options"
  arm64: arch_k3: Enable interrupt controller drivers

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'platform-ti-linux-4.19.y' of git://git.ti.com/~rrnayak/ti-linux-kernel...
LCPD Auto Merger [Tue, 4 Jun 2019 07:44:58 +0000 (02:44 -0500)]
Merge branch 'platform-ti-linux-4.19.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree into ti-linux-4.19.y

TI-Feature: platform_base
TI-Tree: git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree.git
TI-Branch: platform-ti-linux-4.19.y

* 'platform-ti-linux-4.19.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree:
  dt-bindings: pinctrl: k3: Introduce pinmux definitions for J721E
  arm64: dts: ti: k3-j721e: Update the power domain cells
  arm64: dts: ti: k3-j721e-main: Add Main NavSS Interrupt controller node
  Revert "soc: ti: am6: Enable interrupt controller drivers"
  Revert "soc: ti: Add TI_MESSAGE_MANAGER to default K3 AM65x SoC options"
  arm64: arch_k3: Enable interrupt controller drivers

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'hwspinlock-linux-4.19.y' of git://git.ti.com/rpmsg/hwspinlock into...
Suman Anna [Mon, 3 Jun 2019 15:46:19 +0000 (10:46 -0500)]
Merge branch 'hwspinlock-linux-4.19.y' of git://git.ti.com/rpmsg/hwspinlock into rpmsg-ti-linux-4.19.y

Pull in the hwspinlock feature tree that moves the AM65x HwSpinlock DT
node from cbass_main interconnect node to the more accurate main_navss
interconnect node.

* 'hwspinlock-linux-4.19.y' of git://git.ti.com/rpmsg/hwspinlock:
  arm64: dts: ti: k3-am65-main: Move hwspinlock node to main_navss interconnect

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agommc: sdhci_am654: Fix DLL trim and driver strength configuration
Faiz Abbas [Fri, 10 May 2019 04:07:25 +0000 (09:37 +0530)]
mmc: sdhci_am654: Fix DLL trim and driver strength configuration

DLL trim and driver strength are one-time configurations which don't
need to be redone every time the DLL frequency is changed. Move this
configuration to the sdhci_am654_init() call.

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agommc: sdhci_am654: Fix SLOTTYPE write
Faiz Abbas [Fri, 10 May 2019 04:07:24 +0000 (09:37 +0530)]
mmc: sdhci_am654: Fix SLOTTYPE write

In the call to regmap_update_bits() for SLOTTYPE, the mask and value
fields are exchanged. Fix this. This didn't have any affect on behaviour
because this was a NOP and it was taking the correct value from the
bootloader.

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agommc: sdhci_am654: Print error message if the DLL fails to lock
Faiz Abbas [Fri, 10 May 2019 04:07:23 +0000 (09:37 +0530)]
mmc: sdhci_am654: Print error message if the DLL fails to lock

Print an error message and return if DLL fails to lock.

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agommc: sdhci_am654: Improve line wrapping with regmap_*() calls
Faiz Abbas [Fri, 10 May 2019 04:07:22 +0000 (09:37 +0530)]
mmc: sdhci_am654: Improve line wrapping with regmap_*() calls

Line wrapping with the regmap_*() functions is way more conservative
than required by the 80 character rule. Expand the function calls out to
use less number of lines.

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agoti_config_fragments: connectivity.cfg: Enable Cadence USB3 drivers
Roger Quadros [Thu, 30 May 2019 09:15:44 +0000 (12:15 +0300)]
ti_config_fragments: connectivity.cfg: Enable Cadence USB3 drivers

This is required for USB support on J721e.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb: cdns3: Implement Idle state for Type-C
Roger Quadros [Thu, 30 May 2019 09:15:43 +0000 (12:15 +0300)]
usb: cdns3: Implement Idle state for Type-C

For Type-C we need to have clear indication of
cable detached state so that we can keep Host and
Gadget controllers in idle state and program
the Lane swap feature during the next cable attach,
before starting Host/Gadget controllers.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb: cdns3: make dynamic role switching work
Roger Quadros [Thu, 30 May 2019 09:15:42 +0000 (12:15 +0300)]
usb: cdns3: make dynamic role switching work

We need to the flow as in "Figure 14. Software OTG Control"
in user guide.

This meens we need to request for HOST_BUS_REQ/DEV_BUS_REQ
while starting host/device role respectively.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb: cdns3: use phy power on/off
Roger Quadros [Thu, 30 May 2019 09:15:40 +0000 (12:15 +0300)]
usb: cdns3: use phy power on/off

PHY needs to be powered on.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb: cdns3: Add TI specific wrapper driver
Roger Quadros [Thu, 30 May 2019 09:15:39 +0000 (12:15 +0300)]
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>
4 years agodt-bindings: usb: Add binding for the TI wrapper for Cadence USB3 controller
Roger Quadros [Thu, 30 May 2019 09:15:38 +0000 (12:15 +0300)]
dt-bindings: usb: Add binding for the TI wrapper for Cadence USB3 controller

TI platforms have a wrapper module around the Cadence USB3
controller. Add binding information for that.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb: cdns3: drd: print error on xhci/dev ready timeout
Roger Quadros [Thu, 30 May 2019 09:15:37 +0000 (12:15 +0300)]
usb: cdns3: drd: print error on xhci/dev ready timeout

Print an error message if XHCI_READY or DEV_READY times out.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb: cdns3: drd: don't call drd_update_mode in drd_init()
Roger Quadros [Thu, 30 May 2019 09:15:36 +0000 (12:15 +0300)]
usb: cdns3: drd: don't call drd_update_mode in drd_init()

At drd_init(), 'desired_dr_mode' is not yet correctly set
based on enabled drivers and dr_mode in DT. So don't call
drd_update_mode() from here.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb: cdns3: support separate IRQs for otg/xhci/dev
Roger Quadros [Thu, 30 May 2019 09:15:35 +0000 (12:15 +0300)]
usb: cdns3: support separate IRQs for otg/xhci/dev

Some platforms (e.g. TI J721e) have separate interrupt lines
for OTG, XHCI and Device controllers. Provide for that.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb:cdns3 Fix for stuck packets in on-chip OUT buffer.
Pawel Laszczak [Thu, 30 May 2019 09:15:34 +0000 (12:15 +0300)]
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: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb:cdns3 Add Cadence USB3 DRD Driver
Pawel Laszczak [Thu, 30 May 2019 09:15:33 +0000 (12:15 +0300)]
usb:cdns3 Add Cadence USB3 DRD Driver

This patch introduce new Cadence USBSS DRD driver to Linux kernel.

The Cadence USBSS DRD Driver 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: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agodt-bindings: pinctrl: k3: Introduce pinmux definitions for J721E
Lokesh Vutla [Fri, 31 May 2019 06:24:35 +0000 (11:54 +0530)]
dt-bindings: pinctrl: k3: Introduce pinmux definitions for J721E

Add pinctrl macros for J721E SoC. These macro definitions are
similar to that of AM6, but adding new definitions to avoid
any naming confusions in the soc dts files.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Acked-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
4 years agoarm64: dts: ti: k3-j721e: Update the power domain cells
Subhajit Paul [Fri, 31 May 2019 06:24:34 +0000 (11:54 +0530)]
arm64: dts: ti: k3-j721e: Update the power domain cells

Update the power-domain cells to 2 and mark all devices as
exclusive.

Signed-off-by: Subhajit Paul <subhajit_paul@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
4 years agoarm64: dts: ti: k3-j721e-main: Add Main NavSS Interrupt controller node
Suman Anna [Fri, 31 May 2019 15:43:43 +0000 (10:43 -0500)]
arm64: dts: ti: k3-j721e-main: Add Main NavSS Interrupt controller node

Add the Interrupt controller node for the Interrupt Router present within
the Main NavSS module. This Interrupt Router can route 192 interrupts to
the GIC_SPI in 3 sets of 64 interrupts each. Note that the last set is
reserved for the host ID A72_3 for hypervisor usecases, so the node is
added only with 2 sets for the Linux kernel context (host id A72_2). This
is specified through the ti,sci-rm-range-girq property, and matches the
RM board config in the system-firmware-image-gen repo.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoRevert "soc: ti: am6: Enable interrupt controller drivers"
Suman Anna [Fri, 31 May 2019 15:43:42 +0000 (10:43 -0500)]
Revert "soc: ti: am6: Enable interrupt controller drivers"

This reverts commit 4c94b81b8891374830c3140943cea92b55bc57bd.

The TI_SCI_PROTOCOL and the K3 irqchip driver symbols TI_SCI_INTR_IRQCHIP
and TI_SCI_INTA_IRQCHIP are common to all existing K3 SoCs, and so are
selected properly under the ARCH_K3 Kconfig symbol. These Kconfig symbols
therefore need not be selected under the SoC-specific ARCH_K3_AM6_SOC
Kconfig symbol, so drop these.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoRevert "soc: ti: Add TI_MESSAGE_MANAGER to default K3 AM65x SoC options"
Suman Anna [Fri, 31 May 2019 15:43:41 +0000 (10:43 -0500)]
Revert "soc: ti: Add TI_MESSAGE_MANAGER to default K3 AM65x SoC options"

This reverts commit 6d30136ffe31b55673c210e67af72a1c3864bb14.

The TI_SCI_PROTOCOL and TI_MESSAGE_MANAGER Kconfig options are essential
for all existing K3 SoCs, and so are selected properly under the ARCH_K3
Kconfig symbol. The TI_MESSAGE_MANAGER Kconfig therefore need not be
selected under the SoC-specific ARCH_K3_AM6_SOC Kconfig symbol, so drop
this.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoarm64: arch_k3: Enable interrupt controller drivers
Lokesh Vutla [Fri, 31 May 2019 15:43:40 +0000 (10:43 -0500)]
arm64: arch_k3: Enable interrupt controller drivers

commit 009669e7481361470f7667c96a96893c8ba5f461 upstream.

Select the TISCI Interrupt Router, Aggregator drivers and all its
dependencies for TI's SoCs based on K3 architecture.

Suggested-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
[s-anna@ti.com: cherry-pick commit '009669e74813' from v5.2]
Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoarm64: dts: ti: k3-am65-main: Move mailbox nodes to main_navss interconnect
Suman Anna [Fri, 31 May 2019 16:25:22 +0000 (11:25 -0500)]
arm64: dts: ti: k3-am65-main: Move mailbox nodes to main_navss interconnect

All the Mailbox cluster nodes were currently added directly under the
cbass_main interconnect node, even though the Mailbox IP is present within
the Main NavSS sub-module and is accessible from the MPU through the Main
NavSS local interconnect. The Main NavSS interconnect is represented as
its own interconnect node, so move all these nodes under the main_navss
interconnect node.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoarm64: dts: ti: k3-am65-main: Move hwspinlock node to main_navss interconnect
Suman Anna [Fri, 31 May 2019 16:17:49 +0000 (11:17 -0500)]
arm64: dts: ti: k3-am65-main: Move hwspinlock node to main_navss interconnect

The commit c18a938bdbac ("arm64: dts: ti: k3-am65-main: Add hwspinlock
node") had previously added the HwSpinlock node directly under the
cbass_main interconnect node even though it is connected on the Main
NavSS local interconnect. The Main NavSS interconnect is represented
as its own interconnect node, so move this node under the main_navss
interconnect node.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agousb:common Simplify usb_decode_get_set_descriptor function.
Pawel Laszczak [Thu, 30 May 2019 09:15:32 +0000 (12:15 +0300)]
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: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb:common Patch simplify usb_decode_set_clear_feature function.
Pawel Laszczak [Thu, 30 May 2019 09:15:31 +0000 (12:15 +0300)]
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: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb:common Separated decoding functions from dwc3 driver.
Pawel Laszczak [Thu, 30 May 2019 09:15:30 +0000 (12:15 +0300)]
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: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agodt-bindings: add binding for USBSS-DRD controller.
Pawel Laszczak [Thu, 30 May 2019 09:15:29 +0000 (12:15 +0300)]
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: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb: dwc3: debug: purge usage of strcat
Felipe Balbi [Thu, 30 May 2019 09:15:28 +0000 (12:15 +0300)]
usb: dwc3: debug: purge usage of strcat

commit 1381a5113caf764f090b912b478663275e7b999e upstream.

Now that buffer size is always passed around, we don't need to rely on
strcat anymore.

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb: dwc3: trace: pass trace buffer size to decoding functions
Felipe Balbi [Thu, 30 May 2019 09:15:27 +0000 (12:15 +0300)]
usb: dwc3: trace: pass trace buffer size to decoding functions

commit 7790b3556fccc555ae422f1576e97bf34c8ab8b6 upstream.

Instead of assuming that our buffer is big enough, let's pass the
buffer size around so printing functions can make sure they won't
overflow the buffer.

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb: dwc3: trace: log ep commands in hex
Felipe Balbi [Thu, 30 May 2019 09:15:26 +0000 (12:15 +0300)]
usb: dwc3: trace: log ep commands in hex

commit 1517265228b4ea6b89379fa8e134e62f75ea1dfe upstream.

They are much more useful in hexadecimal than in decimal. Moreover,
generic commands are already logged in hex.

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agousb: dwc3: debugfs: Properly print/set link state for HS
Thinh Nguyen [Thu, 30 May 2019 09:15:25 +0000 (12:15 +0300)]
usb: dwc3: debugfs: Properly print/set link state for HS

commit 0d36dede457873404becd7c9cb9d0f2bcfd0dcd9 upstream.

Highspeed device and below has different state names than superspeed and
higher. Add proper checks and printouts of link states for highspeed and
below.

Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agoMerge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into...
LCPD Auto Merger [Thu, 30 May 2019 07:35:15 +0000 (02:35 -0500)]
Merge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.19.y

TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.19.y

* 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
  firmware: ti_sci: extend clock identifiers from u8 to u32
  clk: keystone: sci-clk: extend clock IDs to 32 bits
  clk: keystone: sci-clk: cut down the clock name length
  arm64: defconfig: Enable TI's J721E SoC platform
  arm64: dts: ti: Add support for J721E Common Processor Board
  soc: ti: Add Support for J721E SoC config option
  arm64: dts: ti: Add Support for J721E SoC
  dt-bindings: serial: 8250_omap: Add compatible for J721E UART controller
  dt-bindings: arm: ti: Add bindings for J721E SoC

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'platform-ti-linux-4.19.y' of git://git.ti.com/~rrnayak/ti-linux-kernel...
LCPD Auto Merger [Thu, 30 May 2019 06:44:43 +0000 (01:44 -0500)]
Merge branch 'platform-ti-linux-4.19.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree into ti-linux-4.19.y

TI-Feature: platform_base
TI-Tree: git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree.git
TI-Branch: platform-ti-linux-4.19.y

* 'platform-ti-linux-4.19.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree:
  firmware: ti_sci: extend clock identifiers from u8 to u32
  clk: keystone: sci-clk: extend clock IDs to 32 bits
  clk: keystone: sci-clk: cut down the clock name length
  arm64: defconfig: Enable TI's J721E SoC platform
  arm64: dts: ti: Add support for J721E Common Processor Board
  soc: ti: Add Support for J721E SoC config option
  arm64: dts: ti: Add Support for J721E SoC
  dt-bindings: serial: 8250_omap: Add compatible for J721E UART controller
  dt-bindings: arm: ti: Add bindings for J721E SoC

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agofirmware: ti_sci: extend clock identifiers from u8 to u32
Tero Kristo [Tue, 30 Apr 2019 11:31:33 +0000 (14:31 +0300)]
firmware: ti_sci: extend clock identifiers from u8 to u32

Future SoCs are going to have more than 255 device clocks in certain cases,
and thus the API must be extended to support this. The support is done in
backwards compatible extension, in which the new u32 clock identifier
fields are only used if the existing u8 size clock identifier is set as
255. In all the other cases, the existing u8 clock identifier is used. As
the size of the messages sent / received is not verified for existing
devices / old firmware, increasing the size of the messages from the end
is also fine. Due to this reason, depending on ABI version isn't necessary
either.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
4 years agoclk: keystone: sci-clk: extend clock IDs to 32 bits
Tero Kristo [Tue, 30 Apr 2019 11:28:35 +0000 (14:28 +0300)]
clk: keystone: sci-clk: extend clock IDs to 32 bits

Currently, the clock identifiers are limited to 255. To support future
SoCs, this muse be extended to 32 bits, which should provide way more
than enough space. Basic support for extending the clock API is going
to be implemented in the firmware driver, but there are some minor
changes that need to be done on the clock driver side first.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
4 years agoclk: keystone: sci-clk: cut down the clock name length
Tero Kristo [Mon, 8 Apr 2019 09:19:33 +0000 (12:19 +0300)]
clk: keystone: sci-clk: cut down the clock name length

There is no need to store the full node name to the individual clocks,
as this will just consome memory and make the clock debug entries
unnecessary long. Just shorten this to "clk" for now.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
4 years agoMerge branch 'v4.19-rt' of https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux...
LCPD Auto Merger [Wed, 29 May 2019 14:34:32 +0000 (09:34 -0500)]
Merge branch 'v4.19-rt' of https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt into ti-rt-linux-4.19.y

TI-Feature: linux_rt-4-19
TI-Tree: https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git
TI-Branch: v4.19-rt

* 'v4.19-rt' of https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt:
  Linux 4.19.37-rt20
  sched/completion: Fix a lockup in wait_for_completion()
  drm/i915: Don't disable interrupts independently of the lock
  tty/sysrq: Convert show_lock to raw_spinlock_t
  powerpc: reshuffle TIF bits
  powerpc/pseries/iommu: Use a locallock instead local_irq_save()

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoarm64: defconfig: Enable TI's J721E SoC platform
Nishanth Menon [Tue, 28 May 2019 17:12:02 +0000 (12:12 -0500)]
arm64: defconfig: Enable TI's J721E SoC platform

Enable J721E SoC support from TI.

Signed-off-by: Nishanth Menon <nm@ti.com>
4 years agoarm64: dts: ti: Add support for J721E Common Processor Board
Nishanth Menon [Tue, 28 May 2019 17:12:01 +0000 (12:12 -0500)]
arm64: dts: ti: Add support for J721E Common Processor Board

Add Support for J721E Common Processor board support.
The EVM architecture is as follows:

+------------------------------------------------------+
|   +-------------------------------------------+      |
|   |                                           |      |
|   |        Add-on Card 1 Options              |      |
|   |                                           |      |
|   +-------------------------------------------+      |
|                                                      |
|                                                      |
|                     +-------------------+            |
|                     |                   |            |
|                     |   SOM             |            |
|  +--------------+   |                   |            |
|  |              |   |                   |            |
|  |  Add-on      |   +-------------------+            |
|  |  Card 2      |                                    |    Power Supply
|  |  Options     |                                    |    |
|  |              |                                    |    |
|  +--------------+                                    | <---
+------------------------------------------------------+
                                Common Processor Board

Common Processor board is the baseboard that has most of the actual
connectors, power supply etc. A SOM (System on Module) is plugged on
to the common processor board and this contains the SoC, PMIC, DDR and
basic high speed components necessary for functionality. Add-n card
options add further functionality (such as additional Audio, Display,
networking options).

Note:
A) The minimum configuration required to boot up the board is System On
   Module(SOM) + Common Processor Board.
B) Since there is just a single SOM and Common Processor Board, we are
   maintaining common processor board as the base dts and SOM as the dtsi
   that we include. In the future as more SOM's appear, we should move
   common processor board as a dtsi and include configurations as dts.
C) All daughter cards beyond the basic boards shall be maintained as
   overlays.

Signed-off-by: Nishanth Menon <nm@ti.com>
4 years agosoc: ti: Add Support for J721E SoC config option
Nishanth Menon [Tue, 28 May 2019 17:12:00 +0000 (12:12 -0500)]
soc: ti: Add Support for J721E SoC config option

Add option to build J721E SoC specific components

Signed-off-by: Nishanth Menon <nm@ti.com>
4 years agoarm64: dts: ti: Add Support for J721E SoC
Nishanth Menon [Tue, 28 May 2019 17:11:59 +0000 (12:11 -0500)]
arm64: dts: ti: Add Support for J721E SoC

The J721E SoC belongs to the K3 Multicore SoC architecture platform,
providing advanced system integration to enable lower system costs
of automotive applications such as infotainment, cluster, premium
Audio, Gateway, industrial and a range of broad market applications.
This SoC is designed around reducing the system cost by eliminating
the need of an external system MCU and is targeted towards ASIL-B/C
certification/requirements in addition to allowing complex software
and system use-cases.

Some highlights of this SoC are:
* Dual Cortex-A72s in a single cluster, three clusters of lockstep
  capable dual Cortex-R5F MCUs, Deep-learning Matrix Multiply Accelerator(MMA),
  C7x floating point Vector DSP, Two C66x floating point DSPs.
* 3D GPU PowerVR Rogue 8XE GE8430
* Vision Processing Accelerator (VPAC) with image signal processor and Depth
  and Motion Processing Accelerator (DMPAC)
* Two Gigabit Industrial Communication Subsystems (ICSSG), each with dual
  PRUs and dual RTUs
* Two CSI2.0 4L RX plus one CSI2.0 4L TX, one eDP/DP, One DSI Tx, and
  up to two DPI interfaces.
* Integrated Ethernet switch supporting up to a total of 8 external ports in
  addition to legacy Ethernet switch of up to 2 ports.
* System MMU (SMMU) Version 3.0 and advanced virtualisation
  capabilities.
* Upto 4 PCIe-GEN3 controllers, 2 USB3.0 Dual-role device subsystems,
  16 MCANs, 12 McASP, eMMC and SD, UFS, OSPI/HyperBus memory controller, QSPI,
  I3C and I2C, eCAP/eQEP, eHRPWM, MLB among other peripherals.
* Two hardware accelerator block containing AES/DES/SHA/MD5 called SA2UL
  management.
* Configurable L3 Cache and IO-coherent architecture with high data throughput
  capable distributed DMA architecture under NAVSS
* Centralized System Controller for Security, Power, and Resource
  Management (DMSC)

See J721E Technical Reference Manual (SPRUIL1, May 2019)
for further details: http://www.ti.com/lit/pdf/spruil1

Signed-off-by: Nishanth Menon <nm@ti.com>
4 years agodt-bindings: serial: 8250_omap: Add compatible for J721E UART controller
Nishanth Menon [Tue, 28 May 2019 17:11:58 +0000 (12:11 -0500)]
dt-bindings: serial: 8250_omap: Add compatible for J721E UART controller

J721e uses a UART controller that is compatible with AM654 UART.
Introduce a specific compatible to help handle the differences if
necessary.

Cc: Sekhar Nori <nsekhar@ti.com>
Cc: Vignesh R <vigneshr@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
4 years agodt-bindings: arm: ti: Add bindings for J721E SoC
Nishanth Menon [Tue, 28 May 2019 17:11:57 +0000 (12:11 -0500)]
dt-bindings: arm: ti: Add bindings for J721E SoC

The J721E SoC belongs to the K3 Multicore SoC architecture platform,
providing advanced system integration to enable lower system costs
of automotive applications such as infotainment, cluster, premium
Audio, Gateway, industrial and a range of broad market applications.
This SoC is designed around reducing the system cost by eliminating
the need of an external system MCU and is targeted towards ASIL-B/C
certification/requirements in addition to allowing complex software
and system use-cases.

Some highlights of this SoC are:
* Dual Cortex-A72s in a single cluster, three clusters of lockstep
  capable dual Cortex-R5F MCUs, Deep-learning Matrix Multiply Accelerator(MMA),
  C7x floating point Vector DSP, Two C66x floating point DSPs.
* 3D GPU PowerVR Rogue 8XE GE8430
* Vision Processing Accelerator (VPAC) with image signal processor and Depth
  and Motion Processing Accelerator (DMPAC)
* Two Gigabit Industrial Communication Subsystems (ICSSG), each with dual
  PRUs and dual RTUs
* Two CSI2.0 4L RX plus one CSI2.0 4L TX, one eDP/DP, One DSI Tx, and
  up to two DPI interfaces.
* Integrated Ethernet switch supporting up to a total of 8 external ports in
  addition to legacy Ethernet switch of up to 2 ports.
* System MMU (SMMU) Version 3.0 and advanced virtualisation
  capabilities.
* Upto 4 PCIe-GEN3 controllers, 2 USB3.0 Dual-role device subsystems,
  16 MCANs, 12 McASP, eMMC and SD, UFS, OSPI/HyperBus memory controller, QSPI,
  I3C and I2C, eCAP/eQEP, eHRPWM, MLB among other peripherals.
* Two hardware accelerator block containing AES/DES/SHA/MD5 called SA2UL
  management.
* Configurable L3 Cache and IO-coherent architecture with high data throughput
  capable distributed DMA architecture under NAVSS
* Centralized System Controller for Security, Power, and Resource
  Management (DMSC)

See J721E Technical Reference Manual (SPRUIL1, May 2019)
for further details: http://www.ti.com/lit/pdf/spruil1

Signed-off-by: Nishanth Menon <nm@ti.com>
4 years agoLinux 4.19.37-rt20
Steven Rostedt (VMware) [Fri, 24 May 2019 18:22:06 +0000 (14:22 -0400)]
Linux 4.19.37-rt20

4 years agoMerge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into...
LCPD Auto Merger [Tue, 28 May 2019 18:12:30 +0000 (13:12 -0500)]
Merge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.19.y

TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.19.y

* 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
  net: ethernet: ti: am65-cpsw-nuss: enable gro
  net: ethernet: ti: icssg_prueth: fix rx napi add function
  net: ethernet: ti: am65-cpsw-nuss: fix rx napi add function

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'connectivity-ti-linux-4.19.y' of git://git.ti.com/connectivity-integrat...
LCPD Auto Merger [Tue, 28 May 2019 14:32:59 +0000 (09:32 -0500)]
Merge branch 'connectivity-ti-linux-4.19.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel into ti-linux-4.19.y

TI-Feature: connectivity
TI-Tree: git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel.git
TI-Branch: connectivity-ti-linux-4.19.y

* 'connectivity-ti-linux-4.19.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel:
  net: ethernet: ti: am65-cpsw-nuss: enable gro
  net: ethernet: ti: icssg_prueth: fix rx napi add function
  net: ethernet: ti: am65-cpsw-nuss: fix rx napi add function

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agonet: ethernet: ti: am65-cpsw-nuss: enable gro
Grygorii Strashko [Fri, 24 May 2019 16:07:59 +0000 (19:07 +0300)]
net: ethernet: ti: am65-cpsw-nuss: enable gro

Enable Generic Receive Offload (GRO) support by TI AM65x MCU CPSW driver.
For GRO support:
 - the netif_receive_skb(skb) is replaced with
napi_gro_receive(&common->napi_rx, skb),
 - the napi_complete() is replaced with napi_complete_done().

This change shows significant throughput improvement:
-- gro off
  ethtool -K eth0 gro off
  iperf -s (client: iperf -c <addr> -d -w128K -t30)
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-30.0 sec  2.53 GBytes   723 Mbits/ses
[  6]  0.0-30.0 sec  1.36 GBytes   388 Mbits/sec

-- gro on
  ethtool -K eth0 gso on gro on
  iperf -s
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-30.0 sec  3.27 GBytes   935 Mbits/sec
[  6]  0.0-30.0 sec  1.75 GBytes   501 Mbits/sec

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agosched/completion: Fix a lockup in wait_for_completion()
Corey Minyard [Thu, 9 May 2019 19:33:20 +0000 (14:33 -0500)]
sched/completion: Fix a lockup in wait_for_completion()

Consider following race:

  T0                    T1                       T2
  wait_for_completion()
   do_wait_for_common()
    __prepare_to_swait()
     schedule()
                        complete()
                         x->done++ (0 -> 1)
                         raw_spin_lock_irqsave()
                         swake_up_locked()       wait_for_completion()
                          wake_up_process(T0)
                          list_del_init()
                         raw_spin_unlock_irqrestore()
                                                  raw_spin_lock_irq(&x->wait.lock)
  raw_spin_lock_irq(&x->wait.lock)                x->done != UINT_MAX, 1 -> 0
                                                  raw_spin_unlock_irq(&x->wait.lock)
                                                  return 1
   while (!x->done && timeout),
   continue loop, not enqueued
   on &x->wait

Basically, the problem is that the original wait queues used in
completions did not remove the item from the queue in the wakeup
function, but swake_up_locked() does.

Fix it by adding the thread to the wait queue inside the do loop.
The design of swait detects if it is already in the list and doesn't
do the list add again.

Cc: stable-rt@vger.kernel.org
Fixes: a04ff6b4ec4ee7e ("completion: Use simple wait queues")
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
[bigeasy: shorten commit message ]
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
4 years agodrm/i915: Don't disable interrupts independently of the lock
Sebastian Andrzej Siewior [Wed, 10 Apr 2019 09:01:37 +0000 (11:01 +0200)]
drm/i915: Don't disable interrupts independently of the lock

The locks (timeline->lock and rq->lock) need to be taken with disabled
interrupts. This is done in __retire_engine_request() by disabling the
interrupts independently of the locks itself.
While local_irq_disable()+spin_lock() equals spin_lock_irq() on vanilla
it does not on RT. Also, it is not obvious if there is a special reason
to why the interrupts are disabled independently of the lock.

Enable/disable interrupts as part of the locking instruction.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
4 years agotty/sysrq: Convert show_lock to raw_spinlock_t
Julien Grall [Wed, 13 Mar 2019 11:40:34 +0000 (11:40 +0000)]
tty/sysrq: Convert show_lock to raw_spinlock_t

Systems which don't provide arch_trigger_cpumask_backtrace() will
invoke showacpu() from a smp_call_function() function which is invoked
with disabled interrupts even on -RT systems.

The function acquires the show_lock lock which only purpose is to
ensure that the CPUs don't print simultaneously. Otherwise the
output would clash and it would be hard to tell the output from CPUx
apart from CPUy.

On -RT the spin_lock() can not be acquired from this context. A
raw_spin_lock() is required. It will introduce the system's latency
by performing the sysrq request and other CPUs will block on the lock
until the request is done. This is okay because the user asked for a
backtrace of all active CPUs and under "normal circumstances in
production" this path should not be triggered.

Signed-off-by: Julien Grall <julien.grall@arm.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
[bigeasy@linuxtronix.de: commit description]
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: stable-rt@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
4 years agopowerpc: reshuffle TIF bits
Sebastian Andrzej Siewior [Fri, 22 Mar 2019 16:15:58 +0000 (17:15 +0100)]
powerpc: reshuffle TIF bits

Powerpc32/64 does not compile because TIF_SYSCALL_TRACE's bit is higher
than 15 and the assembly instructions don't expect that.

Move TIF_RESTOREALL, TIF_NOERROR to the higher bits and keep
TIF_NEED_RESCHED_LAZY in the lower range. As a result one split load is
needed and otherwise we can use immediates.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
4 years agopowerpc/pseries/iommu: Use a locallock instead local_irq_save()
Sebastian Andrzej Siewior [Tue, 26 Mar 2019 17:31:54 +0000 (18:31 +0100)]
powerpc/pseries/iommu: Use a locallock instead local_irq_save()

The locallock protects the per-CPU variable tce_page. The function
attempts to allocate memory while tce_page is protected (by disabling
interrupts).

Use local_irq_save() instead of local_irq_disable().

Cc: stable-rt@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
4 years agonet: ethernet: ti: icssg_prueth: fix rx napi add function
Grygorii Strashko [Thu, 23 May 2019 09:41:05 +0000 (12:41 +0300)]
net: ethernet: ti: icssg_prueth: fix rx napi add function

Use correct RX NAPI registration function instead of netif_tx_napi_add(),
which was used due to copy-past error.

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agonet: ethernet: ti: am65-cpsw-nuss: fix rx napi add function
Grygorii Strashko [Thu, 23 May 2019 09:41:04 +0000 (12:41 +0300)]
net: ethernet: ti: am65-cpsw-nuss: fix rx napi add function

Use correct RX NAPI registration function instead of netif_tx_napi_add(),
which was used due to copy-past error.

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
4 years agoMerge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into...
LCPD Auto Merger [Tue, 14 May 2019 22:34:58 +0000 (17:34 -0500)]
Merge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.19.y

TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.19.y

* 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
  arm64: dts: ti: add mii-rt phandle in icssg prueth DT nodes
  net: ti: icssg_prueth: update TX IPG based on link speed
  dt-bindings: net: ti, icssg-prueth: bindings to update TX IPG value
  net: ti: icssg_prueth: update ICSSG RGMII cfg based on PHY link parameters

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'connectivity-ti-linux-4.19.y' of git://git.ti.com/connectivity-integrat...
LCPD Auto Merger [Tue, 14 May 2019 20:06:20 +0000 (15:06 -0500)]
Merge branch 'connectivity-ti-linux-4.19.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel into ti-linux-4.19.y

TI-Feature: connectivity
TI-Tree: git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel.git
TI-Branch: connectivity-ti-linux-4.19.y

* 'connectivity-ti-linux-4.19.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel:
  arm64: dts: ti: add mii-rt phandle in icssg prueth DT nodes
  net: ti: icssg_prueth: update TX IPG based on link speed
  dt-bindings: net: ti, icssg-prueth: bindings to update TX IPG value
  net: ti: icssg_prueth: update ICSSG RGMII cfg based on PHY link parameters

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into...
LCPD Auto Merger [Tue, 14 May 2019 16:35:09 +0000 (11:35 -0500)]
Merge branch 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel into ti-rt-linux-4.19.y

TI-Feature: ti_linux_base_rt
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.19.y

* 'ti-linux-4.19.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
  ARM: OMAP2+: hwmod: Introduce cpu_pm notifiers for context save/restore
  arm: mach-omap2: omap_hwmod: Introduce omap_hwmod_rst save/restore

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
4 years agoMerge branch 'platform-ti-linux-4.19.y' of git://git.ti.com/~rrnayak/ti-linux-kernel...
LCPD Auto Merger [Tue, 14 May 2019 15:45:01 +0000 (10:45 -0500)]
Merge branch 'platform-ti-linux-4.19.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree into ti-linux-4.19.y

TI-Feature: platform_base
TI-Tree: git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree.git
TI-Branch: platform-ti-linux-4.19.y

* 'platform-ti-linux-4.19.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree:
  ARM: OMAP2+: hwmod: Introduce cpu_pm notifiers for context save/restore
  arm: mach-omap2: omap_hwmod: Introduce omap_hwmod_rst save/restore

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>