From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (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 0069B375F81 for ; Mon, 18 May 2026 15:17:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779117469; cv=none; b=bhBSc8BgTM+h8mElFyi+5rgWE/8wc64xIAun6vMJZpqYkC4vZAjzlOU7YK9reQhyDarUC3RPuH2byMQM6GfgsthsCwWTbI2dHr2e+fGGlpifoD1GSI0xtTRMPNq7xMRKS79P35RQY+So/VSVS1PA/Xn8hPpGJdWFfP8a5N/9p0U= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779117469; c=relaxed/simple; bh=ExFMwvKcte30iE/5xeAT+yE2G/l/cIlYbv6MzIObXps=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RAmQ/LEUvkMDmNdiDZtbS9Ai4bMRdLFoRHlmimwKYsvUMxZWl/HjtFfDTYzJ5KhsjpqszeJFk2pcebLDgbdwWdo48VkrnFiQwB46atod5ncn8iQ5VBBEp6G96hlc44QzSvxKejggI83eIhWF9yB6JChoelygCkrhwRcb6RbfgMk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=hsHsZr2S; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=n3sslKY8; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="hsHsZr2S"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="n3sslKY8" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1779117467; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ChwJFmg7CxWjli9jGFgnSfwP9Dprp7rtfDPtVsAymzA=; b=hsHsZr2SbCS8EqvoSG8RtK+pYiqslDm22m3E4c92qkhsm9W7R/OWHsv0oyrZ+py3ToBWJo NH3WEmbtZPOqKszmiNSAj1LYueBzUeHvqaMx3W+Z7JbwVKPOMcpDeEyaytvmrdtlKHe/dP hzGerwWi9qGPvNfBXInOrhdKlyRjjec= Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-564-U3ou-GCDPGejdMhQgwUvVA-1; Mon, 18 May 2026 11:17:45 -0400 X-MC-Unique: U3ou-GCDPGejdMhQgwUvVA-1 X-Mimecast-MFC-AGG-ID: U3ou-GCDPGejdMhQgwUvVA_1779117465 Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-83f7e7f7457so762372b3a.1 for ; Mon, 18 May 2026 08:17:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1779117464; x=1779722264; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ChwJFmg7CxWjli9jGFgnSfwP9Dprp7rtfDPtVsAymzA=; b=n3sslKY82wj2LoCyfoL90aSj4VDRZrV2yEPsD0/26pYR/K6+5FtJ9RhikAJHOUl6G6 xpup1+gssNLo7MnD0PzRcbf5YTYZpJPMWtw45MnUy49Q1mRa2m9jaBDo+ECNcowIqbFF KPRHg5xGnzN+GeNUec7/+/IR1PCMOUSXbZ3x69TmGQu4lrTSknPOAjmq+VF+YWKBOkI4 4tnFy8HH5a4ELJPxcUYeT50snDSViRZYyxVAopGzRbfdrNrszbscoIEKFALJH8jdImZl vyDefJMQ5xgPrE33ncqUYxB00l0LnFqszZ3rJFtglQAJk0iXE+YiKBGlLD2pnhv9/Pz7 YebQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779117464; x=1779722264; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ChwJFmg7CxWjli9jGFgnSfwP9Dprp7rtfDPtVsAymzA=; b=OaLp/tH7eDbPUbGJPB0GhJjXQ185dlkdbCD+h0UIKn13b1v5yHxdV5AjQwvDu0eIqt E12jPIpf1EmtSKidT/Nqn9RjHVtta4bCYVtwCPXxMvxmjY5u9ZQMULz1XAhx5vnJHCE5 QtUAQnW/WoRiKfAmkjpLoIzTctdiJbeAgg4GEGh80BHqAGhyOD9euMkO5rH7WxMyosZv DabNnnU/EPSxxYkFSSV8ZcSDF2cOGEa929kWVqc+7tn0DqZGcENOn02yXAYedTV1Ks3H w0aR3MWVJbzysmGKEOhp34+5B0F8A4nzPBT1SR9nEMgDTJ1kIVnMdVEDVh/4jKW9nOR1 uwNw== X-Gm-Message-State: AOJu0Yz5noyc2EHYBX/x1+HG/AMtW0P9ontVLpR+oCFw0YAE9s0LNeeB 9rKdQue9mUwTHBZ1eTusPt1J6v2D9tpcQxzPg0MdGLOpybuHS234VrhbFgB5KceO/AOSrcV/9LE GfwZ0hzXY9+3Q8/mU7Djl01/YujiJ0j5HeVMB1hTGRW78ZO0OkKRIP5A2S7fWWqbx2y4P30EgDX SWUXYAdtBOO6o3UJxtam3N1J5Bgc4eMvdtOQH+VNLwZCr1dsEA X-Gm-Gg: Acq92OEqJVEQCEDZWpGfmIf9zu6vbWkbmC+mY2BHhA8sBIkJBRhjpSp3oXSi9H4z1SL fZNbIAgzU4/ok/mXM7E1uczduCyMtXKoF6aedt+vI+zi74alzeElx3CXiE/Ng/mLw56jPA3bnNs /83uVW18q3bo3pRz25zQWnqW2hMvURNrGRRQvMXPrmfIb5eAI8MrpDygIfj2zuPOUJxfscRcwFL QoG7ppXACcSVFb/pPoj1/g8WczDyyE+Qq04PiWAYzxK/At0cPo9h1sNvgGrLfsSr6N3fBs4F9Vd 30qIPIqiWIyLQbja1YPez2s1Rgo52GvTGLGf/QZTz0hpBNZmE1J4w9oZkKXtnLt2St6Z6SluKgl SA0EbQ5ikh3M1kLJcw8JceLJETmS7JoAKpOnOsoPY823tBlQBVodLCzduUJQr6Jg= X-Received: by 2002:a05:6a00:2d81:b0:82f:49b5:cfc3 with SMTP id d2e1a72fcca58-83f33c9080fmr12002539b3a.18.1779117464132; Mon, 18 May 2026 08:17:44 -0700 (PDT) X-Received: by 2002:a05:6a00:2d81:b0:82f:49b5:cfc3 with SMTP id d2e1a72fcca58-83f33c9080fmr12002498b3a.18.1779117463426; Mon, 18 May 2026 08:17:43 -0700 (PDT) Received: from fedora.armenon-thinkpadp16vgen1.bengluru.csb ([49.36.104.172]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f197815cesm18181153b3a.24.2026.05.18.08.17.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 May 2026 08:17:42 -0700 (PDT) From: Arun Menon To: linux-kernel@vger.kernel.org Cc: Jarkko Sakkinen , linux-integrity@vger.kernel.org, Jason Gunthorpe , Peter Huewe , Arun Menon Subject: [PATCH v3 3/6] tpm_crb: Add start_cmd parameter to tpm_crb_start wrapper Date: Mon, 18 May 2026 20:47:21 +0530 Message-ID: <20260518151724.730443-4-armenon@redhat.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260518151724.730443-1-armenon@redhat.com> References: <20260518151724.730443-1-armenon@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Arun Menon The current implementation of tpm_crb_start() is limited to triggering the CRB_START_INVOKE bit. To support command and response chunking, the driver must be able to send other control bits, like CRB_START_NEXT_CHUNK, using the same platform-specific paths. This commit adds the start_cmd parameter to tpm_crb_start() so the caller can specify which command to send. Signed-off-by: Arun Menon --- drivers/char/tpm/tpm_crb.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/char/tpm/tpm_crb.c b/drivers/char/tpm/tpm_crb.c index 9a2f512b4ae3..31f530744e90 100644 --- a/drivers/char/tpm/tpm_crb.c +++ b/drivers/char/tpm/tpm_crb.c @@ -446,7 +446,7 @@ static int tpm_crb_smc_start(struct device *dev, unsigned long func_id) } #endif -static int tpm_crb_start(struct tpm_chip *chip) +static int tpm_crb_start(struct tpm_chip *chip, u32 start_cmd) { struct crb_priv *priv = dev_get_drvdata(&chip->dev); int rc = 0; @@ -457,16 +457,16 @@ static int tpm_crb_start(struct tpm_chip *chip) if (priv->sm == ACPI_TPM2_COMMAND_BUFFER || priv->sm == ACPI_TPM2_MEMORY_MAPPED || !strcmp(priv->hid, "MSFT0101")) - iowrite32(CRB_START_INVOKE, &priv->regs_t->ctrl_start); + iowrite32(start_cmd, &priv->regs_t->ctrl_start); if (priv->sm == ACPI_TPM2_START_METHOD || priv->sm == ACPI_TPM2_COMMAND_BUFFER_WITH_START_METHOD) rc = crb_do_acpi_start(chip); if (priv->sm == ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC) { - iowrite32(CRB_START_INVOKE, &priv->regs_t->ctrl_start); + iowrite32(start_cmd, &priv->regs_t->ctrl_start); rc = tpm_crb_smc_start(&chip->dev, priv->smc_func_id); } if (priv->sm == ACPI_TPM2_CRB_WITH_ARM_FFA) { - iowrite32(CRB_START_INVOKE, &priv->regs_t->ctrl_start); + iowrite32(start_cmd, &priv->regs_t->ctrl_start); rc = tpm_crb_ffa_start(CRB_FFA_START_TYPE_COMMAND, chip->locality); } return rc; @@ -497,7 +497,7 @@ static int crb_send(struct tpm_chip *chip, u8 *buf, size_t bufsiz, size_t len) /* Make sure that cmd is populated before issuing start. */ wmb(); - rc = tpm_crb_start(chip); + rc = tpm_crb_start(chip, CRB_START_INVOKE); if (rc) return rc; -- 2.54.0