From patchwork Tue Nov 17 11:26:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cheng-yi Chiang X-Patchwork-Id: 11912061 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3DF2EC5519F for ; Tue, 17 Nov 2020 11:26:45 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B0683221FF for ; Tue, 17 Nov 2020 11:26:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="TPH7+DQd"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="O5bBWmVT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B0683221FF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=mzJG15zXsHiPIfIDBv+DUZCHQrUt5dxLOcXkJK7cvVA=; b=TPH7+DQdx3SKaBKJnaXgP9/2fF 0pRfKwv6l3BB5P5DgKbX/g2Rp50i6BCnAK/dMBxbI1JlH3kRzb8viIwwnBhrsJfTAEYyolJ4iA47d tZf01u9RLo4hrxCBWDXSfFmrQITQUqg5c80nPi1Pv6sPh9qWwqS2EBdPiQLXY5uGqWogQ3dyvloPC cQYIasTlt/qQY0LfV1mIYj0WcS/t5A4SD5t5xoL/CWHF8jJSVqfCn+NGtM2/kPR5k/3oO6wzRANrU KfdvmSQBjUD17I8ouZiLJD5tYPdA7YQiESWs28nRubaVvAbRIjeSEpZUf3m9bute+u8Bfd5KaKulV CvAkuJzA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kez7p-0005YB-Ks; Tue, 17 Nov 2020 11:26:17 +0000 Received: from mail-pg1-x542.google.com ([2607:f8b0:4864:20::542]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kez7m-0005WO-3N for linux-arm-kernel@lists.infradead.org; Tue, 17 Nov 2020 11:26:15 +0000 Received: by mail-pg1-x542.google.com with SMTP id e21so15907370pgr.11 for ; Tue, 17 Nov 2020 03:26:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=5QH8l3HzZjblS+KPiXb77NBbNTh6S8myLIAJDUGNsj8=; b=O5bBWmVTPEBh/wG/pGQE0dEyVrFSP9Ty3BF956K66kZY8Ga5Bv0ZO+dPKZdFwQnUU6 8Re+odTtvmBPW/Pe/ey4gvN2NwnMSTVjO0THOf/mTGSSmHPJE1u1htYGpGgjUweZl0hu Y3d/hvn8/ZvmSbXbLF2FhktSTDJEfHaB5FbPU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=5QH8l3HzZjblS+KPiXb77NBbNTh6S8myLIAJDUGNsj8=; b=l+JhSTouCTdM+jqtFx+qoncszJxi3DVp7BhBNB5BMv7xQJJAU1WfW6P1GfB5yvzeg7 PccIv7WfbsZsLFitak08iEEa5ns+0waqpBBCHlq30mhJa+ELxQHu61fCPKrfSWktaaBk Ds7GoiXKPsVbr2zGUIu7L9FI/xTz4w6NOG16325c27qu9koYO1qOsQVW4nyHqdP40tRL 2Q2HIp8HVPdLfL1/OXC0z4ec9sKP0yH4lhCWKkYBHUdqL2ZMyumpf7JiWiAEvwdz8jy5 11pNObL/vnRzUlUP6njIFLSoF6DClhpgeNEdcR/a+i6EbCG3nfL2VcU+9aB5ayn0dMIu Bzfg== X-Gm-Message-State: AOAM530WoBl4a+D044mZIzQT3FMC5NuUUaDIUCjPq4PuV4p33aJo5Z6Q DMoXHyGPww2E1DgQqHKv8r7m4A== X-Google-Smtp-Source: ABdhPJyrnAjBQ/jtFgnI1ZSF/1TLY+kjZEhSgcrRqfC80FgaKc4a5J8gFviPhqMlAnXOMeI4QK8f7A== X-Received: by 2002:aa7:9414:0:b029:18c:23f6:bc6d with SMTP id x20-20020aa794140000b029018c23f6bc6dmr18205106pfo.21.1605612370295; Tue, 17 Nov 2020 03:26:10 -0800 (PST) Received: from localhost ([100.102.99.29]) by smtp.gmail.com with ESMTPSA id t20sm2843368pjg.25.2020.11.17.03.26.06 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 17 Nov 2020 03:26:09 -0800 (PST) From: Cheng-Yi Chiang To: linux-kernel@vger.kernel.org Subject: [PATCH] ASoC: hdmi-codec: Get ELD in before reporting plugged event Date: Tue, 17 Nov 2020 19:26:03 +0800 Message-Id: <20201117112603.210620-1-cychiang@chromium.org> X-Mailer: git-send-email 2.29.2.299.gdc1121823c-goog MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201117_062614_196829_D0028DA6 X-CRM114-Status: GOOD ( 15.43 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alsa-devel@alsa-project.org, dianders@chromium.org, Srinivasa Rao , Heiko Stuebner , Takashi Iwai , Rob Herring , Liam Girdwood , linux-rockchip@lists.infradead.org, Mark Brown , Rohit kumar , tzungbi@chromium.org, Matthias Brugger , linux-mediatek@lists.infradead.org, dgreid@chromium.org, Jaroslav Kysela , judyhsiao@chromium.org, linux-arm-kernel@lists.infradead.org, Cheng-Yi Chiang Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org In plugged callback, ELD should be updated from display driver so that user space can query information from ELD immediately after receiving jack plugged event. When jack is unplugged, clear ELD buffer so that user space does not get obsolete information of unplugged HDMI. Signed-off-by: Cheng-Yi Chiang --- sound/soc/codecs/hdmi-codec.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c index 403d4c6a49a8..f0e0e1836000 100644 --- a/sound/soc/codecs/hdmi-codec.c +++ b/sound/soc/codecs/hdmi-codec.c @@ -692,10 +692,16 @@ static void plugged_cb(struct device *dev, bool plugged) { struct hdmi_codec_priv *hcp = dev_get_drvdata(dev); - if (plugged) + if (plugged) { + if (hcp->hcd.ops->get_eld) { + hcp->hcd.ops->get_eld(dev->parent, hcp->hcd.data, + hcp->eld, sizeof(hcp->eld)); + } hdmi_codec_jack_report(hcp, SND_JACK_LINEOUT); - else + } else { + memset(hcp->eld, 0, sizeof(hcp->eld)); hdmi_codec_jack_report(hcp, 0); + } } static int hdmi_codec_set_jack(struct snd_soc_component *component,