Commit Graph

757 Commits

Author SHA1 Message Date
Jon Hunter
fcd48dce70 nvidia: oot: Update files for host1x-nvhost driver
copy nvhost_t194.h

Bug 3768126

Change-Id: Ia9b302033f772df78ddb44fd328c68553c483edf
Signed-off-by: omar nemri <onemri@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2782267
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-03 04:12:05 -07:00
Laxman Dewangan
a6fd90fb31 ivc: Add wrapper header for ivc.h to avoid multiple inclusion
The ivc.h is not protected for multiple inclusion and so
it is generating error for multiple definition when included
from the source code.

Add wrapper header to protect the multiple inclusion of the ivc.h.

This will make the OOT driers to compile against all core kernel
which does not have proper ivc.h fix.

Change-Id: Ibe85da017d60f525b05d04cd6a5ea15c5b312057
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2784877
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-02 02:39:17 -07:00
Manish Bhardwaj
1c7751c581 bpmp: add support for virtual bpmp driver
Using this patch we are adding support for
virtualised bpmp driver in nvidia-oot.

JIRA ESLC-6885

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Ia863055082f64dfcafdbba114816c56af2e7f640
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2781331
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 11:09:33 -07:00
Timo Alho
b01a848777 [tegra-bpmp] create (partial) downstream fork of tegra-bpmp driver
Make a downstream fork of clock, reset, powergate, and debugfs parts
of tegra-bpmp driver by copying the respective files from mainline
Linux 5.19.11 (commit fcf22aefe87101424563a8dd8adec8a75b8c7576).

JIRA ESLC-6885

Signed-off-by: Timo Alho <talho@nvidia.com>
Change-Id: Ieae8e9f27325d84faf8adc5e8834ffe42ba5e696
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2782102
Tested-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 11:09:29 -07:00
Sameer Pujar
c4ab6f5a0e ASoC: tegra: Align with new device model
PEQ and MBDRC are sub blocks of OPE module. So far, these sub blocks
were not represented by separate device nodes in DT. This has changed
now where PEQ and MBDRC are children of OPE block. For now the driver
structure is maintained as it is and explicitly parse PEQ and MBDRC
nodes to create corresponding regmap interfaces. With this there is
flexibility now to create separate device drivers for PEQ and MBDRC
if necessary in future.

Bug 3583581

Change-Id: I16ceb9b1a30b4ddb1a57fdef28db20c554c58b03
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2783022
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:51:57 -07:00
Sameer Pujar
1e77ef2504 ASoC: tegra: Remove slave_id access
The struct 'snd_dmaengine_dai_dma_data' no more has 'slave_id'
member in newer kernels. This presently causes build failure
in GVS for 'linux-stable'.

Remove access to this member to fix build issue with OOT driver.
Also upstream ADMA driver does not depend on it anymore, so
commit 32de4745e20a ("dmaengine: tegra210-adma: Override ADMA FIFO
size") needs to be backported to avoid related functional issue.

Bug 3583581

Change-Id: Ib865bdc5d2b2ceb9d57511c3618e5fe607acab09
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2776075
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:51:52 -07:00
Sameer Pujar
11a70ecd46 ASoC: tegra: Update compatible names
Following drivers are upstreamed (and present in v5.15) but not yet
feature complete:

  tegra186_dspk.c
  tegra210_admaif.c
  tegra210_ahub.c
  tegra210_dmic.c
  tegra210_i2s.c

To use these drivers, device nodes in DT can use OOT specific
compatibles. Update compatibles in drivers to facilitate this.

Bug 3583581

Change-Id: I1a9e31fc5f1b2d2539f644a413ba0c06c6da2110
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2774435
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:51:48 -07:00
Sameer Pujar
4103ed0a7e ASoC: tegra: Enable OOT drivers build
All build errors have been now addressed by previous commits in the
series. Now enable OOT drivers build. To do so, update top level
makefile to include drivers path and update the internal makefile
to build individual drivers.

Some of the AHUB drivers are already upstreamed and are part of
v5.15 core kernel. But presently the drivers are copied to provide
full feature set. To differentiate core modules from OOT modules
the *.ko files here use "oot" string.

Bug 3583581

Change-Id: I21d51c542ed4ed7dddf7cf8d8202ebc496049fff
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2774434
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:51:43 -07:00
Sameer Pujar
cb024c2001 TEMP: ASoC: tegra: Disable ADMA register dump call
tegra_adma_dump_ch_reg() is implemented by downstream ADMA driver only
which is not upstreamed yet. This causes build error with Kernel OOT
because upstream ADMA driver is used. Disable this call temporarily
until future is decided for this helper.

Bug 3583581
Bug 3798682

Change-Id: Ifb625509fe8354e65f40d4047e4e80ef6a5e287f
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2774433
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:51:38 -07:00
Sameer Pujar
f4e2af6f57 ASoC: tegra: Fix build error due to tegra186_ahc.h
Add config based header inclusion for AHC driver. The ASRC and ARAD
drivers are not POR for L4T releases and also AHC driver is not yet
up with Kernel OOT. For now, ensure ASRC and ARAD functionality
without dependency on AHC driver. Later if there is a requirement
test functionality with AHC module.

Bug 3583581

Change-Id: I5e586886ae91b1dcaa9e3aa945364dc21a23f281
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2774432
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:51:34 -07:00
Sameer Pujar
c61527fb8f ASoC: tegra: remove superflous code
This is inspired from following upstream commit:

------------------------------------------------------------------------
  commit 189364872fba07291db7f68fe0161f97e5b61bb1
  Author: Takashi Iwai <tiwai@suse.de>
  Date:   Mon Aug 2 09:28:09 2021 +0200

  ASoC: tegra: Use managed buffer allocation

  As the standard buffer allocation helper supports WC pages now, we can
  convert imx-pcm-rpmsg driver to use that.  This allows us to remove
  lots of superfluous code.

  Acked-by: Mark Brown <broonie@kernel.org>
  Link: https://lore.kernel.org/r/20210802072815.13551-10-tiwai@suse.de
  Signed-off-by: Takashi Iwai <tiwai@suse.de>
------------------------------------------------------------------------

Above is required to avoid build errors related to non existent
callbacks in 'snd_soc_component_driver' structure.

Bug 3583581

Change-Id: Id1a930db0e41a51be35813aed67183974d1eec57
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2774431
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:51:29 -07:00
Sameer Pujar
4b2029fac6 ASoC: tegra: Fix symmetric rate flag
'symmetric_rates' member is not available now in 'snd_soc_dai_driver'
structure. Instead this is replaced by 'symmetric_rate'. Fix these
references to avoid build errors.

Bug 3583581

Change-Id: I6bacec5a15656724bf344c797db8c39015bd7b23
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2774430
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:51:25 -07:00
Sameer Pujar
796fd3534c ASoC: tegra: Fix header paths
OOT drivers cannot directly access private headers of core kernel.
This is a standard policy adopted by kernel distributors and to
workaround this problem copy headers to OOT path. Update the usage
references as well.

Bug 3583581

Change-Id: I1b99e17c60294a1cb257eb5b80837faa896d3f8d
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2774429
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:51:21 -07:00
Sameer Pujar
be149e044b ASoC: tegra: Remove legacy BW manager code
Kernel OOT POR is for Tegra234 and later. BW manager code for legacy
chips causes build error with Kernel OOT and Tegra234 uses interconnect
based BW requests. Since Tegra194 (and earlier) support is not needed,
remove the legacy code.

Bug 3583581

Change-Id: I04c6ca0bc58dad4de9daa6ab65b04ee01553724d
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2774428
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:51:16 -07:00
Sameer Pujar
6684fbbedf ASoC: tegra: Fix build errors due to core helpers
snd_soc_of_parse_daifmt() is removed from later kernel versions and this
causes complilation error. Use asoc_simple_parse_daifmt() helper to
parse DAI format.

asoc_simple_canonicalize_platform() has a different signature now and
thus update the helper usage accordingly.

Bug 3583581

Change-Id: I9a99fc71849ddf460040f980aea7d4b9f8f80011
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2774427
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:51:12 -07:00
Gerrit Code Review
9cb012312d Merge "Merge branch 'audio-oot' into dev-main" into dev-main 2022-10-01 10:51:07 -07:00
Manish Bhardwaj
be84e3b28a nvidia: tegra_hv: fix compilation warning
WARNING: modpost: /home/mbhardwaj/kernel_only/out/
embedded-linux-generic-release/nvidia/kernel-rt_patches-nvidia-oot/
nvidia-oot/drivers/virt/tegra/tegra_hv.o (.exit.text+0x34): Section
mismatch in reference from the function cleanup_module() to the
function .init.text:tegra_hv_cleanup()
The function __exit cleanup_module() references a function __init
tegra_hv_cleanup(). This is often seen when error handling in the
exit function uses functionality in the init path. The fix is often
to remove the __init annotation of tegra_hv_cleanup() so it may be
used outside an init section.

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Ie3fb2875c0acc732d5673e7618593e67e412851f
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2784195
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:49:36 -07:00
Manish Bhardwaj
d313ef2285 nvidia-oot: port tegra ivc-mempool driver
Using this patch we are adding support for
tegra ivc-mempool driver in oot kernel.

JIRA ESLC-6885

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Iaaae26f581264b2d9b792bd26937da5f852dba8e
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2763833
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:49:32 -07:00
Manish Bhardwaj
b5bfbf41b4 nvidia-oot: port tegra ivc-cdev driver
Using this patch we are adding support for
tegra ivc-cdev driver in oot kernel.

JIRA ESLC-6885

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I7b9d7b46e7ee3ba221aa25f25f1eec72a314fb79
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2763832
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:49:27 -07:00
Manish Bhardwaj
b791c2e35c nvidia-oot: port tegra hv_sysfs driver
Using this patch we are adding support for
tegra hv_sysfs driver in oot kernel.

JIRA ESLC-6885

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Iaf944fe07b85173fb25489769176ab60e4fa9243
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2763831
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:49:23 -07:00
Manish Bhardwaj
e1424191a4 nvidia-oot: port tegra hv pm_ctrl driver
Using this patch we are adding support for
tegra hv pm_ctrl driver in oot kernel.

JIRA ESLC-6885

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I33ee6d72e6f66edfdb5cd1eab9fc564e184f280f
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2763830
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-01 10:49:18 -07:00
Sagar Kamble
b0746ed5ac arch: arm64: add gpu node in OOT
Add gpu device tree node for p3737 and p3701.

Bug 3812973

Change-Id: Ie52bf30b49f1d5aae67dba5b2c7357308e1d9ec2
Signed-off-by: Sagar Kamble <skamble@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2784071
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-09-29 19:41:25 -07:00
Akhil R
017e1b9cdf arm64: tegra: Enable all I2C nodes for Concord
Enable all I2C nodes in device tree for Concord as in downstream.

Bug 3583581

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: I063326e3c0474f38a376a5ab5abc344d2351cf04
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2783540
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-09-29 19:41:11 -07:00
Eric Funsten
564dadea31 platform/tegra: Add in uncore_pmu module for oot
Ports over tegra23x_perf_uncore and mce modules for OOT.

Bug 3583633

Change-Id: I59999db51a7ef6b47f2e9929f28505fc78844825
Signed-off-by: Eric Funsten <efunsten@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2763940
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-09-29 19:38:17 -07:00
Sameer Pujar
5ac0052adf Merge branch 'audio-oot' into dev-main
Kernel OOT model is a combination of core kernel (coming from mainline)
and NVIDIA kernel modules which are built out of tree using core kernel
headers. With this new model no additional patches will be accepted in
core kernel (for downstream use) unless it comes via upstream path.

Audio drivers upstream is WIP and the upstream drivers are not feature
complete yet. Tegra234 is soon switching to kernel OOT model and it is
expected to have all the features.

Given above, copy kernel-5.10 ASoC drivers to nvidia-oot and enable
these on Tegra234. In parallel, work on making upstream drivers
feature complete. Once a driver is 100% upstreamed, get rid of OOT
version.

Upstream version of Tegra PCM driver and CIF header file are used
and rest of the drivers are copied to nvidia-oot.

Note: This just copies required ASoC drivers to nvidia-oot and does
not ensure build sanity. It will be tracked in subsequent commits.
While copying the git history is pulled as well.

Bug 3583581

Change-Id: I25a28d8ecb8d77772895c357e9e7fcbe0e541118
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
2022-09-29 04:07:53 -07:00
Mohan Kumar
54bd04b640 ASoC: tegra: Fix AHUB probe issue
Make sure to call pm_runtime_enable() before the
of_platform_populate() which will ensure ahub runtime
resume would be called to enable ahub clock before accessing
any ahub modules registers in modules probe. Calling
of_platform_populate() in parent driver probe results in all
of its child device probe to be completed before it exits the
parent probe call.

The issue caught during MVC child device probe tries to access a
register in probe call which depends on the ahub clock that gets
enabled during AHUB RPM resume. But ahub RPM resume not called as
pm_runtime_enable() in ahub parent driver happens after the
of_platform_populate(). This was observed when drivers were built
as part of kernel image.

Bug 3752938

Change-Id: Ifeb4085961d89877f79ff521adb6dfdf4e51907c
Signed-off-by: Mohan Kumar <mkumard@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2762027
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-09-29 15:57:12 +05:30
Sheetal
685ae3b3e1 ASoC: tegra: Fix hardcoded ARAM address
- ARAM start address is not same for all the chips and
  ARAM start address was hardcoded in asrc driver.
  To handle it for all the chips, moved ARAM start address
  info into compatible data of device.

Bug 3434231
Bug 3506754

Signed-off-by: Sheetal <sheetal@nvidia.com>
Change-Id: I860d2d299d11890c01187b19fac16f0d7b31e88c
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2704344
(cherry picked from commit 2b93c82cbdafd80859488cb51f41ae8d5341bb79)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2626008
Tested-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-09-29 15:57:12 +05:30
Sheetal
125740cada ASoC: tegra: Add support for 1.2GHz pll base rate
- For upcoming chips the PLLA base rates are different.
  Added entry to support 1.2GHz base rate.
- Base rate reference:
  Bug 3157662, Comment #77.

Bug 200741253
Bug 3506754

Signed-off-by: Sheetal <sheetal@nvidia.com>
Change-Id: Ib8554b3b6b2f1d0e35e328898f343b1f92870bda
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2704346
(cherry picked from commit 77ec9d06a5dc63d6687be0dfa60136af5e2f98ed)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2591781
Tested-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-09-29 15:57:12 +05:30
Sheetal
9841017f33 ASoC: tegra: Add internal PLL support for RT5640
RT5640 codec has internal PLL which can be used to
derive SYSCLK and internal PLL can take I2S BCLK as a
reference clock

Bug 3520437

Signed-off-by: Sheetal <sheetal@nvidia.com>
Change-Id: I3b88d3bf75146532bda669d961c6ff6bb52603f5
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2662478
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Viswanath L <viswanathl@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-09-29 15:57:12 +05:30
Rajesh Gumasta
0142517e63 Merge mainline tag v5.10.87 into dev-main-5.10
Merge remote-tracking branch 'origin/dev/linux-5.10.87'
into dev-main-5.10.87

Merge v5.10.66 to v5.10.87

Summary of changes since TOT revision v5.10.65

Changes in v5.10.87 (total commits 33)
arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM
arm: extend pfn_valid to take into account freed memory map alignment
fuse: make sure reclaim doesn't write the inode

Changes in v5.10.86 (total commits 1)
netfilter: selftest: conntrack_vrf.sh: fix file permission

Changes in v5.10.85 (total commits 132)
Documentation/Kbuild: Remove references to gcc-plugin.sh
MAINTAINERS: adjust GCC PLUGINS after gcc-plugin.sh removal
doc: gcc-plugins: update gcc-plugins.rst
kbuild: simplify GCC_PLUGINS enablement in dummy-tools/gcc
xhci: avoid race between disable slot command and host runtime suspend
dt-bindings: net: Reintroduce PHY no lane swap binding

Changes in v5.10.84 (total commits 125)
parisc: Mark cr16 CPU clocksource unstable on all SMP machines
serial: tegra: Change lower tolerance baud rate limit for tegra20 and tegra30
ASoC: tegra: Fix kcontrol put callback in AHUB
ASoC: tegra: Fix kcontrol put callback in DSPK
ASoC: tegra: Fix kcontrol put callback in DMIC
ASoC: tegra: Fix kcontrol put callback in I2S
ASoC: tegra: Fix kcontrol put callback in ADMAIF
ASoC: tegra: Fix wrong value type in DSPK
ASoC: tegra: Fix wrong value type in DMIC
ASoC: tegra: Fix wrong value type in I2S
ASoC: tegra: Fix wrong value type in ADMAIF

Changes in v5.10.83 (total commits 121)
net: ipv6: add fib6_nh_release_dsts stub
ipv6: fix typos in __ip6_finish_output()
mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB

Changes in v5.10.82 (total commits 153)
scsi: ufs: core: Fix task management completion timeout race
scsi: ufs: core: Fix task management completion
net: reduce indentation level in sk_clone_lock()
net-zerocopy: Refactor skb frag fast-forward op.
sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain()

Changes in v5.10.81 (total commits 21)
thermal: Fix NULL pointer dereferences in of_thermal_ functions
PCI: Add MSI masking quirk for Nvidia ION AHCI
PCI/MSI: Deal with devices lying about their MSI mask capability
PCI/MSI: Destroy sysfs before freeing entries
loop: Use blk_validate_block_size() to validate block size

Changes in v5.10.80 (total commits 570)
soc/tegra: pmc: Fix imbalanced clock disabling in error code path
dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result`
soc/tegra: Fix an error handling path in tegra_powergate_power_up()
rcu: Fix existing exp request check in sync_sched_exp_online_cleanup()
serial: core: Fix initializing and restoring termios speed

Changes in v5.10.79 (total commits 19)
printk/console: Allow to disable console output by using console="" or console=null

Changes in v5.10.78 (total commits 14)
scsi: core: Put LLD module refcnt after SCSI device is released

Changes in v5.10.77 (total commits 77)
net: Prevent infinite while loop in skb_tx_hash()
mmc: sdhci: Map more voltage level to SDHCI_POWER_330

Changes in v5.10.76 (total commits 94)
scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma()
dma-debug: fix sg checks in debug_dma_map_sg()

Changes in v5.10.75 (total commits 101)
acpi/arm64: fix next_platform_timer() section mismatch error
platform/mellanox: mlxreg-io: Fix read access of n-bytes size attributes
platform/mellanox: mlxreg-io: Fix argument base in kstrtou32() call
net/mlx5e: Mutually exclude RX-FCS and RX-port-timestamp
net/mlx5e: Fix memory leak in mlx5_core_destroy_cq() error path

Changes in v5.10.74 (total commits 22)
sched: Always inline is_percpu_thread()
perf/core: fix userpage->time_enabled of inactive events

Changes in v5.10.73 (total commits 81)
RISC-V: Include clone3() on rv32
i2c: acpi: fix resource leak in reconfiguration device addition
net: prefer socket bound to interface when not in VRF
net/mlx5: E-Switch, Fix double allocation of acl flow counter
net/mlx5e: IPSEC RX, enable checksum complete

Changes in v5.10.72 (total commits 29)
tools/vm/page-types: remove dependency on opt_file for idle page tracking

Changes in v5.10.71 (total commits 92)
mm: don't allow oversized kvmalloc() calls
crypto: ccp - fix resource leaks in ccp_run_aes_gcm_cmd()
debugfs: debugfs_create_file_size(): use IS_ERR to check for error
cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory
cpufreq: schedutil: Use kobject release() method to free sugov_tunables
tty: Fix out-of-bound vmalloc access in imageblit

Changes in v5.10.70 (total commits 102)
spi: Fix tegra20 build with CONFIG_PM=n
thermal/core: Potential buffer overflow in thermal_build_list_of_policies()

Changes in v5.10.69 (total commits 64)
sched/idle: Make the idle timer expire in hard interrupt context
thermal/core: Fix thermal_cooling_device_register() prototype
PM: sleep: core: Avoid setting power.must_resume to false

Changes in v5.10.68 (total commits 125)
PCI: Sync __pci_register_driver() stub for CONFIG_PCI=n
tracing/boot: Fix a hist trigger dependency for boot time tracing
PCI: tegra: Fix OF node reference leak
PCI: tegra194: Fix MSI-X programming
PCI: tegra194: Fix handling BME_CHGED event
fuse: fix use after free in fuse_read_interrupt()

Changes in v5.10.67 (total commits 305)
cpufreq: powernv: Fix init_chip_info initialization in numa=off
net/mlx5: DR, Enable QP retransmission
net/mlx5: DR, fix a potential use-after-free bug
mmc: core: Return correct emmc response in case of ioctl error
ARM: tegra: tamonten: Fix UART pad setting
ARM: tegra: acer-a500: Remove bogus USB VBUS regulators
media: tegra-cec: Handle errors of clk_prepare_enable()
arm64: tegra: Fix Tegra194 PCIe EP compatible string
pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry()
crypto: public_key: fix overflow during implicit conversion

Changes in v5.10.66 (total commits 4)
Revert "time: Handle negative seconds correctly in timespec64_to_ns()"
Revert "posix-cpu-timers: Force next expiration recalc after itimer reset"
Revert "block: nbd: add sanity check for first_minor"
Revert "Bluetooth: Move shutdown callback before flushing tx and rx queue"

Bug 200712834

Change-Id: Iaf76032e92a2e31d457bc39c5b110605f5e20f39
Signed-off-by: Rajesh Gumasta <rgumasta@nvidia.com>
2022-09-29 15:57:12 +05:30
Sameer Pujar
ba0e19874d ASoC: tegra: Fix kcontrol put callback in AHUB
commit a4e37950c9e9b126f9cbee79b8ab94a94646dcf1 upstream.

The kcontrol put callback is expected to return 1 when there is change
in HW or when the update is acknowledged by driver. This would ensure
that change notifications are sent to subscribed applications. Update
the AHUB driver accordingly.

Fixes: 16e1bcc2caf4 ("ASoC: tegra: Add Tegra210 based AHUB driver")
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Suggested-by: Jaroslav Kysela <perex@perex.cz>
Suggested-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/1637219231-406-12-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-09-29 15:56:06 +05:30
Sameer Pujar
4715358c19 ASoC: tegra: Fix kcontrol put callback in DSPK
commit d6202a57e79d102271d38c34481fedc9d4c79694 upstream.

The kcontrol put callback is expected to return 1 when there is change
in HW or when the update is acknowledged by driver. This would ensure
that change notifications are sent to subscribed applications. Update
the DSPK driver accordingly.

Fixes: 327ef6470266 ("ASoC: tegra: Add Tegra186 based DSPK driver")
Suggested-by: Jaroslav Kysela <perex@perex.cz>
Suggested-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/1637219231-406-11-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-09-29 15:56:06 +05:30
Sameer Pujar
0e4e80ba39 ASoC: tegra: Fix kcontrol put callback in DMIC
commit a347dfa10262fa0a10e2b1970ea0194e3d4a3251 upstream.

The kcontrol put callback is expected to return 1 when there is change
in HW or when the update is acknowledged by driver. This would ensure
that change notifications are sent to subscribed applications. Update
the DMIC driver accordingly.

Fixes: 8c8ff982e9e2 ("ASoC: tegra: Add Tegra210 based DMIC driver")
Suggested-by: Jaroslav Kysela <perex@perex.cz>
Suggested-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/1637219231-406-10-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-09-29 15:56:06 +05:30
Sameer Pujar
d473d42138 ASoC: tegra: Fix kcontrol put callback in I2S
commit f21a9df3f7cb0005947679d7b9237c90574e229a upstream.

The kcontrol put callback is expected to return 1 when there is change
in HW or when the update is acknowledged by driver. This would ensure
that change notifications are sent to subscribed applications. Update
the I2S driver accordingly.

Fixes: c0bfa98349d1 ("ASoC: tegra: Add Tegra210 based I2S driver")
Suggested-by: Jaroslav Kysela <perex@perex.cz>
Suggested-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/1637219231-406-9-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-09-29 15:56:06 +05:30
Sameer Pujar
67d8d5800e ASoC: tegra: Fix kcontrol put callback in ADMAIF
commit e2b87a18a60c02d0dcd1de801d669587e516cc4d upstream.

The kcontrol put callback is expected to return 1 when there is change
in HW or when the update is acknowledged by driver. This would ensure
that change notifications are sent to subscribed applications. Update
the ADMAIF driver accordingly.

Fixes: f74028e159bb ("ASoC: tegra: Add Tegra210 based ADMAIF driver")
Suggested-by: Jaroslav Kysela <perex@perex.cz>
Suggested-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/1637219231-406-8-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-09-29 15:56:06 +05:30
Sameer Pujar
9bd13cefe4 ASoC: tegra: Fix wrong value type in DSPK
commit 3aa0d5c8bb3f5ef622ec2764823f551a1f630711 upstream.

The enum controls are expected to use enumerated value type.
Update relevant references in control get/put callbacks.

Fixes: 327ef6470266 ("ASoC: tegra: Add Tegra186 based DSPK driver")
Suggested-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/1637219231-406-5-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-09-29 15:55:17 +05:30
Sameer Pujar
44bb7bd10e ASoC: tegra: Fix wrong value type in DMIC
commit 559d234569a998a4004de1bd1f12da5487fb826e upstream.

The enum controls are expected to use enumerated value type.
Update relevant references in control get/put callbacks.

Fixes: 8c8ff982e9e2 ("ASoC: tegra: Add Tegra210 based DMIC driver")
Suggested-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/1637219231-406-4-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-09-29 15:53:18 +05:30
Sameer Pujar
d7d7cc0ad3 ASoC: tegra: Fix wrong value type in I2S
commit 8a2c2fa0c5331445c801e9241f2bb4e0e2a895a8 upstream.

The enum controls are expected to use enumerated value type.
Update relevant references in control get/put callbacks.

Fixes: c0bfa98349d1 ("ASoC: tegra: Add Tegra210 based I2S driver")
Suggested-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/1637219231-406-3-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-09-29 15:52:23 +05:30
Sameer Pujar
75d1e83e5e ASoC: tegra: Fix wrong value type in ADMAIF
commit 884c6cb3b7030f75c46e55b9e625d2372708c306 upstream.

The enum controls are expected to use enumerated value type.
Update relevant references in control get/put callbacks.

Fixes: f74028e159bb ("ASoC: tegra: Add Tegra210 based ADMAIF driver")
Suggested-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/1637219231-406-2-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-09-29 15:50:28 +05:30
Sameer Pujar
7d0726f36b ASoC: tegra: Add support for RT5640 codec
Due to a shortage of RT5658 codec parts, search was going on for an
alternative codec. As a replacement, RT5640 codec is finalized now.
The upcoming Concord boards (EB3 to begin with) will have this codec.
This commit adds required support in the machine driver.

Machine driver update is needed for following reasons:
 * The RT5640 codec driver expects sysclk configuration from machine
   driver. This requirement is similar to what we have today for
   RT5658 codec. This handling is done under "rt5640-playback" DAI
   link name.

 * RT5640 DAI link init is added for jack setup. Since it is mostly
   similar to RT5658 handling, the existing init helper function is
   re-used. The component driver jack setup callback is used to make
   this simple.

Bug 200766032

Change-Id: I41ee0022c22fd50e9baf80aa765b2b3ede4e85c7
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2625064
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Viswanath L <viswanathl@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-09-29 15:50:28 +05:30
Asha Talambedu
b4b4cc0717 ASoC: tegra: Handle adsp OS start crash
In case of nvadsp_os_start crash, the host adsp audio driver
is still getting registered and this is leading to kernel
panic during shutdown. Added code to propgate start status to
probe so host adsp audio driver register fails on adsp os crash

Bug 3391964

Change-Id: I361c1a1a0409e81ddfce2413debe63ba5d65d07d
Signed-off-by: Asha Talambedu <atalambedu@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2627904
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Dara Ramesh <dramesh@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-09-29 15:50:28 +05:30
Sheetal
99eec7ce60 ASoC: tegra: Fix mbdrc driver issues
- MBDRC status register should be defined as volatile.

- MBDRC master volume control was not working for
  expected volume range. Updated the control so that it can
  work for -256dB to 255dB gain. Control can take values
  from 0 to 512 that is mapped to -256 to 256dB. The dB
  info is added as metadata of control.

  kcontrol defination will look like below:
    amixer -c 1 cget name='OPE1 mbdrc master volume'
    numid=1187,iface=MIXER,name='OPE1 mbdrc master volume'
    ; type=INTEGER,access=rw---R--,values=1,min=0,max=512,step=0
    : values=256
    | dBminmax-min=-256.00dB,max=255.00dB

Bug 200753407

Signed-off-by: Sheetal <sheetal@nvidia.com>
Change-Id: I707a89074342083b71f906f15ead243ee317a43b
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2601115
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-09-29 15:50:28 +05:30
Asha Talambedu
719434d072 AsoC: tegra-alt: Update i2s rate setting logic
Earlier hardcoded pll base rates were leading to fractional divider
values for i2s multichannel config while deriving i2s bclk.
Hence updated clock rates and logic  for >2 channel configs for t186ref
and higher boards such that the dynamic range between max plla and min plla
is < 35 MHz. Also, if desired bclk is above limit, the case will be
declared as not supported. Note that new facility will be used only in l4t
machine driver.

Bug 200702569

Change-Id: I83aba425f6dde30a1f29f85b16a1bbbebba14198
Signed-off-by: Asha Talambedu <atalambedu@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2491744
(cherry picked from commit e0fe51d5e7ced073eb618e19836f88a023f70bdc)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2613507
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-09-29 15:50:28 +05:30
Asha Talambedu
39cc4081e3 ASoC: tegra: Add shutdown callback
- Added mutex protection for init_done flag reads in
  mixer control callbacks relevant to "ADSP init". Otherwise
  during shutdown sequence that includes alsa store service,
  this leads to inconsistent behaviour
- Shutdown callback is added to deinit ADSP OS during
  abrupt shutdown.
- In case ADSP OS is crashed during boot/boot has not
  started yet, shutdown does not issue OS deinit as
  init is not complete yet

Bug 3391964

Change-Id: I207e2141af9386f5914e07a8dd231d0fcd803a6e
Signed-off-by: Asha Talambedu <atalambedu@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2607727
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-09-29 15:50:28 +05:30
Sameer Pujar
9d520f3d07 ASoC: tegra: Don't deprecate master volume control
There was a plan to deprecate master volume control since it was thought
that per channel control will be sufficient and master volume application
can be emulated in user space by programming same volume to all channels.
But this means we would not really use a HW feature which has a provision
to automatically apply CH0 volume settings to all remaining channels.

HW has a per channel control bit, based on which it decides to apply a
channel specific setting or a common setting across all channels. Driver
has both master volume and per channel volume mixer controls. Based on
the control user updates, enable or disable the per channel control.

Use below scheme for volume updates:

 * If master volume mixer control is updated, disable per channel control
   and only CH0 volume register is programmed. SW can store same volume
   across all channels.

 * If a channel specific control is updated, enable per channel control
   and program specific channel volume register.

Above applies to mute/unmute functions as well and thus corresponding
control blocks are similarly updated.

The volume settings are stored in SW and the same is used for the user
space queries via mixer controls. But mute settings are not stored in
SW and are always directly read from HW since it belongs to a volatile
register. The mute control read function is modified to return proper
settings when queried from user space.

Bug 200766084

Change-Id: Iad8b5c09c424731e841863bfd5ce32d07ff9e684
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2599601
Reviewed-by: Sheetal . <sheetal@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Asha Talambedu <atalambedu@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-09-29 15:50:28 +05:30
Sameer Pujar
042747e4d8 ASoC: tegra: DAI link params support from DT
In current production software we support DAI link params from DT.
This is useful when operating Tegra in hostless mode, where params
(sample rate, channels and sample format) passed from DT are applied
to the DAI links. In this way DT can provide control to operate DAI
links in a required config.

For dev-main it was on hold since there was plan to use upstream
machine driver where upstream bindings can provide similar control.
Since this feature is required for a near customer release, it is
now ported to the dev-main driver.

Bug 200713904
Bug 200775355

Change-Id: I333cc60addc26ffc433f08b410fa076dc102282e
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2594849
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Viswanath L <viswanathl@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-09-29 15:50:28 +05:30
Sheetal
f9f0e26a20 ASoC: tegra: Memory leak due to BE HW constraint
- The issue was happening because dapm core was not deallocating
  the hw contraints rules memory.
  Memory leak backtrace from cat /sys/kernel/debug/kmemleak:
    [<0000000046fdaf4f>] slab_post_alloc_hook+0x6c/0x3e0
    [<00000000989dfc0e>] __kmalloc_track_caller+0x1b8/0x400
    [<00000000505e39ec>] krealloc+0xe8/0x160
    [<000000009cc82a21>] snd_pcm_hw_rule_add+0x164/0x1a0
    [<00000000aa77851e>] snd_pcm_hw_constraint_list+0x28/0x30
    [<000000009b2cd5c6>] tegra210_ahub_write_ram+0xa8/0xb60
    [<00000000a61d7069>] snd_soc_dai_startup+0x40/0xa0
    [<00000000a7452879>] snd_soc_dai_link_event+0x334/0x600
    [<000000008c5771de>] dapm_seq_check_event+0x120/0x330
    [<00000000be740a3d>] dapm_seq_run_coalesced+0xb0/0x250
    [<0000000003732007>] dapm_seq_run+0xf0/0x510
    [<00000000cbb85eb0>] dapm_power_widgets+0x58c/0xac0
    [<00000000b96c5548>] snd_soc_dapm_stream_event+0x128/0x170
    [<0000000027bb14bc>] soc_pcm_prepare+0x70/0x110
    [<00000000d44b9075>] snd_pcm_do_prepare+0x34/0x50
    [<000000005664d4d5>] snd_pcm_action_single+0x4c/0xa0

- For BE dais HW constraints won't take any impact and only for FE
  dais it is required. So added it in component driver open callback.

Bug 200773796

Signed-off-by: Sheetal <sheetal@nvidia.com>
Change-Id: Ic4c1bf881b914bda03bda8e97816cf1c6dee4052
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2596443
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Viswanath L <viswanathl@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-09-29 15:50:28 +05:30
sheetal
78f655e85e ASoC: tegra: Add support for 24KHz and 64KHz rate
- Fix the issues with 24KHz and 64KHz sample rate.
- In machine driver, 24KHz and 64KHz were not supported, add
  the rates into the list.
- 24KHz is not supported by ALSA, to support it mentioned dai rates
  as SNDRV_PCM_RATE_KNOT. Using KNOT chip can support unconventional rates,
  defined in hw constraints list.
- The change is added for FE links only,  for BE links its not required as
  it will be taken care by FE links.

Bug 200757915

Change-Id: I348368420316ba78b303cd27a413048b6cab2dd7
Signed-off-by: sheetal <sheetal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2571687
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-09-29 15:50:28 +05:30
Mohan Kumar
85258fddea ASoC: tegra: Add support for S24_LE format
Add support for S24_LE format for all internal and IO AHUB
modules.
- Make the data to be S32_LE internal to AHUB modules.
- Conversion from 24 to 32 or vise-versa will happen at ADMAIF, or
at the IO modules CIF to maintain consistency across modules.

Bug 200755886

Change-Id: I175e4177ec76baf7ead9b89276a70a4b454756fa
Signed-off-by: Mohan Kumar <mkumard@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2578280
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Viswanath L <viswanathl@nvidia.com>
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-09-29 15:50:28 +05:30
Mohan Kumar
d3352a5e41 ASoC: tegra: xbar widgets for T234
Due to removal of SPDIF and SPKPROT HW IP, the xbar
switch register offset for few modules changed compared
to previous chip.

Bug 200762074

Change-Id: I7733a7d6db8d70b164d07e1b9668da3d342633d7
Signed-off-by: Mohan Kumar <mkumard@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-5.10/+/2575517
Tested-by: Bitan Biswas <bbiswas@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Viswanath L <viswanathl@nvidia.com>
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Sharad Gupta <sharadg@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-09-29 15:50:28 +05:30