13 Feb, 2020
5 commits
-
This is needed by DSP driver on i.MX8MP. Need to find an elegant
way to only select it on this board.Signed-off-by: Daniel Baluta
-
1. Introduce new board type and compatible string in preparation for
i.MX8MP board.2. Add support configure and start DSP for i.MX8MP.
3. Add clocks for i.MX8MP, and do special process when suspend and
resume because dsp haven't independent power.4. Add special handle for i.MX8MP, because in imx8mp there is audiomix
power domains, and only one power domain.Signed-off-by: Zhang Peng
Signed-off-by: Daniel Baluta -
1. Factor out SCU configuration from fsl_dsp_probe because
i.MX8 MP which doesn't have an SCU.2. Factor out DSP start function operation in a separate function
in preparation for adding support for i.MX8MP.Signed-off-by: Zhang Peng
Signed-off-by: Daniel Baluta -
This is a subdevice of audiomix MFD device, exposing
access to DSP control register from AudioMIX subsystem.Signed-off-by: Daniel Baluta
-
1. Add reserved_mem for DSP and enable DSP.
2. Audio-mix DSP node will instantiate part of the AUDIOMIX who
takes care of DSP configuration.Signed-off-by: Zhang Peng
Signed-off-by: Daniel Baluta
12 Feb, 2020
6 commits
-
Add socname for struct pmu_event for that we can distinguish different SoCs
by this property.Reviewed-by: Fugang Duan
Signed-off-by: Joakim Zhang -
[ Upstream commit eb573e746b9d4f0921dcb2449be3df41dae3caea ]
Commit f01642e4912b ("perf metricgroup: Support multiple events for
metricgroup") introduced support for multiple events in a metric group.
But with the current upstream, metric events names are not printed
properlyIn power9 platform:
command:# ./perf stat --metric-only -M translation -C 0 -I 1000 sleep 2
1.000208486
2.000368863
2.001400558Similarly in skylake platform:
command:./perf stat --metric-only -M Power -I 1000
1.000579994
2.002189493With current upstream version, issue is with event name comparison logic
in find_evsel_group(). Current logic is to compare events belonging to a
metric group to the events in perf_evlist. Since the break statement is
missing in the loop used for comparison between metric group and
perf_evlist events, the loop continues to execute even after getting a
pattern match, and end up in discarding the matches.Incase of single metric event belongs to metric group, its working fine,
because in case of single event once it compare all events it reaches to
end of perf_evlist.Example for single metric event in power9 platform:
command:# ./perf stat --metric-only -M branches_per_inst -I 1000 sleep 1
1.000094653 0.2
1.001337059 0.0This patch fixes the issue by making sure once we found all events
belongs to that metric event matched in find_evsel_group(), we
successfully break from that loop by adding corresponding condition.With this patch:
In power9 platform:command:# ./perf stat --metric-only -M translation -C 0 -I 1000 sleep 2
result:#
time derat_4k_miss_rate_percent derat_4k_miss_ratio derat_miss_ratio derat_64k_miss_rate_percent derat_64k_miss_ratio dslb_miss_rate_percent islb_miss_rate_percent
1.000135672 0.0 0.3 1.0 0.0 0.2 0.0 0.0
2.000380617 0.0 0.0 0.0 0.0 0.0 0.0 0.0command:# ./perf stat --metric-only -M Power -I 1000
Similarly in skylake platform:
result:#
time Turbo_Utilization C3_Core_Residency C6_Core_Residency C7_Core_Residency C2_Pkg_Residency C3_Pkg_Residency C6_Pkg_Residency C7_Pkg_Residency
1.000563580 0.3 0.0 2.6 44.2 21.9 0.0 0.0 0.0
2.002235027 0.4 0.0 2.7 43.0 20.7 0.0 0.0 0.0Committer testing:
Before:
[root@seventh ~]# perf stat --metric-only -M Power -I 1000
# time
1.000383223
2.001168182
3.001968545
4.002741200
5.003442022
^C 5.777687244[root@seventh ~]#
After the patch:
[root@seventh ~]# perf stat --metric-only -M Power -I 1000
# time Turbo_Utilization C3_Core_Residency C6_Core_Residency C7_Core_Residency C2_Pkg_Residency C3_Pkg_Residency C6_Pkg_Residency C7_Pkg_Residency
1.000406577 0.4 0.1 1.4 97.0 0.0 0.0 0.0 0.0
2.001481572 0.3 0.0 0.6 97.9 0.0 0.0 0.0 0.0
3.002332585 0.2 0.0 1.0 97.5 0.0 0.0 0.0 0.0
4.003196624 0.2 0.0 0.3 98.6 0.0 0.0 0.0 0.0
5.004063851 0.3 0.0 0.7 97.7 0.0 0.0 0.0 0.0
^C 5.471260276 0.2 0.0 0.5 49.3 0.0 0.0 0.0 0.0[root@seventh ~]#
[root@seventh ~]# dmesg | grep -i skylake
[ 0.187807] Performance Events: PEBS fmt3+, Skylake events, 32-deep LBR, full-width counters, Intel PMU driver.
[root@seventh ~]#Fixes: f01642e4912b ("perf metricgroup: Support multiple events for metricgroup")
Signed-off-by: Kajol Jain
Reviewed-by: Ravi Bangoria
Tested-by: Arnaldo Carvalho de Melo
Cc: Alexander Shishkin
Cc: Andi Kleen
Cc: Anju T Sudhakar
Cc: Jin Yao
Cc: Jiri Olsa
Cc: Kan Liang
Cc: Madhavan Srinivasan
Cc: Peter Zijlstra
Link: http://lore.kernel.org/lkml/20191120084059.24458-1-kjain@linux.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo
Signed-off-by: Sasha LevinJoakim cherry pick from upstream:
3635b27cc058 perf metricgroup: Fix printing event names of metric group with multiple eventsSigned-off-by: Joakim Zhang
-
Currently when cross compiling perf tool for ARM64 on my x86 machine I
get this error:arch/arm64/util/sym-handling.c:9:10: fatal error: gelf.h: No such file or directory
#includeFor the build, libelf is reported off:
Auto-detecting system features:
...
... libelf: [ OFF ]Indeed, test-libelf is not built successfully:
more ./build/feature/test-libelf.make.output
test-libelf.c:2:10: fatal error: libelf.h: No such file or directory
#include
^~~~~~~~~~
compilation terminated.I have no such problems natively compiling on ARM64, and I did not
previously have this issue for cross compiling. Fix by relocating the
gelf.h include.Signed-off-by: John Garry
Cc: Alexander Shishkin
Cc: Jiri Olsa
Cc: Mark Rutland
Cc: Namhyung Kim
Cc: Peter Zijlstra
Cc: Will Deacon
Cc: linux-arm-kernel@lists.infradead.org
Link: http://lore.kernel.org/lkml/1573045254-39833-1-git-send-email-john.garry@huawei.com
Signed-off-by: Arnaldo Carvalho de MeloJoakim cherry pick from upstream:
1302caaef52a perf tools: Fix cross compile for ARM64Signed-off-by: Joakim Zhang
-
Change LCDIFv3 burst size from 128B to 256B
to improve lpddr4 efficiency by adding about 200MBSigned-off-by: Jian Li
Reviewed-by: Fancy Fang -
Add the busfreq node to enable the DDR DVFS support on i.MX8MP.
Signed-off-by: Jacky Bai
Reviewed-by: Anson Huang -
Add the touch support on MIPI_DSI screen.
Signed-off-by: Haibo Chen
Reviewed-by: Fugang Duan
11 Feb, 2020
8 commits
-
built in the DRM_DW_HDMI_GP_AUDIO for HDMI audio
Signed-off-by: Shengjiu Wang
Reviewed-by: Viorel Suman -
Enable HDMI audio, playback only.
errata ERR050440:
HDMI Audio interface from the Audio subsystem to the HDMI
subsystem has an incorrectly inverted sampling clock, this
results in corrupted audio on HDMI output. (noise)Signed-off-by: Shengjiu Wang
Reviewed-by: Viorel Suman -
General Parallel Audio (GPA) interface is one of the supported
audio interface for synopsys HDMI module, which is enabled for
i.MX8MP platform.Signed-off-by: Shengjiu Wang
Reviewed-by: Viorel Suman -
Add binding document.
Signed-off-by: Shengjiu Wang
Reviewed-by: Viorel Suman -
The AUD2HTX is a digital module that provides a bridge between
the Audio Subsystem and the HDMI RTX Subsystem. This module
includes intermediate storage to queue SDMA transactions prior
to being synchronized and passed to the HDMI RTX Subsystem over
the Audio Link.The AUD2HTX contains a DMA request routed to the SDMA module.
This DMA request is controlled based on the watermark level in
the 32-entry sample buffer.Signed-off-by: Shengjiu Wang
Reviewed-by: Viorel Suman -
Add new property to support RMII external refclk.
Reviewed-by: Richard Zhu
Signed-off-by: Fugang Duan -
Enable external refclk support for RMII PHY mode.
Reviewed-by: Richard Zhu
Signed-off-by: Fugang Duan -
Add flexcan2 support for imx8mp.
Reviewed-by: Fugang Duan
Signed-off-by: Joakim Zhang
10 Feb, 2020
15 commits
-
updated solution to the problem reported with randconfig:
CONFIG_SND_SOC_SOF_IMX depends on CONFIG_SND_SOC_SOF, but is in
turn referenced by the sof-of-dev driver. This creates a reverse
dependency that manifests in a link error when CONFIG_SND_SOC_SOF_OF
is built-in but CONFIG_SND_SOC_SOF_IMX=m:sound/soc/sof/sof-of-dev.o:(.data+0x118): undefined reference to `sof_imx8_ops'
use def_trisate to propagate the right settings without select.
Fixes: f4df4e4042b0 ("ASoC: SOF: imx8: Fix COMPILE_TEST error")
Fixes: 202acc565a1f ("ASoC: SOF: imx: Add i.MX8 HW support")
Suggested-by: Arnd Bergmann
Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20191101173045.27099-6-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown -
This allows loading SOF Linux driver on i.MX8.
Signed-off-by: Daniel Baluta
-
CONFIG_SND_SOC_SOF_IMX8 was supposed to enable support for SOF i.MX8
module. But the actual config symbol is CONFIG_SND_SOF_IMX8_SUPPORT
which will be enabled in the next patch.Signed-off-by: Daniel Baluta
-
simple-audio-card uses 'label' property to set the correct card name. We
were using 'model' because that name was used by non-SOF drivers.Signed-off-by: Daniel Baluta
-
Signed-off-by: Paul Olaru
-
Signed-off-by: Paul Olaru
-
Signed-off-by: Daniel Baluta
-
Add SOF device and DT descriptors for i.MX8QM platform.
Signed-off-by: Paul Olaru
-
i.MX8QM and i.MX8QXP are mostly identical platforms with minor hardware
differences. One of these differences affects the firmware boot process,
requiring the run operation to differ. All other ops are reused.Signed-off-by: Paul Olaru
-
i.MX8 and i.MX8X platforms are very similar and were treated the same.
Anyhow, we need to account for the differences somehow.Current supported platform is i.MX8QXP which is from i.MX8X family.
Rename i.MX8 platform to i.MX8X to prepare for future i.MX8 platforms.Signed-off-by: Paul Olaru
-
i.MX8MP should not share i.MX8MQ ocotp, it has different ocotp
ctrl layout and register numbersReviewed-by: Ye Li
Signed-off-by: Peng Fan -
Add ocotp root clk, then when using nvmem to read fuse, clk
could be managed.Reviewed-by: Ye Li
Signed-off-by: Peng Fan -
i.MX8MP has 96 banks with each bank 4 words. And it has different
ctrl register layout, so add new macros for that.Reviewed-by: Ye Li
Signed-off-by: Peng Fan -
Introduce ocotp_ctrl_reg to include the low 16bits mask of CTRL
register.i.MX chips will have different layout of the low 16bits of CTRL
register, so use ocotp_ctrl_reg will make it clean to add new
chip support.Reviewed-by: Ye Li
Signed-off-by: Peng Fan
Signed-off-by: Srinivas Kandagatla
Link: https://lore.kernel.org/r/20200109104017.6249-4-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman
(cherry picked from commit 226c512699ee047b7fae0df297ea0be9e2b629c5) -
If software running before the OCOTP driver is loaded left the
controller with the error status pending, the driver will never
be able to complete the read timing setup. Reset the error status
on probe to make sure the controller is in usable state.Reviewed-by: Ye Li
Signed-off-by: Lucas Stach
Signed-off-by: Srinivas Kandagatla
Link: https://lore.kernel.org/r/20191029114240.14905-6-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman
(cherry picked from commit c33c585f1b3a99d53920bdac614aca461d8db06f)
05 Feb, 2020
2 commits
-
Since the PCIE port0 is hard-wired to connect one WIFI chip.
Don't enable EP mode on iMX8MQ EVK PCIE port0.Signed-off-by: Richard Zhu
Reviewed-by: Fugang Duan -
Add the PCIe PM workaround for iMX6QDL.
------
L2 can exit by 'reset' or inband beacon (from remote EP)
toggling phy_powerdown has same effect as 'inband beacon'
So, toggle bit18 of GPR1, used as a workaround of errata
ERR005723 "PCIe PCIe does not support L2 Power Down"
WARNING: This is not official workaround for ERR005723.
Fortunately, we don't encounter issue with this workaround.
User should take own risk to use it.Signed-off-by: Richard Zhu
04 Feb, 2020
2 commits
-
Prior to this patch in optee_probe() when optee_enumerate_devices() was
called the struct optee was fully initialized. If
optee_enumerate_devices() returns an error optee_probe() is supposed to
clean up and free the struct optee completely, but will at this late
stage need to call optee_remove() instead. This isn't done and thus
freeing the struct optee prematurely.With this patch the call to optee_enumerate_devices() is done after
optee_probe() has returned successfully and in case
optee_enumerate_devices() fails everything is cleaned up with a call to
optee_remove().Fixes: c3fa24af9244 ("tee: optee: add TEE bus device enumeration support")
Reviewed-by: Sumit Garg
Signed-off-by: Jens Wiklander
(cherry picked from commit 03212e347f9443e524d6383c6806ac08295c1fb0) -
In case of dynamic shared memory pool, kernel memory allocated using
dmabuf_mgr pool needs to be registered with OP-TEE prior to its usage
during optee_open_session() or optee_invoke_func().So fix dmabuf_mgr pool allocations via an additional call to
optee_shm_register().Also, allow kernel pages to be registered as shared memory with OP-TEE.
Fixes: 9733b072a12a ("optee: allow to work without static shared memory")
Signed-off-by: Sumit Garg
Signed-off-by: Jens Wiklander
(cherry picked from commit a249dd200d03791cab23e47571f3e13d9c72af6c)
29 Jan, 2020
2 commits
-
Signed-off-by: Horia Geantă
Reviewed-by: Iuliana Prodan -
Signed-off-by: Horia Geantă
Reviewed-by: Iuliana Prodan