Commit c17ae8c26eac for kernel

commit c17ae8c26eac16ad244daef44044d714f68a2ddc
Author: HyeongJun An <sammiee5311@gmail.com>
Date:   Tue Sep 15 18:25:15 2026 +0900

    ASoC: hdmi-codec: Report a change when the channel status moves

    The put() callback of "IEC958 Playback Default" stores all 24 channel
    status bytes and then returns 0. The core notifies userspace only on a
    positive return, so a write that changes what the get() callback hands
    back is never announced, and a mixer holding the control open keeps
    showing the old value.

    Compare the stored bytes and return 1 when they move, the way
    snd_hda_spdif_default_put() does.

    The same shape is in img-spdif-out and uniperif_player.

    No board with this codec was to hand. The change is a comparison of
    driver state with no hardware behaviour in it, and mixer-test counts the
    missing notification as event_missing.

    Fixes: 7a8e1d44211e ("ASoC: hdmi-codec: Add iec958 controls")
    Signed-off-by: HyeongJun An <sammiee5311@gmail.com>
    Assisted-by: Claude:claude-opus-5
    Link: https://patch.msgid.link/20260915092515.2638542-1-sammiee5311@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>

diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c
index bc2c22436ba6..7aa50c5bd3df 100644
--- a/sound/soc/codecs/hdmi-codec.c
+++ b/sound/soc/codecs/hdmi-codec.c
@@ -426,10 +426,14 @@ static int hdmi_codec_iec958_default_put(struct snd_kcontrol *kcontrol,
 	struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
 	struct hdmi_codec_priv *hcp = snd_soc_component_get_drvdata(component);

+	if (!memcmp(hcp->iec_status, ucontrol->value.iec958.status,
+		    sizeof(hcp->iec_status)))
+		return 0;
+
 	memcpy(hcp->iec_status, ucontrol->value.iec958.status,
 	       sizeof(hcp->iec_status));

-	return 0;
+	return 1;
 }

 static int hdmi_codec_iec958_mask_get(struct snd_kcontrol *kcontrol,