summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Keepax <ckeepax@opensource.cirrus.com>2025-11-20 18:30:16 +0300
committerMark Brown <broonie@kernel.org>2025-11-20 20:22:55 +0300
commitfb62da31fad29fe3c9844ba217b9bc99820d4622 (patch)
treee1cfd2524a35e12fcecc1eeb3f39e323f6d0e1a6
parentedb82534ee655091e198edf95e223115dc27c284 (diff)
downloadlinux-fb62da31fad29fe3c9844ba217b9bc99820d4622.tar.xz
ASoC: SDCA: Use helper macros for control identification
We have the SDCA_CTL_TYPE helper macros, we should use them when identifying specific controls to simplify the code a little. Tested-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Maciej Strozek <mstrozek@opensource.cirrus.com> Reviewed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Tested-by: Richard Fitzgerald <rf@opensource.cirrus.com> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://patch.msgid.link/20251120153023.2105663-8-ckeepax@opensource.cirrus.com Reviewed-by: Vinod Koul <vkoul@kernel.org> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/sdca/sdca_interrupts.c36
1 files changed, 14 insertions, 22 deletions
diff --git a/sound/soc/sdca/sdca_interrupts.c b/sound/soc/sdca/sdca_interrupts.c
index a18ec9dd3398..8f6a2adfb6fb 100644
--- a/sound/soc/sdca/sdca_interrupts.c
+++ b/sound/soc/sdca/sdca_interrupts.c
@@ -456,11 +456,8 @@ int sdca_irq_populate_early(struct device *dev, struct regmap *regmap,
else if (!interrupt)
continue;
- switch (entity->type) {
- case SDCA_ENTITY_TYPE_XU:
- if (control->sel != SDCA_CTL_XU_FDL_CURRENTOWNER)
- break;
-
+ switch (SDCA_CTL_TYPE(entity->type, control->sel)) {
+ case SDCA_CTL_TYPE_S(XU, FDL_CURRENTOWNER):
ret = sdca_irq_data_populate(dev, regmap, NULL,
function, entity,
control, interrupt);
@@ -534,27 +531,22 @@ int sdca_irq_populate(struct sdca_function_data *function,
handler = base_handler;
- switch (entity->type) {
- case SDCA_ENTITY_TYPE_ENTITY_0:
- if (control->sel == SDCA_CTL_ENTITY_0_FUNCTION_STATUS)
- handler = function_status_handler;
+ switch (SDCA_CTL_TYPE(entity->type, control->sel)) {
+ case SDCA_CTL_TYPE_S(ENTITY_0, FUNCTION_STATUS):
+ handler = function_status_handler;
break;
- case SDCA_ENTITY_TYPE_GE:
- if (control->sel == SDCA_CTL_GE_DETECTED_MODE)
- handler = detected_mode_handler;
+ case SDCA_CTL_TYPE_S(GE, DETECTED_MODE):
+ handler = detected_mode_handler;
break;
- case SDCA_ENTITY_TYPE_XU:
- if (control->sel == SDCA_CTL_XU_FDL_CURRENTOWNER) {
- ret = sdca_fdl_alloc_state(interrupt);
- if (ret)
- return ret;
+ case SDCA_CTL_TYPE_S(XU, FDL_CURRENTOWNER):
+ ret = sdca_fdl_alloc_state(interrupt);
+ if (ret)
+ return ret;
- handler = fdl_owner_handler;
- }
+ handler = fdl_owner_handler;
break;
- case SDCA_ENTITY_TYPE_HIDE:
- if (control->sel == SDCA_CTL_HIDE_HIDTX_CURRENTOWNER)
- handler = hid_handler;
+ case SDCA_CTL_TYPE_S(HIDE, HIDTX_CURRENTOWNER):
+ handler = hid_handler;
break;
default:
break;