From 94064b64d32e83a3e92cba55b6d6cec2446fd0f3 Mon Sep 17 00:00:00 2001 From: koenz Date: Fri, 7 Apr 2023 01:06:20 +0800 Subject: [PATCH] driver/misc/mods: kernel v6.2+ support for IVC init - Add support for IVC channel init for kernel v6.2+ JIRA TM-949 Bug 3846090 Change-Id: I773d99b89067671c76ec2de3d45461fc5efe2814 Signed-off-by: Koen Zhao Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2887332 Reviewed-by: svc-mobile-coverity Reviewed-by: svc-mobile-cert Reviewed-by: Laxman Dewangan GVS: Gerrit_Virtual_Submit --- drivers/misc/mods/mods_bpmpipc.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/misc/mods/mods_bpmpipc.c b/drivers/misc/mods/mods_bpmpipc.c index f4a3b7a0..c0a5acd9 100644 --- a/drivers/misc/mods/mods_bpmpipc.c +++ b/drivers/misc/mods/mods_bpmpipc.c @@ -287,12 +287,24 @@ static int bpmp_ipc_channel_init(struct mods_client *client, int err; ktime_t end; +#if (KERNEL_VERSION(6, 2, 0) <= MODS_KERNEL_VERSION) + struct iosys_map rx, tx; + + iosys_map_set_vaddr_iomem(&rx, bpmp_ipc_ch->resp_base); + iosys_map_set_vaddr_iomem(&tx, bpmp_ipc_ch->req_base); + + err = tegra_ivc_init(&bpmp_ipc_ch->ivc, NULL, + &rx, bpmp_ipc_ch->resp_phys_addr, + &tx, bpmp_ipc_ch->req_phys_addr, + 1, MRQ_MSG_SIZE, + bpmp_ivc_notify, bpmp_ipc_ch); +#else err = tegra_ivc_init(&bpmp_ipc_ch->ivc, NULL, bpmp_ipc_ch->resp_base, 0, bpmp_ipc_ch->req_base, 0, 1, MRQ_MSG_SIZE, bpmp_ivc_notify, bpmp_ipc_ch); - +#endif if (err != 0) { cl_error("tegra-ivc init failed: %d\n", err);