Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp936844ybh; Tue, 21 Jul 2020 11:29:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzIJYAi1skrAIJoaQXqzCwJ5CwaHxb3CQO9EuzCjT8mXKF13qZ3sQDjuPgUqERH71H3C0zD X-Received: by 2002:a17:906:2e4b:: with SMTP id r11mr25904435eji.227.1595356199435; Tue, 21 Jul 2020 11:29:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595356199; cv=none; d=google.com; s=arc-20160816; b=N6QEFipmq+g9vp6FHRajHWkNmZCMILXsopbkG+zDQ9qNpnZlwiD479YlcIirwJwOpK 7hQ2cKHGmuya/Ze8g9K7kLLY/rvJSudB/kejSWGOwNLDCdtRFOgGvOXumtd0q7slrvYl 3yGCv09mzG0W2jIiOm6CAZlAUdg6mTv0f/F8aPQc4OWkSiVo1ESZ7LCzIidhUmw/2G4z 72CBhjJxdIQprPX56y4WdF4M67L8M/EBEqbAXmKfDqLCHGeFUPe4ZB8dXp9ig+Pw2ym3 tkMvGEpYEV0Jke5F7XEtnnO24+vFSHY2VWJZB8ZwmhL/5zjTlwoeyDG0WaK0we1RJLcj UC7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=4jBpCAfHmvrXMsleahVys7l2Kbtf/JTxu6AXTIkM0eQ=; b=aQIE7r86xwPVV1KjGvH9cLoD0vynsqXXy23jTG0/U5UDkelD6YiKvALyF5GmVWP5bc zO77sfNliFuykKqqj2pxTyavVYN02EjSIKHr+Q568zt5VL0L7S1dAdbGF6KdCdiO7nRf GmDOLQDLq8EWFMdY08SzIAVH6PLSwiPAgYxnDCfNeSHVG/CPjvlgrAPBU1Ou2J01wXId H/mMkAGpJ5bg1gj6dO/AtcUoGUWPEdq8YPeI6+ZPCQ4SXY/Qlspd3k3j1Ys97kTvk75O 7VOEDQkkglLFsN4mSSRx8hr+/W1p9C91hcTkdfXMUOOC5M5oRTq7XNiTVZk6iuegeq/6 2+wA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ph86JCwg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l23si13439964ejq.14.2020.07.21.11.29.37; Tue, 21 Jul 2020 11:29:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ph86JCwg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728496AbgGUS3G (ORCPT + 99 others); Tue, 21 Jul 2020 14:29:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35284 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726658AbgGUS3D (ORCPT ); Tue, 21 Jul 2020 14:29:03 -0400 Received: from mail-ej1-x643.google.com (mail-ej1-x643.google.com [IPv6:2a00:1450:4864:20::643]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B208CC061794 for ; Tue, 21 Jul 2020 11:29:02 -0700 (PDT) Received: by mail-ej1-x643.google.com with SMTP id w9so8491397ejc.8 for ; Tue, 21 Jul 2020 11:29:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=4jBpCAfHmvrXMsleahVys7l2Kbtf/JTxu6AXTIkM0eQ=; b=ph86JCwgAqK1FafyGhguYtYD9m1MR+zqcBbTXsg8IP83H4jR+1Msy9ofw8JwBHPkBH ryf1PDwI/2ck3LAn4CYZ0jSaBhoePx1DxNUmO5leaJ6oichh5CjPdWJbFpZn8nSQ1mP6 6FQ3HutBUXBCSfAseimn6jrVVkEt4TsA2fysQRViTliWKVuA0tVxqN6yxHra5zMM6Z/2 u0DKVHBff+qBD72/RB5fnv06htnRbIlmW4Ebk5kQNqyZ+peu2f4/dUJrwDFX0OSPu02P EnhYv13WCFw4l82yHLWeV1x5LOWZII9u0MXBFgkyo1uIjj01lDL4T6fcx3O1kZwYXd3Q CHTQ== 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=4jBpCAfHmvrXMsleahVys7l2Kbtf/JTxu6AXTIkM0eQ=; b=VmUH6G2sD6C0iyqn+d5jfKOFMW7lfrHMSioFDdbEXOYCtH5t3iraR+OjJuTbP7NKe5 1bhk7VCajBcRaG8tDfq9lObxyPs1y3scmhcdKsdXj4jfhWznLoP7JKy7brJ6eRc/hrcR Z1NwcxKXhX+DBwCEe2jBK9zFcUR+0HMlzAf53MQVSoTXUHMfM5QOTjjQrFBUYYqi3M1T jXeACQVabfr6mz98Nz4nai5N3gng6GUbZrwfvJeCMzIvAEUmuZU2ObFAMrR79U/lO74D DD8Rn3V4VR9NDKrF5fDHVkdunAFykega/Kmc5Sc3f4rVYb1srbmPeAiNgNCpboXtFPyW f4vw== X-Gm-Message-State: AOAM532R8BSrxGkhPdweah/yUErJKFmBVAface8deRZ3/A7J452lF6Id Io4J7GhmOwZS0yujz+E5AxA= X-Received: by 2002:a17:906:a84d:: with SMTP id dx13mr25279915ejb.246.1595356141506; Tue, 21 Jul 2020 11:29:01 -0700 (PDT) Received: from localhost.localdomain ([178.233.178.9]) by smtp.gmail.com with ESMTPSA id q6sm16959454ejn.30.2020.07.21.11.28.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2020 11:29:00 -0700 (PDT) From: Alper Nebi Yasak To: Mark Brown Cc: alsa-devel@alsa-project.org, Liam Girdwood , Alper Nebi Yasak , Jaroslav Kysela , linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Takashi Iwai , Heiko Stuebner Subject: [PATCH] ASoC: rk3399_gru_sound: Add DAPM pins, kcontrols for jack detection Date: Tue, 21 Jul 2020 21:27:10 +0300 Message-Id: <20200721182709.6895-1-alpernebiyasak@gmail.com> X-Mailer: git-send-email 2.28.0.rc1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PulseAudio (and perhaps other userspace utilities) can not detect any jack for rk3399_gru_sound as the driver doesn't expose related Jack kcontrols. This patch adds two DAPM pins to the headset jack, where the snd_soc_card_jack_new() call automatically creates "Headphones Jack" and "Headset Mic Jack" kcontrols from them. With an appropriate ALSA UCM config specifying JackControl fields for the "Headphones" and "Headset" (mic) devices, PulseAudio can detect plug/unplug events for both of them after this patch. Signed-off-by: Alper Nebi Yasak --- sound/soc/rockchip/rk3399_gru_sound.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/sound/soc/rockchip/rk3399_gru_sound.c b/sound/soc/rockchip/rk3399_gru_sound.c index f45e5aaa4b30..c17d146717a8 100644 --- a/sound/soc/rockchip/rk3399_gru_sound.c +++ b/sound/soc/rockchip/rk3399_gru_sound.c @@ -32,6 +32,19 @@ static unsigned int dmic_wakeup_delay; static struct snd_soc_jack rockchip_sound_jack; +/* Headset jack detection DAPM pins */ +static struct snd_soc_jack_pin rockchip_sound_jack_pins[] = { + { + .pin = "Headphones", + .mask = SND_JACK_HEADPHONE, + }, + { + .pin = "Headset Mic", + .mask = SND_JACK_MICROPHONE, + }, + +}; + static const struct snd_soc_dapm_widget rockchip_dapm_widgets[] = { SND_SOC_DAPM_HP("Headphones", NULL), SND_SOC_DAPM_SPK("Speakers", NULL), @@ -176,7 +189,9 @@ static int rockchip_sound_da7219_init(struct snd_soc_pcm_runtime *rtd) SND_JACK_HEADSET | SND_JACK_LINEOUT | SND_JACK_BTN_0 | SND_JACK_BTN_1 | SND_JACK_BTN_2 | SND_JACK_BTN_3, - &rockchip_sound_jack, NULL, 0); + &rockchip_sound_jack, + rockchip_sound_jack_pins, + ARRAY_SIZE(rockchip_sound_jack_pins)); if (ret) { dev_err(rtd->card->dev, "New Headset Jack failed! (%d)\n", ret); -- 2.28.0.rc1