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.
