[alsa-devel] [RFC-PATCH 0/2] ASoC: simple_card: support for hw-params rules

kernel at martin.sperl.org kernel at martin.sperl.org
Fri May 20 14:30:43 CEST 2016


From: Martin Sperl <kernel at 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.

This would allow other kinds of action methods to get exposed in
codec-drivers, that can then get used to handle some settings
specific to the codec.

I leave this is an exercise for later...

Martin Sperl (2):
  ASoC: hw-params-rules: add generic hw_params-rules
  ASoC: simple_card: add support for hw_params_rules

 .../devicetree/bindings/sound/hw-params-rules.txt  |  86 +++++
 .../devicetree/bindings/sound/simple-card.txt      |   1 +
 sound/soc/generic/Kconfig                          |   6 +
 sound/soc/generic/Makefile                         |   2 +
 sound/soc/generic/hw-params-rules.c                | 402 +++++++++++++++++++++
 sound/soc/generic/hw-params-rules.h                |  49 +++
 sound/soc/generic/simple-card.c                    |  11 +-
 7 files changed, 554 insertions(+), 3 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/sound/hw-params-rules.txt
 create mode 100644 sound/soc/generic/hw-params-rules.c
 create mode 100644 sound/soc/generic/hw-params-rules.h

--
2.1.4


More information about the Alsa-devel mailing list