On 05/20/2016 02:30 PM, kernel@martin.sperl.org wrote:
From: Martin Sperl kernel@martin.sperl.org
Simple_card does require under some circumstances the ability to configure certain hw_parameters based on clocks, bits, channels.
This patchset adds a generic way to configure these kind of things via the device tree easily. This patchset implements this for simple_card, but other drivers can just as easily make use of this.
For now we have the following matchers and actions:
- matchers:
- match_sample_bits
- match_rate
- match_channels
- actions:
- set_fixed_bclk_size
As a note: the available matching rules and action rules right now are hard-coded, but this could in principle get extended to be more dynamic via kallsyms_lookup_name that would lookup the requested symbol and assume it is a struct asoc_generic_hw_params_method, on which it could apply several sanity-checks before using the pointers for real.
How about allowing to embed eBPF bytecode in the DT that can be installed as a constraint set? This would allow maximum for flexibility and also make the implementation a lot easier.