From nobody Sat Jun 13 11:25:20 2026 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 4FEB13EEAE1 for ; Fri, 12 Jun 2026 13:21:03 +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=1781270465; cv=none; b=Tn6Mv9olb5VDgCvwFzpHrPGI6tiTNhsavNKVDPYxQQH3i5TF6j5Y5ETS6qbOwXaVghd0/EHqTqFj3VSuWie9zIMj57t5OYpjaNi62/82XGkBi0LWdYdNZItU2TJFb3srTSbsLZU5Es/Qg41WXTTYnSSZtwIHr1ToB0q2mYTkYY0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270465; c=relaxed/simple; bh=ND8QCWihnx/5SzmAjMX21FeKkkTEai7fgVEY9yu2Gdc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XkFr8+Wp4x67F/UalYoKnwLoI8rDxSA7HH1pG7M6ThtJVEGJKpV7h/nALWQqEtkZpUl0gjBrZTmX9X9cS6utEYmt9jF5BzcfPj0knafqWf08NJuBT+mk1nhuV/cwnXpcmOZnHdrsgBS0jbc1u0S4/yqUpY5bWF3m0Ta1+GvRTPY= 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=Ih25a15f; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=D+y7On5S; 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="Ih25a15f"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="D+y7On5S" 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 65CCj1sn3732409 for ; Fri, 12 Jun 2026 13:21:02 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= leied0AaOznatkz/yNwlsN4mHUViLaKycB742NpUAE8=; b=Ih25a15f7iXbpzty m5yjqdwpdGC0IJlGeKlWrAQFy2yLuxPcCWLUN8imPBgtPjAN2FeWU+7FvlYmF7Aw WDhZ/Fh5xxkRuZ2G47GesuXjMjrqPzEO5eLNJlUJ+6d4EQRonYXjTUutDr23Ilkx knHZSte48LpRQMBNP8oukwa0eyryq3WWcYPVFsJwTXnnLFOljrMZ/kLSuSDH7Jfy Ap3/z4CFWrtBu6m+1szEDiF81RrHgu8D+65N+qeR9NQ3LtBmF0876KMYSU9+7elW ET9ZNqVwygbI9ivhL5dBV63/0R2CpY6zAWMJcecJ2+Mjwd3wLtxpZN6ZoqtoT+/C BpPZ9g== Received: from mail-ua1-f71.google.com (mail-ua1-f71.google.com [209.85.222.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er2r72xhb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 13:21:02 +0000 (GMT) Received: by mail-ua1-f71.google.com with SMTP id a1e0cc1a2514c-963df05f08cso175786241.0 for ; Fri, 12 Jun 2026 06:21:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781270461; x=1781875261; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=leied0AaOznatkz/yNwlsN4mHUViLaKycB742NpUAE8=; b=D+y7On5S4Nd3LyiHl3/maoqli1GLJc9ThwAccgTjV/KmliIy3NLBAmI053ixl7qKH/ 2nGKAz1+r48Ry5zKlf/jrqpIo70G8IqvapLgzjM+m38BzVV50QDjAdtX9Shv25AbWfrg LerPPdQk88gCezMxOgAk4ULfEh4OLVZzDZE0isjnAmZXQSW9EqKbaMOBN0O+HMY532Gj WYLpo3XisfkThqqj55k17mc7q+yqPQWLhwLoWT+FrwplbTn83Vsf21RE5DVEZk5xMch6 aXLBFVeCRY63wosn2GZ1Ex3mIk+EXTihRgS/TU7VO5l76EKdz0kQU1E2E4SeqYrzrdmz 5QnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781270461; x=1781875261; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=leied0AaOznatkz/yNwlsN4mHUViLaKycB742NpUAE8=; b=G7radTI4duVNmhBNH19Ne0vERVUa3WJkhtxrp704YQkJlp+YpXkDE+oajkhb4vrYqF 9X/gV4imNLLwXDtH3b616ydHQcleCahxIwuX3+CkFfhH6VUhabYGzIEoAQywFzLRw4Vi iPCVFFZ9PlgLCKtxJo59LSNT+j7CpVvjp5KSWpO5etkzc8Zf0atR1KyKuYC9e44Fvcby lsoC4Npj9ayr94meUVjCE17h6AeJ7cU/k/YgIX1sOUh8ikh9h9H+DkXrXyamMSzIdoDi j9oHhibcR3kCiqHq8MwiHEonJiexGBxFWQNruiFUNcUFFLpzZKvyXw9ICq+C5Jyt6Niu 2JZg== X-Forwarded-Encrypted: i=1; AFNElJ8fkOe1EaT7jBYz5I5NGMuk8ILPjCdEDl0xgyldnWsxRpVY5YJa/Y4wPBHjzpPseZGKod4MM8a/S729wHw=@vger.kernel.org X-Gm-Message-State: AOJu0YwjpQTbBnMpUH665vGQICo946YcA7FoglXLkBQyBSxF0qLJehMs zanAWzPmWU0x+MR7h3KOLYbuoI7reUX8SgPRUxuCKZVweUiVWcPMe1wenY21eRoulmHuroah12K 9YHR8b8EJ4DpTOwdx0adx9CNWDicoupAEyJf3slEaCijixYuvH4rd5R0eHLacIbQka64= X-Gm-Gg: Acq92OGWVHxzw/uiWNrvrG/CM40WqnVFDtgiNaSBvA5XmDGspSixQki3PAp6kjjLscV H+NDJJ0EzbxihqOfz/nSEmY0qzaqwFMKXa/ipUuXNiaEyUJv34WXmqLdxQVIBa/qYgn8PKxTVN4 YpHUvOTmnUQEQZAIiiJZUkfpc39GHcJWjDSbMs3l24/G+1vt8qOyhjz0hAiNdc4F8HjaQ+PwOMI QKmafeaNRyJxE4QPUIl7BmhgbexUpD9ZGjwFy2iWtIX3bXqqFDCKziQU5iRNJQ64uuLAiE/ywZT 2fYzNjbb+e6sxZj/6o43t3VyKFxONDlKGQkyBUALfb9jn/jNpNx/gDuwnbHZxcRI02g8AQZm2/y LQozEcFmXn4OzTpAggx9gQx/Cn+4FEeaCadyQwyRu35PzMrykDG3SNNvjtptJ4p1X231SO+G/DJ Q2Awd/klqJQmn7ZLLe6qwiEyuTbCbMhmcjM4alvfSe0aVir8EJUBt62bmKSMKOg2KqZ+hUAd1/ X-Received: by 2002:a05:6102:2b89:b0:611:61d3:819c with SMTP id ada2fe7eead31-71e88b2a46bmr1202678137.10.1781270461458; Fri, 12 Jun 2026 06:21:01 -0700 (PDT) X-Received: by 2002:a05:6102:2b89:b0:611:61d3:819c with SMTP id ada2fe7eead31-71e88b2a46bmr1202596137.10.1781270460929; Fri, 12 Jun 2026 06:21:00 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:3510:32cf:db6:13c6]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfe6f9c46f0sm59986866b.1.2026.06.12.06.20.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 06:21:00 -0700 (PDT) From: Loic Poulain Date: Fri, 12 Jun 2026 15:20:53 +0200 Subject: [PATCH v5 1/9] block: partitions: of: Skip child nodes without reg property 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-block-as-nvmem-v5-1-95e0b30fff90@oss.qualcomm.com> References: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> In-Reply-To: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> To: Ulf Hansson , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Jens Axboe , Johannes Berg , Jeff Johnson , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Balakrishna Godavarthi , Rocky Liao , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Srinivas Kandagatla , Andrew Lunn , Heiner Kallweit , Russell King , Saravana Kannan Cc: linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, ath10k@lists.infradead.org, linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org, daniel@makrotopia.org, Loic Poulain X-Mailer: b4 0.14.2 X-Proofpoint-ORIG-GUID: mzX8yQlgkRYgQJy0Q7-o668WU273X_rK X-Authority-Analysis: v=2.4 cv=RJGD2Yi+ c=1 sm=1 tr=0 ts=6a2c07be cx=c_pps a=KB4UBwrhAZV1kjiGHFQexw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=e4y8cmn4OwqddjlM7QMA:9 a=QEXdDO2ut3YA:10 a=o1xkdb1NAhiiM49bd1HK:22 X-Proofpoint-GUID: mzX8yQlgkRYgQJy0Q7-o668WU273X_rK X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfX9MAK0F1KSgus WzqddFwKvFB2PxZd0Fdi67ROHXNmFSfWMJOXXRDW2+XmGqoKl5xcuxa8jCxGZ1urygruhm6Ahw8 QmrJDqyo+ZhNezo5Eox5EHuHIPqQpQVwz07w7i/yh3hLGUH3E+t10PLxImPxNtnLj3ihOeJQtrz KaXfUZkJLtW1Ch8V7f+e243XX+eKlyerRditPNDwjtXxc5uBI3j4gZCpBL+1XUgLbn7v6VI6u4V yjhpuVRl8LXC4Mapj7M6lDUjQlYWsh6jaXMAgNI1rimStfPT39FzvEwL6bNXoOYsfIFIraK+8mo g1M7TI0rkb3jnK8ayOuFRfc7sY/FIBW0h8aZs66Ix+x3C61XXC2vyF50maWn7e/s7T6zBoHHVll n6qzdLT4CxHJCihhbLYHo2ryCJmKz3RZRZWj2/hsyjfAuL0S7BIQUmuldKw0H8WzmdJhpy/rN8i k9qXo/hi1qof4qI8V8Q== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfX1z64trNn/gZ+ 1tZfLKwYo09CtPxME70OBdNufuc3HnJwXmCBcQbEm21sPiwCqsTiSah6aNy5AtDV62LKIzRDV+x qNRf6hfJrgCUq2QtAABrfy3BuigLdIY= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 bulkscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120122 Child nodes of a fixed-partitions node are not necessarily partition entries, for example an nvmem-layout node has no reg property. The current code passes a NULL reg pointer and uninitialized len to the length check, which can result in a kernel panic or silent failure to register any partitions. Fix validate_of_partition() to return a skip indicator when no reg property is present. Guard add_of_partition() with a reg property check for the same reason. Signed-off-by: Loic Poulain --- block/partitions/of.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/block/partitions/of.c b/block/partitions/of.c index c22b6066109819c71568f73e8db8833d196b1cf6..534e02a9d85f62611d880af9b30= 2d9fd49aa4d46 100644 --- a/block/partitions/of.c +++ b/block/partitions/of.c @@ -15,6 +15,10 @@ static int validate_of_partition(struct device_node *np,= int slot) int a_cells =3D of_n_addr_cells(np); int s_cells =3D of_n_size_cells(np); =20 + /* Skip nodes without a reg property (e.g. nvmem-layout) */ + if (!reg) + return 1; + /* Make sure reg len match the expected addr and size cells */ if (len / sizeof(*reg) !=3D a_cells + s_cells) return -EINVAL; @@ -80,14 +84,15 @@ int of_partition(struct parsed_partitions *state) slot =3D 1; /* Validate parition offset and size */ for_each_child_of_node(partitions_np, np) { - if (validate_of_partition(np, slot)) { + int err =3D validate_of_partition(np, slot); + + if (err < 0) { of_node_put(np); of_node_put(partitions_np); - return -1; } - - slot++; + if (!err) + slot++; } =20 slot =3D 1; @@ -97,9 +102,10 @@ int of_partition(struct parsed_partitions *state) break; } =20 - add_of_partition(state, slot, np); - - slot++; + if (of_property_present(np, "reg")) { + add_of_partition(state, slot, np); + slot++; + } } =20 seq_buf_puts(&state->pp_buf, "\n"); --=20 2.34.1 From nobody Sat Jun 13 11:25:20 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 E4CD33F4114 for ; Fri, 12 Jun 2026 13:21:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270470; cv=none; b=Ibv02WP2z9jtnDTPvc9s+yv7YSxAp3l85VPsnJPdsZPSJgqSs+yy6SRMe4Lsq4F47MpVibbn2Dn5QbXleUmgi38MIjbki0Nps37joEOj+4pwioihoRmD1bLTgWBuAjlk7aW+NqGSQI6xh/b5jM7CuOL0lE1+PKSho2HuQeYF2M4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270470; c=relaxed/simple; bh=X0Ai0achBf+ZwxyXQCLBkT4mksbIzc1fznSydl00GqA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=j4kQP69cI20uC8QczSqQ3xgkV2ySTq3GkOE992595ImNCHfEM2m6zg5NBhWRl9yJ7U3q/+zlXhFgBuWe1wSDriaYDG8cVQW16Tj7qHJYCHxE7v3pnI4AqATmXrtdoxfyIXdCi+tGJAxPWCb+/WsPg6vxyD8vQg4uJrFQUKtPvL8= 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=ewQgfnCL; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=P9Xl72Qz; arc=none smtp.client-ip=205.220.180.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="ewQgfnCL"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="P9Xl72Qz" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65CCj73d3661888 for ; Fri, 12 Jun 2026 13:21:06 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= /uyx06x8K5ep74cMiQuw/AWSjV6qe5TglOy6xBBnhww=; b=ewQgfnCLI68ej6Qo 9OvW3Hi1cjrVzZolpkfEcfXgnbQl6gVVUQe/0Yp0LuwgvD0Qsc5IdUDcrmpsOF7V Z/vHzjH/RTaUpBynaPr3gFnmOdDpnUNPNDzQPhYR+o99ADjRTwBodu9jeRTtmWvz te2fZaZFzkN4i1pVF6a9pk9+tSgxqW+YMd+WkNoL7CrS0KCHdRVFHbfvKF7kvEZi wgOgDbXctH61qgfVv8uE9WrR9AZtA6dq0Dc9JuSq3QgoIBeREWczdf+29NpOtvH/ dZPxZfyuZezJJmJ7EZ7SwhXPEK3ThzjcIIOlzKvyJhxy9QkoLOOJ1VYlLWUX/Yrz NCLHdQ== Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er1xck6vp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 13:21:06 +0000 (GMT) Received: by mail-oo1-f72.google.com with SMTP id 006d021491bc7-69e89d83663so1114380eaf.2 for ; Fri, 12 Jun 2026 06:21:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781270466; x=1781875266; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=/uyx06x8K5ep74cMiQuw/AWSjV6qe5TglOy6xBBnhww=; b=P9Xl72QzhYLQXH/GBjYt6pTxXaZxUAwgL5u7OR3qDUVugoEEJtZftcymlbbYBGp/cE po5pwnoP9UU3t/Pq2SD679RUS5fifmLbihW06h7c72WZF1vKC04YXaQzNuB0oQkb1ReP y/AE8ZKaEYUx7Ns/ZAg67tHRAsP1BpN8c148s1F4iQC4rlNInUuYRQfjTSezvaKy2UqC k3j/kgDoAgcxhKLAJ4XVdlO51caiRh/AfVz4+P3PGenuM0/3Iv9+BTRB23XIq9X0m9TN vj3U1Y5//t8nGLTuTTx2yeQLLX3HOwteqBpKqkJOKFPOvlUoWZEPQb14J46uXbnZM8AE Thhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781270466; x=1781875266; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=/uyx06x8K5ep74cMiQuw/AWSjV6qe5TglOy6xBBnhww=; b=PMkJtolADXiI4zl5qorP99jVFvc4GkRtQnnuI5P6PX/SFzywGMhHnQGGnPnkxjhDNJ D4bKv19PdjEnI5wPJ7ngPUhI2znsskYMNkLf4Fk9znzNOZbT2FlvyCqo7E+stpZMY1jj 4LBLN3IPrDAzuWrHlkaEPAiXtNYr3uF6KIaH+5twe2deetQcMEKM7enpB+cTbWM5tc6P 2Ew8Z3t153eRwiHoOPlw/+MgmEYolpnD3fvndC9X01qLMUiVU8DwEJYVFM6gN0vdyu4o KvV3yhtxV2uxv3SrV8IXvZtgbtSxR8hEJD3MyJoIA974pdd1nZNWpWT5JB0FlJH7G5Q3 kyNg== X-Forwarded-Encrypted: i=1; AFNElJ/KyhT6iuF2vnRlXUvosU28BCH8LPf5tRNczlvbcTe6LanX+cDc4VM6S531qCIb9PYirV57f3+H8nxzLvY=@vger.kernel.org X-Gm-Message-State: AOJu0Yz3QzpxUTly9nP44hW8Oc2lSp2yfddkEiLzDfnSaiHM8nIbaupG q29krPCsW5tpfTv/ROnBdwWmXIaRcj0E9rrU1qeyfNXc7t7w44NgeFsmosai8LjO0vPCpVgO218 NVArzEGews9twtTFNZFO5N+uHcpIoDZWb7kDawU0Hjmd5vuKkcpXITj1wQgtg0n8lwNLRX9/bXb o= X-Gm-Gg: Acq92OGoivicra82SE5ffpzijSyXwQlQsYT3I+fW7KL03AfOuvnpiDAPZcUFnI944D9 AYglZH2WCUaAF5vmgapCQRA1vwrpmsUlEHC6C11knwxxk0OnkpJYzbqbeV+9P/XZMOmuogTVGw9 BW6KOow7LJc+hMR9qD8WnB/dUvpAlQTFMiflAY8S48IJDswS1AAcoe7aOwc0b02dtZHUWWZkQ35 lpSYlRvOjyPRjHlJe/JXG5o5JMPla5ZMa0RaxVsFyLV7WEgCb6r7RRRnzjMCokV0Go1uhjJatds YNwmuYnY1KoaZXoECHKe2czlA1KEenq/jFQMLUhOcd4hjk8yxulnnzlBelP0Sy/Z7SRjBLn9v6r C+Aw6g2dYuyKVqozMZBBhS5mYOe3y6eAK3PwznFIBXutPnpsWZv/HLVJkXtIZomORY2XUor9ytS dyliOZ5bWdz7EJ8VfKzareU8sopl3MJB/ylGFxY/SEfSpL+BN25ydnicpMwu6IbAHbAgplCH19 X-Received: by 2002:a05:6820:6ac5:b0:69b:196a:de67 with SMTP id 006d021491bc7-69edc38e930mr1694320eaf.0.1781270466081; Fri, 12 Jun 2026 06:21:06 -0700 (PDT) X-Received: by 2002:a05:6820:6ac5:b0:69b:196a:de67 with SMTP id 006d021491bc7-69edc38e930mr1694292eaf.0.1781270465641; Fri, 12 Jun 2026 06:21:05 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:3510:32cf:db6:13c6]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfe6f9c46f0sm59986866b.1.2026.06.12.06.21.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 06:21:02 -0700 (PDT) From: Loic Poulain Date: Fri, 12 Jun 2026 15:20:54 +0200 Subject: [PATCH v5 2/9] dt-bindings: mmc: Document support for nvmem-layout 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-block-as-nvmem-v5-2-95e0b30fff90@oss.qualcomm.com> References: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> In-Reply-To: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> To: Ulf Hansson , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Jens Axboe , Johannes Berg , Jeff Johnson , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Balakrishna Godavarthi , Rocky Liao , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Srinivas Kandagatla , Andrew Lunn , Heiner Kallweit , Russell King , Saravana Kannan Cc: linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, ath10k@lists.infradead.org, linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org, daniel@makrotopia.org, Loic Poulain , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfXxFGH5Z+5dv/L +sUga2+R6hFhC7gyajUqlEEvVG52z44Ed4O7OiZ0woj6fBD90XGjYubKXSg5/xM7G2kWNUdWzge ExL2RTGUL6sWnS0MiNLAud+4EUz4e3fxQFWZ0NbRdLAMxZowvt4tSKInnM9VbC6xA8E28w7oHdJ 8Zd4ov6d8nWKFUzBaY7Zd13tHsLziNnnqgPBYJC22kz5KjqJUy7gyFi3T3DJ3wq4UEAD+q74TW2 PIZWA6YN1+AdPKykiLWMgi5LRrNGjYus3zgpKwmvl37OHFfGFBY4zxARGtDBBlQXyXpNo62fJrK YMRIOeVXJi2d4PIu+VuQBpYb1HW2sh5v1b2eUccQNTGaZaGkBWuR5IrQ48ahIxbkWoy3SiFPK35 4gP7G6Ww2hx7nPXoXQ2FZq3gsgqrd+YfdpMf84GhHCgw25zuTC6uVlA3fld7AA6FD/Lsjdp9m2e /PzjGs+5DfudMXShErA== X-Proofpoint-GUID: eudAEgPjL6LtEka_Ei1_C5mN59_uN5zm X-Proofpoint-ORIG-GUID: eudAEgPjL6LtEka_Ei1_C5mN59_uN5zm X-Authority-Analysis: v=2.4 cv=NZPWEWD4 c=1 sm=1 tr=0 ts=6a2c07c2 cx=c_pps a=wURt19dY5n+H4uQbQt9s7g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=9i5gzfhGLSn5NVSMExYA:9 a=QEXdDO2ut3YA:10 a=-UhsvdU3ccFDOXFxFb4l:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfXxs+HfhLCvFVi eo2M1HVdBFu7n2f4FYYufIAZifw2hvtYD9Ft4TWJ7KryFNKuJWIvIVeyD/hQO7qSqfo7iU34sEJ JoJXE4zTgm55IWszdPzUGK4ws5cAQxw= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 bulkscore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120122 Add support for an nvmem-layout subnode under an eMMC hardware partition. This allows the partition to be exposed as an NVMEM provider and its internal layout to be described. For example, an eMMC boot partition can be used to store device-specific information such as a WiFi MAC address. Reviewed-by: Rob Herring (Arm) Reviewed-by: Bartosz Golaszewski Signed-off-by: Loic Poulain --- .../devicetree/bindings/mmc/mmc-card.yaml | 29 ++++++++++++++++++= ++++ 1 file changed, 29 insertions(+) diff --git a/Documentation/devicetree/bindings/mmc/mmc-card.yaml b/Document= ation/devicetree/bindings/mmc/mmc-card.yaml index a61d6c96df759102f9c1fbfd548b026a77921cae..ca907ad73095925b234b119948f= 94ae81e698c86 100644 --- a/Documentation/devicetree/bindings/mmc/mmc-card.yaml +++ b/Documentation/devicetree/bindings/mmc/mmc-card.yaml @@ -40,6 +40,9 @@ patternProperties: contains: const: fixed-partitions =20 + nvmem-layout: + $ref: /schemas/nvmem/layouts/nvmem-layout.yaml + required: - compatible - reg @@ -86,6 +89,32 @@ examples: read-only; }; }; + + partitions-boot2 { + compatible =3D "fixed-partitions"; + + #address-cells =3D <1>; + #size-cells =3D <1>; + + nvmem-layout { + compatible =3D "fixed-layout"; + + #address-cells =3D <1>; + #size-cells =3D <1>; + + mac-addr@4400 { + compatible =3D "mac-base"; + reg =3D <0x4400 0x6>; + #nvmem-cell-cells =3D <1>; + }; + + bd-addr@5400 { + compatible =3D "mac-base"; + reg =3D <0x5400 0x6>; + #nvmem-cell-cells =3D <1>; + }; + }; + }; }; }; =20 --=20 2.34.1 From nobody Sat Jun 13 11:25:20 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 602363F54AA for ; Fri, 12 Jun 2026 13:21:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270472; cv=none; b=Be+GAI4V6bwe6GfbNAc0fsL0gFbx7MuXIs3vd0RQMhC4ikcae11g2HStRHZJI/xmvw5Q0rWWi9u7ibFhsWIPFyb6PJl4YX+4RGabVu7nP7mF4EwA6iAMlAAL0O4DSam5jmVxIeJGjo/nKpkF4e1KUfweK8j7x1PaP45mqkE2rdk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270472; c=relaxed/simple; bh=GWTkfYePYPEGTpO3+RiqLPCaGCSmezUWdnppwKHAMqE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rhAL59ynYfCb+XT+ZP+6gD1l15Egl5f3si+eJKVLw41dEXJmvIqMUznyd7+y3ZKYnugwiWus7ZZPqdEp0kVKMtrOp2UErQ1ZGvj1KeKp6v2L4ChKnMic2KLoDbGrxgD4PyLgekUwkp7mfWBb+SReUsTQlUL/91OpB44z9LDNRYU= 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=nrzk1bMa; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=GuWfXPXf; arc=none smtp.client-ip=205.220.180.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="nrzk1bMa"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="GuWfXPXf" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65CCjDsK3748822 for ; Fri, 12 Jun 2026 13:21:09 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= SfsW6X2TQx5QMgjWUIDIGuzTP1nyEzhwdW2gsqL49+Q=; b=nrzk1bMa0A1H8jjP R71lHkiApB3IbtsXXD6BWzg4CBdLkhL2ePAs7944vvFj5cjExAWYRUYA59Bh9NlH HyyX3XclHJv52sf0k3NAq8dcC42z1lryIT0xNC++cxmPXdKkjbONft7WN2nhWvam 4z4OJ0WJUh6IgkRRjqHYUy7cm6bwBE1Wb2iCNd2foaUMzSCTHOt4iVWF2XcUEBG6 NeF1Zc4+BPoZwM4xD2ILoSrgowEuGgpOx9u9bTI0/qTalm/g6VivBEV/cmUZeiUD 79ygZwqnZ0Jf0NNJageQqMlD27bss2GOzAf+PHic7+O7VubQV0emhlu92FPFKCea h5oHzA== Received: from mail-ua1-f70.google.com (mail-ua1-f70.google.com [209.85.222.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er76ehy7x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 13:21:09 +0000 (GMT) Received: by mail-ua1-f70.google.com with SMTP id a1e0cc1a2514c-964aa12039dso1045597241.2 for ; Fri, 12 Jun 2026 06:21:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781270469; x=1781875269; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=SfsW6X2TQx5QMgjWUIDIGuzTP1nyEzhwdW2gsqL49+Q=; b=GuWfXPXfs0NqiSLbxS+I+rRjaWT9lwLu59rhQbyERKtJGToL28RYY0KKz9coQt1ZQY fLyf4sK9UMs7Rz7yjUMTxCbZi0cXR/txSpVRBQKOHtSr2lQMv02JNNgEJJ94ED6mJFYW OOH+L6WU+jOM2mJc0akSNVPY5cplsYWTSOusBeZoEaCGeu7bqmIne6F60uJ8pyRBwEUI JP1ZwK3sFsQeD7yLDp4ZgtLBm50diOy7L8F//kjGz62Yr0uvz8AhSRum1PwG/m+VvQiJ mvIoyRn1mXVGq4LR3CLQXf1UWHNhJdUDV/vjp1JR/h5/DYZabPPaH7loOQuqsiLfqnk7 OaBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781270469; x=1781875269; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=SfsW6X2TQx5QMgjWUIDIGuzTP1nyEzhwdW2gsqL49+Q=; b=h2PC62yOh+8txDIxcRzwoEYRd3zpDXdy0dLG7vgdY/Jtr+RZzgOZO5vwcb0vfFrji8 tXx+ZAWWyGPiA53qnO5w2p5OsKztqB65TCrQzUlScX7yacJYGj/93QSMI8J0fJN0dMqT mflLifeDzbk/KPLr8P+cpF5Z40hC4uDz3+MWskhOTMdEpg001iijE0qhJR8lx16vmDPG FmpiCBscGVn53I19F/JBuyzaIFIOwNaU4hWXznEox9Mj1NMmYMt/hHq887/QJxzArCd4 YVBGXUTHjoJQpzLqGbXADzMj32aSjkvRytXMU6B+hchRw3FUQDOT0ZDoFejDbcfIUbNW M5Jg== X-Forwarded-Encrypted: i=1; AFNElJ8yRz8kUO0KgX04nXOSPYrc1/YMJXN+jIzCaydPmUloRBa1YZl562mltzzo7zu5qpyLkgqhD1mdPYJ82kc=@vger.kernel.org X-Gm-Message-State: AOJu0Yz5HJ0RpZ1Q4pZ2STO5c4um+aep69yChCv6jhZXdRyD3Ln92W5b IqylDhAemkWCE6KHpqJ21m9mzU1LWwoNI1F1C2YiJ4xKa7eNy28PvB/vBa0YebzlseEPybmJEZk 5Ogg2qSe6HVkWb5HgvBXCTrBkO8XjLqimlU1Z4K5MsFrvZxdIRBEffEHmLO+DA3RETgU= X-Gm-Gg: Acq92OFljul4ndveEhDwpD4yg8pUjFYmfU1VxbDcEjWwp9ZEXigJ65CN2x1/iJ0i+pv K08YdKl4sagiqQelUKLySous+fNRJ1vYV7GYQYvKHBRhXDOH5PO6iXSAvkiSHw/vmny84ZVREUp xgWXlKzAqwwYpr7eBdw2rpqIa4AlbB14e1N0Inb94Puf1iQaAK9L4jHhViF1iqOG/Ymn9BwEQcb gVG7KwvNFBLaDrv6/5VZeIASzigSvOZv7cC0FG1oO5XHR3mpj6kwuC5NdcHpbhwdcCP1BOzhPb/ FBIO49Oonan2jnoAZbxQ4j0KMT6FU9c0w3v9OXs35nUyKtrtqJIvJmqCPK0W47zySc62V7XxiDX QuR8Z7R5qmbGq4d2LBenHyhFY8/Q7Qriuv/rHXNgUDrCKx/bfNyw0LzUlLw5XpCpj/tT6UwZiZ9 efK/i0IJbjvo0Kp1Sgdet6J5rKUdGCrH8Fdy6xSgh1BwoT91pmSGl+RKdMYmQ7dPd1zWsIHD3e X-Received: by 2002:a05:6102:5087:b0:631:37cb:1e64 with SMTP id ada2fe7eead31-71e88aeb96cmr1414563137.4.1781270468719; Fri, 12 Jun 2026 06:21:08 -0700 (PDT) X-Received: by 2002:a05:6102:5087:b0:631:37cb:1e64 with SMTP id ada2fe7eead31-71e88aeb96cmr1414519137.4.1781270468317; Fri, 12 Jun 2026 06:21:08 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:3510:32cf:db6:13c6]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfe6f9c46f0sm59986866b.1.2026.06.12.06.21.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 06:21:07 -0700 (PDT) From: Loic Poulain Date: Fri, 12 Jun 2026 15:20:55 +0200 Subject: [PATCH v5 3/9] dt-bindings: net: wireless: qcom,ath10k: Document NVMEM cells 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-block-as-nvmem-v5-3-95e0b30fff90@oss.qualcomm.com> References: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> In-Reply-To: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> To: Ulf Hansson , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Jens Axboe , Johannes Berg , Jeff Johnson , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Balakrishna Godavarthi , Rocky Liao , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Srinivas Kandagatla , Andrew Lunn , Heiner Kallweit , Russell King , Saravana Kannan Cc: linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, ath10k@lists.infradead.org, linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org, daniel@makrotopia.org, Loic Poulain , Bartosz Golaszewski , Krzysztof Kozlowski X-Mailer: b4 0.14.2 X-Authority-Analysis: v=2.4 cv=O94Jeh9W c=1 sm=1 tr=0 ts=6a2c07c5 cx=c_pps a=R6oCqFB+Yf/t2GF8e0/dFg==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=Xy7nGJaRzBGhkMsTZAMA:9 a=QEXdDO2ut3YA:10 a=TD8TdBvy0hsOASGTdmB-:22 X-Proofpoint-ORIG-GUID: lFTLfCFM1oUfXEFDR_hnZpobyk6-bZIF X-Proofpoint-GUID: lFTLfCFM1oUfXEFDR_hnZpobyk6-bZIF X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfX7rgnL/N6IcI6 ZFELMCuEByGbKvDgz4OLeKD6GAUvWsKyP+kC/oWERa9O9viKq15tWig4QEGVMvEVwk1fSccS9nc f67CCN+csg8e/xh77z/KgsQFFiSQ3aoNNGZghzegNf9ULPeHKKno+MEWO40NcbdK3Szl2UOhoUE lGD0RPqerrCn5QDHyDwxD+IvzOXJhthpOm5g3vNIAGdpBErrnj6dgXqNNAq11B37N9E2s0B4G+V OhNN0uBYIYJRFSi+9zN8RKbo+sXVLFVzWGba5lCwHYOqTOfdCyk4MuyT3bNZNnf6IueHt+e4Bxr 5jd+jgcMs4COeiRrxd+YlI9IyvPZLKRkbfo5Wgx8kDQtbUvELzlHHkdQ1xuuK4qgokI7UsmOcqg 65kEJw9DbgeINd1uAhdlmLK5iMGszgxSiim6gst197pEYksXbBGVim0a/RLxHhLPEE44mAFJrnP d9tROU5zEUMChho4Dyg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfXzkiFowRIvjEK sDXFVoC3QqqIQpk4jiQoqhaBk3TgJS5x3CLaEswGoO9iIloEjznIP4NEUt9m6h0W+s7h8CS06BN 22WJe37rTF/nPpnhjMgrQtf6p3lwdPw= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 clxscore=1015 bulkscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120122 Document the NVMEM cells supported by the ath10k driver, the mac-address, pre-calibration data, and calibration data. Since such data may also originate from chipset OTP or be supplied via other device tree structures. All of these cells are optional and can be provided independently, in any combination. Reviewed-by: Bartosz Golaszewski Reviewed-by: Krzysztof Kozlowski Signed-off-by: Loic Poulain --- .../devicetree/bindings/net/wireless/qcom,ath10k.yaml | 16 ++++++++++++= ++++ 1 file changed, 16 insertions(+) diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yam= l b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml index c21d66c7cd558ab792524be9afec8b79272d1c87..878c5d833a9cb073520c256c1b7= 2d0f1489e7f4a 100644 --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml @@ -92,6 +92,22 @@ properties: =20 ieee80211-freq-limit: true =20 + nvmem-cells: + minItems: 1 + maxItems: 3 + description: + References to nvmem cells for MAC address and/or calibration data. + Supported cell names are mac-address, calibration, and pre-calibrati= on. + + nvmem-cell-names: + minItems: 1 + maxItems: 3 + items: + enum: + - mac-address + - calibration + - pre-calibration + qcom,calibration-data: $ref: /schemas/types.yaml#/definitions/uint8-array description: --=20 2.34.1 From nobody Sat Jun 13 11:25:20 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 DF3D43F8ED2 for ; Fri, 12 Jun 2026 13:21:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270476; cv=none; b=ZI/2sZEKxeKZ34kk6z+6bf0TD5MQ6tOvHh8nuwCQ+vtLnociyve8516BglibJOw1ftJ5HMbdHIoe5ZivDU8xKRsqPVUed2SVIKlB7WBc1xxg9oZBgfT4RUUgh3yDrO9WTIg/Dow7OMWyNJcphl1iBym4G+vs3kn1ZsmUMu5Ejd0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270476; c=relaxed/simple; bh=xh4ucig5hPRkaGw1GggCAwEU1pqdfnGTPbj3vUFpt5A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tNwSRvnFgoUqns/KODnb6LksYdK0cO/yuRxhwSdcMJ63zTKzE4W+xqPdJDbG/tVjcWQ5KvjwOTZVCzbuxfGeZUsZOa2xnApoKW91Z8WGNLyO23IBwCJWg2PGUgdPjJKxPIMUN3ivcUnCroS6lR3pZlG1EZNXiFDzwwEV2nqBZaw= 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=V0ajMPkg; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=MXmJpS4M; arc=none smtp.client-ip=205.220.180.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="V0ajMPkg"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="MXmJpS4M" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65CCjMmR3749504 for ; Fri, 12 Jun 2026 13:21:12 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= OF0qK3G3GFE0oahQw0gKGPhEucSp1JH1FwJoY8Lp59M=; b=V0ajMPkgVJ7WbuHW I9TlAHw7olRDXvBREzCOJY+47G2/2sELBRvv3TzcVzlAfc9MOM4WhBUsBa7V52Ae TMU1y+/PAqFWntHUT453BmMdQLJQvUe5A23KHWzxScFUiGlfrzKA7bXBVVQDuLx7 S0w0mfTBqJ2kMs0gN1NPXUtmsdVIVpUlUGvSwwaif2IlmU/y6Yym+nX+XKkq2J1Q CicRK2ovRrFlTN82spPVbkzbYMIIzr345jYykfUgHUHxfwrKkVvewsj3wb8tzzlA r/oHgyqUuGgRHHoOvIj6ATBEAMLtp2ry5rTpj7P0I4Y3ozHQkn0VvHEzqaHTDF1a TdbIkA== Received: from mail-vs1-f69.google.com (mail-vs1-f69.google.com [209.85.217.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er2u42vr5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 13:21:12 +0000 (GMT) Received: by mail-vs1-f69.google.com with SMTP id ada2fe7eead31-6a2b2eedc3eso22515137.3 for ; Fri, 12 Jun 2026 06:21:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781270472; x=1781875272; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=OF0qK3G3GFE0oahQw0gKGPhEucSp1JH1FwJoY8Lp59M=; b=MXmJpS4MDZ8yW2C1lySmFn4os85x0KqJs+F0EHHPa52WDcHdLSy0aLfZN/KUUJCRUr T0LWPlfynV4RybWXU7QtZr2eMqIMi7OIxB+FC2oqZ82gJcuiiY8Rk9jw8c8IrRYyWvGk Mt94tHmsIAMh5VpeQfLZzWTvZlqzHQGXY28vI7PTkF6mtEfZwBZNtmyFhQMup84ETDHS GzoF/XUuKem1Io10arjV7yEIDA953xOpbwbeMsA4GwsU7kWYqRI5vw7pfLzGrZjm9tJf xp5iWeK0DIsYeCgf4ebEZucDrDmxRPML5LGziwtv40FBGCEaSVLvsKTabKEeMGDp2D46 zy0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781270472; x=1781875272; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=OF0qK3G3GFE0oahQw0gKGPhEucSp1JH1FwJoY8Lp59M=; b=g4qKSm03XnNt5lh/Adv8B1jY8Gd7TIVz4QrdCkghqpY/HKgxQLFaqh+zA3OTSQP9Jz f5dy9yXqdl+EOFDqowQ2HH6OcL8J+cWneadcTPE2JWx5PmI+OTvlfULtgKMzBswGUQMf CWaNupmM176qspPmeWuXRPgmoaWq7WjCFlrAqyb3Krf9ZlW9gbha0FdCrrf5eSDEKY0V /kG1+auTFs3u3R/dkbesgaOKMyLCK14U9Q6K48z0GU9gbMdofX/Vu6NAVHOoTIHseyxp RwXMr6W0wUU/7QkzYnLmkIvlQoSoIuRIwNFObBFRC8zTcbPHfFadRwAcvDnF0iqHCaNk WuqQ== X-Forwarded-Encrypted: i=1; AFNElJ/t4ckn1W9VnsiQ2Y3JATdY2X/pyvg6gtsc9/Q2U05TGRPoXDZf6ax2JUW7jdBSj42kKGtlULxsduVz1wA=@vger.kernel.org X-Gm-Message-State: AOJu0YxmfiGdgBYW8A+PsJx/qfAkEjFsRmzOqldTLu4brjdRqJ1Nj0VN IFjOOKjiG7X2F4VhwIfortXJ6fAb4zjogjSjxRWU6H/oxmUWQ553ZH0zctsqP/5KnHMZgn0FQSv uxdsKxj5kpjC5SpMp9RwWLnGhn6pmm9Zmn2+S5eWTLDvhbRzCAf73fsCFZdBzhU0z/PI= X-Gm-Gg: Acq92OFMb4cOTrtATsl+sVTNU9Pd048ysOjhf3pt/CJYipeK/IIPkBGd7iQU7FqXH9X ecWpOgqfD3MA+OjVS75ihYs/dmANJ67ejYe17u27a1A0uSTGNcutJdgA32YZG9j78ka6TGrYpI0 9xQUwS2vrhp15CwllSxwYRZFZO9VTNzkUPgpNEaXrVkNsKs6IK9rX5+LjyYhNd0TbjBxALJBMtZ +YDU5lpKB0mFLAOVRB5q9RmGV8KmkY5NTEof/5K2jgjwOiWRhGcA90wq4w9aImBFNWoy7ztv0dK i9FUpFavJPljn7dxeWM85lkbJjn9pwfJHWFUEfz1tbI5MjWD4H4efrdpUkHtldmIyohsxlfYiEN z0/Vt/ukWtm7HATSNYtk6HJGew5+igbGTUfcRpBF2lqh4mQi2+Ge2cZwtzdg1p1gWoL4rB6tW8Y BKie+PAFMGpLDKOYLAbhypPqvUrYuVxcrNgPgDqb7q/Eo2C0YMeT3ETirV8roj11gvabg5/URT X-Received: by 2002:a05:6102:dc6:b0:632:88f6:d6ae with SMTP id ada2fe7eead31-71e88dc1bffmr1060564137.22.1781270471669; Fri, 12 Jun 2026 06:21:11 -0700 (PDT) X-Received: by 2002:a05:6102:dc6:b0:632:88f6:d6ae with SMTP id ada2fe7eead31-71e88dc1bffmr1060437137.22.1781270470888; Fri, 12 Jun 2026 06:21:10 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:3510:32cf:db6:13c6]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfe6f9c46f0sm59986866b.1.2026.06.12.06.21.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 06:21:10 -0700 (PDT) From: Loic Poulain Date: Fri, 12 Jun 2026 15:20:56 +0200 Subject: [PATCH v5 4/9] dt-bindings: bluetooth: qcom: Add NVMEM BD address cell 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-block-as-nvmem-v5-4-95e0b30fff90@oss.qualcomm.com> References: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> In-Reply-To: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> To: Ulf Hansson , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Jens Axboe , Johannes Berg , Jeff Johnson , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Balakrishna Godavarthi , Rocky Liao , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Srinivas Kandagatla , Andrew Lunn , Heiner Kallweit , Russell King , Saravana Kannan Cc: linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, ath10k@lists.infradead.org, linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org, daniel@makrotopia.org, Loic Poulain , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Proofpoint-GUID: KD_KSx-WNpuAUHAwf5u9iBWw1p-HdcKl X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfX2rsQkAjLLWkV YMagWXOVRtdvlQTdLCWbYYXp/dKj0GQ/WxvKWO54w1xU+quZpvl5YUsJD1YBBJHXM31QVS0euXg +/7Gp6Rzm1S6rNdGb3i9CRU7q+2bf70= X-Proofpoint-ORIG-GUID: KD_KSx-WNpuAUHAwf5u9iBWw1p-HdcKl X-Authority-Analysis: v=2.4 cv=N94Z0W9B c=1 sm=1 tr=0 ts=6a2c07c8 cx=c_pps a=5HAIKLe1ejAbszaTRHs9Ug==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=jFERsaRKWwo8c2z-USAA:9 a=QEXdDO2ut3YA:10 a=gYDTvv6II1OnSo0itH1n:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfXwTYOz6WZLrGA ja9PMvAZQbxJPVkiaXYQU0HW8AoROoX6ZGA4X4l6WI5zjOzw0GafzJDmC/XXMFiedOxlwj19TLt h1zELxmuEZ/hoJkZ2fSFCFT4J91HMfJVHr3g0Y5hISkZ++oVSMRg0deM1i7mNI8mM93xeepbFbx N96nmxDE1iY/3qs4Z0cIcNxjnAFhGWAKzcmeDPcTE0l/q+yHacPpz9vGKoh46Dg6/VR0jABwGpB tqvUr7KfPGNedJ9ydu+70Pzn2z83HzNaYTa0XQXKGkFz7anQAJ8aY7+aS/FgHGEqMYdR3ph7GXY w8BI0KtFoDUguv8vg2ML78ukwaG+JGXxLrHPxLDdGbtCy6ptcEyd0ERys3+6rydjqwJ3lD7UHUj CMjfAfXdoWZLRR2RhMml4rQPvPP5HrXXDB7uuoaBM9gtGN6/ymU+l0n2HpFLAo6kEqJpeICQ+s1 k1vnczHwqWn5/6HFfJw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120122 Add support for an NVMEM cell provider for "local-bd-address", allowing the Bluetooth stack to retrieve controller's BD address from non-volatile storage such as an EEPROM or an eMMC partition. Reviewed-by: Rob Herring (Arm) Reviewed-by: Bartosz Golaszewski Signed-off-by: Loic Poulain --- .../devicetree/bindings/net/bluetooth/qcom,bluetooth-common.yaml | 9 +++++= ++++ 1 file changed, 9 insertions(+) diff --git a/Documentation/devicetree/bindings/net/bluetooth/qcom,bluetooth= -common.yaml b/Documentation/devicetree/bindings/net/bluetooth/qcom,bluetoo= th-common.yaml index c8e9c55c1afb4c8e05ba2dae41ce2db4194b4a0f..7cb28f30c9af032082f23311f2f= c89a32f266f17 100644 --- a/Documentation/devicetree/bindings/net/bluetooth/qcom,bluetooth-common= .yaml +++ b/Documentation/devicetree/bindings/net/bluetooth/qcom,bluetooth-common= .yaml @@ -22,4 +22,13 @@ properties: description: boot firmware is incorrectly passing the address in big-endian order =20 + nvmem-cells: + maxItems: 1 + description: + Nvmem data cell that contains a 6 byte BD address with the most + significant byte first (big-endian). + + nvmem-cell-names: + const: local-bd-address + additionalProperties: true --=20 2.34.1 From nobody Sat Jun 13 11:25:20 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 5CA023FA5CE for ; Fri, 12 Jun 2026 13:21:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270478; cv=none; b=Tw4aZYcazivZfmDistyaBjiXmiD+zx26NXAFh+8tM4Qh17AXGwbzHUEe8vLHB5HpjaNllS4oFV3B/q5F7M5Evu1eCeILsZyRGbi1trZAnS+/ZNV0CJq7mj/eZpJruqdFLTrGMQhipRBWaA6PWgHEb9XFGEtZFpRHHSYkUuBJZ60= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270478; c=relaxed/simple; bh=ypWJcxTFcoficSRoC35+QGJSmgp4rbapgzdY+p1eZdM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ltta69xrwnNwbIKyVLZDzw60NBP5QWQxJDHd0+MVOXI9JK+tVz6qKQ3BgvlZ6XNp4yhakVdyH8DhXVP+sN/e0+nDLXGFzgVR5URe9QhIVE28IV9wI9bZpBL1SQBF3QrrxWPhTmlaPAdX8oAAqrgQUBf1avxnEvS+cIhzbKCDbng= 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=UXPv4vG6; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Wd/koqgr; arc=none smtp.client-ip=205.220.180.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="UXPv4vG6"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Wd/koqgr" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65CCj0xP3748169 for ; Fri, 12 Jun 2026 13:21:15 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= WA3j5D2UTvJeMm0sKJI/fgSeryn3GsGPtg1BAGqRz9o=; b=UXPv4vG6UW7DSy/F p+Csfp/Xgj/fdj7Pl6lFTvxuCHZpG0BaDgnTcFWCTGWnsaF+q2JOb7HBj2s4kEQN oH32LJ99f+p2UOBZiLVPMnK6iDIvSd61kP0rpPye1sddlUGszwiKi5nGtjCJ2ocZ TR+nXNy5DBjEurEck0cr/aWBwyurge0jXsiVSa0JtOQWb9yS2xeve8q1Knt5HNyb gdyyNFtMzW5z0jZjnOGq6k1kAOUcAhnkOuXe1MYVq9uBItznisQMzVyRr6rAVr97 HiQdyX0/PDdKK5KNmserwSqyFnpAZ+xpJ3L2k7Iu/s07I0JLuHq+ETwZecESy+ys KHAbTA== Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er76ehy8x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 13:21:14 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7e6f7f4e47eso2038951a34.1 for ; Fri, 12 Jun 2026 06:21:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781270474; x=1781875274; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=WA3j5D2UTvJeMm0sKJI/fgSeryn3GsGPtg1BAGqRz9o=; b=Wd/koqgrut35vc1ucCYTB3UNHmX2QaDsAFKVEIZLufjQLQje3ePK55q4LgRpBNtMqe wSWfz30jHvxjsrzABi5PunKRwFjCgspn17O7qIqpMcx5Xa/Vv3SYBtfv+cEEnBHGb+gj FuTaYwXJHsTGKUSWGNbjtoMKcWnA3wb1NPw661hRoF0fWt9mKMkjA8ASxTF3jIeUIsAW Fk9FOqxT4RGkwIp0b8HE65IpeEUaV2+/fUcpwxm+WMYm6+iV6lR0bbNJNeNvGdhPLreD q0y1j1NB2418aewjlDB0JYERB6EMecAdtM7IVffZbzgcfIIv0hIBdrmCfIA2B+u0AChV 98Yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781270474; x=1781875274; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=WA3j5D2UTvJeMm0sKJI/fgSeryn3GsGPtg1BAGqRz9o=; b=i7YXjv0wTIAFEqaGaxPnvb8ziSyFp8K04jDp+kFeIdWZVUZSrX9biwXwgGsyF7ZJ5d UzDRGYE+RO+AH7g2E5WNwVIu0d11jKYuGuUytN2nV0J/1I2p4XeoK7vmptW920Oexi8V 4AKCiAFq+1JxaMM9aefIG6tOhGTnkl09GyNFBUV58eltqWaU3OhKQa+tlI4/+2Yzrj96 /Ozeo7rtvVqGz4w2EL9gG6MT0NdFPUGpVA3qVl1AnOhdj8GNEruyDbbZAHfIs0ldZJBS gPCy+DwljRtAWdmS48y6JuDNG2cDE6Os8TCxo0YRso+XQhjIijPa/InYXG61XS9NJXeA 7UMw== X-Forwarded-Encrypted: i=1; AFNElJ+LCJ4nLlSXPyMPfdz3aOjnFcKyMUV8ZCUC1a9Y7lA5AZ58D7EDAiWG8mEKJEokouZlF4edViik8USehoU=@vger.kernel.org X-Gm-Message-State: AOJu0YxlGfbq3HsXSz2BSZpGR8w7zeQoryieQcX0vJCoXMhWD+PbtUL2 4/0roTtLaf6tti01KJ6I8a4D/IUgsmY7bImAqTo8yX6sNokkqOZdZzBQlCgwsgLmpNJpsoyV9Bk dYEW5fwk16jH0Ce11FerZQVq1tuozB58P+N1iKog+4LPnGiZz3VC851a2sLvgY+cCRa8= X-Gm-Gg: Acq92OFLNXIl1msB/3CSzjBCj9cPjxpebDY1GcIy9c74Gn4YfD+F5Wf6DQtGZEPh9bT qkQ90mVFOHt0arbTlWV39xRb11mLzCM3dDIkH0cvjG7NAsxEhOLAZ9ZGTZ77otLpgxbp9TmyTE5 YWjU6C41DZoOH/SvicYA5W4mXRu279xoN1VW+THt6kmg5IVhJPUbA1JZM2IdD3g8Ny2VJO4b/5/ zX49YXMWA3qRviTt0aGz5ockj2nZm511luRahsMzcq01jZ9W3m/+thEXkDbuxAaKEG45gCgfgdC bgal0CjognV6DFeq3TylA2upXRRkgjYJLxziQsMaZeqT6MDi/TowZwQRfR8JSAhob8Ew9WRt5sU c/q1WTrJNsPXDYPGvcOcvOYjhi0YRIEXI2ufmQLeGeSZQjqmhfKc1vtFGKYTRjtBvP2G2lCHNc8 AmGEgmMDqKGj4B//d3DaMK2YmRrRJxdai5D0yVRXVrcWokzwbcpbjlZmc4VyS4aiNkMmwZcGFz X-Received: by 2002:a05:6820:2108:b0:69e:98c0:a9a with SMTP id 006d021491bc7-69edc62d4fbmr1893540eaf.12.1781270474202; Fri, 12 Jun 2026 06:21:14 -0700 (PDT) X-Received: by 2002:a05:6820:2108:b0:69e:98c0:a9a with SMTP id 006d021491bc7-69edc62d4fbmr1893500eaf.12.1781270473640; Fri, 12 Jun 2026 06:21:13 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:3510:32cf:db6:13c6]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfe6f9c46f0sm59986866b.1.2026.06.12.06.21.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 06:21:12 -0700 (PDT) From: Loic Poulain Date: Fri, 12 Jun 2026 15:20:57 +0200 Subject: [PATCH v5 5/9] block: implement NVMEM provider 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-block-as-nvmem-v5-5-95e0b30fff90@oss.qualcomm.com> References: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> In-Reply-To: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> To: Ulf Hansson , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Jens Axboe , Johannes Berg , Jeff Johnson , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Balakrishna Godavarthi , Rocky Liao , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Srinivas Kandagatla , Andrew Lunn , Heiner Kallweit , Russell King , Saravana Kannan Cc: linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, ath10k@lists.infradead.org, linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org, daniel@makrotopia.org, Loic Poulain X-Mailer: b4 0.14.2 X-Authority-Analysis: v=2.4 cv=O94Jeh9W c=1 sm=1 tr=0 ts=6a2c07cb cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=VT4XjZGOAAAA:8 a=EUspDBNiAAAA:8 a=QS6QONgytJYYblx7mpIA:9 a=QEXdDO2ut3YA:10 a=Z1Yy7GAxqfX1iEi80vsk:22 a=6CpsfURP9XNmmWg3j1mJ:22 X-Proofpoint-ORIG-GUID: rHioP1kea1-IAH-Fj-CSwwM8mLDlFUfB X-Proofpoint-GUID: rHioP1kea1-IAH-Fj-CSwwM8mLDlFUfB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfX2wgE08c0Cpys CiEL+cakaIs4wprCZ3AgzksCaMrWEF/tSJuGohR1e35wTRhd4GFIXiSI0Yjwk9ECh6GlbFY8lRe R0j0gXn2PBTL64DviIgoZMu/UEeCEXbzSO/54pG1lxTIRjTHRBDIqxdmCkHMW9qvMf+B9QG8pAX Y/KBFC/LYg5CieVa8w8aOoO8koCujq5iD1n6uhsI9hmI3KX4FSmFYonsx4W2JVEIRQ7Icr3elk/ 9vTPCsTWHFgGRucAdw41UNibDfRCActFDWYCJWKd+5x7CI9Ysvfx91zZkp2qp1MMun/5Rz3exOg KykHo4WsMtAvspYlDBF1OcMJnZJ9nGm+a9C185REZmW6GnXLCue+LBwim2mgdURKvwP2tEXY2mB DHmB9bI1ofIUyFv9hqTz8ojIX/PmXMVGqogoba60qp9g+zePE+UGZ6dAY1jX0Gy36+znOwYbpx/ EWuKxpg90blNMxv/L5g== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfX6L9J+EotZSKm ZnOyn/Axf/x3b721ikeoOH9IDyo1qJDoJhAAPcQEku1lMYFypz9qokKOYtOEMxnd9xBU/WIC4Gq JjRJtutuxtrCYB/FjC9FORwO/9rJKRU= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 clxscore=1015 bulkscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120122 From: Daniel Golle On embedded devices using an eMMC it is common that one or more partitions on the eMMC are used to store MAC addresses and Wi-Fi calibration EEPROM data. Allow referencing the partition in device tree for the kernel and Wi-Fi drivers accessing it via the NVMEM layer. For now, NVMEM is only registered for the whole disk block device, as the OF node is currently only associated to it. Signed-off-by: Daniel Golle Co-developed-by: Loic Poulain Signed-off-by: Loic Poulain --- block/Kconfig | 9 ++++ block/Makefile | 1 + block/blk-nvmem.c | 109 ++++++++++++++++++++++++++++++++++++++++++= ++++ block/blk.h | 8 ++++ block/genhd.c | 4 ++ include/linux/blk_types.h | 3 ++ include/linux/blkdev.h | 1 + 7 files changed, 135 insertions(+) diff --git a/block/Kconfig b/block/Kconfig index 15027963472d7b40e27b9097a5993c457b5b3054..0b33747e16dc33473683706f75c= 92bdf8b648f7c 100644 --- a/block/Kconfig +++ b/block/Kconfig @@ -209,6 +209,15 @@ config BLK_INLINE_ENCRYPTION_FALLBACK by falling back to the kernel crypto API when inline encryption hardware is not present. =20 +config BLK_NVMEM + bool "Block device NVMEM provider" + depends on OF + depends on NVMEM + help + Allow block devices (or partitions) to act as NVMEM providers, + typically used with eMMC to store MAC addresses or Wi-Fi + calibration data on embedded devices. + source "block/partitions/Kconfig" =20 config BLK_PM diff --git a/block/Makefile b/block/Makefile index 7dce2e44276c4274c11a0a61121c83d9c43d6e0c..d7ac389e71902bc091a8800ea26= 6190a43b3e63d 100644 --- a/block/Makefile +++ b/block/Makefile @@ -36,3 +36,4 @@ obj-$(CONFIG_BLK_INLINE_ENCRYPTION) +=3D blk-crypto.o blk= -crypto-profile.o \ blk-crypto-sysfs.o obj-$(CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK) +=3D blk-crypto-fallback.o obj-$(CONFIG_BLOCK_HOLDER_DEPRECATED) +=3D holder.o +obj-$(CONFIG_BLK_NVMEM) +=3D blk-nvmem.o diff --git a/block/blk-nvmem.c b/block/blk-nvmem.c new file mode 100644 index 0000000000000000000000000000000000000000..c005f059d9fe56242ebaef99056= 73dff902b5686 --- /dev/null +++ b/block/blk-nvmem.c @@ -0,0 +1,109 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * block device NVMEM provider + * + * Copyright (c) 2024 Daniel Golle + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + * + * Useful on devices using a partition on an eMMC for MAC addresses or + * Wi-Fi calibration EEPROM data. + */ + +#include +#include +#include +#include +#include +#include + +#include "blk.h" + +static int blk_nvmem_reg_read(void *priv, unsigned int from, void *val, si= ze_t bytes) +{ + blk_mode_t mode =3D BLK_OPEN_READ | BLK_OPEN_RESTRICT_WRITES; + dev_t devt =3D (dev_t)(uintptr_t)priv; + size_t bytes_left =3D bytes; + loff_t pos =3D from; + int ret =3D 0; + + struct file *bdev_file __free(fput) =3D bdev_file_open_by_dev(devt, mode,= priv, NULL); + if (IS_ERR(bdev_file)) + return PTR_ERR(bdev_file); + + while (bytes_left) { + pgoff_t f_index =3D pos >> PAGE_SHIFT; + struct folio *folio; + size_t folio_off; + size_t to_read; + + folio =3D read_mapping_folio(bdev_file->f_mapping, f_index, NULL); + if (IS_ERR(folio)) { + ret =3D PTR_ERR(folio); + break; + } + + folio_off =3D offset_in_folio(folio, pos); + to_read =3D min(bytes_left, folio_size(folio) - folio_off); + memcpy_from_folio(val, folio, folio_off, to_read); + pos +=3D to_read; + bytes_left -=3D to_read; + val +=3D to_read; + folio_put(folio); + } + + return ret; +} + +void blk_nvmem_add(struct block_device *bdev) +{ + struct device *dev =3D &bdev->bd_device; + struct nvmem_config config =3D {}; + + /* skip devices which do not have a device tree node */ + if (!dev_of_node(dev)) + return; + + /* skip devices without an nvmem layout defined */ + struct device_node *child __free(device_node) =3D + of_get_child_by_name(dev_of_node(dev), "nvmem-layout"); + if (!child) + return; + + /* + * skip block device too large to be represented as NVMEM devices, + * the NVMEM reg_read callback uses an unsigned int offset + */ + if (bdev_nr_bytes(bdev) > UINT_MAX) { + dev_warn(dev, "block device too large to be an NVMEM provider\n"); + return; + } + + config.id =3D NVMEM_DEVID_NONE; + config.dev =3D dev; + config.name =3D dev_name(dev); + config.owner =3D THIS_MODULE; + config.priv =3D (void *)(uintptr_t)dev->devt; + config.reg_read =3D blk_nvmem_reg_read; + config.size =3D bdev_nr_bytes(bdev); + config.word_size =3D 1; + config.stride =3D 1; + config.read_only =3D true; + config.root_only =3D true; + config.ignore_wp =3D true; + config.of_node =3D to_of_node(dev->fwnode); + + bdev->bd_nvmem =3D nvmem_register(&config); + if (IS_ERR(bdev->bd_nvmem)) { + dev_err_probe(dev, PTR_ERR(bdev->bd_nvmem), + "Failed to register NVMEM device\n"); + bdev->bd_nvmem =3D NULL; + } +} + +void blk_nvmem_del(struct block_device *bdev) +{ + if (bdev->bd_nvmem) + nvmem_unregister(bdev->bd_nvmem); + + bdev->bd_nvmem =3D NULL; +} diff --git a/block/blk.h b/block/blk.h index ec4674cdf2ead4fd259ff5fc42401f591e684ee9..cd3c7ca723391c40be56f1dd481= 0e641b7c8a2b3 100644 --- a/block/blk.h +++ b/block/blk.h @@ -757,4 +757,12 @@ static inline void blk_debugfs_unlock(struct request_q= ueue *q, memalloc_noio_restore(memflags); } =20 +#ifdef CONFIG_BLK_NVMEM +void blk_nvmem_add(struct block_device *bdev); +void blk_nvmem_del(struct block_device *bdev); +#else +static inline void blk_nvmem_add(struct block_device *bdev) {} +static inline void blk_nvmem_del(struct block_device *bdev) {} +#endif + #endif /* BLK_INTERNAL_H */ diff --git a/block/genhd.c b/block/genhd.c index 7d6854fd28e95ae9134309679a7c6a937f5b7db8..1b2382de6fb30c1e5f60f45c04d= c03ed3bf5d5f2 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -421,6 +421,8 @@ static void add_disk_final(struct gendisk *disk) */ dev_set_uevent_suppress(ddev, 0); disk_uevent(disk, KOBJ_ADD); + + blk_nvmem_add(disk->part0); } =20 blk_apply_bdi_limits(disk->bdi, &disk->queue->limits); @@ -704,6 +706,8 @@ static void __del_gendisk(struct gendisk *disk) =20 disk_del_events(disk); =20 + blk_nvmem_del(disk->part0); + /* * Prevent new openers by unlinked the bdev inode. */ diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h index 8808ee76e73c09e0ceaac41ba59e86fb0c4efc64..ace6f59b860d0813665b2f62a1c= 03a1f4be94059 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h @@ -73,6 +73,9 @@ struct block_device { int bd_writers; #ifdef CONFIG_SECURITY void *bd_security; +#endif +#ifdef CONFIG_BLK_NVMEM + struct nvmem_device *bd_nvmem; #endif /* * keep this out-of-line as it's both big and not needed in the fast diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 890128cdea1ce66863c5baa36f3b336ec4550807..f15d2b5bf9e4fd2368b8a70416a= 978e22c0d4333 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -30,6 +30,7 @@ =20 struct module; struct request_queue; +struct nvmem_device; struct elevator_queue; struct blk_trace; struct request; --=20 2.34.1 From nobody Sat Jun 13 11:25:20 2026 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 750E73FCB14 for ; Fri, 12 Jun 2026 13:21:20 +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=1781270482; cv=none; b=G7mw0TQF9O4GB12IlLV68fyHj2SAess51NZF3jD4mBEgoNpl1qDnT1PSTPvib00u11QsbdWWLb4WblmLmZW6GDx9pDV7DULx7l2wLvv2F449bT5UTl2AO+n1troSb9eu1HmskT6rdyQnToScI7JLysrF/5xXYzvmpnvV6CgnBYw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270482; c=relaxed/simple; bh=6b0Jqnu0CGr/aHLEgYJK9A+WdSx4puE7YgV7L+bka1k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SrW+FcMz4CzemqB7VtU5HKGhSR+SHtTR3X99uN7AePHN2jrFDBuksr1kZ48rm2px1dC5Z6GgCwrkRov4+a4qBzr5+VihLEDaPsEEcxiAGdfwO3ybmNxlvQCMEj+hvAhpgDAn5dC8HzFtDAxsUAtHplYYJkLGZuGuiXaJsvR3tos= 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=YXrNqc06; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BtIj8jHf; 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="YXrNqc06"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BtIj8jHf" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65CCj63D3714771 for ; Fri, 12 Jun 2026 13:21:20 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= t0giUD+SohDjvu6JqPIFA2PNVMKYNwxQ9YxaoTjC03s=; b=YXrNqc06L7zlN7m3 6IQJg5pacCoqFjf7ZZ6zyuvVf6fg9Ya2C196FmoQ46L5fU3vcPNDHRqBmQEmG45m 9f/gc1ABjs2KdCZ/m08G7x8a/smCcdaTwcfP0oMWGSo05BRue/mNvDyFK4QoY8Jq TbakKrHEj7hM/a3ZScH98Ftc8o4S7b9Mqrjmb8FQsyA0u99fPfVFpnm6GpmapFxU CNRPwJi36GcnVOosFY5Sc2YcCld3jCDrUuAsYU8/fq+6/CjE82kB05pG8Ho94ABe u6TQ4djOFDkRbDw/+5lHtzKRofPfkkhrWrG/zdaRvANv6ZXFqrO7e+W4FUmL95jR FHucfg== Received: from mail-oo1-f71.google.com (mail-oo1-f71.google.com [209.85.161.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er0x7kgvk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 13:21:19 +0000 (GMT) Received: by mail-oo1-f71.google.com with SMTP id 006d021491bc7-69d9f54ab77so1042102eaf.0 for ; Fri, 12 Jun 2026 06:21:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781270479; x=1781875279; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=t0giUD+SohDjvu6JqPIFA2PNVMKYNwxQ9YxaoTjC03s=; b=BtIj8jHf0aeVz6HkPGwWIcx+980zNnLoH2Eh/RO3MhvhHV/x9/dYqmyPez8MFGWqLz REnl4SReC91PT1Oj/UXG12EOmDFC+Eh9Tt3/wuOFtz1ejEwalTLOTgkGnEkdFrRN6M2c HXNjRgII3phw2VhAfqV/2obtRNV8ndh7Mbky5JyNj1qnYzQU9lFGPH5307OwdTkOqivu 8JJgXo4tGHkn2nCJfNHyFOou/anVzZ+AdQwzaR4UbvlJXdqPHb427PETYNPQVy8IT58F wfWpGpMsmhPjE4Uyia3kQXl+AhbQ/BMDjc7iRycGpm15sQUIQcj5z0cz+BsBClxnHqkh FfAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781270479; x=1781875279; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=t0giUD+SohDjvu6JqPIFA2PNVMKYNwxQ9YxaoTjC03s=; b=Z9v9mCbfflbQjFacZ9wz+5NdcAQTZu3kMfui1yg6ka6l9Gmxfn1hgkgFeh60DLgMLt B425D4TCRnrzzWoJoL2qWsNYa8zVkBUm9C6XZhU+lJfT57up/3U/yfnguVUcSIV6rG9C SsAnVJs108jQat/Dsyrr48tEwi1CEBol8CmtBXm/XDl1yCcXZARun6iA0fHhexHeJePP H+UtP40MjuE5bA8UGHoFQVPHXdyv5x5pVYN68kYxebRGJVKhrbj5OZTbQcELxlU5/++G DpkMW2jMX5/Pfn/WpUF2KJZ416j9FnmoWEzHLM60gqQtslZLx8xOJgGbtY03sezb59i9 kiiA== X-Forwarded-Encrypted: i=1; AFNElJ8bq7aD/5JDRoTLC3SjRhQwIPGnAOuc1IzdYkF6bgHZd/et7LwNJJFZjOSGwwDX28AV6Tw5parZBjfnArE=@vger.kernel.org X-Gm-Message-State: AOJu0YxyFgh/z1FCk8IyhRbeD3GjSLW+bq8QOG19z96sXz/gTqZNX9or sfIeE6gn9m0UuPcTbW+l+G4nClv4+1kfGiW0ypEyD8GVDw/S8lJk67sQJ6DsSGAgJh5ep8S5u8z OUCPdug/kmzvWEX+2SEXUOYhUyEaXARBpC0opAVKlakZb2PpqQP2TUaraYvls4vLNJ+U= X-Gm-Gg: Acq92OFsnzc6FRVgkhA2BwkOTadR2jQw+Wqrvpv0H9bYOi6XPPEa77PYdxP1EyoKjvd ORVUCOJKCMVKxrBme6059EptdBjDESzX+rhEHnI+X72LQP2i8NlfNcavo4FdLPCasLnKLp41WLh 0kWPNnO07JbsPZsaGeHgNCEcXMPRzoxbynFBqkE36yJzBFLxqqdLFUt7e0x23yLZZE6bDnPtOi6 quGFwwh714OQS1S1Cr6RiKUF78fYxAuI6140w1R/QUzGgjzotNQ5XqEdac1uz7ASGQTIuLFWuqc usAqyGbwIoLuG0pf0/AhD63c3OeyAUNNs4zGZbP8MbCJMY1/OsaAVG+hHUgWKW9PYu+lCtWnl2E JzBL+wPFTNmvUEjrL+d6ya8ConY0VGJSpToCuRqXDXKtcA1ML7/AlEqB2DNC4w8PPEzGVmOQh0u 6LUNfHr1TWAopmLBlnfcFTFxyGr7e70KKvauf1aCM5W0GeYemovgz0qiDW4w2x+bdIaprhFAjF X-Received: by 2002:a05:6820:1786:b0:69d:fb2c:77ff with SMTP id 006d021491bc7-69edc6f1377mr1695448eaf.30.1781270478942; Fri, 12 Jun 2026 06:21:18 -0700 (PDT) X-Received: by 2002:a05:6820:1786:b0:69d:fb2c:77ff with SMTP id 006d021491bc7-69edc6f1377mr1695409eaf.30.1781270478503; Fri, 12 Jun 2026 06:21:18 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:3510:32cf:db6:13c6]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfe6f9c46f0sm59986866b.1.2026.06.12.06.21.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 06:21:15 -0700 (PDT) From: Loic Poulain Date: Fri, 12 Jun 2026 15:20:58 +0200 Subject: [PATCH v5 6/9] net: of_net: Add of_get_nvmem_eui48() helper for EUI-48 lookup 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-block-as-nvmem-v5-6-95e0b30fff90@oss.qualcomm.com> References: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> In-Reply-To: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> To: Ulf Hansson , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Jens Axboe , Johannes Berg , Jeff Johnson , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Balakrishna Godavarthi , Rocky Liao , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Srinivas Kandagatla , Andrew Lunn , Heiner Kallweit , Russell King , Saravana Kannan Cc: linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, ath10k@lists.infradead.org, linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org, daniel@makrotopia.org, Loic Poulain , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Proofpoint-GUID: M8nOv-Q6g0kEdixXD4RSOyigBFIcvZBx X-Authority-Analysis: v=2.4 cv=c4abhx9l c=1 sm=1 tr=0 ts=6a2c07cf cx=c_pps a=V4L7fE8DliODT/OoDI2WOg==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=bEbww9rD5qa0LKludeoA:9 a=QEXdDO2ut3YA:10 a=WZGXeFmKUf7gPmL3hEjn:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfX7bhpZb59lt3n s42oQ1fxEoVrPcr/Zp1Ku95pEhTIbpVEiYwj6crJldmAm4kAMo1KNnMpYwcY7KTlQaY5FI4bJf8 cPsTCWFYl01R5gkAAmwlGDdVNWcK7HdEqNPa2PpkTv7rMBdX9HF3ev2+gaQr64fl/NUqYiND39i rozSxriCZM1tjjnlJFlcfkCPU/0R93heUSLBqdbMbLWy93Ug3peO0aXruyW1amlUkmF9amP+T58 QPVRgaW6vIvfVKGbr3Zk0R/tq1IFv66eEMIRkpP2Tts0hcaA/PFo0C7A2uOfnH7FioP5aob9qip bsXNKVPy9oJHWf2nPuJNJzbzHtoUn477R9lxr8Yht1Stfw/8JqEwWPOvqRhmkC6tX4KwXiaOruD FdK3TFm50Gjpwmiw1Byfb/4GjMK9uJa4h8j1Aw3dauL2Q9k0E3B5beAdDc0n3nnQUpCCy+JcwlU eWt26ACDUHQvvs4g54Q== X-Proofpoint-ORIG-GUID: M8nOv-Q6g0kEdixXD4RSOyigBFIcvZBx X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfX0IrtMVjXVs5T YvT/yCkv9NoiYYeO4sZapHZOVDM682zQzLkzAQIQZsFGDG8sP18TCJAEAAQVez+YLaLiJsZ+Wrf JWPjF27jZCsCXjiYO5VeOxa9S9dbwU8= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 clxscore=1015 phishscore=0 priorityscore=1501 malwarescore=0 bulkscore=0 suspectscore=0 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120122 Factor out the common NVMEM EUI-48 retrieval logic from of_get_mac_address_nvmem() into a new of_get_nvmem_eui48() helper that accepts the NVMEM cell name as a parameter. This allows other subsystems (e.g. Bluetooth) to reuse the same lookup-validate-copy pattern with a different cell name, without duplicating code. of_get_mac_address_nvmem() is updated to call of_get_nvmem_eui48() with "mac-address", preserving its existing behavior. Reviewed-by: Bartosz Golaszewski Signed-off-by: Loic Poulain --- include/linux/of_net.h | 7 +++++++ net/core/of_net.c | 49 +++++++++++++++++++++++++++++++++++++---------= --- 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/include/linux/of_net.h b/include/linux/of_net.h index d88715a0b3a52f87af23d47791bea3baf5be5200..7854ba555d9a55f3d020a37fe00= a27ae52e0e5dc 100644 --- a/include/linux/of_net.h +++ b/include/linux/of_net.h @@ -15,6 +15,7 @@ struct net_device; extern int of_get_phy_mode(struct device_node *np, phy_interface_t *interf= ace); extern int of_get_mac_address(struct device_node *np, u8 *mac); extern int of_get_mac_address_nvmem(struct device_node *np, u8 *mac); +int of_get_nvmem_eui48(struct device_node *np, const char *cell_name, u8 *= addr); int of_get_ethdev_address(struct device_node *np, struct net_device *dev); extern struct net_device *of_find_net_device_by_node(struct device_node *n= p); #else @@ -34,6 +35,12 @@ static inline int of_get_mac_address_nvmem(struct device= _node *np, u8 *mac) return -ENODEV; } =20 +static inline int of_get_nvmem_eui48(struct device_node *np, + const char *cell_name, u8 *addr) +{ + return -ENODEV; +} + static inline int of_get_ethdev_address(struct device_node *np, struct net= _device *dev) { return -ENODEV; diff --git a/net/core/of_net.c b/net/core/of_net.c index 93ea425b9248a23f4f95a336e9cdbf0053248e32..11c1acca151266ac9287457b405= 0a54b08e2b5f5 100644 --- a/net/core/of_net.c +++ b/net/core/of_net.c @@ -61,9 +61,7 @@ static int of_get_mac_addr(struct device_node *np, const = char *name, u8 *addr) int of_get_mac_address_nvmem(struct device_node *np, u8 *addr) { struct platform_device *pdev =3D of_find_device_by_node(np); - struct nvmem_cell *cell; - const void *mac; - size_t len; + u8 mac[ETH_ALEN] __aligned(sizeof(u16)); int ret; =20 /* Try lookup by device first, there might be a nvmem_cell_lookup @@ -75,27 +73,54 @@ int of_get_mac_address_nvmem(struct device_node *np, u8= *addr) return ret; } =20 - cell =3D of_nvmem_cell_get(np, "mac-address"); + ret =3D of_get_nvmem_eui48(np, "mac-address", mac); + if (ret) + return ret; + + if (!is_valid_ether_addr(mac)) + return -EINVAL; + + ether_addr_copy(addr, mac); + return 0; +} +EXPORT_SYMBOL(of_get_mac_address_nvmem); + +/** + * of_get_nvmem_eui48 - Read a 6-byte EUI-48 address from a named NVMEM ce= ll. + * @np: Device node to look up the NVMEM cell from. + * @cell_name: Name of the NVMEM cell (e.g. "mac-address", "local-bd-addre= ss"). + * @addr: Output buffer for the 6-byte address. + * + * Reads the named NVMEM cell and validates that it contains a non-zero 6-= byte + * address. Returns 0 on success, negative errno on failure. + */ +int of_get_nvmem_eui48(struct device_node *np, const char *cell_name, u8 *= addr) +{ + struct nvmem_cell *cell; + const void *eui48; + size_t len; + + cell =3D of_nvmem_cell_get(np, cell_name); if (IS_ERR(cell)) return PTR_ERR(cell); =20 - mac =3D nvmem_cell_read(cell, &len); + eui48 =3D nvmem_cell_read(cell, &len); nvmem_cell_put(cell); =20 - if (IS_ERR(mac)) - return PTR_ERR(mac); + if (IS_ERR(eui48)) + return PTR_ERR(eui48); =20 - if (len !=3D ETH_ALEN || !is_valid_ether_addr(mac)) { - kfree(mac); + if (len !=3D ETH_ALEN || !memchr_inv(eui48, 0, ETH_ALEN)) { + kfree(eui48); return -EINVAL; } =20 - memcpy(addr, mac, ETH_ALEN); - kfree(mac); + memcpy(addr, eui48, ETH_ALEN); + kfree(eui48); =20 return 0; } -EXPORT_SYMBOL(of_get_mac_address_nvmem); +EXPORT_SYMBOL_GPL(of_get_nvmem_eui48); =20 /** * of_get_mac_address() --=20 2.34.1 From nobody Sat Jun 13 11:25:20 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 108303FBB6D for ; Fri, 12 Jun 2026 13:21:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270486; cv=none; b=BJ108m32BMpFvKAlMTOhgAcKzKLfoHdRjF1JLqwofzpfOKczROUTSaPqyHnSv+aMSHTmV3wOpu/Rr39yfnT0orHA7jRniVYr4X3PJK0aD3kDSZaccuD9HptOIYMq470dxFdN5jC2GDHKnWWrHse9RFzMTtC7yvqX6uH8mBHr0eg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270486; c=relaxed/simple; bh=DhpKvk+qKi33tdqHXBdyBn+qHlFJWo7f2LRbmA/QYF4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XjeP2t8snpAcGEALysBB6STNgnf6HFSL4nlsCd4Gng2+a0yqKAvDRFs63UfN1A+08hbfbcMePVy928J3s8n3NPdRJDyyuJ8U6YugQFSL8IXhHXzaB46ucRaazE5hPhDrwcEWUezwewo3t+hExkJSRWmqsQQkgy8iJnudv0l9WCQ= 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=V2Cv/JFe; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ClIbo6xT; arc=none smtp.client-ip=205.220.180.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="V2Cv/JFe"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ClIbo6xT" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65CCj6QP3749243 for ; Fri, 12 Jun 2026 13:21:23 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= PWJIctf3Xhmc1Sr2xNkWiIgvHAObX6zOuqPQdVoDfTc=; b=V2Cv/JFe4AaVKnXN 5SHFfRRmkZthJcnQ77krCOWPD8LYZDGipdVZicvw6WB3JHNXAuttbEK/5FX/x8Tf Gk3si35te1+j/J5Od+9N7puqwPrSfEmysFJL4Keqji4YrXEvlpotbY4nTCXjXlx0 9i0bAmE22kWQDNL13yDYbyDOgWjWTGxSgughOOLFmNocxDpSMxakjcYhMJ4slj2l hnTc+whwWG2E4YXnhDQduOMOTuBlAOhkP9A0KTC8ipH5sZhhNx1EvIrvochc6Ji0 M7djkelH6RmSfvKYMDjaaOD0/OqnSETlFlGjYUwYOwJEkMpGEx7B6G3XOXD8e2Nd 7UCxvw== Received: from mail-oo1-f69.google.com (mail-oo1-f69.google.com [209.85.161.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er2u42vs0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 13:21:23 +0000 (GMT) Received: by mail-oo1-f69.google.com with SMTP id 006d021491bc7-69e30d37489so1516551eaf.0 for ; Fri, 12 Jun 2026 06:21:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781270482; x=1781875282; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=PWJIctf3Xhmc1Sr2xNkWiIgvHAObX6zOuqPQdVoDfTc=; b=ClIbo6xTCffncm4lDxxIQOzKT15F6uM2vHT6J94KVnxKFIXA6aUpb8fgFQ2AfVv4Ji 701uSu5f6yHlCA6mcyzfxXH3Fh1r6v6JQqy/pvH2FPTuwp339RHAoxtd7elp65xWQznW O3xVCgO67oyUfgnhLzuT3UPvYqFCunuFLuqcgCyJl1TDHn5tZvfA5DICDrl9pjqZkPnC hR2wV8bqJzhyB+UoG4RNAQWMP4JRc2jUheQVFxYVWk835OFoqd6pkc/fzb5VXzuApWih X/nll2XiqjbFgZuTCGGdXhaG1l5Hx0exK44FukEY7SLhdHfZd7ab9OOEt4c/+rGiFotC AX1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781270482; x=1781875282; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=PWJIctf3Xhmc1Sr2xNkWiIgvHAObX6zOuqPQdVoDfTc=; b=WDGPhuDnXxBteQMotu/OMn9S0T4+W8SepOLLOIQlngSmgycgp9xW7M7ISIBfTN4Yil MQqErG6q+BwXoPCNQtzLE/g2P+t+YKsn73f5VEGlzjgp/EUq3j/sxZUDZQTMPO5Cvtnu tVaXVnmnKlX6Pl20nubeIrXdG+/pGXUjDR0RcHHi30GaLU7OVNo97y4VRf3WegKSKJXa Jyc6YEQUwMROS6ScIkOKfr8hEISHnxJfaEeyomObkzv+57BRAv74qP3toaC+cxEmtu8e 02d+yHJroWgkg5271RXAx6HkD12/BxEOobBMW1AnXqwDQvQy6X5DTn7bWZoBbI6el2na a45Q== X-Forwarded-Encrypted: i=1; AFNElJ8dq2+ImHjrDQJGAI6Es87cR5LG/zsGYX6RT83hooBm8Z+gHD6j9taFkvy3cY0ny8ISMzJT3F/BC61UbN4=@vger.kernel.org X-Gm-Message-State: AOJu0Ywn5iatywg8QL4QVkaUnPORy9OjSnSH1+gtqikd8vw2QQJJ4u+4 b73292qW5lE7zEZMLGBcFezaLVsObmXAbPMp31nWG0IcIzdvMzkfIzq21vCvjpXmX4JSO85O9k0 qJEwqOu4nkUHY7cY6xyDkBBXHmbuODXOTVC5KszQlBzziQdUGTG1UBlqqeTZjMi2Gv3w= X-Gm-Gg: Acq92OFrNg4JJ6M8F3mYJmCUfGp5RIa6AsJ+RRrB6ty228ABLNfuG+ymWkQ5Y/odSDN YI6WppvvD4WVf7PWynW84YrJGUz5KImwCcv8I+dle0o2xnQVjOLqmomkCQcWtYs9TAyZB492kWp deZhJOgVee6jsT5fBU0by31z0B/Cj2+j41KLsGoo8XJIE3Vroiow+/I/VWaDUScbEdtFIRm/RTL KCkmyN67F16S7+jK/CRyCBiVuQ06SBDuC13HZNQ+3Qhc1TpcVI4rQpDUURgH4YbP+FBrfJibXfB 1ozKSe2a8qMJ41m3ap8L35VNBJ/yKAfwi00GP2QE7k636PNeo4AqO5zuyotKye/HneA+rs0byqm deNi/K1rwnIWu60W6n0QWfuJoLizpDBos8tZLW06qXrQNVwSTBVOnUL/lvm9prjliqatFREtZko BPqHh9ij9EzjMtsiyY7CWpCpiY5mK8ru6c0Ndc7Kt5IE+7mENRhH3a51PFyCuidt/5/Iy/6KGk X-Received: by 2002:a05:6820:6ae8:b0:69d:5b59:2414 with SMTP id 006d021491bc7-69edc798a18mr1609522eaf.42.1781270482353; Fri, 12 Jun 2026 06:21:22 -0700 (PDT) X-Received: by 2002:a05:6820:6ae8:b0:69d:5b59:2414 with SMTP id 006d021491bc7-69edc798a18mr1609484eaf.42.1781270481928; Fri, 12 Jun 2026 06:21:21 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:3510:32cf:db6:13c6]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfe6f9c46f0sm59986866b.1.2026.06.12.06.21.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 06:21:20 -0700 (PDT) From: Loic Poulain Date: Fri, 12 Jun 2026 15:20:59 +0200 Subject: [PATCH v5 7/9] Bluetooth: hci_sync: Add NVMEM-backed BD address retrieval 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-block-as-nvmem-v5-7-95e0b30fff90@oss.qualcomm.com> References: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> In-Reply-To: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> To: Ulf Hansson , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Jens Axboe , Johannes Berg , Jeff Johnson , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Balakrishna Godavarthi , Rocky Liao , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Srinivas Kandagatla , Andrew Lunn , Heiner Kallweit , Russell King , Saravana Kannan Cc: linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, ath10k@lists.infradead.org, linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org, daniel@makrotopia.org, Loic Poulain , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Proofpoint-GUID: 75BoXXDzVyWzAXMWoPcmrALoR1a01cS9 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfXzl254gPQ3SE3 WuCYhvg/uvOBqPdLWxa8pxzT4PMs+F94EddhmVZueAAD0+R6+i5CRpZZRns4CzuVGq5e11eCyA1 03xY9ZF5YE7MAWGkeCsZVOhRBUmVhsI= X-Proofpoint-ORIG-GUID: 75BoXXDzVyWzAXMWoPcmrALoR1a01cS9 X-Authority-Analysis: v=2.4 cv=N94Z0W9B c=1 sm=1 tr=0 ts=6a2c07d3 cx=c_pps a=lVi5GcDxkcJcfCmEjVJoaw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=tQ7bI2BnKgK5Av-YYOwA:9 a=QEXdDO2ut3YA:10 a=rBiNkAWo9uy_4UTK5NWh:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfXyWucVb8Vp2gV KSxyHiE5XlFTPIo//ZmZHkYKmbMnHxC8t5/DqsyHpX8UXNXoIK4UihYxy8+ICvNGEMxvUn16O9o n5mQAxaNOZNzRTXVUJgbT12/EOFwwbahDNzWfShJx2lO0iKhJOx3YmkGZeF0oEPPWBIw2Js/sGn OQkEhrs3AnwR3sU0QgygQHIK1UbdZ6ed/pHH9JxdLhsmQwQLPnAn30OqyU9HtZn7ckC5PE9Go5y oQ03dW0/llTxtGVTHQwOXidqsTnyk9IShEDmTmv63+VnvkBXphm9OAvOGQ681ZLQwlnwh26Dxxm +y9fIRQlkTWs2Cbx40CrojnoarP6aNj233OG8AiixIxAwCAJNSSCATNpK3vXPXunzBrOzO/HQNr tQG1f27HNM5OwzRYDY5+M7SN+JZkyteNjs0zJrWfu21P0w3xTk/Of/NlP5uvv7RaDN+un1wECyf LErBc0bBfkuIspIONXQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 adultscore=0 suspectscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120122 Some devices store the Bluetooth BD address in non-volatile memory, which can be accessed through the NVMEM framework. Similar to Ethernet or WiFi MAC addresses, add support for reading the BD address from a 'local-bd-address' NVMEM cell. As with the device-tree provided BD address, add a quirk to indicate whether a device or platform should attempt to read the address from NVMEM when no valid in-chip address is present. Also add a quirk to indicate if the address is stored in big-endian byte order. Reviewed-by: Bartosz Golaszewski Signed-off-by: Loic Poulain --- include/net/bluetooth/hci.h | 18 ++++++++++++++++++ net/bluetooth/hci_sync.c | 39 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index 572b1c620c5d653a1fe10b26c1b0ba33e8f4968f..7686466d1109253b0d75edeb5f6= a99fb98ce4cc6 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h @@ -164,6 +164,24 @@ enum { */ HCI_QUIRK_BDADDR_PROPERTY_BROKEN, =20 + /* When this quirk is set, the public Bluetooth address + * initially reported by HCI Read BD Address command + * is considered invalid. The public BD Address can be + * retrieved via a 'local-bd-address' NVMEM cell. + * + * This quirk can be set before hci_register_dev is called or + * during the hdev->setup vendor callback. + */ + HCI_QUIRK_USE_BDADDR_NVMEM, + + /* When this quirk is set, the Bluetooth Device Address provided by + * the 'local-bd-address' NVMEM is stored in big-endian order. + * + * This quirk can be set before hci_register_dev is called or + * during the hdev->setup vendor callback. + */ + HCI_QUIRK_BDADDR_NVMEM_BE, + /* When this quirk is set, the duplicate filtering during * scanning is based on Bluetooth devices addresses. To allow * RSSI based updates, restart scanning if needed. diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c index fd3aacdea512a37c22b9a2be90c89ddca4b4d99f..589ccdfa26c1281d6eb97937052= 3fff0d7920302 100644 --- a/net/bluetooth/hci_sync.c +++ b/net/bluetooth/hci_sync.c @@ -7,6 +7,7 @@ */ =20 #include +#include =20 #include #include @@ -3588,6 +3589,37 @@ int hci_powered_update_sync(struct hci_dev *hdev) return 0; } =20 +/** + * hci_dev_get_bd_addr_from_nvmem - Get the Bluetooth Device Address + * (BD_ADDR) for a HCI device from + * an NVMEM cell. + * @hdev: The HCI device + * + * Search for 'local-bd-address' NVMEM cell in the device firmware node. + * + * All-zero BD addresses are rejected (unprovisioned). + */ +static int hci_dev_get_bd_addr_from_nvmem(struct hci_dev *hdev) +{ + struct device_node *np =3D dev_of_node(hdev->dev.parent); + u8 ba[sizeof(bdaddr_t)]; + int err; + + if (!np) + return -ENODEV; + + err =3D of_get_nvmem_eui48(np, "local-bd-address", ba); + if (err) + return err; + + if (hci_test_quirk(hdev, HCI_QUIRK_BDADDR_NVMEM_BE)) + baswap(&hdev->public_addr, (bdaddr_t *)ba); + else + bacpy(&hdev->public_addr, (bdaddr_t *)ba); + + return 0; +} + /** * hci_dev_get_bd_addr_from_property - Get the Bluetooth Device Address * (BD_ADDR) for a HCI device from @@ -5042,12 +5074,17 @@ static int hci_dev_setup_sync(struct hci_dev *hdev) * its setup callback. */ invalid_bdaddr =3D hci_test_quirk(hdev, HCI_QUIRK_INVALID_BDADDR) || - hci_test_quirk(hdev, HCI_QUIRK_USE_BDADDR_PROPERTY); + hci_test_quirk(hdev, HCI_QUIRK_USE_BDADDR_PROPERTY) || + hci_test_quirk(hdev, HCI_QUIRK_USE_BDADDR_NVMEM); if (!ret) { if (hci_test_quirk(hdev, HCI_QUIRK_USE_BDADDR_PROPERTY) && !bacmp(&hdev->public_addr, BDADDR_ANY)) hci_dev_get_bd_addr_from_property(hdev); =20 + if (hci_test_quirk(hdev, HCI_QUIRK_USE_BDADDR_NVMEM) && + !bacmp(&hdev->public_addr, BDADDR_ANY)) + hci_dev_get_bd_addr_from_nvmem(hdev); + if (invalid_bdaddr && bacmp(&hdev->public_addr, BDADDR_ANY) && hdev->set_bdaddr) { ret =3D hdev->set_bdaddr(hdev, &hdev->public_addr); --=20 2.34.1 From nobody Sat Jun 13 11:25:20 2026 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 DC0403FFAA3 for ; Fri, 12 Jun 2026 13:21: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=1781270488; cv=none; b=ju/TbjRE18e1L5YnZ49yis5g5gQF7rnrtfoFQdgjSwXNKZ7h/fWdq9kFzirSrhEhZCt/4A9uQmx3zFVc6cCmQ2QOP6AMD/EXoRzPRiMsw+y0ufxHW7UZTU7acIAKobSthQV26f7vIGV89TQhiIyYjUv9+2vMQnzSDmaulBfu5/0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270488; c=relaxed/simple; bh=OKx/GH7ZUq9+Mjfs4xDvFsGX2/Vn8N7/Q0k8/BzXAPs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oxEjTQ9M28NEmr+O9flBwJobUJjNXPGQAtrwchJML2yzbYV7bwEno8OB1tqydKuO5GBkGP/jmNcBb4pLtJ10PCk8CMAalmffyZA+mLVdg8mVPWG5aKPxsJEt+JLbTys5+z58Kiynx70An8o5IepSUmkpJZYVzeHZhThJMFwPyNs= 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=G5OM1ip8; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=i6vf09Zy; 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="G5OM1ip8"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="i6vf09Zy" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65CCixCJ3716162 for ; Fri, 12 Jun 2026 13:21:26 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= 89sO1OgYR++yYy+u1B0OefM5OwzCUQ56NpmR1VFchJw=; b=G5OM1ip8TUiczHnG jV45VH7AZKJhsfHdm0Wd3H13La1OeotXMV4iMo9k8tf1ubm+/yWIyRg75WQTylSW aCLi2PfVB7MHDllFoBXBbJYks0VYRPX8kVTv6NVsqy/ZhVSAs0XWudRgY/99kV1y 412IKCSsXeD3TwVz4ihANy9FgtXjnvcq58dS7mQQhLCW+2TnSQVUcBy4Ge8YOxUg USi8m1BM2Aya68aVeLMvEppC8tLa55Xtb8z9MMVz0m5ewvlM1KQM4SRgILgBjmXK rJv0voEjx+j3rEWZKv76SpEHnIEXcEIh1zsKpsW0gF4QyLwgzwRNK2vm6HBqc/ZP cZq2rg== Received: from mail-ua1-f72.google.com (mail-ua1-f72.google.com [209.85.222.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er0xd3j78-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 13:21:26 +0000 (GMT) Received: by mail-ua1-f72.google.com with SMTP id a1e0cc1a2514c-963c4721732so259941241.2 for ; Fri, 12 Jun 2026 06:21:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781270485; x=1781875285; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=89sO1OgYR++yYy+u1B0OefM5OwzCUQ56NpmR1VFchJw=; b=i6vf09Zyhx0qOxeEdo+n1eK+WdR/jh08wCpCKUaQyThVVKu/lgXchLKVKgxKFUfTri OAf1tA+3IDYjnq56Dzgj7H8Bwd6IJHrKCkQxT2pUif7zfz1NdVGb2BGdvylf+MxDzv3m ZLXWgl7cgR58mwireznP6gO6tDxAOyvb9U1bCFCv1JYBgYz6V42JD8Si1Ds/YNdR7ELd vwfhjWRwkNlPAiCulvu9UwRS5YFpToRerwEM3WqiuG1OqA3goApn15v1Gut1PVUU1OIx atqhg5VMkICCGzf/uqxfqAQhS+STGgxsmWuOQ4uoqxpZI7ROvrFneVZDLv2nssrNZ6un gHTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781270485; x=1781875285; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=89sO1OgYR++yYy+u1B0OefM5OwzCUQ56NpmR1VFchJw=; b=byKs9p7EJJKjbD9noGIAS1Lya3STct+BhjlrR9Q93gRmN5/teLHxO++nCu4PO+Du4g h21wRov1OkozHleuiqkg/uIaaBbqTR/0doNSE85VhdEJitEsZK05dGIjq7C/Ok0CbEaq /vP28MnKXsgqE1LYdQ23ZuzF2zcej7LTNff0nk2Ziz78gJuoVWjKyMFYTKZIDSkSbRZb kTleo8iBK9vz8IERMWcIaram+UaYvqKbvteIGMfaWKvvjTtqFvRBwIyT4gvzZguJsTTU hHgH/Y2ItYBI1HFPVK8Vz6HI6CjCt72mRk9iyXzXotCGj70m6bJaRogWXpKmZ1m9jPxJ aMSA== X-Forwarded-Encrypted: i=1; AFNElJ+y0Y7lDT9QRPEy6+beBFzRlywSegplEYlfCM6p/cBQ+lsFFY0CgAGZFvF5ctvccjgbO7Abp0lBsy9Z8HY=@vger.kernel.org X-Gm-Message-State: AOJu0YzdG+TNjESScc1UlJUJJQ7YgVOcYgygkrQr/Iym3SM16ErxuYrC yo46goCw/qPqIjnzM+ukWuJrvCx8WIPztI8qGGkBx6IBHoUYh5aFUkzEhvDtFHf1+joOgPrcoaQ AvyRW2yCE7zBe3vEMsDMkQb4hAbSgv3i3ovaBtiufma/rI0+FB39quL6YuhOV69/Zgwo= X-Gm-Gg: Acq92OEYlDf9QD+2ZVIRc3wC4wQCjaRI8AvDPfXRwj1ZVKYh82r2ECrEEzoaWAD9R2D IrolrFDAGX46Vp5qbmg6EcUca4VREu5ZUkMX6/u/lXqyNt8GyqWEwRe575m6WA/lwGmZbhU++gW C6VJIjfzoHprVTA0TwONnd+UMq6bCwWRfykQR5bbtB6IEJhZPzSON8vpBywAAoGxdjqmJaDwJcO qImTybJkINnTk4whUoONH5KT/Lr8T/qeRXSvAXbwMN+/GTFrTIt44ivPz3AJfAazkiUMwSDLukL LQoibvnc2w8uKxODBgYhtlc1nYwwOLH1Vc28TFobcnDpVs8szHbBj9vbwqpQ7luImImzYUlz+rZ tlLhSCj6wn8vD3CDYaqXiZTJl1C8SPRYvGhdm1It/08Z0t02k6WtW/sAo+IvaY4wajQ1t5B+L8g f6UHJQ6qbt+swXylRV/D27IauF+d7EiceNtcgmjKrxc8099v6642zNOprkRbhA+pju4E3zzwy9 X-Received: by 2002:a05:6102:292a:b0:6d8:89a0:4ae4 with SMTP id ada2fe7eead31-71e88c6af86mr1261389137.18.1781270485184; Fri, 12 Jun 2026 06:21:25 -0700 (PDT) X-Received: by 2002:a05:6102:292a:b0:6d8:89a0:4ae4 with SMTP id ada2fe7eead31-71e88c6af86mr1261324137.18.1781270484709; Fri, 12 Jun 2026 06:21:24 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:3510:32cf:db6:13c6]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfe6f9c46f0sm59986866b.1.2026.06.12.06.21.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 06:21:23 -0700 (PDT) From: Loic Poulain Date: Fri, 12 Jun 2026 15:21:00 +0200 Subject: [PATCH v5 8/9] Bluetooth: qca: Set NVMEM BD address quirks when address is invalid 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-block-as-nvmem-v5-8-95e0b30fff90@oss.qualcomm.com> References: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> In-Reply-To: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> To: Ulf Hansson , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Jens Axboe , Johannes Berg , Jeff Johnson , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Balakrishna Godavarthi , Rocky Liao , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Srinivas Kandagatla , Andrew Lunn , Heiner Kallweit , Russell King , Saravana Kannan Cc: linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, ath10k@lists.infradead.org, linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org, daniel@makrotopia.org, Loic Poulain , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Proofpoint-ORIG-GUID: nHTBZduHywIswm0xWwNCEgXLExVAYfhx X-Proofpoint-GUID: nHTBZduHywIswm0xWwNCEgXLExVAYfhx X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfX8PspIN6L1h+Q 28+f54ybqKG/GW/JFhcIGienLbuMRSehk7v5pB87mZs1pobcjxOHDLfyoKIizeHQX+0NdmZ5IA5 a9SU2skDYBaqfX36XICnUNcxr7pUYnwi2dMQ3BQ76Vj9hF39PpRbelxEL2KKNZL9aJQa8YjLmbi h8FVyGQ6AuSPJ52SO+Bn8lZkk64AbWwyNSqith04AfCRoEjiymDC5osTq+5Qk6n/2aWIGEac6hB +U5amP5opI91MTcBTfQD9itmsZwSw5m0iQ0zmPEVBZt4LxMWwAzIYWYkq0Mg48N+bHFMfjQ0UE3 CbrG19q/ki9MtkoiSH6xVmpEytlBkXCuO+zmfaxWfbABVJTHjCzL53MWFDQX09rtddylJKN7cpR Py6IXf8EuSFFIJ5vdQWoYeaRSrP2bdQ1sA6mxkcWnVm4edcHML6Z84LrgB70bm4pKfXgKXo72cu WB+yO0Oisq/IzsRP5MA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfX0msIDnwSe6Q2 3HnkIHJVdjeCMqHf9jFnCAkvho2eDKHpVZOTSkyqNiaGcVd2XW3sXcvBLI4yKEvo302UIq3auqC hESUT85FPK8I2jlhBe5dlgVfxJNvyT0= X-Authority-Analysis: v=2.4 cv=O6UJeh9W c=1 sm=1 tr=0 ts=6a2c07d6 cx=c_pps a=ULNsgckmlI/WJG3HAyAuOQ==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=99fXo_IpyjsNTNVBUdkA:9 a=QEXdDO2ut3YA:10 a=1WsBpfsz9X-RYQiigVTh:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 phishscore=0 priorityscore=1501 spamscore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120122 When the controller BD address is invalid (zero or default), set the NVMEM quirks to allow retrieving the address from a 'local-bd-address' NVMEM cell. The BD address is often stored alongside the WiFi MAC address in big-endian format, so also set the big-endian quirk. Reviewed-by: Bartosz Golaszewski Signed-off-by: Loic Poulain --- drivers/bluetooth/btqca.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/bluetooth/btqca.c b/drivers/bluetooth/btqca.c index dda76365726f0bfe0e80e05fe04859fa4f0592e1..df33eacfd29fa680f393f902151= 50743e6001d5b 100644 --- a/drivers/bluetooth/btqca.c +++ b/drivers/bluetooth/btqca.c @@ -721,8 +721,11 @@ static int qca_check_bdaddr(struct hci_dev *hdev, cons= t struct qca_fw_config *co } =20 bda =3D (struct hci_rp_read_bd_addr *)skb->data; - if (!bacmp(&bda->bdaddr, &config->bdaddr)) + if (!bacmp(&bda->bdaddr, &config->bdaddr)) { hci_set_quirk(hdev, HCI_QUIRK_USE_BDADDR_PROPERTY); + hci_set_quirk(hdev, HCI_QUIRK_USE_BDADDR_NVMEM); + hci_set_quirk(hdev, HCI_QUIRK_BDADDR_NVMEM_BE); + } =20 kfree_skb(skb); =20 --=20 2.34.1 From nobody Sat Jun 13 11:25:20 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 B67EF3F1669 for ; Fri, 12 Jun 2026 13:21:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270491; cv=none; b=rYwn6IS1PDkjwGBvtULJKnUt5gqZtZkWVTXfZ/gGB/25Oow5ljSkrruWsn3DiHOODATygxi3U9wU/l96JDnGesSBIQCHvDfdBuW7TGEOMSS6oHeEtxkb8RNfOcRFNWmdEOcqLcQ+bmF+LSJ5J+eIriFtl+DqXs4d00vuhqzNkvk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781270491; c=relaxed/simple; bh=45LaNgBPxbRtyHZ0FmSbWF4XyTOkfAE6p0u9C1oK9dk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tSVzgzsG0nj0V/QBW05VP3sFtr1FjUYQ+3k5MPK/PwPmCo2R4zEizwYSRgMQXh+mhGurlPXul1HeexmUknDu7JRKP9+T0xw26omO6AYBi0XskSzAfYMRdJkEz9MDzpKZMdGtbrV1JjZWsvQREqYefIyeAkaq+6jOheUinv7tGSA= 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=G9bbuHJn; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=aDDfRKsV; arc=none smtp.client-ip=205.220.180.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="G9bbuHJn"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="aDDfRKsV" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65CCiwFW3617510 for ; Fri, 12 Jun 2026 13:21:28 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= 8JbaVcxwuW0pNu9X0F52ZmLiaxV03v+NOG21Kfuhl0U=; b=G9bbuHJns2jGAuQl c0OmC1/0RgFcZ7pu2qqlJpfgj0uKXnddJ3xd6ERtg9Mapdhviz2VhO57OIKzGvkI 4EEsAKnu+WeJ6SpHHFNf0w6wB7C0OtHHfqPPxm6hMdJHVRmWUl/UlfzSYO2Zi3tt YpqODGm5tWyaKKsCqpRTKDrvuRPSHVTdRnrdIyipaf27n7w+OVs6YoTdLT0TH0ci WRKo8AfPax9s6U9HtnxoAtmH/2saLwqAZFP7nULUVgKyfS/ERJBRE/3KAtQrHd2z Zbu5Xr+GlfJ/PedbDDCY6Hfnma/rCEm7wdbusenoP0BmtcCsiRQ1Vl8mx2LxuMVe jixX+Q== Received: from mail-vs1-f72.google.com (mail-vs1-f72.google.com [209.85.217.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4er30gax14-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 12 Jun 2026 13:21:28 +0000 (GMT) Received: by mail-vs1-f72.google.com with SMTP id ada2fe7eead31-6c7b5cf8bceso371015137.0 for ; Fri, 12 Jun 2026 06:21:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781270488; x=1781875288; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=8JbaVcxwuW0pNu9X0F52ZmLiaxV03v+NOG21Kfuhl0U=; b=aDDfRKsVLX+OoYZcn3QTr0Ix7AHpiG9z4IXLX5laFH8XkPVJoMGoL/z+ykTy99h+6i edDCgjMKntvmJWvFR84k9WzNWtQdEOVYWbToCVQcd73pppMJYgKq/nVJYcHHuJvvRX+q Z/kkMWENIB3VAYJicYkhkyzlRh7MfZLrZZzhbsUXZBT5/rGUOdpM9W1pTE/XwkWTTVdc GsvCsMq5e6Sk63a7ZyRcR2mbulGltznIa9BTWibG3+Zvgs1Lig4dSWszSIhgzQEhXrb3 NUydsx2VSE6/01kVOAJzRJe+9eC6NmDMSl7x/tt9k05auxmzZYk20ZO25GmKNgeGpfJy 0aSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781270488; x=1781875288; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=8JbaVcxwuW0pNu9X0F52ZmLiaxV03v+NOG21Kfuhl0U=; b=DUUpDxlPpsRZ18pzY3RkLUW7mgyqpLerfFIZofXzfiNIL+shM1qgiFWlZyt3ZlLSZC aSI/XhW2YbI6Wty8E4yovznNbP20iOl+XiOmyPEy/+YAHZmZwm1vmegINBELphhJh/D6 8FIEZP08S4CzjgjuOwIuL5ff3R2WYKuewUymb1yOYQgl0xANoWJsFYdGlfPXqQRkQwlA J0M9K8D1T84j9N+qOo69wD3xm7EOGGg3xl0qUNatdeeszgAp34exzhmQfNA0FMoTtjh+ RSxT3hW87+D8SGslzgd36MuoAdSDBczubHknbUR4PBo2o/avmpSefU2Neo7jdhe688M1 BQbA== X-Forwarded-Encrypted: i=1; AFNElJ8WxK84cHgYPeHiKMEvOJbEz2HBrl4GUXYJlDcUxWHavwX0MZNXX+QlUHoKyYWOwUB9373eV4guw7718nU=@vger.kernel.org X-Gm-Message-State: AOJu0Yzrmx4uN7Rz3njo+QrQ6d/CmJ0M/21hXCwLXnz9qCI25M03z0sb Z7AmFb3KaSfjOqh/VLAh7Kn2zPfS70oyLQF+lJ/GvYIaofirux8GTo8dIDADNOjuLETNw4WeRLe YZVv3Oz55tAjMLarP0rappNISebSj28XgWsFaKCHYYFEFC44f53oQduuL5Acr5S+6mDI= X-Gm-Gg: Acq92OFbrh6/6ll8rqWxXn2pZ/N/rQ+KQ+eeI5dKxo2lHqD4BHN4NBo/+Y/4JoJlnJZ hH4oCniTXP03N7O/3d5Fh10KH2Bo47MLxm0J6EzEW5hLVt6J4nhxoxch0x8X9tGB0gcV3TX2HA8 FBnmCLwBtlAmvqz1kdQrkMXtBSIiXrNjveeoM61CbODnP38uaoDKGiP0Q6ji6NBU2/wZW8F4HaG 1FMFm1sPPMZ95U4w5a5ElnIzRPe/FP8U/Mo6Ovcjph3sOjLBaA67A6qmxyS3kCpKC3qsefScFHF 8b4X4qC6u9RM2OQdaOjucNwV7050Awzpv6+nxwNROs5fLr6g6UVfRA0+gFrb/USf5U0xAbXcTnV jqkyxfW6bUdg/ScBZXx+X2HwMFw2tzVhSmUksGCYch/o+Ub/hs+/iYMwntlBGY6qsO83Mwri9DA 3oAt9MiDd7ZQTCTFaISkKCz+XRblKm3W3BBF/XxbwWFxX/X0t2EwODZ6w6R4vC/Wwcz+CG/ctl X-Received: by 2002:a05:6102:a54:b0:650:a5d1:ee1d with SMTP id ada2fe7eead31-71e88b229famr1135210137.10.1781270487952; Fri, 12 Jun 2026 06:21:27 -0700 (PDT) X-Received: by 2002:a05:6102:a54:b0:650:a5d1:ee1d with SMTP id ada2fe7eead31-71e88b229famr1135110137.10.1781270487392; Fri, 12 Jun 2026 06:21:27 -0700 (PDT) Received: from QCOM-eG0v1AUPpu.na.qualcomm.com ([2a01:e0a:830:450:3510:32cf:db6:13c6]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfe6f9c46f0sm59986866b.1.2026.06.12.06.21.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jun 2026 06:21:26 -0700 (PDT) From: Loic Poulain Date: Fri, 12 Jun 2026 15:21:01 +0200 Subject: [PATCH v5 9/9] arm64: dts: qcom: arduino-imola: Describe NVMEM layout for WiFi/BT addresses 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260612-block-as-nvmem-v5-9-95e0b30fff90@oss.qualcomm.com> References: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> In-Reply-To: <20260612-block-as-nvmem-v5-0-95e0b30fff90@oss.qualcomm.com> To: Ulf Hansson , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Jens Axboe , Johannes Berg , Jeff Johnson , Bartosz Golaszewski , Marcel Holtmann , Luiz Augusto von Dentz , Balakrishna Godavarthi , Rocky Liao , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Srinivas Kandagatla , Andrew Lunn , Heiner Kallweit , Russell King , Saravana Kannan Cc: linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-block@vger.kernel.org, linux-wireless@vger.kernel.org, ath10k@lists.infradead.org, linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org, daniel@makrotopia.org, Loic Poulain , Konrad Dybcio , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfX7q2RzOuX9h7j x8PkFEIN2qlF5SXqKEhIbVFYjvL7xdCOAA3Re7YRbbwPtPQp9TncUWuiK8EKpWAxuxRK5NdiKvo h5dupqlGOe+EW7tEr8eAsC7CR+pczls= X-Proofpoint-GUID: kPLbI2bkd_jYFDDWfVagvgmm-Hz84pBl X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEyMDEyMiBTYWx0ZWRfX95SgpBDeU2LZ SAuFlHRbBwev61Rxlzji7dpOSMXzTZxxKsXF36cj0pCVyNPztF/gPwrPy4nhdavPnruJspzd+Ql XM58abr5GDt7CHcU7JQNfwiIh1pb16e9yK6IyQOvUE+Gh2if4blStfpa8Y5acS/sMnjlpE2C/1g lrOPgp0qw93Fp1XqNnSaRU71qLiv8lNtUZnIcMkUlrwMRkSx5UakC3rVpATya/qJ8HreNqY0+4v 0DGEjTUq0n0py8ZNXQFPrHV+Qm27boyuw+hwrBXkZmgG/bZkO5vQkNfMnD7FzeEGmY3BERbnV2+ h9GIKR5EuoXMdq3mi1/ivRhf64AOxdCj2cq5ggjQVD8GNRuHfaSZRI9htjI1V+givEyygFxzQ+A EbGI/wLqG9bwGm7R4JgeQiXeAcIXfMz9VpOg3oS6bZeN3FWQ1v+4/oBX/+97KZi+4RwUKpheTeY LvPZzRe+CzrACNdyToQ== X-Authority-Analysis: v=2.4 cv=evnvCIpX c=1 sm=1 tr=0 ts=6a2c07d8 cx=c_pps a=DUEm7b3gzWu7BqY5nP7+9g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=1BEw5LmG3YzgyHxDt7YA:9 a=QEXdDO2ut3YA:10 a=-aSRE8QhW-JAV6biHavz:22 X-Proofpoint-ORIG-GUID: kPLbI2bkd_jYFDDWfVagvgmm-Hz84pBl X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-12_01,2026-06-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 bulkscore=0 priorityscore=1501 phishscore=0 spamscore=0 impostorscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606120122 On Arduino Uno-Q, the eMMC boot1 partition is factory provisioned with device-specific information such as the WiFi MAC address and the Bluetooth BD address. This partition can serve as an alternative to additional non-volatile memory, such as a dedicated EEPROM. The eMMC boot partitions are typically good candidates, as they are relatively small, read-only by default (and can be enforced as hardware read-only), and are not affected by board reflashing procedures, which generally target the eMMC user or GP partitions. Describe the corresponding nvmem-layout for the WiFi and Bluetooth addresses, and point the WiFi and Bluetooth nodes to the appropriate NVMEM cells to retrieve them. Reviewed-by: Konrad Dybcio Reviewed-by: Bartosz Golaszewski Signed-off-by: Loic Poulain --- arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts | 39 ++++++++++++++++++= ++++ 1 file changed, 39 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts b/arch/arm6= 4/boot/dts/qcom/qrb2210-arduino-imola.dts index bf088fa9807f040f0c8f405f9111b01790b09377..128c7a7e76b5b089044745f5d64= 07d6391055fc2 100644 --- a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts +++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts @@ -409,7 +409,40 @@ &sdhc_1 { no-sdio; no-sd; =20 + #address-cells =3D <1>; + #size-cells =3D <0>; + status =3D "okay"; + + card@0 { + compatible =3D "mmc-card"; + reg =3D <0>; + + partitions-boot1 { + compatible =3D "fixed-partitions"; + + #address-cells =3D <1>; + #size-cells =3D <1>; + + nvmem-layout { + compatible =3D "fixed-layout"; + #address-cells =3D <1>; + #size-cells =3D <1>; + + wifi_mac_addr: mac-addr@4400 { + compatible =3D "mac-base"; + reg =3D <0x4400 0x6>; + #nvmem-cell-cells =3D <1>; + }; + + bd_addr: bd-addr@5400 { + compatible =3D "mac-base"; + reg =3D <0x5400 0x6>; + #nvmem-cell-cells =3D <1>; + }; + }; + }; + }; }; =20 &spi5 { @@ -512,6 +545,9 @@ bluetooth { vddch0-supply =3D <&pm4125_l22>; enable-gpios =3D <&tlmm 87 GPIO_ACTIVE_HIGH>; max-speed =3D <3000000>; + + nvmem-cells =3D <&bd_addr 0>; + nvmem-cell-names =3D "local-bd-address"; }; }; =20 @@ -557,6 +593,9 @@ &wifi { qcom,ath10k-calibration-variant =3D "ArduinoImola"; firmware-name =3D "qcm2290"; =20 + nvmem-cells =3D <&wifi_mac_addr 0>; + nvmem-cell-names =3D "mac-address"; + status =3D "okay"; }; =20 --=20 2.34.1