Commit Graph

60 Commits

Author SHA1 Message Date
gokull
6584be8cc3 Increase IVC timeout
Intermittent vblk failure during boot up.

Change Contains:
 [*] Increase the ivc_notified() timeout from
32usecs to 15msecs

Bug 4826664

Signed-off-by: gokull <gokull@nvidia.com>
Change-Id: I3a5aef2dd5288e16ae4e51cf081b53b388327022

(cherry-picked from commit
b1c28a9a2b6d919864d51cdea271001a68522d8b)

Change-Id: I3a5aef2dd5288e16ae4e51cf081b53b388327022
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3210713
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
Tested-by: Gokul Vasan L J <gokull@nvidia.com>
2025-07-24 10:19:13 +00:00
Vikram Kanigiri
873e573464 vblk: use interrupted wait API instead of normal wait
Currently vblk driver uses wait_for_completion() for the requests from block layer or responses from Storage Server.  wait_for_completion() make the current waiter to be un-interrutable. But linux top utility loadavg metric includes the processes both in running state and uninterruptable sate.

Replace wait_for_completion() with wait_for_completion_interruptible()  in driver, so that vblk wait will not be included in loadavg.
This changes is made as per customer request. It is for only cosmetic or for accounting purposes and no effect in functionality.

Bug 4767390

Change-Id: I2b885a1623b7d2d3a7af00951c5421dacf9d3d26
Signed-off-by: Vikram Kanigiri <vkanigiri@nvidia.com>
(cherry picked from commit ff34c49236bf57542eae09a7e7f7189ac8bddd13)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3219307
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Sreenivas Velpula <svelpula@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
(cherry picked from commit 2784d7b651cea6eb22195443d2cf43593084324b)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3262249
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Tested-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Gokul Vasan L J <gokull@nvidia.com>
2025-07-24 10:19:11 +00:00
gokull
e41e3efcb8 [Vblk]: Get vcpu affinity from the DT node
mpidr will not give the correct HRO VPU
when it is floorswept.

The Change contains:
 [1] Get the VCPU affinity from the DT rather
from mpidr.
 [2] Remove the Mpidr Logic

Bug 4856912

Change-Id: I4d21ed90a8effc94fd3b12a977752b56b3915548
Signed-off-by: Gokul Vasan L J <gokull@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3213689
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Tested-by: Gokul Vasan L J <gokull@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
Reviewed-by: Sreenivas Velpula <svelpula@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3262165
Tested-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
2025-07-24 10:19:11 +00:00
Manish Bhardwaj
06c3fe671a storage: use single core for init request
storage server has restriction to send the init request
also on core 2. So send the connection establishment request
and config request on core 2.

Bug 4619213

Change-Id: I157b5c9d3a4b39129be66235b593a648642cd7cc
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3144043
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Sreenivas Velpula <svelpula@nvidia.com>
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3262173
Reviewed-by: Gokul Vasan L J <gokull@nvidia.com>
2025-07-24 10:19:11 +00:00
Manish Bhardwaj
efe8229d72 vblk: use normal wait API instead of io wait
Since thread is waiting for request to come
from filesystem layer instead of actual IO request
to process.So use normal wait API in thread instead
of IO wait API.

Bug 4553019

Change-Id: Ib72bca088b555353ebd3dc6362cd0e24de0a570f
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3100480
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Tested-by: Zuyu Liao <zuyul@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3260664
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Gokul Vasan L J <gokull@nvidia.com>
2025-07-24 10:19:11 +00:00
Manish Bhardwaj
dc071fdd4c VSC: fix lcpu to vcpu conversion logic
-fix lcpu to vcpu conversion logic by
 considering the missing cluster or holes also.
-if the conversion is not successful then we are
 not pinning the VSCD threads to lcpu.
-populate lcpu to vcpu table once.

Bug 4372079

Change-Id: I8379496da1b7f85d984e1bac1680f830740fea09
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3015784
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3260665
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
2025-07-24 10:19:11 +00:00
Manish Bhardwaj
b918dd5111 vsc: pin vsc thread to default core
pin the vsc thread to default logical core 2
if the lcpu_affinity dts property is missing

Bug 4231381

Change-Id: I6d9787ae26d5b6562c8379df6d05b9218a02b0b3
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3011514
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3260488
Reviewed-by: Gokul Vasan L J <gokull@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
2025-07-24 10:19:11 +00:00
Manish Bhardwaj
c1e81c594f nvidia: protect the vsc driver initialisation path
Using this patch we flashing the below crash issue by
protecting the initialisation path.
05:00:08: [   12.819857] Call trace:
05:00:08: [   12.820282]  swake_up_locked.part.0+0x24/0x60
05:00:08: [   12.820581]  swake_up_locked+0x38/0x50
05:00:08: [   12.820841]  complete+0x50/0x80
05:00:08: [   12.820937] tegra_hv_vblk tegra_virt_storage3: send config cmd to ivc #111
05:00:08: [   12.821000]  0xffff8000012f1714
05:00:08: [   12.821388] tegra_hv_vblk tegra_virt_storage20: allocate drvdata buffer
05:00:08: [   12.821455]  irq_forced_thread_fn+0x48/0xf0
05:00:08: [   12.822010]  irq_thread+0x198/0x2d0
05:00:08: [   12.822244]  kthread+0x198/0x1c0
05:00:08: [   12.822476]  ret_from_fork+0x10/0x20

Bug 4231381
Bug 4365516

Change-Id: I6de423edb18097f29c9983b23fd154b8ffc5f6e2
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3009693
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3010050
Reviewed-by: Gokul Vasan L J <gokull@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
2025-07-24 10:19:11 +00:00
Manish Bhardwaj
16324a47de vblk: create partition specific threads.
create kernel thread for every partition to handle
bio requested based on the partition priority.

Bug 4231381

Change-Id: I4e0b6398bdcc14a204c2de8136d66e09521cd4df
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2998760
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Bhavesh Parekh <bparekh@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2980340
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Gokul Vasan L J <gokull@nvidia.com>
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
2025-07-24 10:19:11 +00:00
Sanjith T D
89e53fde2f vblk: Handle SCSI IOCTL case when dxfer_direction is 0
Some user space applications set the dxfer_direction to 0 when
the dxfer_len is set to 0. The native SCSI driver (sg.c) handles this
by checking for both dxfer_direction and dxfer_len.
To be compatible with the native SCSI driver, set the dxfer_direction
to SG_DXFER_NONE when dxfer_len is <= 0.

Bug 4617391
Bug 4318509

Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3133692
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
(cherry picked from commit 3fc4ded22141268c8a28bb40234899c042e49ce4)
Signed-off-by: Sanjith T D <std@nvidia.com>
Change-Id: Ie56128a84d21579de1c187c4bb5611ec33ae2f1b
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3237146
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
2025-07-24 10:19:09 +00:00
Jon Hunter
f01227d4ea drivers: Drop inline from driver remove wrapper
The driver remove function is a function pointer and therefore, it does
not make sense to define the function as an 'inline'. Update the
coccinelle script and drivers to remove the inline statement.

Bug 4749580

Change-Id: Ia03691b75c4edffe609f27468b911a92a5ddbd68
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3233980
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2025-07-24 10:19:08 +00:00
Sanjith T D
7dca31ebf6 vblk: Add access control for FFU and Device management.
Jira SSV-11935

Change-Id: I3cd0e22cdc57ffa3833e9d2710f3c3b1a521d4f8
Signed-off-by: Sanjith T D <std@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3202276
(cherry picked from commit 1fbb9cb8033a76fcda190968436b51d42819d929)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3221220
Reviewed-by: Sreenivas Velpula <svelpula@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
2025-07-24 10:19:07 +00:00
Sanjith T D
bcb56180c8 vblk: Update the max size for IOCTL.
Jira SSV-11935
Bug 4809400

Change-Id: I4daa668a6744c7015596305cb4616da55e416f54
Signed-off-by: Sanjith T D <std@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3188733
(cherry picked from commit 791b821b984f1fcfe9a4b00817db9e82d3bb73d8)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3221206
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
2025-07-24 10:19:07 +00:00
Jon Hunter
951b2423a8 drivers: Fix platform_driver remove for Linux v6.11
In Linux v6.11, the 'platform_driver' structure 'remove' callback was
updated to return void instead of 'int'. Update all the impacted drivers
as necessary to fix this.

Bug 4749580

Change-Id: I3bb5c549777f7ccad0e3f870373fdd25726ad7ed
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3182878
Reviewed-by: Brad Griffis <bgriffis@nvidia.com>
Tested-by: Brad Griffis <bgriffis@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
2024-08-11 17:20:34 -07:00
Jon Hunter
4941bf8dc8 block: virtual-storage: Add dummy driver for Linux v6.11
The Tegra virtual storage driver fails to build for Linux v6.11 because
of the following issues:

 1. The functions blk_queue_logical_block_size(),
    blk_queue_physical_block_size() and blk_queue_max_discard_sectors()
    have been removed.
 2. The function blk_queue_write_cache() has too many arguments for
    Linux v6.11.
 3. The flag QUEUE_FLAG_NONROT is not defined for Linux v6.11.

Add a dummy driver for this driver for Linux v6.11 until this driver is
fixed.

Bug 4311184
Bug 4749580

Change-Id: I56f811d6ee29dd0025a5dc199ae84e3fc0f37b21
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3162886
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
2024-07-30 08:54:05 -07:00
Manish Bhardwaj
5626a33be3 storage: update kernel version check
Support pstore client driver to store crash logs
in persistent storage device

JIRA ESLC-8017

Change-Id: I199e31f8ddf2f457326b98b5443daff67e60179a
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3168608
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Reviewed-by: Bhavesh Parekh <bparekh@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
2024-07-12 15:27:22 -07:00
Manish Bhardwaj
e44802987e vsc: fix out of bound memory access
kernel panic when doing a IOCTL on UFS virtual partition
with pass thru enabled. IOCTL require larger space than
the mempool size (512KB) and the len check fails and leads
to a out-of-bound memory access.

Bug 4683333

Change-Id: Ie8d13bbed13a257e73087c9472054aa4083cf3eb
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3151274
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Tested-by: Tonny Liang <tonnyl@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Tonny Liang <tonnyl@nvidia.com>
Reviewed-by: Sanjith T D <std@nvidia.com>
2024-06-06 09:05:58 -07:00
Jon Hunter
c73cf3c92a block: virtual-storage: Allow build for Linux v6.10
The function blk_queue_max_hw_sectors() was removed in Linux v6.10 and
so add a test to conftest to see if this function is present or not to
allow the driver to build. The virtual-storage driver is currently
broken for Linux v5.19+ kernel due to other incompatibilities with these
newer kernels, but has been updated so that it still builds. Therefore,
allow the driver to build for Linux v6.10 while the driver is fixed
properly for these newer kernels.

Bug 4311184
Bug 4593750

Change-Id: Ic4054c87acdf3c77f03ff94fbdde513d84fe229b
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3142216
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2024-05-22 09:19:53 -07:00
Jon Hunter
cb8b9f5a53 drivers: Fix missing vmalloc.h for Linux v6.10
Upstream commit 690da22dbfa8 ("asm-generic/io.h: kill vmalloc.h
dependency") removed the vmalloc.h header file from io.h and this breaks
building various drivers with the latest -next kernels. Fix this
by ensuring vmalloc.h is included and in most cases slab is not actually
needed and so remove this where possible. Note that it is fine to make
this change for all current supported kernels.

Bug 4593750

Change-Id: I003d1302bda226d356467e6ede99949b2716940a
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3141984
Reviewed-by: Brad Griffis <bgriffis@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
2024-05-22 09:19:24 -07:00
Manish Bhardwaj
d2e8382e1d nvidia-oot: fix KWT warning
dev_info and pr_info API are getting the
concurrency issue leading to KWT warning.
Fix by changing dev_info to pr_info

Bug 4595343

Change-Id: Iead2bc18e1eced7bebd816bd30e1eca173e4d474
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3113680
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Tested-by: Kasinadha Dendukuri <kdendukuri@nvidia.com>
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Reviewed-by: Kasinadha Dendukuri <kdendukuri@nvidia.com>
2024-04-13 06:31:12 -07:00
Tonny Liang
c934b1b477 nvidia-oot: tegra-hv-oops-storage: support UFS virtual partition
Bug 4585217

Change-Id: Ieef4dac5b28a9851fdad17993f2b6b87498546e1
Signed-off-by: Tonny Liang <tonnyl@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3111182
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
2024-04-08 15:34:03 -07:00
Jon Hunter
3b9f5783b2 block: virtual-storage: Fix build for Linux v6.9
In Linux v6.9-rc1, the function blk_mq_init_queue() was renamed
blk_mq_alloc_queue() and the arguments passed to the function were
updated. Add a test to conftest to detect if the function
blk_mq_alloc_queue() is present and update the virtual-storage driver
accordingly.

Bug 4471899

Change-Id: I7dc937eaad27445b1c140c57aafd36f4a4b769ba
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3095926
Reviewed-by: Paritosh Dixit <paritoshd@nvidia.com>
2024-03-27 07:08:40 -07:00
Manish Bhardwaj
e8c5cb610a vsc: use max supported ioctl size
target is getting crash while triggering multiple
ioctl call from userpsace due to miscalculation
of mempool_virt and mempool_offset for each slot.
So use max supported ioctl size macro instead of
max supported read and write operation size.

Bug 4336445

Change-Id: I438ff50cb0dfba845f4d7852e74314c66dab196c
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3001185
Reviewed-by: Kasinadha Dendukuri <kdendukuri@nvidia.com>
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Tested-by: Tonny Liang <tonnyl@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-10-24 13:46:24 -07:00
Jon Hunter
35ac3d9d5e block: virtual-storage: Drop version checks for flags
In Linux v5.17, the GENHD_FL_EXT_DEVT and GENHD_FL_NO_PART_SCAN were
removed and in Linux v5.19, the flags QUEUE_FLAG_SECERASE and
QUEUE_FLAG_DISCARD were removed. Rather than using kernel version
checks, simply check if the flag is defined. This is beneficial for
working with 3rd party Linux kernels that may have backported changes
from upstream.

Although the Tegra virtual-storage can be compiled for v5.19 kernels, it
still needs to be fixed properly for v5.19 kernels. Add some dev_WARN
prints to warn if these flags are not supported so that it will be clear
that this is not expected to work.

Bug 4119327
Bug 4311184

Change-Id: I7f7585b238ad45b26fb1d0df42b338c904ce87e7
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2992552
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-10-12 17:27:02 -07:00
Jon Hunter
dc189dfb94 block: virtual-storage: Remove kernel version checks
Rather than using kernel version checks to determine which kernel APIs
to use, add the necessary tests to the conftest script to determine
which kernel APIs are present in the kernel.

This is beneficial for working with 3rd party Linux kernels that may
have back-ported upstream changes into their kernel and so the kernel
version checks do not work.

Bug 4221847

Change-Id: Iec2c793ce408dab1cf7e5118c019dfe656dfa87c
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2992630
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-10-09 22:00:21 -07:00
Manish Bhardwaj
a0eaae1775 nvidia-oot: vsc: fix compilation error with k6.5
fix compilation error while building vsc driver
with k6.5

Bug 4221847
Bug 4311184

Change-Id: Ie015a25d8e6d50ecb2c908d9d505fa15d4daad1e
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2990176
Tested-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
2023-10-09 21:58:55 -07:00
Jon Hunter
68d1ae26d6 block: virtual-storage: Drop version check
The function blk_mq_alloc_request() has been exported in the Linux
kernel since v3.16 and the function blk_mq_free_request() has been
exported in the Linux kernel since v3.19. The function

Since Linux v5.0, blk_get_request() has always called
blk_mq_alloc_request() and blk_put_request() has always called
blk_mq_free_request(). Given that kernels newer than v5.0 are now
supported drop the version check around blk_mq_alloc_request() and
blk_mq_free_request() and always use these functions.

Bug 4119327

Change-Id: I018687b340acaa9617c81551efb436a0439b14f1
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2991457
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-10-05 17:57:14 -07:00
Manish Bhardwaj
4df331c666 Revert "nvidia: Optimize the request slots for queueing"
This reverts commit 4c20b236c8523e2af0fcd2f7396577ccf0328eec.
Reason for revert: <Seeing hung issue>

Bug 4260060

Change-Id: Ie9347885dd861ae9afc230c803246f86a0f34615
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2984818
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-09-28 21:46:55 -07:00
Jon Hunter
990ccbf02c block: virtual-storage: Remove unneeded header
The header file 'linux/genhd.h' is not needed for compiling the virtual
storage drivers and so remove this unneeded header file.

Bug 4119327

Change-Id: Ib6dd7bc072b291a5617880fc65c7cd8dbc0b35ab
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2985997
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-09-27 08:24:49 -07:00
Jon Hunter
e3f94bde03 block: virt-storage: Fix build for pre-v5.15 kernels
Building the Tegra virtual storage driver for v5.14 kernels fails with
the following error ...

 drivers/block/tegra_virt_storage/tegra_hv_vblk.c:1236:48: error:
 passing argument 1 of '__alloc_disk_node' makes integer from pointer
 without a cast [-Werror=int-conversion]
  vblkdev->gd = __alloc_disk_node(vblkdev->queue, NUMA_NO_NODE);
                                  ~~~~~~~^~~~~~~
                                         |
                                         struct request_queue *

Fix this by correcting the arguments passed to __alloc_disk_node() for
pre-v5.15 kernels.

Bug 3820317

Change-Id: I2f208acb3ef0a009d877ab46fb110a87968862fe
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2978392
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
2023-09-20 18:57:55 -07:00
Sanjith T D
8975fb1f4b virt_storage: Update calling of ivc_reset()
Below race condition can happen during boot
1) Server calls sivc_reset()
2) Storage client driver has IVC event handler registered, so it gets the event
   and it calls ivc_notified()
3) Server gets ivc event, it calls ivc_notified()
   ( this makes server local state to established )
4) Storage cliend driver also goes to established state
5) After this, storage client driver continued with probe() and
   calls ivc_reset() which results in disconnecting the
   already established connection.

To fix this race condition, perform ivc_reset in storage client
driver right after tegra_hv_ivc_reserve() before registering
the IVC IRQ handler.

Bug 4125055

Change-Id: I36e6db3479f34fb649bdb8d890f24b1783d10cb9
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2943766
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: Sanjith T D <std@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
Tested-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
2023-07-31 06:26:24 -07:00
Manish Bhardwaj
7e764afb5f storage: Update VSC driver for handling erase
1. If vs_blk_dev_config.req_ops_supported has only DISCARD
   support enabled, then REQ_OP_DISCARD should be mapped to
   DISCARD for UFS.

2. If vs_blk_dev_config.req_ops_supported has only SECURE_ERASE
   support enabled, then REQ_OP_DISCARD and REQ_OP_SECURE_ERASE
   both should be mapped to SECURE_ERASE for UFS.

3. If vs_blk_dev_config.req_ops_supported has only ERASE
   support enabled, then REQ_OP_DISCARD and REQ_OP_SECURE_ERASE
   both should be mapped to ERASE for UFS.

Bug 4176555

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I01599df9ab93525120106dfabf2d345ab8b64770
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2920433
Reviewed-by: Sanjith T D <std@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-07-14 08:37:46 -07:00
Manish Bhardwaj
5d872b9a0d storage: fix cert-c issue in storage driver
Using this patch we are fixing below cert error:-
1. var_deref_model: Passing null pointer bio_req to req_op,
   which dereferences it.

CID 10177627

Bug 3512545

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Id9c71a82d3adf52590816fa87b53a8965da5c105
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2933682
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-07-10 16:54:20 -07:00
Manish Bhardwaj
309e6943e3 storage: create timer before being started.
timer was getting started evein before being created
leading to below crash. So create timer before getting
started.

[0.483364] Internal error: Oops - BUG: 0 [#1] PREEMPT_RT SMP
Modules linked in: tegra_vblk(O) tegra_hv_vblk_oops(O) tegra_hv(O) ivc_ext(O)
CPU: 10 PID: 9 Comm: kworker/u24:0 Tainted: G O 5.15.98-rt-tegra #1
[0.531518] Hardware name: p3710-0010 (DT)
[0.532301] Workqueue: vblk_req_wq1 0xffff800001271c90
[0.533268] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[0.534552] pc : mod_timer+0x2d8/0x340
[0.535250] lr : mod_timer+0x34/0x340
[0.535936] sp : ffff80000aa13c90
[0.536539] x29: ffff80000aa13c90 x28: ffff000083c18080 x27: ffff000083c182f8
[0.537876] x26: ffff00008012de74 x25: ffff000083c182d8 x24: ffff000083c0f0b0
[0.539253] x23: 00000000fffef8b4 x22: ffff00008028e740 x21: ffff000083c18280
[0.540547] x20: 0000000000000000 x19: ffff000083c183d8 x18: 0000000000000001
[0.541860] x17: 00000000000002b5 x16: ffff800001271c90 x15: 0000000000000003
[0.543184] x14: 0000000000000000 x13: 0000000000000020 x12: 0101010101010101
[0.544549] x11: 7f7f7f7f7f7f7f7f x10: fefefeff3070765e x9 : ffff00008012de74
[0.545885] x8 : fefefefefefefeff x7 : 0000000000000278 x6 : ffff00008012de74
[0.547213] x5 : 7165725f6b6c6276 x4 : 0000000000001000 x3 : ffff000083c18080
[0.548554] x2 : 0000000000000000 x1 : 00000000fffef8b4 x0 : 0000000000000000
[0.549938] Call trace:
[0.550406]  mod_timer+0x2d8/0x340
[0.551070]  0xffff800001271e0c
[0.551672]  process_one_work+0x1f4/0x520
[0.552406]  worker_thread+0x58/0x450
[0.553071]  kthread+0x198/0x1c0
[0.553685]  ret_from_fork+0x10/0x20

JIRA ESLC-7516

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I9160c0bc0907880cb128e4245383adf3a4ddb021
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2931256
Tested-by: Advaya Andhare <aandhare@nvidia.com>
Reviewed-by: Kasinadha Dendukuri <kdendukuri@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-07-07 06:57:31 -07:00
Manish Bhardwaj
ef4d81b7d7 storage: fix cert-c issue in storage driver
Using this patch we are fixing below cert error:-
1. cert_exp33_c_violation: Using uninitialized value
   ioctl_req->status when calling vblk_complete_mmc_multi_ioc.

CID 646845

Bug 3512545

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I7127dbbc3259a8f42dac5003a56e0aa932053f81
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2930565
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-07-05 14:56:29 -07:00
Manish Bhardwaj
eab559cc9d nvidia: Optimize the request slots for queueing
instead of having fixed memory slots of size 512KB
in mempool we are going to create memory slots at
runtime based on size of the request to be processed.

Bug 3777610

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Ib9b36798109c4a0a79765278a3b6a59a8c362756
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2906754
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-07-03 06:15:10 -07:00
Manish Bhardwaj
37af2918e5 nvidia: vblk: add timer support
Using this patch we are adding timer support for each
request going to storage server with timeout value
of 30 secs just to track request hungs on storage
server.

JIRA ESLC-7429

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Ief13c0ad0308d548cea34bada047da1714b19e08
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2900572
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-06-24 07:26:21 -07:00
Manish Bhardwaj
312d19b2ff nvidia-oot: align ioctl buffer to 512 byte
Using this patch we are aligning ioctl
buffer to 512 byte address passed to
storage server

Bug 4054343

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I1384e47411e3e07e27615c434363c37e18060104
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2920267
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-06-14 22:57:13 -07:00
Sanjith T D
19cd2b3ccc vblk: Handle SCSI IOCTL case where mx_sb_len is 0
Storage server expectes the mx_sb_len to be
set to non-zero value in order to pass on the
sense information assosiated with the SCSI
command to the user.

Some of the open source implementations(Ex:f2fs)
that use SG_IO SCSI IOCTL interface set the
mx_sb_len to 0. Handle this case in the vblk
client driver.

Bug 4060482

Change-Id: Ib3779f9cd4beb2822add95d4773909b7d3e7217a
Signed-off-by: Sanjith T D <std@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2894395
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-26 20:21:19 -07:00
Manish Bhardwaj
b53f6a8262 nvidia: support PM ops in oops driver
Using this patch we are making changes for
suspend operation to happen as late as possible
and resume operation to happen as early as possible.

Bug 3585622

Change-Id: I941a66c2d4d8a7e9a35d13659f6c1a17422f7e55
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2888613
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-21 11:38:22 -07:00
Manish Bhardwaj
1d627f6a49 nvidia: add PM ops support in oops driver
Using this patch we are adding PM ops support in oops
driver so that we can store the crash logs after
SC7 cycle also.

Bug 3585622

Change-Id: Id82252ac869cc8d3b7e09e2faec8289ab4f3859f
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2886489
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-14 08:19:24 -07:00
Jon Hunter
06b833d570 block: virt-storage: tegra: Fix build for Linux v5.14
For Linux v5.14, the function device_add_disk() has a void return type
and compilation now fails with ...

 nvidia-oot/drivers/block/tegra_virt_storage/tegra_hv_vblk.c:1162:8:
 error: invalid use of void expression
  1162 |  (void)!device_add_disk(vblkdev->device, vblkdev->gd, NULL);
       |        ^

Fix the build for kernels prior to v5.15 by not attempting to  access
the return value. Finally, for kernels v5.15 and newer, do not ignore
the return value and report an error if device_add_disk() fails.

Bug 4052299

Change-Id: I975f30bc67661eacf74634b5edb70e5ad5fc1a8d
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2881453
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-05 06:05:05 -07:00
Laxman Dewangan
035a437f79 block: virt-storage: tegra: Fix compilation warning
Fix below compilation warning:
- Indentation warning just after if
- return value not used from function.

Bug 4052299

Change-Id: I90fc00d41304ba34bf62fef6e2024999abc4a340
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2880032
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-04-01 10:54:57 -07:00
Sanjith T D
3ca382c8bf vblk: Update sanity check for erase/discard
Check if the req_bytes > mempool_len only if
IOVA is enabled and the operations are not
DISCARD and SECURE_ERASE. Mempool is not used
for DISCARD and SECURE_ERASE operations.

Bug 3854703
Bug 3994714

Change-Id: I42250f7b2d36a83a4fa169ee8e4c1652be22b006
Signed-off-by: Sanjith T D <std@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2803275
Reviewed-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2877386
Tested-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
2023-03-27 09:48:01 -07:00
Manish Bhardwaj
a0c0b2f212 nvidia-oot: fix crash issue in vblk driver
Using this patch we are fixing kernel crash
issue which is observed when we are unbinding
the UFS driver, and we are trying to unreserved
the mempool which was never reserved.

Bug 3960718

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Ib684cc99b9e61aa945ef406af0889aebe57e1a75
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2860634
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sanjith T D <std@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-02-21 03:42:31 -08:00
Manish Bhardwaj
aa5d06bcd3 nvidia-oot: fix Coverity defects
Using this patch we are fixing coverity defects in
CAN and storage OOPS driver.

CID 10132028: Unchecked return value (CHECKED_RETURN)
CID 10166522: Uninitialized scalar variable (UNINIT)
CID 10166537: Uninitialized scalar variable (UNINIT)
CID 10166580: Uninitialized scalar variable (UNINIT)

Bug 3952896

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I3caf0a9121a4480567ce32c6777b547901f24815
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2860630
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-02-21 03:42:27 -08:00
Manish Bhardwaj
a51a3b4d6f nvidia-oot: protect IVC APIs using mutex
While accessing IVC framework APIs is causing concurrency
issue leading to system crash. so protecting the APIs
using mutex.
Also removing the req_lock mutex which is being used
unnecessarily since the shared resources are already protected
by ivc_lock mutex.

Bug 3937188

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: Ie49161b7f2659f9c44352d50f950d8f5a3cae32c
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2856249
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-02-15 04:26:47 -08:00
Manish Bhardwaj
db2721e896 vblk: increase vblkdev max minor count
currently the max number of minors for a vblock device is 16
With the current configuration this is exceeding and causes errors
during boot. update the max count to 32

Bug 3899893
JIRA ESLC-7100

Change-Id: I07cf631e95af673ad08d0ecf7186ce9cb0114a1b
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2849763
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-02-02 16:38:17 -08:00
Manish Bhardwaj
01a13440b4 nvidia-oot: port virtual oops storage driver
Using this patch we are porting virtual oops storage driver
to OOT kernel.

JIRA ESLC-7217
Bug 3961155

Change-Id: I60ba159b3a4662cf02d686a1916a110c5158901e
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2849807
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
2023-02-02 16:37:45 -08:00
Manish Bhardwaj
4d73511481 nvidia: support HSI error injection
Using this patch we are adding HSI error
injection support for SDMMC controller.

JIRA ESLC-7042
Bug 3413214

Change-Id: Ib1300bd133eb48c30439337c8205365dfd30395d
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2849755
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-02-02 16:37:38 -08:00