[alsa-devel] [RFC][PATCH 0/2] ALSA: control: export all of TLV related macros to user land

Takashi Sakamoto o-takashi at sakamocchi.jp
Sat Sep 10 06:50:14 CEST 2016


Hi,

Currently, TLV related protocol is not shared to user land. This is not
good in a point of application interfaces, because application developers
can't realize the protocol just to see UAPI headers.

For this purpose, this patchset moves all of macros related to TLV to UAPI
header. As a result, a header just for kernel land is obsoleted. When adding
new items to the protocol, it's added to the UAPI header. This change affects
some drivers in media subsystem.

In my concern, this change can break applications. When these macros are
already defined in application side and they includes tlv UAPI header
directly, 'redefined' warning is generated at preprocess time. But the
compilation will be success itself. If these two macros have different
content, the result of preprocess is dominated to the order to define.
However, the most applications are assumed to use TLV feature via libraries
such as alsa-lib, thus I'm optimistic to this concern.

As another my concern, the name of these macros are quite simple, as
'TLV_XXX'. It might be help application developers to rename them with a
prefix, as 'SNDRV_CTL_TLV_XXX'. (But not yet. I'm a lazy guy.)

Takashi Sakamoto (2):
  ALSA: control: export layout of TLV payload to UAPI header
  ALSA: control: replace include statements for TLV

 Documentation/DocBook/writing-an-alsa-driver.tmpl |  2 +-
 Documentation/sound/alsa/Channel-Mapping-API.txt  |  2 +-
 drivers/media/pci/cx18/cx18-alsa-mixer.c          |  2 +-
 drivers/media/pci/cx23885/cx23885-alsa.c          |  2 +-
 drivers/media/pci/cx25821/cx25821-alsa.c          |  2 +-
 drivers/media/pci/cx88/cx88-alsa.c                |  2 +-
 drivers/media/pci/ivtv/ivtv-alsa-mixer.c          |  2 +-
 drivers/media/usb/em28xx/em28xx-audio.c           |  2 +-
 include/sound/tlv.h                               | 62 +----------------------
 include/uapi/sound/tlv.h                          | 60 ++++++++++++++++++++++
 sound/core/pcm_lib.c                              |  2 +-
 sound/core/vmaster.c                              |  2 +-
 sound/drivers/dummy.c                             |  2 +-
 sound/drivers/vx/vx_mixer.c                       |  2 +-
 sound/firewire/isight.c                           |  2 +-
 sound/hda/hdmi_chmap.c                            |  2 +-
 sound/i2c/other/ak4xxx-adda.c                     |  2 +-
 sound/i2c/other/pt2258.c                          |  2 +-
 sound/isa/ad1816a/ad1816a_lib.c                   |  2 +-
 sound/isa/cs423x/cs4236_lib.c                     |  2 +-
 sound/isa/opl3sa2.c                               |  2 +-
 sound/isa/opti9xx/opti92x-ad1848.c                |  2 +-
 sound/isa/wss/wss_lib.c                           |  2 +-
 sound/pci/ac97/ac97_codec.c                       |  2 +-
 sound/pci/ak4531_codec.c                          |  2 +-
 sound/pci/asihpi/asihpi.c                         |  2 +-
 sound/pci/au88x0/au88x0.h                         |  2 +-
 sound/pci/ca0106/ca0106_mixer.c                   |  2 +-
 sound/pci/cs4281.c                                |  2 +-
 sound/pci/ctxfi/ctmixer.c                         |  2 +-
 sound/pci/echoaudio/darla20.c                     |  2 +-
 sound/pci/echoaudio/darla24.c                     |  2 +-
 sound/pci/echoaudio/echo3g.c                      |  2 +-
 sound/pci/echoaudio/gina20.c                      |  2 +-
 sound/pci/echoaudio/gina24.c                      |  2 +-
 sound/pci/echoaudio/indigo.c                      |  2 +-
 sound/pci/echoaudio/indigodj.c                    |  2 +-
 sound/pci/echoaudio/indigodjx.c                   |  2 +-
 sound/pci/echoaudio/indigoio.c                    |  2 +-
 sound/pci/echoaudio/indigoiox.c                   |  2 +-
 sound/pci/echoaudio/layla20.c                     |  2 +-
 sound/pci/echoaudio/layla24.c                     |  2 +-
 sound/pci/echoaudio/mia.c                         |  2 +-
 sound/pci/echoaudio/mona.c                        |  2 +-
 sound/pci/emu10k1/emufx.c                         |  2 +-
 sound/pci/emu10k1/emumixer.c                      |  2 +-
 sound/pci/emu10k1/p16v.c                          |  2 +-
 sound/pci/es1938.c                                |  2 +-
 sound/pci/fm801.c                                 |  2 +-
 sound/pci/hda/hda_codec.c                         |  2 +-
 sound/pci/hda/hda_generic.c                       |  2 +-
 sound/pci/hda/patch_cirrus.c                      |  2 +-
 sound/pci/hda/patch_hdmi.c                        |  2 +-
 sound/pci/ice1712/aureon.c                        |  2 +-
 sound/pci/ice1712/ice1712.c                       |  2 +-
 sound/pci/ice1712/juli.c                          |  2 +-
 sound/pci/ice1712/maya44.c                        |  2 +-
 sound/pci/ice1712/phase.c                         |  2 +-
 sound/pci/ice1712/pontis.c                        |  2 +-
 sound/pci/ice1712/prodigy192.c                    |  2 +-
 sound/pci/ice1712/prodigy_hifi.c                  |  2 +-
 sound/pci/ice1712/quartet.c                       |  2 +-
 sound/pci/ice1712/se.c                            |  2 +-
 sound/pci/ice1712/wm8766.c                        |  2 +-
 sound/pci/ice1712/wm8776.c                        |  2 +-
 sound/pci/ice1712/wtm.c                           |  2 +-
 sound/pci/lola/lola_mixer.c                       |  2 +-
 sound/pci/mixart/mixart_mixer.c                   |  2 +-
 sound/pci/oxygen/oxygen.c                         |  2 +-
 sound/pci/oxygen/oxygen_mixer.c                   |  2 +-
 sound/pci/oxygen/xonar_cs43xx.c                   |  2 +-
 sound/pci/oxygen/xonar_dg.c                       |  2 +-
 sound/pci/oxygen/xonar_dg_mixer.c                 |  2 +-
 sound/pci/oxygen/xonar_hdmi.c                     |  2 +-
 sound/pci/oxygen/xonar_pcm179x.c                  |  2 +-
 sound/pci/oxygen/xonar_wm87x6.c                   |  2 +-
 sound/pci/pcxhr/pcxhr_mix22.c                     |  2 +-
 sound/pci/pcxhr/pcxhr_mixer.c                     |  2 +-
 sound/pci/trident/trident_main.c                  |  2 +-
 sound/pci/via82xx.c                               |  2 +-
 sound/pci/vx222/vx222.c                           |  2 +-
 sound/pci/vx222/vx222_ops.c                       |  2 +-
 sound/pci/ymfpci/ymfpci_main.c                    |  2 +-
 sound/pcmcia/vx/vxp_mixer.c                       |  2 +-
 sound/pcmcia/vx/vxpocket.c                        |  2 +-
 sound/soc/atmel/atmel-classd.c                    |  2 +-
 sound/soc/atmel/atmel-pdmic.c                     |  2 +-
 sound/soc/codecs/88pm860x-codec.c                 |  2 +-
 sound/soc/codecs/ab8500-codec.c                   |  2 +-
 sound/soc/codecs/ad1836.c                         |  2 +-
 sound/soc/codecs/ad193x.c                         |  2 +-
 sound/soc/codecs/adau1373.c                       |  2 +-
 sound/soc/codecs/adau1761.c                       |  2 +-
 sound/soc/codecs/adau1781.c                       |  2 +-
 sound/soc/codecs/adau17x1.c                       |  2 +-
 sound/soc/codecs/adau1977.c                       |  2 +-
 sound/soc/codecs/adav80x.c                        |  2 +-
 sound/soc/codecs/ak4613.c                         |  2 +-
 sound/soc/codecs/ak4641.c                         |  2 +-
 sound/soc/codecs/ak4642.c                         |  2 +-
 sound/soc/codecs/ak4671.c                         |  2 +-
 sound/soc/codecs/alc5623.c                        |  2 +-
 sound/soc/codecs/alc5632.c                        |  2 +-
 sound/soc/codecs/arizona.c                        |  2 +-
 sound/soc/codecs/cs35l32.c                        |  2 +-
 sound/soc/codecs/cs35l33.c                        |  2 +-
 sound/soc/codecs/cs4265.c                         |  2 +-
 sound/soc/codecs/cs4271.c                         |  2 +-
 sound/soc/codecs/cs42l51.c                        |  2 +-
 sound/soc/codecs/cs42l52.c                        |  2 +-
 sound/soc/codecs/cs42l56.c                        |  2 +-
 sound/soc/codecs/cs42l73.c                        |  2 +-
 sound/soc/codecs/cs42xx8.c                        |  2 +-
 sound/soc/codecs/cs4349.c                         |  2 +-
 sound/soc/codecs/cs47l24.c                        |  2 +-
 sound/soc/codecs/cs53l30.c                        |  2 +-
 sound/soc/codecs/da7210.c                         |  2 +-
 sound/soc/codecs/da7213.c                         |  2 +-
 sound/soc/codecs/da7218.c                         |  2 +-
 sound/soc/codecs/da7219.c                         |  2 +-
 sound/soc/codecs/da732x.c                         |  2 +-
 sound/soc/codecs/da9055.c                         |  2 +-
 sound/soc/codecs/es8328.c                         |  2 +-
 sound/soc/codecs/ics43432.c                       |  2 +-
 sound/soc/codecs/inno_rk3036.c                    |  2 +-
 sound/soc/codecs/isabelle.c                       |  2 +-
 sound/soc/codecs/jz4740.c                         |  2 +-
 sound/soc/codecs/lm4857.c                         |  2 +-
 sound/soc/codecs/lm49453.c                        |  2 +-
 sound/soc/codecs/max9768.c                        |  2 +-
 sound/soc/codecs/max98088.c                       |  2 +-
 sound/soc/codecs/max98090.c                       |  2 +-
 sound/soc/codecs/max98095.c                       |  2 +-
 sound/soc/codecs/max98371.c                       |  2 +-
 sound/soc/codecs/max9850.c                        |  2 +-
 sound/soc/codecs/max9860.c                        |  2 +-
 sound/soc/codecs/max9867.c                        |  2 +-
 sound/soc/codecs/max9877.c                        |  2 +-
 sound/soc/codecs/max98925.c                       |  2 +-
 sound/soc/codecs/max98926.c                       |  2 +-
 sound/soc/codecs/ml26124.c                        |  2 +-
 sound/soc/codecs/nau8825.c                        |  2 +-
 sound/soc/codecs/pcm1681.c                        |  2 +-
 sound/soc/codecs/pcm179x.c                        |  2 +-
 sound/soc/codecs/pcm3168a.c                       |  2 +-
 sound/soc/codecs/pcm512x.c                        |  2 +-
 sound/soc/codecs/rt286.c                          |  2 +-
 sound/soc/codecs/rt298.c                          |  2 +-
 sound/soc/codecs/rt5514-spi.c                     |  2 +-
 sound/soc/codecs/rt5514.c                         |  2 +-
 sound/soc/codecs/rt5616.c                         |  2 +-
 sound/soc/codecs/rt5631.c                         |  2 +-
 sound/soc/codecs/rt5640.c                         |  2 +-
 sound/soc/codecs/rt5645.c                         |  2 +-
 sound/soc/codecs/rt5651.c                         |  2 +-
 sound/soc/codecs/rt5659.c                         |  2 +-
 sound/soc/codecs/rt5670.c                         |  2 +-
 sound/soc/codecs/rt5677.c                         |  2 +-
 sound/soc/codecs/sgtl5000.c                       |  2 +-
 sound/soc/codecs/sirf-audio-codec.c               |  2 +-
 sound/soc/codecs/sn95031.c                        |  2 +-
 sound/soc/codecs/ssm2518.c                        |  2 +-
 sound/soc/codecs/ssm2602.c                        |  2 +-
 sound/soc/codecs/ssm4567.c                        |  2 +-
 sound/soc/codecs/sta32x.c                         |  2 +-
 sound/soc/codecs/sta350.c                         |  2 +-
 sound/soc/codecs/sta529.c                         |  2 +-
 sound/soc/codecs/stac9766.c                       |  2 +-
 sound/soc/codecs/tas2552.c                        |  2 +-
 sound/soc/codecs/tas5086.c                        |  2 +-
 sound/soc/codecs/tas571x.c                        |  2 +-
 sound/soc/codecs/tas5720.c                        |  2 +-
 sound/soc/codecs/tfa9879.c                        |  2 +-
 sound/soc/codecs/tlv320aic23.c                    |  2 +-
 sound/soc/codecs/tlv320aic31xx.c                  |  2 +-
 sound/soc/codecs/tlv320aic32x4.c                  |  2 +-
 sound/soc/codecs/tlv320aic3x.c                    |  2 +-
 sound/soc/codecs/tlv320dac33.c                    |  2 +-
 sound/soc/codecs/tpa6130a2.c                      |  2 +-
 sound/soc/codecs/twl4030.c                        |  2 +-
 sound/soc/codecs/twl6040.c                        |  2 +-
 sound/soc/codecs/uda1380.c                        |  2 +-
 sound/soc/codecs/wm2000.c                         |  2 +-
 sound/soc/codecs/wm2200.c                         |  2 +-
 sound/soc/codecs/wm5100.c                         |  2 +-
 sound/soc/codecs/wm5102.c                         |  2 +-
 sound/soc/codecs/wm5110.c                         |  2 +-
 sound/soc/codecs/wm8350.c                         |  2 +-
 sound/soc/codecs/wm8400.c                         |  2 +-
 sound/soc/codecs/wm8523.c                         |  2 +-
 sound/soc/codecs/wm8580.c                         |  2 +-
 sound/soc/codecs/wm8711.c                         |  2 +-
 sound/soc/codecs/wm8728.c                         |  2 +-
 sound/soc/codecs/wm8731.c                         |  2 +-
 sound/soc/codecs/wm8737.c                         |  2 +-
 sound/soc/codecs/wm8741.c                         |  2 +-
 sound/soc/codecs/wm8753.c                         |  2 +-
 sound/soc/codecs/wm8770.c                         |  2 +-
 sound/soc/codecs/wm8776.c                         |  2 +-
 sound/soc/codecs/wm8804.c                         |  2 +-
 sound/soc/codecs/wm8900.c                         |  2 +-
 sound/soc/codecs/wm8903.c                         |  2 +-
 sound/soc/codecs/wm8904.c                         |  2 +-
 sound/soc/codecs/wm8940.c                         |  2 +-
 sound/soc/codecs/wm8955.c                         |  2 +-
 sound/soc/codecs/wm8958-dsp2.c                    |  2 +-
 sound/soc/codecs/wm8960.c                         |  2 +-
 sound/soc/codecs/wm8961.c                         |  2 +-
 sound/soc/codecs/wm8962.c                         |  2 +-
 sound/soc/codecs/wm8974.c                         |  2 +-
 sound/soc/codecs/wm8978.c                         |  2 +-
 sound/soc/codecs/wm8983.c                         |  2 +-
 sound/soc/codecs/wm8985.c                         |  2 +-
 sound/soc/codecs/wm8988.c                         |  2 +-
 sound/soc/codecs/wm8990.c                         |  2 +-
 sound/soc/codecs/wm8991.c                         |  2 +-
 sound/soc/codecs/wm8993.c                         |  2 +-
 sound/soc/codecs/wm8994.c                         |  2 +-
 sound/soc/codecs/wm8995.c                         |  2 +-
 sound/soc/codecs/wm8996.c                         |  2 +-
 sound/soc/codecs/wm8997.c                         |  2 +-
 sound/soc/codecs/wm8998.c                         |  2 +-
 sound/soc/codecs/wm9081.c                         |  2 +-
 sound/soc/codecs/wm9090.c                         |  2 +-
 sound/soc/codecs/wm9712.c                         |  2 +-
 sound/soc/codecs/wm9713.c                         |  2 +-
 sound/soc/codecs/wm_adsp.c                        |  2 +-
 sound/soc/codecs/wm_hubs.c                        |  2 +-
 sound/soc/fsl/mx27vis-aic32x4.c                   |  2 +-
 sound/soc/intel/atom/sst-atom-controls.c          |  2 +-
 sound/soc/intel/atom/sst-atom-controls.h          |  2 +-
 sound/soc/intel/haswell/sst-haswell-pcm.c         |  2 +-
 sound/soc/soc-topology.c                          |  2 +-
 sound/soc/sunxi/sun4i-codec.c                     |  2 +-
 sound/usb/6fire/control.c                         |  2 +-
 sound/usb/mixer.c                                 |  2 +-
 sound/usb/mixer_quirks.c                          |  2 +-
 sound/usb/mixer_scarlett.c                        |  2 +-
 sound/usb/stream.c                                |  2 +-
 239 files changed, 298 insertions(+), 298 deletions(-)

-- 
2.7.4



More information about the Alsa-devel mailing list