On 02/12/2013 11:45 PM, Stéphane Marchesin wrote:
- Do we need to support chaining several encoders ? We can come up with
several theoretical use cases, some of them probably exist in real hardware, but the details are still a bit fuzzy.
So, a part which is completely omitted in this thread is how to handle suspend/resume ordering. If you have multiple encoders which need to be turned on/off in a given order at suspend/resume, how do you handle that given the current scheme where they are just separate platform drivers in drivers/video?
This problems occurs with drm/exynos in current 3.8 kernels for example. On that platform, the DP driver and the FIMD driver will suspend/resume in random order, and therefore fail resuming half the time. Is there something which could be done in CDF to address that?
My idea here is two parts. First hide the chaining within the CDF driver. So it is always the first CDF driver that is responsible for the rest of the chain. Second, I'm looking at using the dev->parent and bus relationchip to describe this dependency. Then power usually works out fine, since children could be forced to be suspended before parent ("bus" host).
/BR /Marcus