From mboxrd@z Thu Jan 1 00:00:00 1970 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 723F5392C25 for ; Fri, 31 Jul 2026 08:00:55 +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=1785484856; cv=none; b=Drd482TMSQR4cmZWWJzJFpw8t+SWLJWr0pnwZYHKZNl4QiScnCukMhSmE7nSt7Dw61fp1dPz+mYhUINkFOz7VYTMMKpzS/O2ipEO3lMGdk2gEUcCCWcagW5GVel0/NrI0cCQCcGP8uXQpNbKZMzNxywVgCj7tXu/exT+MQptcbw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785484856; c=relaxed/simple; bh=znReia3O0oaZNnf+GgAEpZreXNGn5YBXAwYckgihcXE=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=lAS0Xpca1LNUlB5pt/R/UwKhDJa+L+tMD1wwQ7sUWzEKVphc0slKS9Eh1oLl/0CPtDJH71cd7ERik+8PoXzpl1o6w85Eqa/ZuZz52jGtGZoyHkqPdTCniwjp90CK0kI5Y6gdOiWx5IuKP4APDkKGILQl4zCYooBTZxEOTFvinD0= 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=hA3lTPDj; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=MGOAlgOJ; 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="hA3lTPDj"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="MGOAlgOJ" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66V7xEg03694676 for ; Fri, 31 Jul 2026 08:00:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=4QKRQfg8B3bYaP9xBDZ41d 5QSua1LNTg4v8NR85sylE=; b=hA3lTPDj9XCewXDcaWYP7YUppIgszsGoiWZEDo yWRF+QJiOcDAIW0/xLUSZyOy66wpERixq4Xc2eHSyTVOnk0avwuI+DJd4j3JSkPn LE/ip5ELUJolh5ffi68HClpwBNUlcnUGLuh+weUI0egrVmLFWMfXohxzkoQc05Mx jGI6znBXnhqyLsWFbEEfmT+BV8vPpylIO4PD/LQGm3G9zXwCEZjTxABfaRCYSWxe 2+ycPnk+go4dPM6KAmw+8u2l3tlcGnK7+TDOD219oflVXNI8/41Yl+KC5VdAMbFa GeJASAMCWRtxS9F/JgBBm8OICVk+vqWghYuYmgE0Boekd7eA== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4frqssr07x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 31 Jul 2026 08:00:53 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-51c0199faafso6538441cf.3 for ; Fri, 31 Jul 2026 01:00:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1785484853; x=1786089653; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:content-type:mime-version :message-id:date:subject:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=4QKRQfg8B3bYaP9xBDZ41d5QSua1LNTg4v8NR85sylE=; b=MGOAlgOJFYlgjEY19kDCawRgY+xMw+1tv6SdIXBkdgyGtg+LAJN9A+X6VaKVyZiKlJ GbGxvctpUdnvkpbvjxPUM5myZkPjlaIDS8KuaGOMWLqWL5oMc7hnw+/ufnfDZwOJAmQn T1SolA+zD11f+uu06X7Z0tKfyIk02zLlSvqdTm8MezXByQom1TfcpI4H/c7cUK1pEaDm QIuOAq2LQGwbNWcZDOJvk9Dcdg42g3riNvteNqyBvckMAjuyR/P3b806QmiP6O8CdyIV J1UGG1OXCAFOM5i2vc9hTB3t+hAFnAZcC1aq7hvbmMLtyI3A1y/LZ0e1xOnziRF40+Wg Q+7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785484853; x=1786089653; h=cc:to:content-transfer-encoding:content-type:mime-version :message-id:date:subject:from:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=4QKRQfg8B3bYaP9xBDZ41d5QSua1LNTg4v8NR85sylE=; b=ZoDPF0ZxPnerdb373SLFH3Is12QSaoRcShy8TE1Pk8b720PY8jWReseNav23RSrQnm ATJcbXTl2FILIFsKgZGgwumITxPid1WpqvPuyVv/4VsVzgCm3RZyiCX929hSuX/903FY 0kVgXsn6DM/KmkQEFtG0bS7BgnzbOzjBYUYMi01qywH4XbW4IhCEeEpCjv0aRa63XA7G dtZVz2uI66OLbVznbmCYZWFLYPlJkZ3m0kRuk7iYeH0K9XwCy+Vy0A00SIpQv5LE61dn 5EMqSlfbiHOuEtAlcxpopAeZkuNRaTAfVyqWUG7gmHqLdDUB/9bci+bGjsFKLZJXCA9H yyKw== X-Forwarded-Encrypted: i=1; AHgh+RpMIUxSw035sJCsHu/qXdMX1RsYG7UshDYHJAo8unMw3XTVNoaBlZ+RC1Lp4tBLaU8amXc5eSD5+wfd12c=@vger.kernel.org X-Gm-Message-State: AOJu0YwHuP/Z708CStRHU57iT/5NPfeQ0RpiwyB+ASjsj83wJJm3xD2A ve6PgQg1u2gU0hJVD48FAJBUfHBvl8acceyzQFu18rKmcR2kehwb4f2XtNhAr9DgGE9owlxxSd0 dlEUVcNHmqg8ii4TVFLJFnypgGX76Rt24R9ik7iY77oAeXV7U42TzydeqgUHKhPen0io= X-Gm-Gg: AR+sD12q+cqQptpWjEZjbzMa8bUNETar7631XGj+pcM156Q7HqF1wUcVnG7agtlEQL5 SK9ONRw5dsGia1TlWe4daDSqjuHDYB7WX4in4dcsKG8bGS9lJIzfUd+5yF4reMwMGsnzk9ujwXP N3INsvatl9jy/bb7sqOfUwwglneq2gcnAyyktMAjtL/tKV/7oKwdu5bkw368ntwpvgFuGzuowj/ HQDNolCVJtwM9ARWYU1mPvAZhXusXEE5tgqpqXvUvGSXB8P7yUkTKV+lrR6gBnyGW0jvYFaVpd9 iybxTIIEPI0m9CYSy/GmW36fx3zC+s9UKAtewusjo3xnk1kwX/MOdTDiHyJmCtd4dnpFojvX90t nFt8XhJjaYfclqEY4p9KE0G00+yD0hQ== X-Received: by 2002:ac8:7d83:0:b0:527:6dc7:5c5b with SMTP id d75a77b69052e-52b4b04fb6emr10320881cf.21.1785484852967; Fri, 31 Jul 2026 01:00:52 -0700 (PDT) X-Received: by 2002:ac8:7d83:0:b0:527:6dc7:5c5b with SMTP id d75a77b69052e-52b4b04fb6emr10320171cf.21.1785484852457; Fri, 31 Jul 2026 01:00:52 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:40fa:e8e6:4785:ce70]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c1fd4534fc4sm51032966b.51.2026.07.31.01.00.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Jul 2026 01:00:51 -0700 (PDT) From: Bartosz Golaszewski Subject: [PATCH v2 0/4] firmware: qcom: scm: simplify code by using classes Date: Fri, 31 Jul 2026 10:00:33 +0200 Message-Id: <20260731-qcom-scm-code-shrink-v2-0-4ba76096915f@oss.qualcomm.com> 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: 7bit X-B4-Tracking: v=1; b=H4sIACJWbGoC/4WNTQ6CMBCFr0Jm7ZBSragr72FYNMNUJgqVjhIN4 e5WLuDmJd/L+5lBOQkrnIoZEk+iEocMdlMAdX64MkqbGayxe1ObCkeKPSr1SLFl1C7JcEM6+hA OO+e2dQu5+kgc5L3OXprMnegzps/6MlU/98/gVKFBY4MjNpaOzp+jajm+/D2n+zILNMuyfAG52 OMHvwAAAA== X-Change-ID: 20260701-qcom-scm-code-shrink-c9aff845537d To: Bartosz Golaszewski , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski , Konrad Dybcio , Mukesh Ojha X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1339; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=znReia3O0oaZNnf+GgAEpZreXNGn5YBXAwYckgihcXE=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqbFYnIZ5+y+C+QbX5mwfMvTQg68i8RPS664EDT uN4pMd5ksGJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCamxWJwAKCRAFnS7L/zaE w9e+D/sHUlWauCX+xljgoBkUCdILI4e95zvsNXKl91ZAC4kGlVLEcrD1CTRhX0SpvZ86fK3oVbR 8YIu+wIHOsK6y/9AsuvNdf7UIMRg6Eh/48t3NXraHcj6BPqNWbxQX4U31xLp3BSkUEL/n2ozmWX EktHsTsbKBd/qOyHmrG6Jh1mZ6MQKT6LHcQ4cbpzGrHBFg5T/d1IZSQX2xQVF4ZI9s5yT0Kap9F ORCyQPOztLgzf0X04bRjxvZdFPUOXFbG/05w9TLZTp3Jf5Cj5DCMaLe7a0wU36hzhziFkzxJeBZ n1ToN5nf8vHxkyyZvLhan6yXBiLmESfL+YeJ7+o9A6OYep/ykeazEf59ze2BeFinjT3SV1NLGsc CQEJi/J733fhtKEuh7urR2XbPYYCjsslKFgZ+5pCkm5n0kimzhAFb8CSUFonpVdHiBuEEo/jl4Y 3pKDjOVuD8tBj5UPsjW3ig/Of0sSjqMA5MwbOxr2ggDGfqjRrsnSz9Tz01pWTGQandU35BzDZVn zXSpuduxJb0rqmetVlE2ZR5Ovez/UZPOVkEUwZISUTidfAX23aUFsDoFUf5H/WnUVc34A+/DOTR Nw1FD/SGqCSlEWP7jUbMo+N+S5er9DjTfrbP8O4M/HwiBx6EKLUovEI8/E+oEfmbbeEi3fZA5gM +Zz64zlPQ9Py2TA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzMxMDA1NiBTYWx0ZWRfX1X9H1e0QDBR4 i/NXsvKNJ1mfqaRvu4scre0q+ligYOKU6d6EQnVjQEg2YxFd35v0nXUa2P361pgCyYzxXU+RjIR YtspLxTQtDde0Qe5j+5nYh23sOq019Q= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzMxMDA1NiBTYWx0ZWRfX9wnI+VfTmvFW zRo3dIZKyiZR4NbFECwfS5aIzuVrKKoKqjZSJs1jgZUOeJKjaTD6uJKXAEMt1YCYdG1x6bgprsB sHv3CdinC7GUWxOXhXuuRJEnAPDvdtgslxCBIjdp+SK0gMk+IvVzjvYN2NREZ7pxDAlfqv76AHy M9yVxP9YoVlKN0X0OLa4xx6J1KygDqv9m2OZBcw44XsAXVhuOtNZKL2wqCJUNrOKxVv4SkXAXPF FwMmcD1GVKlBPD5pczxGe6HTJtWRNN2LFGJ8jTq3Nz9DRrBh+Wivtbbqd+me6dQEwGkM9uWKhpv gAjBXwoPwszt3M9oNglZz0UPt+eLNJvO2NBDJSSVSGygkvgJBIjvM3EL1IE9m9yXZsk18MJKfUx /RaYqxhTMLisLfTdGqzWpoGcRD+CeB/uwLdqvpxn8OdxnVw0z7c+azpp0HwT60pqyDnaHuZ7q9+ eIrqVE5N2h/OY+tmxQQ== X-Proofpoint-GUID: KFRLXzvJzElClCtlbnIZ3hpNrWZcmLCC X-Authority-Analysis: v=2.4 cv=QMpYgALL c=1 sm=1 tr=0 ts=6a6c5636 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=bC-a23v3AAAA:8 a=EUspDBNiAAAA:8 a=9qASb20qi_AIfpCrn08A:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 a=FO4_E8m0qiDe52t0p3_H:22 X-Proofpoint-ORIG-GUID: KFRLXzvJzElClCtlbnIZ3hpNrWZcmLCC X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-31_03,2026-07-30_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 priorityscore=1501 spamscore=0 impostorscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607310056 There's a pattern of enabling the clocks and/or setting the bandwith limits before performing an SCM call and reverting the above after it's node. In all places it's done unconditionally and can be simplified by providing appropriate classes. There are also a few places where we can use __free() for tzmem pointers. Signed-off-by: Bartosz Golaszewski --- Changes in v2: - Rabase on top of recent SCM driver changes which introduced conflicts - Collect tags - Link to v1: https://patch.msgid.link/20260701-qcom-scm-code-shrink-v1-0-02f5ce02c95a@oss.qualcomm.com --- Bartosz Golaszewski (4): firmware: qcom: tzmem: guard against IS_ERR() in the cleanup handler firmware: qcom: scm: use __free(qcom_tzmem) to simplify cleanup firmware: qcom: scm: introduce qcom_scm_clk class for clock management firmware: qcom: scm: introduce qcom_scm_bw class for bandwidth management drivers/firmware/qcom/qcom_scm.c | 185 ++++++++++++------------------- include/linux/firmware/qcom/qcom_tzmem.h | 2 +- 2 files changed, 73 insertions(+), 114 deletions(-) --- base-commit: 95d6a9ccef99117115e41e9adb271243bd5e985b change-id: 20260701-qcom-scm-code-shrink-c9aff845537d Best regards, -- Bartosz Golaszewski