Re: [PATCH v2 3/7] soc: qcom: Add AOSS QMP genpd provider

From: Bjorn Andersson
Date: Mon Jan 14 2019 - 18:29:38 EST


On Mon 14 Jan 14:40 PST 2019, Stephen Boyd wrote:

> Quoting Bjorn Andersson (2019-01-06 00:09:11)
> > diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig
> > index dda19471057f..d81256ef5055 100644
> > --- a/drivers/soc/qcom/Kconfig
> > +++ b/drivers/soc/qcom/Kconfig
> > @@ -12,6 +12,15 @@ config QCOM_AOSS_QMP
> > micro-controller in the AOSS, using QMP, to control certain resource
> > that are not exposed through RPMh.
> >
> > +config QCOM_AOSS_QMP_PD
> > + tristate "Qualcomm AOSS Messaging Power Domain driver"
> > + depends on QCOM_AOSS_QMP
> > + select PM_GENERIC_DOMAINS
> > + help
> > + This driver provides the means of controlling the AOSSs handling of
>
> Is that possesive? AOSS's?
>

That's correct, will fix.

> > + low-power state for resources related to the remoteproc subsystems as
> > + well as controlling the debug clocks.
> > +
> > config QCOM_COMMAND_DB
> > bool "Qualcomm Command DB"
> > depends on ARCH_QCOM || COMPILE_TEST
> > diff --git a/drivers/soc/qcom/aoss-qmp-pd.c b/drivers/soc/qcom/aoss-qmp-pd.c
> > new file mode 100644
> > index 000000000000..62b8fcb9d09e
> > --- /dev/null
> > +++ b/drivers/soc/qcom/aoss-qmp-pd.c
> > @@ -0,0 +1,135 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/*
> > + * Copyright (c) 2018, Linaro Ltd
> > + */
> > +#include <linux/module.h>
> > +#include <linux/platform_device.h>
> > +#include <linux/pm_domain.h>
> > +#include <linux/soc/qcom/aoss-qmp.h>
> > +#include <dt-bindings/power/qcom-aoss-qmp.h>
> > +
> > +struct qmp_pd {
> > + struct qmp *qmp;
> > +
> > + struct generic_pm_domain pd;
> > +
> > + const char *name;
> > +};
> > +
> > +#define to_qmp_pd_resource(res) container_of(res, struct qmp_pd, pd)
> > +
> > +struct qmp_pd_resource {
> > + const char *name;
> > + int (*on)(struct generic_pm_domain *domain);
> > + int (*off)(struct generic_pm_domain *domain);
> > +};
> > +
> > +static int qmp_pd_clock_toggle(struct qmp_pd *res, bool enable)
> > +{
> > + char buf[96];
>
> Is 96 calculated from somewhere? Can it be a define because it's quite
> magical.
>

This is inherited by downstream, I know it has to be % 4, I'll check and
update accordingly.

Thanks,
Bjorn