Message ID | 1515492109-753-2-git-send-email-vivek.gautam@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Jan 9, 2018 at 11:01 AM, Vivek Gautam <vivek.gautam@codeaurora.org> wrote: > The device link allows the pm framework to tie the supplier and > consumer. So, whenever the consumer is powered-on the supplier > is powered-on first. > > There are however cases in which the consumer wants to power-on > the supplier, but not itself. > E.g., A Graphics or multimedia driver wants to power-on the SMMU > to unmap a buffer and finish the TLB operations without powering > on itself. Some of these unmap requests are coming from the > user space when the controller itself is not powered-up, and it > can be huge penalty in terms of power and latency to power-up > the graphics/mm controllers. > There can be an argument that the supplier should handle this case > on its own and there should not be a need for the consumer to > power-on the supplier. But as discussed on the thread [1] about > ARM-SMMU runtime pm, we don't want to introduce runtime pm calls > in atomic path in arm_smmu_unmap. > > [1] https://patchwork.kernel.org/patch/9827825/ > > Signed-off-by: Vivek Gautam <vivek.gautam@codeaurora.org> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Please feel free to route this along with the rest of the series. Thanks! > --- > > * This is v2 of the patch [1]. Adding it to this patch series. > [1] https://patchwork.kernel.org/patch/10102447/ > > drivers/base/power/runtime.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c > index 6e89b51ea3d9..06a2a88fe866 100644 > --- a/drivers/base/power/runtime.c > +++ b/drivers/base/power/runtime.c > @@ -1579,6 +1579,7 @@ void pm_runtime_get_suppliers(struct device *dev) > > device_links_read_unlock(idx); > } > +EXPORT_SYMBOL_GPL(pm_runtime_get_suppliers); > > /** > * pm_runtime_put_suppliers - Drop references to supplier devices. > @@ -1597,6 +1598,7 @@ void pm_runtime_put_suppliers(struct device *dev) > > device_links_read_unlock(idx); > } > +EXPORT_SYMBOL_GPL(pm_runtime_put_suppliers); > > void pm_runtime_new_link(struct device *dev) > { > -- > QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member > of Code Aurora Forum, hosted by The Linux Foundation >
On 01/12/2018 04:23 AM, Rafael J. Wysocki wrote: > On Tue, Jan 9, 2018 at 11:01 AM, Vivek Gautam > <vivek.gautam@codeaurora.org> wrote: >> The device link allows the pm framework to tie the supplier and >> consumer. So, whenever the consumer is powered-on the supplier >> is powered-on first. >> >> There are however cases in which the consumer wants to power-on >> the supplier, but not itself. >> E.g., A Graphics or multimedia driver wants to power-on the SMMU >> to unmap a buffer and finish the TLB operations without powering >> on itself. Some of these unmap requests are coming from the >> user space when the controller itself is not powered-up, and it >> can be huge penalty in terms of power and latency to power-up >> the graphics/mm controllers. >> There can be an argument that the supplier should handle this case >> on its own and there should not be a need for the consumer to >> power-on the supplier. But as discussed on the thread [1] about >> ARM-SMMU runtime pm, we don't want to introduce runtime pm calls >> in atomic path in arm_smmu_unmap. >> >> [1] https://patchwork.kernel.org/patch/9827825/ >> >> Signed-off-by: Vivek Gautam <vivek.gautam@codeaurora.org> > Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > Please feel free to route this along with the rest of the series. Thanks Rafael. regards Vivek > > Thanks! > >> --- >> >> * This is v2 of the patch [1]. Adding it to this patch series. >> [1] https://patchwork.kernel.org/patch/10102447/ >> >> drivers/base/power/runtime.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c >> index 6e89b51ea3d9..06a2a88fe866 100644 >> --- a/drivers/base/power/runtime.c >> +++ b/drivers/base/power/runtime.c >> @@ -1579,6 +1579,7 @@ void pm_runtime_get_suppliers(struct device *dev) >> >> device_links_read_unlock(idx); >> } >> +EXPORT_SYMBOL_GPL(pm_runtime_get_suppliers); >> >> /** >> * pm_runtime_put_suppliers - Drop references to supplier devices. >> @@ -1597,6 +1598,7 @@ void pm_runtime_put_suppliers(struct device *dev) >> >> device_links_read_unlock(idx); >> } >> +EXPORT_SYMBOL_GPL(pm_runtime_put_suppliers); >> >> void pm_runtime_new_link(struct device *dev) >> { >> -- >> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member >> of Code Aurora Forum, hosted by The Linux Foundation >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c index 6e89b51ea3d9..06a2a88fe866 100644 --- a/drivers/base/power/runtime.c +++ b/drivers/base/power/runtime.c @@ -1579,6 +1579,7 @@ void pm_runtime_get_suppliers(struct device *dev) device_links_read_unlock(idx); } +EXPORT_SYMBOL_GPL(pm_runtime_get_suppliers); /** * pm_runtime_put_suppliers - Drop references to supplier devices. @@ -1597,6 +1598,7 @@ void pm_runtime_put_suppliers(struct device *dev) device_links_read_unlock(idx); } +EXPORT_SYMBOL_GPL(pm_runtime_put_suppliers); void pm_runtime_new_link(struct device *dev) {
The device link allows the pm framework to tie the supplier and consumer. So, whenever the consumer is powered-on the supplier is powered-on first. There are however cases in which the consumer wants to power-on the supplier, but not itself. E.g., A Graphics or multimedia driver wants to power-on the SMMU to unmap a buffer and finish the TLB operations without powering on itself. Some of these unmap requests are coming from the user space when the controller itself is not powered-up, and it can be huge penalty in terms of power and latency to power-up the graphics/mm controllers. There can be an argument that the supplier should handle this case on its own and there should not be a need for the consumer to power-on the supplier. But as discussed on the thread [1] about ARM-SMMU runtime pm, we don't want to introduce runtime pm calls in atomic path in arm_smmu_unmap. [1] https://patchwork.kernel.org/patch/9827825/ Signed-off-by: Vivek Gautam <vivek.gautam@codeaurora.org> --- * This is v2 of the patch [1]. Adding it to this patch series. [1] https://patchwork.kernel.org/patch/10102447/ drivers/base/power/runtime.c | 2 ++ 1 file changed, 2 insertions(+)