Received: by 2002:a05:7412:cfc7:b0:fc:a2b0:25d7 with SMTP id by7csp2273126rdb; Wed, 21 Feb 2024 02:29:34 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCX4osbMUitMa0Y3LjLRoe6qtO3npMMp+izSzVPqzPtUJmoTUCkBpCuD4XYwFbF1YkM/QkNmgnICm1hD4irZma9ObSFkVNW8DcYm+1CL3w== X-Google-Smtp-Source: AGHT+IE+BapyelbbGnummY84MWrHteCfm3nWF4Vbj7XIgAHhee9EDQXQnAiuju9JonDUrecyeO2M X-Received: by 2002:a05:6a21:1786:b0:19e:4e41:7ae0 with SMTP id nx6-20020a056a21178600b0019e4e417ae0mr27944205pzb.20.1708511373744; Wed, 21 Feb 2024 02:29:33 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708511373; cv=pass; d=google.com; s=arc-20160816; b=FEWNX3b1opNbJjzmCUplGCiZJipOxmmqcZkWMvn9abSisFAkNE6hoCLQrZI87VNTUZ co0zZw0nkkwrtVWFdSgu7AKzFvRGntwgFp1Fw8CO2jVZo8WjCtKR2bJ55oTGbwqYXn12 nsXBqPe3aujN3zP2cVcc0BnGnGBcbK1hGUE8oG2r7AemKFn4EjJhyrIaxBCZ1nTts2Vy KvtpgkRmCbwG7s5pA01C3/KmrTelrq7T0yJyYvLq6AkJNYAuZyBa2OsHUVP3tCPftj1j 1SUy11Ngw7DKOc4/NEj46WgTAMzjtWrzSAzNsjLPnPY5LAlkjs9ZH3tK99Whs0lLADoO 5amw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id:dkim-signature; bh=uFICxWaTfA6I/5U7pVh15oBdk9wBsUXEhSuwjunLRhw=; fh=iF9RceIPCSqFpKxHPsoCB09JNhmtY3pj9wBqVd0rh0A=; b=uEJ0iJZpzqV8Mmsu3v2rwjLCMkcZ7XpNb/oOA6E7azO6DHw3XgPKTov9yZ17WH5bSC 8UGp3BvJ2IqSSpDr5Jgb+638+accJcrrqZ1Tjw7GhNbBfSeYhEVuLV9oIJDGgfBFwohR YXcFcflzqSDWoY9lLMxVg8JeXTWfi+WutH1Uttrpocql/PRO1GK2eSjaY3yl/maucm1v luKteMsGy2GlTeLOZE6DSOuDkqaAC+hJzRwrxwvjEPSSqUY1QnAp/ZgiAOp4jaQ8lGr0 HctASFOA9VzaOAYsKJwnWKPEZYTYeGacu5Uco6MKt7NfJ0SoSRMoH85WJmAvftsn6Md7 y3/A==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=ngDaHeMX; arc=pass (i=1 spf=pass spfdomain=collabora.com dkim=pass dkdomain=collabora.com dmarc=pass fromdomain=collabora.com); spf=pass (google.com: domain of linux-kernel+bounces-74528-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-74528-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id u5-20020a656705000000b005d5434a5732si7750562pgf.456.2024.02.21.02.29.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Feb 2024 02:29:33 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-74528-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=ngDaHeMX; arc=pass (i=1 spf=pass spfdomain=collabora.com dkim=pass dkdomain=collabora.com dmarc=pass fromdomain=collabora.com); spf=pass (google.com: domain of linux-kernel+bounces-74528-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-74528-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 6C81028A228 for ; Wed, 21 Feb 2024 10:29:33 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id BAFFC3E46D; Wed, 21 Feb 2024 10:29:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="ngDaHeMX" Received: from madrid.collaboradmins.com (madrid.collaboradmins.com [46.235.227.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 32D8D3DB8C; Wed, 21 Feb 2024 10:29:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=46.235.227.194 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708511357; cv=none; b=IPxlvrUjHY9orKbnt3+eLbdDyzk3jvdvZ9/DNWC7T1vX2s0fsJhKl0ycAaKMO5OjhVs0c66v8sMu6wF7TW/SKX+KrDz1DyNJggangE4BSrPhcDoptRW46ExgkE9RClcM2+LBzwkfzF4KTcW4RPr+tUbcAKmEyHkljp3ORX78ESU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708511357; c=relaxed/simple; bh=b/vayIWLDtsUmI8fXxNGlG6nYPoITUw0CH4bXSObJPw=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=BX12jvXvcYF/SEeQySr03RpUSe9prVDHnFE5dwxa5/MQCXcLeCLEji1qbMJ2uGO/60b8qxkFcJxobbfMjoQMtuL+kbr7Z12H6MIGW/w0FMobGS3BnaFLbKi8uyZX3+w1PFUVS3l+Vyg4T0rT5HDfTLuu7VdvjmiArRu2Mxb6N+w= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=ngDaHeMX; arc=none smtp.client-ip=46.235.227.194 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1708511354; bh=b/vayIWLDtsUmI8fXxNGlG6nYPoITUw0CH4bXSObJPw=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=ngDaHeMXU2ybbKxtZzbZtmSibm8ifD7uFaPpAQcwEtJK4YBWIy5fNCr8iq5SVZw2l 2DL3mHWHJnE/SR34ywYw2rylhYIGsDNQRMyT73OkoTwpsqAavlsdjPS+etCKSs2Qwj H+Ymaky4PyAlfn070DMAbiNnDZzSRHzsohMg0QR+vXmnGEzqYiZq3lyITnmg+xAqSU NA7brFSDNtqfXeHOHl0O4YjEb+AOcSq/6qhXDRwOpVgQoBYHNq24GoLwJIw3yncWcw 4mnsbGclBfcVZviv5CgJOMyUIw1mQaCWXqfCMqC1DotYUwfSeYD7EFcZWlJbKgqrL/ 9vy5V4CGMsjWQ== Received: from [100.115.223.179] (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by madrid.collaboradmins.com (Postfix) with ESMTPSA id 3ED1E3781FE6; Wed, 21 Feb 2024 10:29:13 +0000 (UTC) Message-ID: Date: Wed, 21 Feb 2024 12:29:12 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 1/2] ASoC: SOF: amd: Move signed_fw_image to struct acp_quirk_entry Content-Language: en-US To: AngeloGioacchino Del Regno , Pierre-Louis Bossart , Liam Girdwood , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Daniel Baluta , Kai Vehmanen , Mark Brown , Jaroslav Kysela , Takashi Iwai , Venkata Prasad Potturu Cc: sound-open-firmware@alsa-project.org, linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, kernel@collabora.com References: <20240220201623.438944-1-cristian.ciocaltea@collabora.com> <20240220201623.438944-2-cristian.ciocaltea@collabora.com> <54c35628-9897-4415-86c0-cf81c897840e@collabora.com> From: Cristian Ciocaltea In-Reply-To: <54c35628-9897-4415-86c0-cf81c897840e@collabora.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 2/21/24 11:35, AngeloGioacchino Del Regno wrote: > Il 20/02/24 21:16, Cristian Ciocaltea ha scritto: >> The signed_fw_image member of struct sof_amd_acp_desc is used to enable >> signed firmware support in the driver via the acp_sof_quirk_table. >> >> In preparation to support additional use cases of the quirk table (i.e. >> adding new flags), move signed_fw_image to a new struct acp_quirk_entry >> and update all references to it accordingly. >> >> No functional changes intended. >> >> Signed-off-by: Cristian Ciocaltea >> --- >>   sound/soc/sof/amd/acp-loader.c |  2 +- >>   sound/soc/sof/amd/acp.c        | 47 ++++++++++++++++++---------------- >>   sound/soc/sof/amd/acp.h        |  6 ++++- >>   sound/soc/sof/amd/vangogh.c    |  9 +++++-- >>   4 files changed, 38 insertions(+), 26 deletions(-) >> >> diff --git a/sound/soc/sof/amd/acp-loader.c >> b/sound/soc/sof/amd/acp-loader.c >> index d2d21478399e..aad904839b81 100644 >> --- a/sound/soc/sof/amd/acp-loader.c >> +++ b/sound/soc/sof/amd/acp-loader.c >> @@ -173,7 +173,7 @@ int acp_dsp_pre_fw_run(struct snd_sof_dev *sdev) >>         adata = sdev->pdata->hw_pdata; >>   -    if (adata->signed_fw_image) >> +    if (adata->quirks && adata->quirks->signed_fw_image) >>           size_fw = adata->fw_bin_size - ACP_FIRMWARE_SIGNATURE; >>       else >>           size_fw = adata->fw_bin_size; >> diff --git a/sound/soc/sof/amd/acp.c b/sound/soc/sof/amd/acp.c >> index 9b3c26210db3..9d9197fa83ed 100644 >> --- a/sound/soc/sof/amd/acp.c >> +++ b/sound/soc/sof/amd/acp.c >> @@ -20,12 +20,14 @@ >>   #include "acp.h" >>   #include "acp-dsp-offset.h" >>   -#define SECURED_FIRMWARE 1 >> - >>   static bool enable_fw_debug; >>   module_param(enable_fw_debug, bool, 0444); >>   MODULE_PARM_DESC(enable_fw_debug, "Enable Firmware debug"); >>   +static struct acp_quirk_entry quirk_valve_galileo = { >> +    .signed_fw_image = true, > > Hello Cristian, > > are you sure that a structure holding "quirks" is the right choice here? > > That probably comes as a personal preference, but I would simply pass a > `u32 flags` > and structure the quirks as bits. > > #define ACP_SIGNED_FW_IMAGE    BIT(0) > #define ACP_SOMETHING_ELSE    BIT(1) > > flags = BIT(SIGNED_FW_IMAGE) | BIT(SOMETHING_ELSE); > > if (flags & BIT(SIGNED_FW_IMAGE)) >    do_something() > > What do you think? Hi Angelo, The flags approach was actually my first thought and I think that would have been the best choice if the quirks usage was limited to a single file (acp.c). Since they need to be exposed externally as well (acp-loader.c, vangogh.c) and already using a dedicated member in struct sof_amd_acp_desc related to the existing quirk, I found the "quirks" struct solution a bit more natural/convenient to follow (I've done a bit of research before and noticed other drivers having similar handling). However, as you already pointed out, it may also come down to individual preferences, so I'm open to using the flags if there is not enough reasoning to stick with the current implementation. Thanks, Cristian