| This driver suffers from a bad initial design that results in various aspects |
| being intricated, making it difficult to scale to new codecs and to add encoding |
| support in the future. |
| |
| Before leaving the staging area, it should be reworked to clearly distinguish |
| between different aspects: |
| - platform, with resources management, interrupt handler, watchdog, |
| v4l2 and m2m devices registration; |
| - proc, with video device registration and related operations; |
| - context, with m2m context, queue and controls management; |
| - engine, with each individual codec job execution and codec-specific |
| operation callbacks; |
| |
| This will make it possible to register two different procs (decoder and |
| encoder) while sharing significant common infrastructure, common v4l2 and m2m |
| devices but exposing distinct video devices. |