[PATCH V4 06/12] boot_constraint: Add support for PM constraints

Greg Kroah-Hartman gregkh at linuxfoundation.org
Wed Dec 13 01:48:13 PST 2017


On Sun, Oct 29, 2017 at 07:18:54PM +0530, Viresh Kumar wrote:
> This patch adds the PM constraint type.
> 
> The constraint is set by attaching the power domain for the device,
> which will also enable the power domain. This guarantees that the power
> domain doesn't get shut down while being used.
> 
> We don't need to detach the power domain to remove the constraint as the
> domain is attached only once, from here or before driver probe.
> 
> Tested-by: Rajendra Nayak <rnayak at codeaurora.org>
> Signed-off-by: Viresh Kumar <viresh.kumar at linaro.org>
> ---
>  drivers/boot_constraints/Makefile |  2 +-
>  drivers/boot_constraints/core.c   |  4 ++++
>  drivers/boot_constraints/core.h   |  3 +++
>  drivers/boot_constraints/pm.c     | 24 ++++++++++++++++++++++++
>  include/linux/boot_constraint.h   |  1 +
>  5 files changed, 33 insertions(+), 1 deletion(-)
>  create mode 100644 drivers/boot_constraints/pm.c
> 
> diff --git a/drivers/boot_constraints/Makefile b/drivers/boot_constraints/Makefile
> index 3424379fd1e4..b7ade1a7afb5 100644
> --- a/drivers/boot_constraints/Makefile
> +++ b/drivers/boot_constraints/Makefile
> @@ -1,3 +1,3 @@
>  # Makefile for device boot constraints
>  
> -obj-y := clk.o core.o supply.o
> +obj-y := clk.o core.o pm.o supply.o
> diff --git a/drivers/boot_constraints/core.c b/drivers/boot_constraints/core.c
> index 9213e56e8078..f4d3520ddb04 100644
> --- a/drivers/boot_constraints/core.c
> +++ b/drivers/boot_constraints/core.c
> @@ -98,6 +98,10 @@ static struct constraint *constraint_allocate(struct constraint_dev *cdev,
>  		add = constraint_clk_add;
>  		remove = constraint_clk_remove;
>  		break;
> +	case DEV_BOOT_CONSTRAINT_PM:
> +		add = constraint_pm_add;
> +		remove = constraint_pm_remove;
> +		break;
>  	case DEV_BOOT_CONSTRAINT_SUPPLY:
>  		add = constraint_supply_add;
>  		remove = constraint_supply_remove;
> diff --git a/drivers/boot_constraints/core.h b/drivers/boot_constraints/core.h
> index 4f28ac2ef691..a051c3d7c8ab 100644
> --- a/drivers/boot_constraints/core.h
> +++ b/drivers/boot_constraints/core.h
> @@ -33,6 +33,9 @@ struct constraint {
>  int constraint_clk_add(struct constraint *constraint, void *data);
>  void constraint_clk_remove(struct constraint *constraint);
>  
> +int constraint_pm_add(struct constraint *constraint, void *data);
> +void constraint_pm_remove(struct constraint *constraint);
> +
>  int constraint_supply_add(struct constraint *constraint, void *data);
>  void constraint_supply_remove(struct constraint *constraint);
>  
> diff --git a/drivers/boot_constraints/pm.c b/drivers/boot_constraints/pm.c
> new file mode 100644
> index 000000000000..edba5eca5093
> --- /dev/null
> +++ b/drivers/boot_constraints/pm.c
> @@ -0,0 +1,24 @@
> +/*
> + * Copyright (C) 2017 Linaro.
> + * Viresh Kumar <viresh.kumar at linaro.org>
> + *
> + * This file is released under the GPLv2.
> + */
> +
> +#define pr_fmt(fmt) "PM Boot Constraints: " fmt

You don't use this :(



More information about the linux-arm-kernel mailing list