Hi Kevin, On Friday 19 December 2014 03:27:35 Rafael J. Wysocki wrote: > On Thursday, December 18, 2014 11:28:58 PM Laurent Pinchart wrote: > > Hi Kevin, > > [cut] > >>>>> It would be better to be able to reference count the DMA engine from >>>>> the bus master IMO and arguably you can use the runtime PM framework >>>>> for that. Namely, give bus masters someting like >>>>> >>>>> pm_runtime_get_my_DMA_engine(bus_master_device) >>>>> pm_runtime_put_my_DMA_engine(bus_master_device) >>>>> >>>>> and let them call these as they see fit. >>>> >>>> Please note that we're not talking about DMA engines here, but about >>>> IOMMUs. DMA is involved through the DMA mapping API which hides the >>>> IOMMU completely from the bus master drivers, not the DMA engine API. >>>> >>>> Exposing the IOMMU is something we want to avoid, but DMA mapping >>>> start/stop operations could certainly be implemented. >>> >>> The problem with that is it only solves the IOMMU problem. We have a >>> more generic PM dependency problem of which this IOMMU example is only a >>> subset, so I think we need a more generic solution. >> >> I agree that a more generic solution is needed at least to support ACPI >> _DEP, but that might not be optimal in the IOMMU use case as explained >> above. > > Well, since we need it anyway, why don't we implement it and then figure out > if anything more specific needs to be done for the IOMMU case? Patches are welcome ;-) -- Regards, Laurent Pinchart