diff options
| author | Charles Keepax <ckeepax@opensource.cirrus.com> | 2025-11-20 18:30:16 +0300 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2025-11-20 20:22:55 +0300 |
| commit | fb62da31fad29fe3c9844ba217b9bc99820d4622 (patch) | |
| tree | e1cfd2524a35e12fcecc1eeb3f39e323f6d0e1a6 | |
| parent | edb82534ee655091e198edf95e223115dc27c284 (diff) | |
| download | linux-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.c | 36 |
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; |
