From e8ccba4d594d6f1cb476d215462b394e0e245010 Mon Sep 17 00:00:00 2001 From: Sandeep Gangadharaiah Date: Mon, 28 Mar 2022 09:52:37 -0400 Subject: [PATCH] disp: msm: dp: set drm device pointer in dp aux object drm device pointer is not set in dp aux object which is leading to a warning message during device bootup. This change will set that pointer before registering aux object. Change-Id: Ib79ece56d7d5efd098e06104eb020648d1d075f7 Signed-off-by: Sandeep Gangadharaiah --- msm/dp/dp_aux.c | 5 ++++- msm/dp/dp_aux.h | 3 ++- msm/dp/dp_display.c | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/msm/dp/dp_aux.c b/msm/dp/dp_aux.c index da7a60e3ab..4df98d9409 100644 --- a/msm/dp/dp_aux.c +++ b/msm/dp/dp_aux.c @@ -636,7 +636,7 @@ static void dp_aux_deinit(struct dp_aux *dp_aux) aux->enabled = false; } -static int dp_aux_register(struct dp_aux *dp_aux) +static int dp_aux_register(struct dp_aux *dp_aux, struct drm_device *drm_dev) { struct dp_aux_private *aux; int ret = 0; @@ -652,6 +652,9 @@ static int dp_aux_register(struct dp_aux *dp_aux) aux->drm_aux.name = "sde_dp_aux"; aux->drm_aux.dev = aux->dev; aux->drm_aux.transfer = dp_aux_transfer; +#if (KERNEL_VERSION(5, 15, 0) <= LINUX_VERSION_CODE) + aux->drm_aux.drm_dev = drm_dev; +#endif atomic_set(&aux->aborted, 1); ret = drm_dp_aux_register(&aux->drm_aux); if (ret) { diff --git a/msm/dp/dp_aux.h b/msm/dp/dp_aux.h index 28f62c5ba4..18741d1571 100644 --- a/msm/dp/dp_aux.h +++ b/msm/dp/dp_aux.h @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* + * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2012-2021, The Linux Foundation. All rights reserved. */ @@ -43,7 +44,7 @@ struct dp_aux { struct mutex *access_lock; struct drm_dp_aux *drm_aux; - int (*drm_aux_register)(struct dp_aux *aux); + int (*drm_aux_register)(struct dp_aux *aux, struct drm_device *drm_dev); void (*drm_aux_deregister)(struct dp_aux *aux); void (*isr)(struct dp_aux *aux); void (*init)(struct dp_aux *aux, struct dp_aux_cfg *aux_cfg); diff --git a/msm/dp/dp_display.c b/msm/dp/dp_display.c index a3f5943231..0310c393b4 100644 --- a/msm/dp/dp_display.c +++ b/msm/dp/dp_display.c @@ -2057,7 +2057,7 @@ static int dp_init_sub_modules(struct dp_display_private *dp) goto error_aux; } - rc = dp->aux->drm_aux_register(dp->aux); + rc = dp->aux->drm_aux_register(dp->aux, dp->dp_display.drm_dev); if (rc) { DP_ERR("DRM DP AUX register failed\n"); goto error_pll;