From a6fc43ecb8bb13eae56922ff3b353eb98683e10b Mon Sep 17 00:00:00 2001 From: Laxman Dewangan Date: Sun, 10 Dec 2023 11:03:53 +0000 Subject: [PATCH] cdi_mgr: Enable build of cdi_mgr for Linux 6.2 The build of cdi_mgr driver was disabled for Linux 6.2 as there is change in API in core kernel. Enable build of cdi_mgr driver with appropriate modification in driver for Linux 6.2. Bug 4346767 Change-Id: I6315482b593926e1382a0ffc9ca8aa9a27740d11 Signed-off-by: Laxman Dewangan Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3031551 (cherry picked from commit 91745613520dc2efaddd89c7e63f7b1afe07754d) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3051589 Reviewed-by: Jonathan Hunter GVS: Gerrit_Virtual_Submit Tested-by: Jonathan Hunter --- drivers/media/platform/tegra/cdi/Makefile | 2 +- drivers/media/platform/tegra/cdi/cdi_mgr.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/tegra/cdi/Makefile b/drivers/media/platform/tegra/cdi/Makefile index 4ad6a758..55df7d95 100644 --- a/drivers/media/platform/tegra/cdi/Makefile +++ b/drivers/media/platform/tegra/cdi/Makefile @@ -3,8 +3,8 @@ ifneq ($(CONFIG_TEGRA_GPIO_LEGACY_DISABLE),y) obj-m += cdi_gpio.o -obj-m += cdi_mgr.o endif +obj-m += cdi_mgr.o obj-m += cdi_dev.o obj-m += cdi_pwm.o ifeq ($(findstring ack_src,$(NV_BUILD_KERNEL_OPTIONS)),) diff --git a/drivers/media/platform/tegra/cdi/cdi_mgr.c b/drivers/media/platform/tegra/cdi/cdi_mgr.c index 76f4f218..b128aa3a 100644 --- a/drivers/media/platform/tegra/cdi/cdi_mgr.c +++ b/drivers/media/platform/tegra/cdi/cdi_mgr.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -1329,13 +1330,22 @@ static int cdi_mgr_of_get_grp_gpio( { int num, i; +#if defined(NV_OF_GPIO_NAMED_COUNT_PRESENT) /* Linux 6.2 */ num = of_gpio_named_count(np, name); +#else + num = of_count_phandle_with_args(np, name, "#gpio-cells"); +#endif dev_dbg(dev, " num gpios of %s: %d\n", name, num); if (num < 0) return 0; for (i = 0; (i < num) && (i < size); i++) { +#if defined(NV_OF_GET_NAMED_GPIO_FLAGS_PRESENT) /* Linux 6.2 */ grp[i] = of_get_named_gpio_flags(np, name, i, &flags[i]); +#else + grp[i] = of_get_named_gpio(np, name, i); + flags[i] = 0; +#endif if ((int)grp[i] < 0) { dev_err(dev, "%s: gpio[%d] invalid\n", __func__, i); return -EINVAL;