Message ID | 20240123115821.292787-2-biju.das.jz@bp.renesas.com (mailing list archive) |
---|---|
State | Superseded |
Headers |
Received: from ny.mirrors.kernel.org ([147.75.199.223]) by linuxtv.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <linux-media+bounces-4080-patchwork=linuxtv.org@vger.kernel.org>) id 1rSFQS-0001Pq-16 for patchwork@linuxtv.org; Tue, 23 Jan 2024 11:58:45 +0000 Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 579901C22ED8 for <patchwork@linuxtv.org>; Tue, 23 Jan 2024 11:58:42 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1216A5D91A; Tue, 23 Jan 2024 11:58:35 +0000 (UTC) X-Original-To: linux-media@vger.kernel.org Received: from relmlie6.idc.renesas.com (relmlor2.renesas.com [210.160.252.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E07F157892; Tue, 23 Jan 2024 11:58:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=210.160.252.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706011114; cv=none; b=tdkTOPvmdUT6tN5zpFWoPSp511a0VkbSlfuKpNIEbannC6B0xtW4hnvB086AewjZkbiDM+C+4qhSRedLycTGOxLut+mnMT5yXW6XYm3PWFTJoJ01snUzWfo89CH8hRHxGDXxKZOfLbNfQN2GrHGRMst1OoRQSOHfEA3oBrQ9/qU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706011114; c=relaxed/simple; bh=tW6hlCtxmqhUroMhxUuR9ZicGi2OfQHXwTQI7APVwyM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=k93vNrIoNAzhubimxeFHTvM1y8JaFGdKWGnS9euBWiKaBgBec1ggKdwZQYxf1TplZkSpZj0PDHySJdOl4tlSOjrlsf1bm9QEmhu0triYQ4jdKvVPh/u+W5z3UwKR6Io625RQ8GRAOpppM7wGFYs3b12DCwAPXcs6zX8YTObcsTo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; arc=none smtp.client-ip=210.160.252.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com X-IronPort-AV: E=Sophos;i="6.05,214,1701097200"; d="scan'208";a="195342061" Received: from unknown (HELO relmlir5.idc.renesas.com) ([10.200.68.151]) by relmlie6.idc.renesas.com with ESMTP; 23 Jan 2024 20:58:32 +0900 Received: from localhost.localdomain (unknown [10.226.93.36]) by relmlir5.idc.renesas.com (Postfix) with ESMTP id 5D34D4001B60; Tue, 23 Jan 2024 20:58:28 +0900 (JST) From: Biju Das <biju.das.jz@bp.renesas.com> To: Mauro Carvalho Chehab <mchehab@kernel.org> Cc: Biju Das <biju.das.jz@bp.renesas.com>, Hans Verkuil <hverkuil-cisco@xs4all.nl>, Sakari Ailus <sakari.ailus@linux.intel.com>, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, =?utf-8?q?Uwe_Kleine-?= =?utf-8?q?K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>, Rob Herring <robh@kernel.org>, Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>, linux-media@vger.kernel.org, Geert Uytterhoeven <geert+renesas@glider.be>, Biju Das <biju.das.au@gmail.com>, linux-renesas-soc@vger.kernel.org Subject: [PATCH 1/4] media: platform: rzg2l-cru: rzg2l-csi2: Switch to RUNTIME_PM_OPS() Date: Tue, 23 Jan 2024 11:58:18 +0000 Message-Id: <20240123115821.292787-2-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240123115821.292787-1-biju.das.jz@bp.renesas.com> References: <20240123115821.292787-1-biju.das.jz@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: <linux-media.vger.kernel.org> List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-LSpam-Score: -2.0 (--) X-LSpam-Report: No, score=-2.0 required=5.0 tests=ARC_SIGNED=0.001,ARC_VALID=-0.1,DMARC_NONE=0.898,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1,RCVD_IN_DNSWL_MED=-2.3,SPF_HELO_NONE=0.001,SPF_PASS=-0.001 autolearn=ham autolearn_force=no |
Series |
RZ/G2L CSI/CRU Improvements
|
|
Commit Message
Biju Das
Jan. 23, 2024, 11:58 a.m. UTC
SET_RUNTIME_PM_OPS() are deprecated and require __maybe_unused
protection against unused function warnings. The usage of pm_ptr() and
RUNTIME_PM_OPS() allows the compiler to see the functions, thus
suppressing the warning. Thus drop the __maybe_unused markings.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
Comments
Hi Biju, Thank you for the patch. On Tue, Jan 23, 2024 at 11:58:18AM +0000, Biju Das wrote: > SET_RUNTIME_PM_OPS() are deprecated Not that I particularly care about SET_RUNTIME_PM_OPS, but I'm not aware of it being deprecated. Has that been announced somewhere ? > and require __maybe_unused > protection against unused function warnings. The usage of pm_ptr() and > RUNTIME_PM_OPS() allows the compiler to see the functions, thus > suppressing the warning. Thus drop the __maybe_unused markings. Have you tried to compile this with CONFIG_PM disabled, and confirmed the compiler doesn't generate any warning ? > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> > --- > drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > index d20f4eff93a4..c4609da9bf1a 100644 > --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > @@ -834,7 +834,7 @@ static void rzg2l_csi2_remove(struct platform_device *pdev) > pm_runtime_disable(&pdev->dev); > } > > -static int __maybe_unused rzg2l_csi2_pm_runtime_suspend(struct device *dev) > +static int rzg2l_csi2_pm_runtime_suspend(struct device *dev) > { > struct rzg2l_csi2 *csi2 = dev_get_drvdata(dev); > > @@ -843,7 +843,7 @@ static int __maybe_unused rzg2l_csi2_pm_runtime_suspend(struct device *dev) > return 0; > } > > -static int __maybe_unused rzg2l_csi2_pm_runtime_resume(struct device *dev) > +static int rzg2l_csi2_pm_runtime_resume(struct device *dev) > { > struct rzg2l_csi2 *csi2 = dev_get_drvdata(dev); > > @@ -851,7 +851,7 @@ static int __maybe_unused rzg2l_csi2_pm_runtime_resume(struct device *dev) > } > > static const struct dev_pm_ops rzg2l_csi2_pm_ops = { > - SET_RUNTIME_PM_OPS(rzg2l_csi2_pm_runtime_suspend, rzg2l_csi2_pm_runtime_resume, NULL) > + RUNTIME_PM_OPS(rzg2l_csi2_pm_runtime_suspend, rzg2l_csi2_pm_runtime_resume, NULL) While at it, I would wrap the line to RUNTIME_PM_OPS(rzg2l_csi2_pm_runtime_suspend, rzg2l_csi2_pm_runtime_resume, NULL) Up to you. > }; > > static const struct of_device_id rzg2l_csi2_of_table[] = { > @@ -865,7 +865,7 @@ static struct platform_driver rzg2l_csi2_pdrv = { > .driver = { > .name = "rzg2l-csi2", > .of_match_table = rzg2l_csi2_of_table, > - .pm = &rzg2l_csi2_pm_ops, > + .pm = pm_ptr(&rzg2l_csi2_pm_ops), > }, > }; >
Hi Laurent Pinchart, Thanks for the feedback. > -----Original Message----- > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Sent: Tuesday, January 23, 2024 3:29 PM > Subject: Re: [PATCH 1/4] media: platform: rzg2l-cru: rzg2l-csi2: Switch to > RUNTIME_PM_OPS() > > Hi Biju, > > Thank you for the patch. > > On Tue, Jan 23, 2024 at 11:58:18AM +0000, Biju Das wrote: > > SET_RUNTIME_PM_OPS() are deprecated > > Not that I particularly care about SET_RUNTIME_PM_OPS, but I'm not aware > of it being deprecated. Has that been announced somewhere ? I was under the impression from [1], this is new style and old style going to be deprecated. If it is not the case, I would like to drop this patch. [1] https://www.spinics.net/lists/stable/msg691416.html > > > and require __maybe_unused > > protection against unused function warnings. The usage of pm_ptr() and > > RUNTIME_PM_OPS() allows the compiler to see the functions, thus > > suppressing the warning. Thus drop the __maybe_unused markings. > > Have you tried to compile this with CONFIG_PM disabled, and confirmed the > compiler doesn't generate any warning ? I am not able to compile with CONFIG_PM disabled as it is throwing errors in power management code. kernel/power/suspend.c: In function ‘suspend_prepare’: kernel/power/suspend.c:360:10: error: implicit declaration of function ‘pm_notifier_call_chain_robust’; did you mean ‘raw_notifier_call_chain_robust’? [-Werror=implicit-function-declaration] 360 | error = pm_notifier_call_chain_robust(PM_SUSPEND_PREPARE, PM_POST_SUSPEND); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | raw_notifier_call_chain_robust kernel/power/hibernate.c:325:2: error: implicit declaration of function ‘save_processor_state’ [-Werror=implicit-function-declaration] 325 | save_processor_state(); | ^~~~~~~~~~~~~~~~~~~~ kernel/power/suspend.c:372:2: error: implicit declaration of function ‘pm_notifier_call_chain’; did you mean ‘raw_notifier_call_chain’? [-Werror=implicit-function-declaration] 372 | pm_notifier_call_chain(PM_POST_SUSPEND); | ^~~~~~~~~~~~~~~~~~~~~~ | raw_notifier_call_chain CC io_uring/timeout.o kernel/power/suspend.c: In function ‘suspend_enter’: kernel/power/suspend.c:405:10: error: implicit declaration of function ‘dpm_suspend_late’; did you mean ‘dpm_suspend_start’? [-Werror=implicit-function-declaration] 405 | error = dpm_suspend_late(PMSG_SUSPEND); | ^~~~~~~~~~~~~~~~ | dpm_suspend_start > > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> > > --- > > drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > > b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > > index d20f4eff93a4..c4609da9bf1a 100644 > > --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > > +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > > @@ -834,7 +834,7 @@ static void rzg2l_csi2_remove(struct platform_device > *pdev) > > pm_runtime_disable(&pdev->dev); > > } > > > > -static int __maybe_unused rzg2l_csi2_pm_runtime_suspend(struct device > > *dev) > > +static int rzg2l_csi2_pm_runtime_suspend(struct device *dev) > > { > > struct rzg2l_csi2 *csi2 = dev_get_drvdata(dev); > > > > @@ -843,7 +843,7 @@ static int __maybe_unused > rzg2l_csi2_pm_runtime_suspend(struct device *dev) > > return 0; > > } > > > > -static int __maybe_unused rzg2l_csi2_pm_runtime_resume(struct device > > *dev) > > +static int rzg2l_csi2_pm_runtime_resume(struct device *dev) > > { > > struct rzg2l_csi2 *csi2 = dev_get_drvdata(dev); > > > > @@ -851,7 +851,7 @@ static int __maybe_unused > > rzg2l_csi2_pm_runtime_resume(struct device *dev) } > > > > static const struct dev_pm_ops rzg2l_csi2_pm_ops = { > > - SET_RUNTIME_PM_OPS(rzg2l_csi2_pm_runtime_suspend, > rzg2l_csi2_pm_runtime_resume, NULL) > > + RUNTIME_PM_OPS(rzg2l_csi2_pm_runtime_suspend, > > +rzg2l_csi2_pm_runtime_resume, NULL) > > While at it, I would wrap the line to > > RUNTIME_PM_OPS(rzg2l_csi2_pm_runtime_suspend, > rzg2l_csi2_pm_runtime_resume, NULL) > > Up to you. If it is not a requirement to move to use the modern pm_ops/pm_sleep_ops then as said in the above I would like to drop this patch. Cheers, Biju > > > }; > > > > static const struct of_device_id rzg2l_csi2_of_table[] = { @@ -865,7 > > +865,7 @@ static struct platform_driver rzg2l_csi2_pdrv = { > > .driver = { > > .name = "rzg2l-csi2", > > .of_match_table = rzg2l_csi2_of_table, > > - .pm = &rzg2l_csi2_pm_ops, > > + .pm = pm_ptr(&rzg2l_csi2_pm_ops), > > }, > > }; > > > > -- > Regards, > > Laurent Pinchart
On Tue, Jan 23, 2024 at 06:33:57PM +0000, Biju Das wrote: > > On Tue, Jan 23, 2024 at 11:58:18AM +0000, Biju Das wrote: > > > SET_RUNTIME_PM_OPS() are deprecated > > > > Not that I particularly care about SET_RUNTIME_PM_OPS, but I'm not aware > > of it being deprecated. Has that been announced somewhere ? > > I was under the impression from [1], this is new style and old style going to be deprecated. > > If it is not the case, I would like to drop this patch. > > [1] https://www.spinics.net/lists/stable/msg691416.html I'm not against this change, I was just wondering about the status of SET_RUNTIME_PM_OPS. If you think using RUNTIME_PM_OPS is better, I have no problem with that. The commit message should probably state that the latter is better, instead of saying that SET_RUNTIME_PM_OPS is deprecated. > > > and require __maybe_unused > > > protection against unused function warnings. The usage of pm_ptr() and > > > RUNTIME_PM_OPS() allows the compiler to see the functions, thus > > > suppressing the warning. Thus drop the __maybe_unused markings. > > > > Have you tried to compile this with CONFIG_PM disabled, and confirmed the > > compiler doesn't generate any warning ? > > I am not able to compile with CONFIG_PM disabled as it is throwing errors in power management code. > > kernel/power/suspend.c: In function ‘suspend_prepare’: > kernel/power/suspend.c:360:10: error: implicit declaration of function ‘pm_notifier_call_chain_robust’; did you mean ‘raw_notifier_call_chain_robust’? [-Werror=implicit-function-declaration] > 360 | error = pm_notifier_call_chain_robust(PM_SUSPEND_PREPARE, PM_POST_SUSPEND); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > | raw_notifier_call_chain_robust > kernel/power/hibernate.c:325:2: error: implicit declaration of function ‘save_processor_state’ [-Werror=implicit-function-declaration] > 325 | save_processor_state(); > | ^~~~~~~~~~~~~~~~~~~~ > kernel/power/suspend.c:372:2: error: implicit declaration of function ‘pm_notifier_call_chain’; did you mean ‘raw_notifier_call_chain’? [-Werror=implicit-function-declaration] > 372 | pm_notifier_call_chain(PM_POST_SUSPEND); > | ^~~~~~~~~~~~~~~~~~~~~~ > | raw_notifier_call_chain > CC io_uring/timeout.o > kernel/power/suspend.c: In function ‘suspend_enter’: > kernel/power/suspend.c:405:10: error: implicit declaration of function ‘dpm_suspend_late’; did you mean ‘dpm_suspend_start’? [-Werror=implicit-function-declaration] > 405 | error = dpm_suspend_late(PMSG_SUSPEND); > | ^~~~~~~~~~~~~~~~ > | dpm_suspend_start I'm surprised. Sakari, isn't !CONFIG_PM supposed to be supported ? > > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> > > > --- > > > drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c | 8 ++++---- > > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > > > diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > > > b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > > > index d20f4eff93a4..c4609da9bf1a 100644 > > > --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > > > +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c > > > @@ -834,7 +834,7 @@ static void rzg2l_csi2_remove(struct platform_device > > *pdev) > > > pm_runtime_disable(&pdev->dev); > > > } > > > > > > -static int __maybe_unused rzg2l_csi2_pm_runtime_suspend(struct device > > > *dev) > > > +static int rzg2l_csi2_pm_runtime_suspend(struct device *dev) > > > { > > > struct rzg2l_csi2 *csi2 = dev_get_drvdata(dev); > > > > > > @@ -843,7 +843,7 @@ static int __maybe_unused > > rzg2l_csi2_pm_runtime_suspend(struct device *dev) > > > return 0; > > > } > > > > > > -static int __maybe_unused rzg2l_csi2_pm_runtime_resume(struct device > > > *dev) > > > +static int rzg2l_csi2_pm_runtime_resume(struct device *dev) > > > { > > > struct rzg2l_csi2 *csi2 = dev_get_drvdata(dev); > > > > > > @@ -851,7 +851,7 @@ static int __maybe_unused > > > rzg2l_csi2_pm_runtime_resume(struct device *dev) } > > > > > > static const struct dev_pm_ops rzg2l_csi2_pm_ops = { > > > - SET_RUNTIME_PM_OPS(rzg2l_csi2_pm_runtime_suspend, > > rzg2l_csi2_pm_runtime_resume, NULL) > > > + RUNTIME_PM_OPS(rzg2l_csi2_pm_runtime_suspend, > > > +rzg2l_csi2_pm_runtime_resume, NULL) > > > > While at it, I would wrap the line to > > > > RUNTIME_PM_OPS(rzg2l_csi2_pm_runtime_suspend, > > rzg2l_csi2_pm_runtime_resume, NULL) > > > > Up to you. > > If it is not a requirement to move to use the modern pm_ops/pm_sleep_ops > then as said in the above I would like to drop this patch. > > > > }; > > > > > > static const struct of_device_id rzg2l_csi2_of_table[] = { @@ -865,7 > > > +865,7 @@ static struct platform_driver rzg2l_csi2_pdrv = { > > > .driver = { > > > .name = "rzg2l-csi2", > > > .of_match_table = rzg2l_csi2_of_table, > > > - .pm = &rzg2l_csi2_pm_ops, > > > + .pm = pm_ptr(&rzg2l_csi2_pm_ops), > > > }, > > > }; > > >
Hi Laurent Pinchart, Thanks for the feedback. > -----Original Message----- > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Sent: Tuesday, January 23, 2024 10:17 PM > Subject: Re: [PATCH 1/4] media: platform: rzg2l-cru: rzg2l-csi2: Switch to > RUNTIME_PM_OPS() > > On Tue, Jan 23, 2024 at 06:33:57PM +0000, Biju Das wrote: > > > On Tue, Jan 23, 2024 at 11:58:18AM +0000, Biju Das wrote: > > > > SET_RUNTIME_PM_OPS() are deprecated > > > > > > Not that I particularly care about SET_RUNTIME_PM_OPS, but I'm not > > > aware of it being deprecated. Has that been announced somewhere ? > > > > I was under the impression from [1], this is new style and old style > going to be deprecated. > > > > If it is not the case, I would like to drop this patch. > > > > [1] > > I'm not against this change, I was just wondering about the status of > SET_RUNTIME_PM_OPS. If you think using RUNTIME_PM_OPS is better, I have no > problem with that. The commit message should probably state that the > latter is better, instead of saying that SET_RUNTIME_PM_OPS is deprecated. Agreed. Will update the commit message along with the changes you suggested in Next version. Cheers, Biju
diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index d20f4eff93a4..c4609da9bf1a 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -834,7 +834,7 @@ static void rzg2l_csi2_remove(struct platform_device *pdev) pm_runtime_disable(&pdev->dev); } -static int __maybe_unused rzg2l_csi2_pm_runtime_suspend(struct device *dev) +static int rzg2l_csi2_pm_runtime_suspend(struct device *dev) { struct rzg2l_csi2 *csi2 = dev_get_drvdata(dev); @@ -843,7 +843,7 @@ static int __maybe_unused rzg2l_csi2_pm_runtime_suspend(struct device *dev) return 0; } -static int __maybe_unused rzg2l_csi2_pm_runtime_resume(struct device *dev) +static int rzg2l_csi2_pm_runtime_resume(struct device *dev) { struct rzg2l_csi2 *csi2 = dev_get_drvdata(dev); @@ -851,7 +851,7 @@ static int __maybe_unused rzg2l_csi2_pm_runtime_resume(struct device *dev) } static const struct dev_pm_ops rzg2l_csi2_pm_ops = { - SET_RUNTIME_PM_OPS(rzg2l_csi2_pm_runtime_suspend, rzg2l_csi2_pm_runtime_resume, NULL) + RUNTIME_PM_OPS(rzg2l_csi2_pm_runtime_suspend, rzg2l_csi2_pm_runtime_resume, NULL) }; static const struct of_device_id rzg2l_csi2_of_table[] = { @@ -865,7 +865,7 @@ static struct platform_driver rzg2l_csi2_pdrv = { .driver = { .name = "rzg2l-csi2", .of_match_table = rzg2l_csi2_of_table, - .pm = &rzg2l_csi2_pm_ops, + .pm = pm_ptr(&rzg2l_csi2_pm_ops), }, };