[Linux-kernel-mentees] [PATCH v1 2/6] [media] cx23885: use generic power management

Hans Verkuil hverkuil at xs4all.nl
Mon Jul 13 10:01:51 UTC 2020


On 29/06/2020 09:36, Vaibhav Gupta wrote:
> The .suspend() and .resume() callbacks are not defined for this driver.
> Still, their power managemgement stucture can be easily upgraded to

management structure

> gemeric, without affecting its normal behaviour.

generic

> 
> Hence, define them NULL and use struct dev_pm_ops type to bind them.
> 
> Compile-tested only.
> 
> Signed-off-by: Vaibhav Gupta <vaibhavgupta40 at gmail.com>
> ---
>  drivers/media/pci/cx23885/cx23885-core.c | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/media/pci/cx23885/cx23885-core.c b/drivers/media/pci/cx23885/cx23885-core.c
> index 7e0b0b7cc2a3..da9ee7270dfd 100644
> --- a/drivers/media/pci/cx23885/cx23885-core.c
> +++ b/drivers/media/pci/cx23885/cx23885-core.c
> @@ -2230,14 +2230,18 @@ static const struct pci_device_id cx23885_pci_tbl[] = {
>  };
>  MODULE_DEVICE_TABLE(pci, cx23885_pci_tbl);
>  
> +#define cx23885_suspend NULL
> +#define cx23885_resume NULL
> +
> +static SIMPLE_DEV_PM_OPS(cx23885_pm_ops, cx23885_suspend, cx23885_resume);
> +
>  static struct pci_driver cx23885_pci_driver = {
> -	.name     = "cx23885",
> -	.id_table = cx23885_pci_tbl,
> -	.probe    = cx23885_initdev,
> -	.remove   = cx23885_finidev,
> +	.name      = "cx23885",
> +	.id_table  = cx23885_pci_tbl,
> +	.probe     = cx23885_initdev,
> +	.remove    = cx23885_finidev,
>  	/* TODO */
> -	.suspend  = NULL,
> -	.resume   = NULL,
> +	.driver.pm = &cx23885_pm_ops,

I don't entirely understand this. Wouldn't it be sufficient to just
drop the .suspend/.resume assignments here? It is now required for
driver.pm to be non-NULL?

I'm not up to speed on the changes, but normally you can leave things
NULL if you don't support a feature (PM in this case).

Regards,

	Hans

>  };
>  
>  static int __init cx23885_init(void)
> 



More information about the Linux-kernel-mentees mailing list