When a FLOGI is received before we have issued our FLOGI, the ACC response
to the received FLOGI is issued with SID 2 instead of the expected fabric
controller SID. Certain target vendors ignore the malformed ACC with SID 2
and wait for a properly filled ACC with a fabric controller SID.
The lpfc_sli_prep_wqe() routine depends on the FC_PT2PT flag to fill in the
fabric controller SID when in PT2PT mode, but due to a previous commit the
flag was getting cleared. Fix by adding a check for the defer_flogi_acc
flag to know whether or not to clear the FC_PT2PT flag on link up.
Link: https://lore.kernel.org/r/20220911221505.117655-3-jsmart2021@gmail.com
Fixes: 439b93293f ("scsi: lpfc: Fix unsolicited FLOGI receive handling during PT2PT discovery")
Co-developed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
The if statment check (prli_fc4_req & PRLI_NVME_TYPE) evaluates to true
when receiving a PRLI request for bogus FC4 type codes that happen to have
the 3rd or 5th bit set because PRLI_NVME_TYPE is 0x28. This leads to
sending a PRLI_NVME_ACC even for bogus FC4 type codes.
Change the bitwise & check to an exact == type code check to ensure we send
PRLI_NVME_ACC only for NVME type coded PRLI requests.
Link: https://lore.kernel.org/r/20220911221505.117655-2-jsmart2021@gmail.com
Co-developed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
The error code from mpi3mr_post_transport_req() is supposed to be passed to
bsg_job_done(job, rc, reslen), but it isn't.
Link: https://lore.kernel.org/r/YyMISJzVDARpVwrr@kili
Fixes: 176d4aa69c ("scsi: mpi3mr: Support SAS transport class callbacks")
Acked-by: Sathya Prakash Veerichetty <sathya.prakash@broadcom.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
There are three error paths which return success:
1) Propagate the error code from mpi3mr_post_transport_req() if it fails.
2) Return -EINVAL if "ioc_status != MPI3_IOCSTATUS_SUCCESS".
3) Return -EINVAL if "le16_to_cpu(mpi_reply.response_data_length) !=
sizeof(struct rep_manu_reply)"
Link: https://lore.kernel.org/r/YyMIJh1HU2Qz9+Rs@kili
Fixes: 2bd37e2849 ("scsi: mpi3mr: Add framework to issue MPT transport cmds")
Acked-by: Sathya Prakash Veerichetty <sathya.prakash@broadcom.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
ahd_linux_setup_iocell_info() intentionally writes to the const-marked
aic79xx_iocell_info array, but is called during __init, so the location is
actually writable at this point on most architectures. Annotate this
explicitly with __ro_after_init to avoid static analysis confusion.
Link: https://lpc.events/event/16/contributions/1175/attachments/1109/2128/2022-LPC-analyzer-talk.pdf
Link: https://lore.kernel.org/r/20220914115953.3854029-1-keescook@chromium.org
Cc: Hannes Reinecke <hare@suse.com>
Cc: "James E.J. Bottomley" <jejb@linux.ibm.com>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: linux-scsi@vger.kernel.org
Reported-by: David Malcolm <dmalcolm@redhat.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Commit 8f394da36a ("scsi: qla2xxx: Drop TARGET_SCF_LOOKUP_LUN_FROM_TAG")
made the __qlt_24xx_handle_abts() function return early if
tcm_qla2xxx_find_cmd_by_tag() didn't find a command, but it missed to clean
up the allocated memory for the management command.
Link: https://lore.kernel.org/r/20220914024924.695604-1-rafaelmendsr@gmail.com
Fixes: 8f394da36a ("scsi: qla2xxx: Drop TARGET_SCF_LOOKUP_LUN_FROM_TAG")
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Rafael Mendonca <rafaelmendsr@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
se_tmr_req_cache has been removed since commit c8e31f26fe ("target: Add
SCF_SCSI_TMR_CDB usage and drop se_tmr_req_cache").
Remove extern.
Link: https://lore.kernel.org/r/20220913023722.547249-3-cuigaosheng1@huawei.com
Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
qla2x00_get_fw_version_str() has been removed since commit abbd8870b9
("[SCSI] qla2xxx: Factor-out ISP specific functions to method-based call
tables.").
qla2x00_release_nvram_protection() has been removed since commit
459c537807 ("[SCSI] qla2xxx: Add ISP24xx flash-manipulation routines.").
qla82xx_rdmem() and qla82xx_wrmem() have been removed since commit
3711333dfb ("[SCSI] qla2xxx: Updates for ISP82xx.").
qla25xx_rd_req_reg(), qla24xx_rd_req_reg(), qla25xx_wrt_rsp_reg(),
qla24xx_wrt_rsp_reg(), qla25xx_wrt_req_reg() and qla24xx_wrt_req_reg() have
been removed since commit 08029990b2 ("[SCSI] qla2xxx: Refactor
request/response-queue register handling.").
qla2x00_async_login_done() has been removed since commit 726b854870
("qla2xxx: Add framework for async fabric discovery").
qlt_24xx_process_response_error() has been removed since commit
c5419e2618 ("scsi: qla2xxx: Combine Active command arrays.").
Remove the declarations for them from header file.
Link: https://lore.kernel.org/r/20220913023722.547249-2-cuigaosheng1@huawei.com
Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Going forwards, the intention is for GuC firmware files to be named
for their major version only and HuC firmware files to have no version
number in the name at all. This patch adds those entries for all
platforms that are officially GuC/HuC enabled.
Also, update the expected GuC version numbers to the latest firmware
release for those platforms.
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220914234605.622342-2-John.C.Harrison@Intel.com
The default target port group is always returned in the list of port
groups, even if the behaviour is unwanted, i.e. it has no members and
non-default port groups are primary port groups.
That violates SPC-4 "6.37 REPORT TARGET PORT GROUPS command":
Every target port group shall contain at least one target port. The
target port group descriptor shall include one target port descriptor for
each target port in the target port group.
This patch hides port groups with no ports in REPORT TARGET PORT GROUPS
response.
Link: https://lore.kernel.org/r/20220912214549.27882-1-d.bogdanov@yadro.com
Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
SAM-5 4.8.3 (SCSI target device with multiple SCSI ports structure)
obligates to set MULTIP bit when there's multiple SCSI target ports:
Each device server shall indicate the presence of multiple SCSI
target ports by setting the MULTIP bit to one in its standard
INQUIRY data (see SPC-4).
Set MULTIP bit automatically to indicate the presence of multiple SCSI
target ports within standard inquiry response data if there are
multiple target ports in all target port groups of the se_device.
Link: https://lore.kernel.org/r/20220912125457.22573-2-d.bogdanov@yadro.com
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Co-developed-by: Roman Bolshakov <r.bolshakov@yadro.com>
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
In __qedf_probe(), if qedf->cdev is NULL which means
qed_ops->common->probe() failed, then the program will goto label err1, and
scsi_host_put() will free lport->host pointer. Because the memory qedf
points to is allocated by libfc_host_alloc(), it will be freed by
scsi_host_put(). However, the if statement below label err0 only checks
whether qedf is NULL but doesn't check whether the memory has been freed.
So a UAF bug can occur.
There are two ways to reach the statements below err0. The first one is
described as before, "qedf" should be set to NULL. The second one is goto
"err0" directly. In the latter scenario qedf hasn't been changed and it has
the initial value NULL. As a result the if statement is not reachable in
any situation.
The KASAN logs are as follows:
[ 2.312969] BUG: KASAN: use-after-free in __qedf_probe+0x5dcf/0x6bc0
[ 2.312969]
[ 2.312969] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014
[ 2.312969] Call Trace:
[ 2.312969] dump_stack_lvl+0x59/0x7b
[ 2.312969] print_address_description+0x7c/0x3b0
[ 2.312969] ? __qedf_probe+0x5dcf/0x6bc0
[ 2.312969] __kasan_report+0x160/0x1c0
[ 2.312969] ? __qedf_probe+0x5dcf/0x6bc0
[ 2.312969] kasan_report+0x4b/0x70
[ 2.312969] ? kobject_put+0x25d/0x290
[ 2.312969] kasan_check_range+0x2ca/0x310
[ 2.312969] __qedf_probe+0x5dcf/0x6bc0
[ 2.312969] ? selinux_kernfs_init_security+0xdc/0x5f0
[ 2.312969] ? trace_rpm_return_int_rcuidle+0x18/0x120
[ 2.312969] ? rpm_resume+0xa5c/0x16e0
[ 2.312969] ? qedf_get_generic_tlv_data+0x160/0x160
[ 2.312969] local_pci_probe+0x13c/0x1f0
[ 2.312969] pci_device_probe+0x37e/0x6c0
Link: https://lore.kernel.org/r/20211112120641.16073-1-fantasquex@gmail.com
Reported-by: Zheyu Ma <zheyuma97@gmail.com>
Acked-by: Saurav Kashyap <skashyap@marvell.com>
Co-developed-by: Wende Tan <twd2.me@gmail.com>
Signed-off-by: Wende Tan <twd2.me@gmail.com>
Signed-off-by: Letu Ren <fantasquex@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Add mmsys func to manipulate dpi output format config for MT8186.
Co-developed-by: Jitao Shi <jitao.shi@mediatek.com>
Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
Signed-off-by: Xinlei Lee <xinlei.lee@mediatek.com>
Reviewed-by: Nís F. R. A. Prado <nfraprado@collabora.com>
Link: https://lore.kernel.org/all/1663161662-1598-2-git-send-email-xinlei.lee@mediatek.com/
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
Commit 9a073d4fbb ("soc: bcm: brcmstb: biuctrl: Add missing
of_node_put()") added what was thought to be a missing of_node_put() but
now causes a double of_node_put() to be called, once from
setup_hifcpubiuctrl_regs() and another time from brcmstb_biuctrl_init().
Ensure that setup_hifcpubiuctrl_regs() is not calling of_node_put()
since it is not obvious it does that on one of its parameters.
Fixes: 9a073d4fbb ("soc: bcm: brcmstb: biuctrl: Add missing of_node_put()")
Reported-by: Jim Quinlan <jim2101024@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Change-Id: I1c405c36c2f06c8b8c0f684143b7a52db7e809f0
Due to change to switch to use lock_sock inside rfcomm_sk_state_change
the socket shutdown/release procedure can cause a deadlock:
rfcomm_sock_shutdown():
lock_sock();
__rfcomm_sock_close():
rfcomm_dlc_close():
__rfcomm_dlc_close():
rfcomm_dlc_lock();
rfcomm_sk_state_change():
lock_sock();
To fix this when the call __rfcomm_sock_close is now done without
holding the lock_sock since rfcomm_dlc_lock exists to protect
the dlc data there is no need to use lock_sock in that code path.
Link: https://lore.kernel.org/all/CAD+dNTsbuU4w+Y_P7o+VEN7BYCAbZuwZx2+tH+OTzCdcZF82YA@mail.gmail.com/
Fixes: b7ce436a5d ("Bluetooth: switch to lock_sock in RFCOMM")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Now that everything except StrongARM is unified under
CONFIG_ARCH_MULTIPLATFORM, the option is rather meaningless
in its current form.
Rework the Kconfig logic to make this useful again, similar
to the way that RISC-V has CONFIG_NONPORTABLE (with the
opposite polarity), this now controls the visibility of
options that get in the way of building generic kernels,
while allowing custom kernels.
One side-effect is that 'randconfig' builds now rarely hit
strongarm machines, rather than testing them three quarters
of the time.
* 'arm-multiplatform-cleanup' of https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
ARM: make ARCH_MULTIPLATFORM user-visible
ARM: fix XIP_KERNEL dependencies
ARM: Kconfig: clean up platform selection
ARM: simplify machdirs/platdirs handling
ARM: remove obsolete Makefile.boot infrastructure
A cleanup for the footbridge platform that came out of inspecting
the platforms during the multiplatform conversion as well as the
dma address patches.
* 'footbridge/cleanup' of https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
ARM: footbridge: remove custom DMA address handling
ARM: footbridge: move isa-dma support into footbridge
ARM: footbridge: remove leftover from personal-server
ARM: footbridge: remove addin mode
Small set of changes in preparation to add support for FF-A v1.1
specification later. It mainly contains:
1. Splitting up ffa_ops into different categories namely information,
message and memory. It helps to make info and memory operations
independent from ffa_device so thata generic memory management
module can use it without specific ffa_dev.
2. Adds support for querying FF-A features and use the same to detect
the support for 64-bit operations.
3. Adds v1.1 get_partition_info support and use the same to set up
32-bit execution mode flag automatically.
4. Adds pointer to the ffa_dev_ops in struct ffa_dev and drop
ffa_dev_ops_get() which enables to drop ffa_ops in optee_ffa
structure using ffa_dev->ops directly. Additionally ffa_dev_ops is
renamed as ffa_ops.
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmMgVOEACgkQAEG6vDF+
4phosQ//Q6tnJtcxgw7AeioIeGrXEAQy9Psyt8JrGixTHWSgq42G8Z0PKPO7MwFn
F5RxVSE85E4wLBLu3xiuR1mlAglBOvec3cY4/4XBfN8nxzYUBiaOn8U7Jjnh3QYk
vp0MTzECsi9a2T9T4zr0hLAdO/5uZBG16nf45iKOo9qEF6KS7WZWhdPHcyG4MpCH
u6L2aKGb0XzfzT0YAHxvOipVTdYg4smtmhtOj5vvuD1XEve4ARh8WjhNFwE2L6zt
6RH/CgzhEJFOJkR/WjNdlcD9b/9QuwvmIORXFUP7jTIR/SYHB4k7xutz/DD2L4/P
Xp/qiNrlrQnXpdMbYbr5S9e1jlPfjwbsiG5CNf620gS+Up5ZLD+Vnhu64A+Bfml2
8YSjJHNurkiCzTzpawGiRl0uGEwvvOhZBnlGaaeJP9ga98dQc5eom+qLbeDyT/dK
ESILyaetQniHCUU+hIbZ9jnfj0sdlgd5gF6Lbsnqdy25KktIiVzscL0Wkwl5jY6C
JiCv++6ieH44NrDTNaFzF/MjpBcBxXmp/qposT2wuPHxdY+OPnbjorGoLZP1F2Ns
i/+1l724sm1ETdwm/eVn9aWoH681G1APd45xYE2khLme7o9V+xapJD5khQN0nSet
gJ20gstIDjHBhOGYCFg/Q2l7HlrvrFYXLgN/4GI8z6CJUuUCpj0=
=u/KH
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmMjhesACgkQmmx57+YA
GNlVfBAAk3s11gubrUNcY1HLhZXkAY/QmNVt8yEnP6CjMkOc3nIAVqtjklXJ6+dp
WtMsJUx993DH8wmGvid4IF2BWPTSeQ6xMfx5dqKgFLg1fIPRejomD2g+JtPlKyFO
UeOzg0T7H3Fht3UnYH3D7muc1zkFXumwZPATqVJY8vFF8jJTnQEfoy0iN1qYBM4Y
ex1EXteXDbhA0jezmqGlTMcDGNgZs1JeYBciaZl4U/pH2dF79tTUDeQh/l4ZbtTd
Z1V8mvbZHwFuWax2frPeVFnVGYD3VP5c28/qxLYrueYEaSEbOtYFDSkbP0U2D4GG
jhYO2PPCPw/qxjx8PGfjciAK1y4WKwTXs+D4KfdY+IyhuoTSi+VN0stCFQGoOf06
eMy/eUTCA02ICe3IKcO3KqZbAH3mBpiw7AgmMAkSRSdOadFKfZ4PauTdmR/a7gJL
E4MyMwfY1yJ3oJeHx/WvFPL4Iwl26QTx2q/srjDlTJ9laHQv/D1RBi51zwnEC8bp
kxuP69hqapiroiKAJcnHGpJX4icm2vV7YUBGqF03Sw+SByiJYGt47ojEcbA/kEDk
Cis383/TN2xNFSZ+uu5MWj2vkbus5m8OQ2OvDgJ7lUoPVgjBpzd7kBuyT5bpY+aU
m//viWe28xjOQz0KmB4pnitBO2xmYdo2G94Xak/xgu7ksAVItnY=
=aIAe
-----END PGP SIGNATURE-----
Merge tag 'ffa-updates-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/drivers
Arm FF-A firmware driver updates for v6.1
Small set of changes in preparation to add support for FF-A v1.1
specification later. It mainly contains:
1. Splitting up ffa_ops into different categories namely information,
message and memory. It helps to make info and memory operations
independent from ffa_device so thata generic memory management
module can use it without specific ffa_dev.
2. Adds support for querying FF-A features and use the same to detect
the support for 64-bit operations.
3. Adds v1.1 get_partition_info support and use the same to set up
32-bit execution mode flag automatically.
4. Adds pointer to the ffa_dev_ops in struct ffa_dev and drop
ffa_dev_ops_get() which enables to drop ffa_ops in optee_ffa
structure using ffa_dev->ops directly. Additionally ffa_dev_ops is
renamed as ffa_ops.
* tag 'ffa-updates-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
firmware: arm_ffa: Split up ffa_ops into info, message and memory operations
firmware: arm_ffa: Set up 32bit execution mode flag using partiion property
firmware: arm_ffa: Add v1.1 get_partition_info support
firmware: arm_ffa: Rename ffa_dev_ops as ffa_ops
firmware: arm_ffa: Make memory apis ffa_device independent
firmware: arm_ffa: Use FFA_FEATURES to detect if native versions are supported
firmware: arm_ffa: Add support for querying FF-A features
firmware: arm_ffa: Remove ffa_dev_ops_get()
tee: optee: Drop ffa_ops in optee_ffa structure using ffa_dev->ops directly
firmware: arm_ffa: Add pointer to the ffa_dev_ops in struct ffa_dev
Link: https://lore.kernel.org/r/20220913100612.2924643-1-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
6.1, please pull the following:
- Guilherme adds a comment to the panic notifier, part of his big panic
notifier rework series
- William migrates all of ARCH_BCM4908 dependencies to ARCH_BCMBCA
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAmMfeckACgkQh9CWnEQH
BwQF9xAAr2z5G9EJkfWr13eTv6E1gvTXM96ljPt7yayVbmQeZOfR18Fl8orB+WtN
YqkCIJ7eKRRevlPnrCLr4UghhFsHJABX1Oj8JdUtSJlQ5Gw5yqNGkJLipPSSQWoQ
mxeOzyoZCXx6K7aiXeqQtV4OWGLmMJ/c7j6DDXpyqxY7vL4R5yURZRvi1/1lp9U2
0kw9VPpmr51j0HdoM+esftKwR2lZdimYChCjp4MbBcMeMUWU4pDsOaxQmZCyl0w5
F+OONd8YAUiyaxJVNgG/YQmJKKY8gZVriMo7tlt6U92jXxfPzuPFyj0Bnvb0GS8L
h43uHcKCK7TRIkZknMPD+eNa0mOOkEbGTpO4uAwMCVQgKDCimaUQSk/shfe0jPo6
4PWpkdOC8cpT7kfNr4erY/CVwzlsqb7L+2STnBQirJiAv+aR17g4zsp/CKHLe7GS
2QEW7e75rb4RSeMv/bREAOkndndfMSWqkrXRiiLEy8dq7dp7V7mlFBNNejcomPj2
O3COArbQUvpk+BTNs316PRm9PAJofYlgka1LysO527xOzKQEVG1O6GdaMRURvWnh
MOoyzxd5lePvsudXjCsT7NXWwlwtByWmctTTbRr8jaMqL63OEOWymXOpt6FurNHI
XcbumAh0LIMBiyAJpgpo0X9vbty0PLoFZSbtR6Jjmh2JmKXu2s8=
=eiuT
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmMjhVkACgkQmmx57+YA
GNn4yw/+PQvLoXyeY3oM7deWLlqGx37yGTa8UE4MrNhi/v9Au0WsEZxUZ2j6w36E
8GcwG4ZlmTy0Qhj6xY0TLt2M5mChO24VHd3yVunM9RCnmN1uXqxIGMX8xtEx6/KU
Rl33x/KrJ9U1EgJpPCykIVFMoyq4Q9jER+RSgPlJasq64d2WXYcJVF78VJY9Dwk3
a72x1+x3Wtz5LtkCLXjZD93XzkHnbwnoBF47hriRE4b+jrSAdhUm3ob2C7YTAJCH
wXowBYm3ErM53o36u27/gRB60DhTUuo0/Pp41iK+H9RDMVhOVy/UZYTCY3N64wbr
fTsjJ8BCEFoceIkANO2ymMIRpc03ki6uvq+x+UVJdAopSpkWo1Z38ooBDfDPk/ob
yXZzoIVeS/jGHGF6nWd2UO/n+DVHSVdHhW/XuJflnEz0JxC+IPj2sGp1S/lIQnKN
N1vhNhLqJMBO5pa4xcbLOXrGBp28UsYCgAM/SAdJyUh2zeifmqVRz+TKurZZCe1X
5r2E9LSQgZ/henLXwqTAt3wyyLtuiIycLoHs9qFWL88UUX5nFHiLt18P/mdDKnOa
3hB+jA+XDBMi6MUz4TpQqqsOFrLwFy5zWySHw33N8DDznsZzfEabwyTizfN832hX
i1HGMgj2Iei9PLMJi2vJWRaP5DYl4Dw9HFoL2QHAWRYrdFg7Lo8=
=7IUk
-----END PGP SIGNATURE-----
Merge tag 'arm-soc/for-6.1/drivers' of https://github.com/Broadcom/stblinux into arm/drivers
This pull request contains Broadcom ARM/ARM64 SoC drivers updates for
6.1, please pull the following:
- Guilherme adds a comment to the panic notifier, part of his big panic
notifier rework series
- William migrates all of ARCH_BCM4908 dependencies to ARCH_BCMBCA
* tag 'arm-soc/for-6.1/drivers' of https://github.com/Broadcom/stblinux:
arm64: bcmbca: Make BCM4908 drivers depend on ARCH_BCMBCA
soc: bcm: brcmstb: Document panic notifier action and remove useless header
Link: https://lore.kernel.org/r/20220915023044.2350782-4-f.fainelli@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
please pull the following:
- Rafal adds the BCM4908 LED controller node and describes all 32 LED
pins, he also adds support for the Asus GC-AC5300 LEDs
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAmMfeXkACgkQh9CWnEQH
BwS3XRAA1UyWHE6AqYSsLWcllNBxvbgJ9Fm5PqyY2+ZvMcHL3Pt5R0drY9tkQRfx
ohiZmNoMxRgoVi79DGunVp9MWHtYzAyjoN8TOvS2er3zfEGBqoLTxPzNMDqcuX7y
rtnFcrRAcr501gqqQ/ueaFxNDiIUY9aa48aPs7m7Tvqk9waKGtSDJ/y07+Bc/MYX
RlsjKBkElfU8E/kcUQlGxGwEfaZ3V2nZtagf1En/BYtZ3X16T/zHJozu9TcI9YxQ
yRxs7erW1GMOnrkVrlQFCH2TojhO6Ec5NtgSb2Ix9Bk80bU1l2hda6mm/lRFi81A
AaJE1beJzspuQwHgS8zhKNwQNSzTptROkmzL5Ema7TKab72E9Oyp5cmTF5GaMskH
BGunAghmi5SDU4Xz1sr5NnPSvnYwi/MdJvlPTSbzMGTuMk2Eze4vH5lAzsgePBr+
Uw9B+nI/j6JIzQCrzzNZrr/M5i0PItuXvNO/ia8YbFnmQo4BvYwK4tE7G0i7kTmn
YP428RYM7UontSBdEcJi/2P6JHoJvyxisbaMPgdBw8GP+qUgb8hiH/w9qJvIhcFX
WfYZlILSKLbtnDob4o9HjN46W5IH5AbwcVy+Ax7qGA1l1yxxXjPB2CHJFtDCSpzK
MfVoiUBqzdn/gZ68WQZbXuDchIBZG/FxFmr8zRyIiiQfWkHnHYY=
=+IBl
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmMjhSAACgkQmmx57+YA
GNn7zw//ezQSo9ofE2JAQWzCs3d+3S3QAFqCz/PoBCmFS71Yoi59BoVD3ghVUdyB
KZMEhWPgHa+MHJWHOqNM4TBbEF8J6MZNXIB/nrxG2L8h4QYmN995jlyQSsHX8yGd
NEg9bwcTZ4lf5a2VZgzVgseNS3K4tOr0dGyIY68N1fmg4HaADbycYbOJjICxUDyL
RNpghhJm3IIc/iwSS+kiY8Zny1MZnGj35xmvbzKOLek6DE6WeCZshP01MZD9BPJ2
VAOQjHQ2z8XUjoHWEmkcl7HOnC6IILgdJwaRmrS8dHR1nIdN8n3J9ldpjdtCDXtD
A+wjfhXsSg1O9yRfXfNnEXhPYma3lJMHllT266fas8344tXrrp2xmvIOI96UP+Um
VhWsjkrTAXKBe26L5tkq5XEmgdmzclFPmn7gUzoGu7Ho5G2HvSZXTqng3OkGKlj/
k6sIH+W56Ew0HfBkwwoZGiixp8YBepQG59jTDeOsosI4783k8Iwk8dZByxnlUH5o
eHlSbmbbz5LpySMfanwbGSwoNUBmlG9n0OoNufzsQDNwsWPnl+iMH6JlyF/9qeDs
yPDXZ3WAON7Mua6cFgeBDNyUOlw5uHZvfy1Lhx5MDwjsC05p+bd6At2dpjYHWTja
t019ijZ1iD4eZqhF1Hd+tkFcI+xmOfIKeupQEG/vV5PEBktgEWk=
=ybyG
-----END PGP SIGNATURE-----
Merge tag 'arm-soc/for-6.1/devicetree-arm64' of https://github.com/Broadcom/stblinux into arm/dt
This pull request contains Broadcom ARM64-based SoC changes for 6.1,
please pull the following:
- Rafal adds the BCM4908 LED controller node and describes all 32 LED
pins, he also adds support for the Asus GC-AC5300 LEDs
* tag 'arm-soc/for-6.1/devicetree-arm64' of https://github.com/Broadcom/stblinux:
arm64: dts: broadcom: bcm4908: add Asus GT-AC5300 LEDs
arm64: dts: broadcom: bcm4908: add LEDs controller block
arm64: dts: broadcom: bcm4908: add remaining LED pins
Link: https://lore.kernel.org/r/20220915023044.2350782-3-f.fainelli@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
for 6.1, please pull the following:
- Rafal improves the BCM5301X PCIe DT nodes schema validation by
flagging the PCIe controller with a missing "device_type" property
- William merges BCM4908 within BCMBCA since this chip is part of the
Broadcom Broadband Carrier Access group and follows the architecture of
those chips
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAmMfeSQACgkQh9CWnEQH
BwSu8A//bscpH0DKVVkZyji+UQN0c0WmBhPJTbedQRrMEABAmrF0kfJdGbNEe01r
Qzb2GjhLpWDX5pL+SmDmjX0l9OQZiv83ruPCDK97HDqy1V1LbGBiT1I37R9eNW1v
mWtL67RSEiuDKZdSfDEq/rkoPbYhowuYsSvIz53qr9EvFEjZXAXbRRpzKUJ/wDL1
Nk/y+j6Vlc5ZzScsIZucRuIp9AJ4tH+Kaj+ZNcRs7cG01Ot4PtBa2gxCr7pmyiY4
q9PFFWUZPQpKkMo/jLWvT4ajsHm7Fv4CLZK8h9GZOAuxYvmhqqLoPigDvBS3sug1
Je2V2gdeuqiFgh9i6XHVM/XM2Hr+z8RHsFISjyHZQYUwSiWxo+E2p8pql/tMmh6Q
swSX971xbbgBOVPC1JWuFTEtm8vWwGtlZXE5iptxWxTn5cq1pHNkg3wCNIMXjUei
Bj78PM4ZyNPbJ5lq4RJP0ryT5N1UCYaX6sOh+nOD6GH1YXq+5XO4nx6/yeUEGKSM
sGogAy40a0qP6UlHVdfayDgXFIfgSjY15Pfq5unSIEywQHhBR1GKDgrrAXSWQrux
8F2kY0v2FDnAZeoYwWrJvrN24NmKm3TMeKjyoz7tu2KHYADWWQ1UrujFuXBAoIZC
QeuFjfg/Ymar6A1BGwcQsrxDgMWruOLB9/029g8vLfoIuUYjNqA=
=JcYR
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmMjhE0ACgkQmmx57+YA
GNmF5RAAoV7YjTJbbUqvuyJtqui491JY+ppMJtMYvq97PIIPhoNhQC2Yh3pfq/RG
gL3a1+aXxMw5/YXOz2BJ5EIfHcfnkZF4DbIdGFviueMchh8sxTLivPHLcFRc7y6k
RN9ydIpgq/XxrALGIq3N4zSl3D823HEbQ0UcN4RkxbPPqXDgTGxkwcvWrMaDJolb
iLJpTaeael7VVaLNuPmDb0igEAAHbGNxQcu8MpRlaTwLZnJZHuOjxs8/h3ZhH+3g
ZjDXw0qqO1kEdyqkJgUofJT8l0Hn54zoZDXZIJnhEiTsjcGR/X4jl2B+13vt8jW9
MWcMh6DMK3U1zgRfAJnt4Ufas8iUc181yx3CRPBc/gIjh8t4arxD1wlepNcvPUBt
AAM0Zi3j+CKzvLuU3IugOAWNLGUIcie6L/CWrEA2EYzd8IVtINd0mcWdPlP5L4/j
4LwTJjQGNr+wedtWL1u90Oe3Qciax1IFwBRQBNR0y+4SRUhmzoVDKtFCiuRF/YpE
GjmpLamdr+8XWjcGv3YvK50z6XTwSlWaMKyiHyDp3IGX4swmNJDHT3NyDhBL+ubH
4jzBsBHJ2y/3PuaqruHUgD+r65kK88dVgfaSOZGNukdIdM8q2LobcZeXPB+nRdS2
A67ekYdLcieeEFtkzaJOIogEpbou0CPgwxyStyDbWPZyk1JJkfA=
=4L+j
-----END PGP SIGNATURE-----
Merge tag 'arm-soc/for-6.1/devicetree' of https://github.com/Broadcom/stblinux into arm/dt
This pull request contains Broadcom ARM-based SoC Device Tree updates
for 6.1, please pull the following:
- Rafal improves the BCM5301X PCIe DT nodes schema validation by
flagging the PCIe controller with a missing "device_type" property
- William merges BCM4908 within BCMBCA since this chip is part of the
Broadcom Broadband Carrier Access group and follows the architecture of
those chips
* tag 'arm-soc/for-6.1/devicetree' of https://github.com/Broadcom/stblinux:
arm64: bcmbca: Merge ARCH_BCM4908 to ARCH_BCMBCA
arm64: dts: Add BCM4908 generic board dts
arm64: dts: Move BCM4908 dts to bcmbca folder
arm64: dts: bcmbca: update BCM4908 board dts files
dt-bindings: arm64: bcmbca: Update BCM4908 description
dt-bindings: arm64: bcmbca: Merge BCM4908 into BCMBCA
ARM: dts: BCM5301X: Add basic PCI controller properties
Link: https://lore.kernel.org/r/20220915023044.2350782-2-f.fainelli@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
please pull the following:
- William completes the removal of ARCH_BCM4908 by removing that Kconfig
entry from the defconfig since it is being deleted after having been
transitional through 6.0
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAmMfeKAACgkQh9CWnEQH
BwR65g/9HIe98J2cwiqIbkuCsXtRo5wODwax4pvxWxlaDR8NT3k++aWuxa2hhLKg
2gzruTxcp4yN0oIpiiVW2hgTAAeaz6XdV9ct58egBXmf7xx2t5/a2B0jfaDKtNjj
VyGio4nqYPHLxFTZg+zdt16Nd4iAfwExzeb8/kH2DkwTwkYtQxVfbjwfiYdmmcBu
nXrQqCK2h7+yWhOvpXDcA9i5zagYGhEOBN2KmQfaf7cvhYxWI7ee+cSV1bW0dvXD
3cm6Ijw+/be1UsuWkIK4aRpKfHdy9tUwsawYbqhQoyHxtj7P8tezq2mj79tyDE+l
V2LpEjSeq91KxYhG49C3myVZzHdu/Unn9jPp+FOR8vkpSuM//AqCXXKkHWplu7/E
1tJkOWJ2alM6T2cfXgatSxhoDweAxeA7NvhyYem69gIW58M88Av9e8nuxSIvMqc0
TtshWnQvADcB0WOrQ/fzRJSG/pRVBW9IpsXa2+1WHkaHvwiDuG1cdQgv4EZJyZ2H
z3I0fRod/0UC6yy56SxWgz9MPlaZy9wc0b6lV8gxckpf8hN4fdpWjSoZzgnuCuJZ
+6vwJRgkkpwUptn41sz7X0W8Fz4dVk4WWaFq/8FSXqri51Gtxo2xCtuAZBeAqdFb
HSYZBVkWM8g8rWpk+/9/wpnT8iAnF1MLyo+iTs65CA2V1g0QkaA=
=Uw1u
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmMjg8UACgkQmmx57+YA
GNljkA/+MPtbdaVtvjbJ7PrfnsmqUrfONELLmP/mHiCHFOyOPqR44pEYNu4qjxtC
76FZA6OqKuXZVBbZ0ojxq7n98jPO03RHCJ17pMdcrAGqVT4PXoCVkY0rPDnYgSEd
4tuMnsTNqb9Pwx8qqKbvHsptyBKy1OVu8Na6hdKSFWErWI4y3j+n4e1Y4rboNIRS
1WKf/FaRBgyFRP9obmGe6ixNpumrdDvmsLGgTF/IxlH3TfvvBOc2quSHwAiB4jA+
lukpVUXUzqH4b/nIY+1/rJkalIfMAqdXW1Zvj7CisU8dOBLG7EoU6L6WIHVpH5Ot
bSwZgt1KC8OvLkoOTrPEAmTS+HmRoKp1ie5fSSK4O1RLFG2nIe/UJIb5r1XIGguH
6byzh45saTK/kotfWrahxgJw9y2u2Lka7UBh2ADmNuMEeonYREgIF9jT5fBycOo7
KnEvswZkiJRutUhJ8B43LZcQxEsCCq9uID6mCJ8CiYmk/l+dQouhrU05znBEo0sf
fvznajydRceOwcCwxOTM5So/vtdhAv6g+H+lt4ZU3d7hOsBR/6WOamoZCf9oxutU
kU7gtdYgZahlCzjf5w7bM/Ac484C/wubvskSY7w0zjvijMf4TfS6fwlNY7tc7UeS
Y+Ws2uWct7vmnQlStAiywgJ1wObtBvP0507v4+Fq8apavVF2byM=
=DF0K
-----END PGP SIGNATURE-----
Merge tag 'arm-soc/for-6.1/defconfig-arm64' of https://github.com/Broadcom/stblinux into arm/defconfig
This pull request contains Broadcom ARM64 defconfig changes for 6.1,
please pull the following:
- William completes the removal of ARCH_BCM4908 by removing that Kconfig
entry from the defconfig since it is being deleted after having been
transitional through 6.0
* tag 'arm-soc/for-6.1/defconfig-arm64' of https://github.com/Broadcom/stblinux:
arm64: defconfig: remove BCM4908
Link: https://lore.kernel.org/r/20220915023044.2350782-1-f.fainelli@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
It contains a fix for LAN966 SoCs that corrects the interrupt
number for internal PHYs.
-----BEGIN PGP SIGNATURE-----
iHUEABYIAB0WIQTsZ8eserC1pmhwqDmejrg/N2X7/QUCYyLxGAAKCRCejrg/N2X7
/Y3oAQDQ64mW15h0ZAgoHWpxVgIA2/h1RKvjphg7AgXhtsS1DgD/U94AFR3IlrTN
BmDUUDutxXKXlJgIUy4zEdML4bMERQU=
=DFFW
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmMjgt8ACgkQmmx57+YA
GNkCzA/7BL4dvTT4CBxf1/MgAhSxob+bl/libV+Kpr4lhpP+l70TzqYbilaerG6z
ykIvPVlZWuOtv+78X1cmKTb1IAunjLjD/e5EYFzRUJpvsNr4m5xKWpka5LXD9a48
VRt5alDWQaRKfP3vmnguKdmVbWvVje12GqyyUXz5KCtLhfSIeY+06QVs41Pkglwi
tS55UKnOj6OLMn3Bz1Jz6CHPrGVAU6fM9yE5iJeqzBpjkP9pahaV/tqJYwhq2dQ/
KZn95LYXGgQp5HwBgBgkEwtSPFJOmr85OculaMHFrFJ62jPeqd8oKc8J3+bM5B3d
KzC/snet/UwvX8hthAFSZtYHZ0mJZFxPrkswjvn+9JHtO5XOm5buadgMRbiK8Ux/
/j1c/WvSWoUUXskC3k4ZKUNIFMvahI7376VUoV7pPFe9fHW97mszWT8rzHXboCRw
3FhKiMyqdcJWXlS0PMhb4XdqpcRJ3Cp2ngV15tOGfjZ+9BQXQw3lAyOxGcBI2ieX
misITPW3tZ2+LKj6z3ehXPwTi99CfM8o5V/+1ySmoFONpXegKT2yF17qpiWBqV6B
35I13Qm89RNsugX9udzFexoJ+1B9MipUjwmuBrKXuxVZ7Hw8qJ4OPi3Fv8bktea4
0DE9UGj5qNyd6J4xqDKnzxuLhrRu17Z8l7+l5q92VRy1KfQSmqw=
=HFlS
-----END PGP SIGNATURE-----
Merge tag 'at91-fixes-6.0-2' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into arm/fixes
AT91 fixes for 6.0 #2
It contains a fix for LAN966 SoCs that corrects the interrupt
number for internal PHYs.
* tag 'at91-fixes-6.0-2' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
ARM: dts: lan966x: Fix the interrupt number for internal PHYs
Link: https://lore.kernel.org/r/20220915105833.4159850-1-claudiu.beznea@microchip.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Add dma properties to support GPCDMA for I2C in Tegra 186 and later
chips
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Add the iommus property to the HDA node on Tegra234.
Signed-off-by: Mohan Kumar <mkumard@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Add Host1x context isolation domains on Tegra234. On Tegra234 we have
two IOMMUs that are connected to Host1x-channel programmed engines,
so we have to include domains for each of them.
Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Make sure that each phandle-array is enclosed in a set of angular
brackets and properly indent each entry.
Signed-off-by: Thierry Reding <treding@nvidia.com>
The Google Pixel C contains a BRCM4354 Wi-Fi + BT module.
Add a DT node for its Wi-Fi functionality. Tested on Pixel C.
Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
Signed-off-by: Thierry Reding <treding@nvidia.com>
The Google Pixel C contains a BRCM4354 Wi-Fi + BT module.
Add a DT node for its BT functionality. Tested on Pixel C.
Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
Signed-off-by: Thierry Reding <treding@nvidia.com>
A Multi-Gigabit Ethernet (MGBE) instance drives the primary Ethernet
port on the Jetson AGX Orin Developer Kit. Enable it.
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Add device tree nodes for the four instances of the Multi-Gigabit
Ethernet (MGBE) IP found on NVIDIA Tegra234 SoCs.
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
There is no need to list the Tegra194-specific compatible for Tegra234
because the backwards-compatibility goes back all the way to Tegra186.
Signed-off-by: Thierry Reding <treding@nvidia.com>
The size of the UFS PHY serdes register region is 0x1c4 and the
corresponding 'reg' property should specifically not include the
adjacent regions that are defined in the child node (e.g. tx and rx).
Fixes: 07fa917a33 ("arm64: dts: qcom: sm8450: add ufs nodes")
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20220915143431.19842-2-johan+linaro@kernel.org
The customized reserved memory for ADSP is already configured, so we
just need to enable the node.
Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20220423155059.660387-4-luca@z3ntu.xyz
Update version number.
This version includes fixes for:
- fix build failure when using gcc options -Wl,--as-needed
- Fix warning for perf_cap.cpu may be uninitialized
- Fix off by one check for MAX_DIE_PER_PACKAGE
- Fix issue with use of get_physical_die_id instead of
get_physical_die_id
Optimizations:
- Removed unused interfaces and functions
- Better handle package, die, cpu combination by
defining a struct and set at one place instead
at each user level.
New functional change:
- Warn if turbo is disabled and SST turbo-freq feature is requested
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Optimize CPU initialization.
Do cpu related initialization in one function, including setting the cpu
present_cpumask, target_cpumask, and cpu_map and core_count arrays.
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
cpu_map already has the cpu package id, die id information.
Thus there is no need to re-evaluating sysfs attributes or stored data
file to get the package id and die id of a given CPU each time.
In order to unitlize this, cpu_map needs to be created unconditionally.
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
pkg_id/die_id can be retrieved from struct isst_id, remove the redundant
clos_config->pkg_id/die_id fields.
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Enforce the pkg/die value in struct isst_id are either -1 or a valid
value.
This helps avoid inconsistent or redundant checks.
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Now, all the get_physical_pkg/die/core_id() users are inside
isst-config.c, so no need to export these APIs.
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
struct isst_id contains cpu, package and die info, and it can represent
a specific SST power domain.
Introduce is_cpu_in_power_domain() helper to identify if a cpu is in a
specified power_domain.
And cleanup the code to use the new helper.
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
struct isst_id already contains package and die id information, thus
there is no need to get the package and die id information, when struct
isst_id is already available.
Remove unneeded get_physical_package_id/get_physical_die_id usage.
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>