This series brings initial support for memory interconnect to Tegra20, Tegra30 and Tegra124 SoCs. For the starter only display controllers and devfreq devices are getting interconnect API support, others could be supported later on. The display controllers have the biggest demand for interconnect API right now because dynamic memory frequency scaling can't be done safely without taking into account bandwidth requirement from the displays. In particular this series fixes distorted display output on T30 Ouya and T124 TK1 devices. Changelog: v8: - Patches that are already applied by Krzysztof Kozlowski not included. - Removed tegra20-devfreq.c from MAINTAINERS, suggested by Chanwoo Choi. - The patch "memory: tegra20-emc: Add devfreq support" now removes PM_OPP for Tegra20 EMC driver from Kconfig, suggested by Chanwoo Choi. - Now using devm_devfreq_add_device() for Tegra20 devfreq, suggested by Chanwoo Choi. - Added acks from Chanwoo Choi. Although, devfreq patches probably should go via devfreq tree in order to avoid conflicts with the other previously-applied patches by Chanwoo. - Dropped superfluous dev_pm_opp_get_opp_table() from patch "devfreq: tegra30: Support interconnect and OPPs from device-tree". - Silenced another minor W=1 compilation warning reported by kernel test robot. - Added couple extra minor clean-up changes, including those that will ease further code changes. Added these new patches: memory: tegra20-emc: Remove IRQ number from error message memory: tegra20-emc: Factor out clk initialization memory: tegra30-emc: Factor out clk initialization Note that some of the new T124 changes are compile-tested only, but I expect that we will re-test them fully soon. - Added patch that fixes compilation of a non-Tegra kernels. memory: tegra: Correct stub of devm_tegra_memory_controller_get() - Replaced dev_pm_opp_get_opp_table() with dev_pm_opp_set_clkname(), as was suggested by Viresh Kumar in other thread. - Added patch that will allow T124 EMC driver to probe even if DT doesn't have memory timings, this was missed by accident previously. memory: tegra124-emc: Continue probing if timings are missing in device-tree Dmitry Osipenko (26): memory: tegra: Correct stub of devm_tegra_memory_controller_get() memory: tegra20-emc: Use dev_pm_opp_set_clkname() memory: tegra20-emc: Factor out clk initialization memory: tegra20-emc: Add devfreq support memory: tegra20-emc: Remove IRQ number from error message memory: tegra30: Add FIFO sizes to memory clients memory: tegra30-emc: Make driver modular memory: tegra30-emc: Continue probing if timings are missing in device-tree memory: tegra30: Support interconnect framework memory: tegra30-emc: Factor out clk initialization memory: tegra124-emc: Make driver modular memory: tegra124-emc: Continue probing if timings are missing in device-tree memory: tegra124: Support interconnect framework drm/tegra: dc: Support memory bandwidth management drm/tegra: dc: Extend debug stats with total number of events PM / devfreq: tegra30: Support interconnect and OPPs from device-tree PM / devfreq: tegra30: Separate configurations per-SoC generation PM / devfreq: tegra20: Deprecate in a favor of emc-stat based driver ARM: tegra: Correct EMC registers size in Tegra20 device-tree ARM: tegra: Add interconnect properties to Tegra20 device-tree ARM: tegra: Add interconnect properties to Tegra30 device-tree ARM: tegra: Add interconnect properties to Tegra124 device-tree ARM: tegra: Add nvidia,memory-controller phandle to Tegra20 EMC device-tree ARM: tegra: Add DVFS properties to Tegra20 EMC device-tree node ARM: tegra: Add DVFS properties to Tegra30 EMC and ACTMON device-tree nodes ARM: tegra: Add DVFS properties to Tegra124 EMC and ACTMON device-tree nodes MAINTAINERS | 1 - arch/arm/boot/dts/tegra124-apalis-emc.dtsi | 8 + .../arm/boot/dts/tegra124-jetson-tk1-emc.dtsi | 8 + arch/arm/boot/dts/tegra124-nyan-big-emc.dtsi | 10 + .../arm/boot/dts/tegra124-nyan-blaze-emc.dtsi | 10 + .../boot/dts/tegra124-peripherals-opp.dtsi | 419 ++++++++++++++++++ arch/arm/boot/dts/tegra124.dtsi | 31 ++ .../boot/dts/tegra20-acer-a500-picasso.dts | 7 + arch/arm/boot/dts/tegra20-colibri.dtsi | 4 + arch/arm/boot/dts/tegra20-paz00.dts | 6 + .../arm/boot/dts/tegra20-peripherals-opp.dtsi | 92 ++++ arch/arm/boot/dts/tegra20.dtsi | 33 +- .../tegra30-asus-nexus7-grouper-common.dtsi | 4 + ...30-asus-nexus7-grouper-memory-timings.dtsi | 12 + .../arm/boot/dts/tegra30-peripherals-opp.dtsi | 383 ++++++++++++++++ arch/arm/boot/dts/tegra30.dtsi | 33 +- drivers/clk/tegra/Makefile | 3 +- drivers/clk/tegra/clk-tegra124-emc.c | 41 +- drivers/clk/tegra/clk-tegra124.c | 27 +- drivers/clk/tegra/clk.h | 16 +- drivers/devfreq/Kconfig | 10 - drivers/devfreq/Makefile | 1 - drivers/devfreq/tegra20-devfreq.c | 210 --------- drivers/devfreq/tegra30-devfreq.c | 154 ++++--- drivers/gpu/drm/tegra/Kconfig | 1 + drivers/gpu/drm/tegra/dc.c | 359 +++++++++++++++ drivers/gpu/drm/tegra/dc.h | 19 + drivers/gpu/drm/tegra/drm.c | 14 + drivers/gpu/drm/tegra/hub.c | 3 + drivers/gpu/drm/tegra/plane.c | 121 +++++ drivers/gpu/drm/tegra/plane.h | 15 + drivers/memory/tegra/Kconfig | 9 +- drivers/memory/tegra/mc.c | 3 + drivers/memory/tegra/tegra124-emc.c | 395 +++++++++++++++-- drivers/memory/tegra/tegra124.c | 82 +++- drivers/memory/tegra/tegra20-emc.c | 192 ++++++-- drivers/memory/tegra/tegra30-emc.c | 406 +++++++++++++++-- drivers/memory/tegra/tegra30.c | 239 +++++++++- include/linux/clk/tegra.h | 8 + include/soc/tegra/emc.h | 16 - include/soc/tegra/mc.h | 2 +- 41 files changed, 2971 insertions(+), 436 deletions(-) create mode 100644 arch/arm/boot/dts/tegra124-peripherals-opp.dtsi create mode 100644 arch/arm/boot/dts/tegra20-peripherals-opp.dtsi create mode 100644 arch/arm/boot/dts/tegra30-peripherals-opp.dtsi delete mode 100644 drivers/devfreq/tegra20-devfreq.c delete mode 100644 include/soc/tegra/emc.h -- 2.29.2