From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (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 46DDA33A6EB for ; Thu, 30 Jul 2026 19:17:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785439047; cv=none; b=pGu6VMdwRjgyzgY8EL7Pau9/eAh6EPxYD4koAxfclfsYSkz36p8TDAtf8Mh771R3PapHlLVdLHmqvLk82jJfD6t0yYNgzhLigsahsyop7MSzg7B5pUxnMjYYaBOXp1ouaC2203+na43bO2DB37r33Qxy3vhQLpAU6JWhayaOIg0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785439047; c=relaxed/simple; bh=vVYDeRhVpbRKAkNU9h+TDx1PARTZiGHjTEsk5vZv+dc=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Xm7LUBGxXOTWJD69SY2zUumy8/Xg4eWLawpdgWEANV4FAaQPK9dVbYO4hloD2kJ/QGLQJAFeOxsO4aLyyS/fmixAkOi4BuYe/gHWSaOJuNvqDsK/C5j0zx8qazlWANcycG9uBgTuDwPdS1NyWgt/GGWbXM9kboUYIQp1WY408aA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=bTV+cDnX; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BBoUWNDo; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="bTV+cDnX"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BBoUWNDo" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66UIOHGg1136602 for ; Thu, 30 Jul 2026 19:17:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 8fla+BUQURBo/7c21A3WNrfVtrC0xwyiRMNM1yGIXLQ=; b=bTV+cDnXEBaExVDh LrLd5GEvBQhwYn7tO6tLCTVkdxreycTniZ7QeXiWuT4F6Jp9pPCgNdK1HVE7jKaY quhXchMzeEC+gDGM58r2P+esS9ysFT/hAl4dCO6R2z6GbJOhTDLx3NUFWSbi6sgx VSPfpu7frI+RV2CI5L9aJHGiuQT4z6/DSn3C+cyAQWcYZJVFmNbr4bLofemp6o5L B89Bu/+NOgr+u9kTQwTV+wx1KMiV4x4nNLvXdA1TOkEmPaDpsQtBj7cEMIQk/r4l oTwT94NeQ2IaqnhV9rqIDJSyGzK7LqyiquEH4aJ0QUSbRY8gfuSfUBTSvindjgH1 P6pCAA== Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4frbv2g8dj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 30 Jul 2026 19:17:25 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-cb74d5db64eso151474a12.2 for ; Thu, 30 Jul 2026 12:17:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1785439044; x=1786043844; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:organization :references:in-reply-to:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to:content-type; bh=8fla+BUQURBo/7c21A3WNrfVtrC0xwyiRMNM1yGIXLQ=; b=BBoUWNDo+RTKs+Hajt8IuEXhz61ObntPesjP03Mx6bwp4NlA4yuEYubBjKw4ZY705C SwWTJIFcshMTVrGTqRJTs3A/fDSkrZiZbF6PN0C/3kB2ICVAGNU15TpiG1lrT9hr1ASR +KgOtEIz+O3DtxfwAYCKc+i0iB8ZQVygp587mFRnLYmNUdwPu9TYo6ttJhHLrUW5d5+y 4tgtooNycnvCgBHug8glxbQiabaxuFOc673mNIm6N2xB/joPb3i7VBptvWthovYAcAoK TVjJ2Iy0bYVW2Q5Zye/pVWfLnASRWLSQ+VVEDi8ZdtJ1H1FkroyB8mhw3eOnMezcJ0P9 86XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785439044; x=1786043844; h=content-transfer-encoding:content-type:mime-version:organization :references:in-reply-to:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=8fla+BUQURBo/7c21A3WNrfVtrC0xwyiRMNM1yGIXLQ=; b=crr0rYHu20Qi3uEFWfG9BAV2uhJquVuAGI0P9tDqlKKO4Q296NGRlNtU7bJDZwSMYz ydhkKgZ6k6IVVa0lUrGVuO8cABdBNZLqKdjea4dFbc5HoLu0agVwpIAB4nqmZdM7dwkW qGBYWQJosf4WyVkbIqXoO+Nd78TauZIi2MktjImshdvZ4PVIdv9JkVbNXBfIhFtC8ph+ 8ZqvXWeZe4EYh2fKT5gLciWaTU4w/it8Z7kWujVA5oC94qzW7Xm/P/qPqoBQZCsYggqc Fhk19D+65by7HoCN5X37M34V4ge2bNUEJefisQRDysgMc/kABDXl2onPayTcH1KlL3Fy hgKA== X-Forwarded-Encrypted: i=1; AHgh+Rr9p91CwBr4lh8C5ICI+TPJfiyoI5w+wHdIwgF4eebEu8b5Nkf3Gu4VX0Kbs3QVkQVMVly/4LRB5iQ57XE=@vger.kernel.org X-Gm-Message-State: AOJu0YxKnAsL9u/Eu2sP2lD6B+SPB4xDBl46hjFvgD9/N+IAZipYiXLs F2xKICV78U6DhLUOGSdrBbBtRpso3ixoBp7nCUubRBsgjfX3gFQxu1a0TprT2svisSVf45lUhdN 7Sgps8/UL8mVA478EZhex3zORH2KfdXqwWGpf394qpJaokNZkkprAW2TMQiqpFRcnN8Y= X-Gm-Gg: AR+sD12hXsIys7uccOSgtE2Otn5gRYaM+gFPLSwJS18GYDwQ19jinOxSkIHqNPCP1/h uTtB1PkbFXu+pwfl2HxZdLsIb+W0kD9OlQXkEViEVGX0+sFCYm9KGECsCrCYbQvtzV9WVgeuZWP M4PX2GE9o7eVz9Tp4igBIw71596mRNerrdnqzz1lDkSbc/zMkZjoo9hosFMwTXoeUgtPfF8bfMY tLNaU5bREgnVSYmnAPq5CO3ysnFAcmYesuY9i2Ds6X2CexT54fjbzugozWsA8+ec3DG0iNugZct m8XErNeeBSBTu2PrGERilEW6IaVzmRdJUULLIKTspTs3FhuP5OVUYRw6Z27mbX20ByDJbdUxKWq 2S3dfsB4d7sUQ5GZowqPQ5IIaXg== X-Received: by 2002:a05:6a21:3a87:b0:3b4:6cae:4a50 with SMTP id adf61e73a8af0-3c90075907fmr3944513637.20.1785439044552; Thu, 30 Jul 2026 12:17:24 -0700 (PDT) X-Received: by 2002:a05:6a21:3a87:b0:3b4:6cae:4a50 with SMTP id adf61e73a8af0-3c90075907fmr3944484637.20.1785439044150; Thu, 30 Jul 2026 12:17:24 -0700 (PDT) Received: from localhost ([50.35.46.84]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13e72745b1bsm22343420c88.14.2026.07.30.12.17.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Jul 2026 12:17:23 -0700 (PDT) Date: Thu, 30 Jul 2026 12:17:20 -0700 From: Jonathan Cameron To: Andre Przywara Cc: Lorenzo Pieralisi , Hanjun Guo , Sudeep Holla , Catalin Marinas , Will Deacon , "Rafael J . Wysocki" , Len Brown , James Morse , Ben Horgan , Reinette Chatre , Fenghua Yu , Jonathan Cameron , Srivathsa L Rao , Ganapatrao Kulkarni , Trilok Soni , Srinivas Ramana , Niyas Sait , Lee Trager , Ritwick Sharma , linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v6 10/10] arm_mpam: detect and enable MPAM-Fb PCC support Message-ID: <20260730121720.00002b55@oss.qualcomm.com> In-Reply-To: <20260730152539.2712312-11-andre.przywara@arm.com> References: <20260730152539.2712312-1-andre.przywara@arm.com> <20260730152539.2712312-11-andre.przywara@arm.com> Organization: Qualcomm X-Mailer: Claws Mail 4.4.0 (GTK 3.24.51; x86_64-w64-mingw32) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Proofpoint-ORIG-GUID: Iv7BMNZKG4qmrdkjVVMaSfYiLBgrjcCg X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzMwMDE0MSBTYWx0ZWRfXyW215RwZJbn0 nDu0F/A77VzJ5CPp4pyqKag8ZZ4K4F54FOfSKz/5pmFN9YWE5+tE9SiPf5KZbOP6CPtvo5Gi1NK rHFS0apjfusOa1ZaHD4p7cwjTyobEoaNVUdfN5BR6vw4OIWLz9V5dijRkW2Oz4UArWE1u+/lDkV g2CPIJeSmEtvqhWJEzUXbIMX1P9Ct45tRZ36Yc774SL0Zj9renr6qVM+dULrnS5BxSJvkQfnari Cw1LeFP4dTzMZst7vV1jaYg6f0p+CnybBAnFjR8cmkssJ9Px7LgLM4hRKlmn49lZg6MR85fPaoG 9VQ+WunAz33TuwV+wqJz4yetwPVYf2uD1J97g1i5g7RyzIPLckSovEcpul4tEe8XZAOklUXLris 20/ovGAGrs0c+/J8bwk5vfo5B6fP9Fl88h7dhtsvQN2Wb3Sic+ykZ5ItLQwQO3noKnloiH8yuUp Kbc4MpXzCa2YyxO/p+g== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzMwMDE0MSBTYWx0ZWRfX+LZRHnCw4vLy Hh6ylH2r77XHswfjRTo7dMLx4wRqn+3Sv9+YGxjA44zzWkm/Afy1/N6mHXCvHvBR72GXRs74DJc p/phGyZe1eDKIhLhXADaYLQhJE3Q3Xw= X-Proofpoint-GUID: Iv7BMNZKG4qmrdkjVVMaSfYiLBgrjcCg X-Authority-Analysis: v=2.4 cv=ar6CzyZV c=1 sm=1 tr=0 ts=6a6ba345 cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=qC1CW/w66vtJz1P9yTJxNA==:17 a=kj9zAlcOel0A:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=7CQSdrXTAAAA:8 a=EUspDBNiAAAA:8 a=RV8cvHK6CGr8J9zzExgA:9 a=CjuIK1q_8ugA:10 a=bFCP_H2QrGi7Okbo017w:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-30_05,2026-07-30_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607300141 On Thu, 30 Jul 2026 17:25:39 +0200 Andre Przywara wrote: > The Arm MPAM-Fb specification [1] describes a protocol to access MSC > registers through a firmware interface. This requires a shared memory > region to hold the message, and a mailbox to trigger the access. > For ACPI this is wrapped as a PCC channel, described using existing > ACPI abstractions. > > Add code to parse those PCC table descriptions associated with an MSC, > and store the parsed information in the MSC struct. > There can be multiple PCC channels, and each channel can serve multiple > MSCs, so we need to keep track of the channel usage, using a list and > a refcount. > > This will be used by the MPAM-Fb access wrapper code. > > [1] https://developer.arm.com/documentation/den0144/latest > > Signed-off-by: Andre Przywara > Tested-by: Ritwick Sharma One trivial thing inline. With that resolved Reviewed-by: Jonathan Cameron > --- > drivers/resctrl/mpam_devices.c | 111 +++++++++++++++++++++++++++++++- > drivers/resctrl/mpam_fb.c | 41 ++++++++++++ > drivers/resctrl/mpam_internal.h | 2 + > 3 files changed, 152 insertions(+), 2 deletions(-) > > diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c > index 606ae4af2be9..8490034c7db9 100644 > --- a/drivers/resctrl/mpam_devices.c > +++ b/drivers/resctrl/mpam_devices.c .. > @@ -2232,7 +2317,7 @@ static void mpam_msc_drv_remove(struct platform_device *pdev) > static struct mpam_msc *do_mpam_msc_drv_probe(struct platform_device *pdev) > { > int err; > - u32 tmp; > + u32 pcc_subspace_id; > struct mpam_msc *msc; > struct resource *msc_res; > struct device *dev = &pdev->dev; > @@ -2280,7 +2365,7 @@ static struct mpam_msc *do_mpam_msc_drv_probe(struct platform_device *pdev) > if (err) > return ERR_PTR(err); > > - if (device_property_read_u32(&pdev->dev, "pcc-channel", &tmp)) > + if (device_property_read_u32(dev, "pcc-channel", &pcc_subspace_id)) > msc->iface = MPAM_IFACE_MMIO; > else > msc->iface = MPAM_IFACE_PCC; > @@ -2296,6 +2381,28 @@ static struct mpam_msc *do_mpam_msc_drv_probe(struct platform_device *pdev) > } > msc->mapped_hwpage_sz = msc_res->end - msc_res->start; > msc->mapped_hwpage = io; > + } else if (msc->iface == MPAM_IFACE_PCC) { > + int ret; Trivial but why not use already defined err? > + > + msc->pcc_chan = mpam_pcc_chan_get(dev, pcc_subspace_id); > + if (IS_ERR(msc->pcc_chan)) { > + pr_err("Failed to request MSC PCC channel\n"); > + return ERR_CAST(msc->pcc_chan); > + } > + > + ret = mpam_fb_check_shared_buffer_size(msc); > + if (ret) { > + mpam_pcc_chan_put(msc->pcc_chan); > + > + return ERR_PTR(ret); > + } > + > + ret = mpam_fb_check_protocol_version(msc); > + if (ret) { > + mpam_pcc_chan_put(msc->pcc_chan); > + > + return ERR_PTR(ret); > + } > } else { > return ERR_PTR(-EINVAL); > }