From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lars-Peter Clausen Subject: [PATCH v2 00/11] ASoC: Consolidate enum controls and DAPM MUXs Date: Fri, 28 Feb 2014 08:31:01 +0100 Message-ID: <1393572672-13937-1-git-send-email-lars@metafoo.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from smtp-out-167.synserver.de (smtp-out-127.synserver.de [212.40.185.127]) by alsa0.perex.cz (Postfix) with ESMTP id 3BAA72650D5 for ; Fri, 28 Feb 2014 08:30:50 +0100 (CET) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Mark Brown , Liam Girdwood Cc: alsa-devel@alsa-project.org, Lars-Peter Clausen , patches@opensource.wolfsonmicro.com, =?UTF-8?q?Philippe=20R=C3=A9tornaz?= , Charles Keepax , Steffen Trumtrar List-Id: alsa-devel@alsa-project.org Changes since v1: * Rename the xmax parameter for the SOC_ENUM_SINGLE_VIRT() macro to xitems. Original cover letter below. We currently have 5 nearly identical implementations of enum controls. Two for normal controls and three for DAPM controls. The only difference between them is how and if the selected enum item is mapped to a register value. For normal enums there is a direct mapping of the selected item to the register value, for value enums there is an additional look-up table that maps the selected item to a register value. DAPM also as a virtual enum which is not backed by any hardware register and the enum is solely used to influence DAPM routing decisions. The different implementations can easily be consolidating by making a few small changes. The series first introduces two helper functions to translate between the selected item and the register value. These functions will do the right thing depending on whether the enum has a direct mapping or is a value enum. These functions will be used to consolidate enums and value enums as well as MUXs and value MUXs. The next step is consolidate MUXs and virtual MUXs. This requires enums that are only used as virtual enums to be marked as such. This is done the same way as for virtual mixer controls by setting reg to SND_SOC_NOPM. All users of virtual MUXs are updated accordingly and then virtual MUXs and MUXs are updated to share the same implementation. The last patch in the series does cleanup of dapm_set_path_status() on top of all this. Once this has been merged I'll send a second patch-set replacing and removing the now deprecated ENUM and MUX macros. The series depends on topic/dapm, topic/enum, topic/sign, topic/adau1373, topic/max98090, topic/mc13783, fix/wm8994, topic/wm899 Lars-Peter Clausen (11): ASoC: Remove unused 'reg2' field from soc_enum struct ASoC: Consolidate enum and value enum controls ASoC: dapm: Consolidate MUXs and value MUXs ASoC: Add macros for defining virtual enums ASoC: adau1373: Use SOC_ENUM_SINGLE_VIRT_DECL() ASoC: max98090: Use SOC_ENUM_SINGLE_VIRT_DECL() ASoC: mc13783: Use SOC_ENUM_SINGLE_VIRT_DECL() ASoC: wm8994: Use SOC_ENUM_SINGLE_VIRT_DECL() ASoC: wm8995: Use SOC_ENUM_SINGLE_VIRT_DECL() ASoC: dapm: Consolidate MUXs and virtual MUXs ASoC: dapm: Break dapm_set_path_status() appart include/sound/soc-dapm.h | 38 +---- include/sound/soc.h | 41 +++-- sound/soc/codecs/adau1373.c | 4 +- sound/soc/codecs/max98090.c | 2 +- sound/soc/codecs/mc13783.c | 6 +- sound/soc/codecs/wm8994.c | 3 +- sound/soc/codecs/wm8995.c | 2 +- sound/soc/soc-core.c | 101 ++---------- sound/soc/soc-dapm.c | 369 +++++++++----------------------------------- 9 files changed, 136 insertions(+), 430 deletions(-) -- 1.8.0