diff for duplicates of <cover.1780197411.git.github.com@herrie.org> diff --git a/a/1.txt b/N1/1.txt index 78e57a9..cfc7768 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,63 +1,69 @@ Hi all, -Self-review (with Sashiko AI assist) caught issues in v1 before -maintainer review reached them; re-rolling promptly. v1: +Self-review (with Sashiko AI assist) caught five real issues in v1's +NoC driver before the maintainer review cycle reached them, so +re-rolling promptly. v1: https://lore.kernel.org/linux-arm-msm/cover.1780148149.git.github.com@herrie.org/ -v2 changes: - - - NEW patch 1/3: extend the qcom,pm8xxx parent schema with a - `temp-alarm@[0-9a-f]+$` patternProperty so the new sub-node - validates as a recognised child of the PMIC. Without this, any - board DT instantiating the temp-alarm sub-node fails - dt_binding_check (CI bot caught this on v1). - - - patch 2/3: thermal binding YAML rewritten: - * add `allOf: $ref: /schemas/thermal/thermal-sensor.yaml#`; - * rewrite the example so the parent qcom,pm8901 node itself - satisfies its own schema (reg, address-cells, interrupts, - interrupt-controller) - addresses the CI bot's `'interrupts' - is a required property` complaint on the embedded pmic node; - * reword the commit message; v1 incorrectly said the binding - describes the "GIC interrupt" and "parent PMIC reference" - (the interrupts are actually PMIC-internal, and the parent - relationship is the standard DT parent-child hierarchy). - - - patch 3/3: driver fixes: - * defer the SW-override switch (which disables PMIC HW - auto-shutdown) to the very end of probe and install a devm - action that restores HW auto-shutdown on unbind, so the part - is never left without any thermal protection if an earlier - probe step fails; - * fix the first-read temperature comment: the formula computes - the lower bound of the current stage, not the midpoint; - * snapshot chip->stage/thresh/temp under chip->lock before - printing the boot banner so the values are consistent now - that the ISR is live; - * drop the explicit ->remove(), the new devm restore action - replaces it. - -dt_binding_check passes on both the parent qcom,pm8xxx and the new -qcom,pm8901-temp-alarm. Driver passes checkpatch with zero warnings -or errors. +v2 changes (driver patch only; the binding header is unchanged from v1): + + - MMFAB master port collision: mmfab_to_appss claimed port 2, but + that port was already owned by mmfab_mas_adm1_port0. Per the + fabric's port table the APPS_FAB gateway lives at port 11; fix + the DEFINE_QNODE so ADM1 DMA's arbitration vote on MMFAB is no + longer overwritten by the gateway. + + - msm8660_rpm_commit() double-converted bandwidth units: it called + icc_units_to_bps() (which already returns bytes/s) and then + immediately divided by 8 "bits -> bytes", asking RPM for 1/8 of + the bandwidth that consumers had requested. Drop the spurious + divide. + + - Fabric rate cache hoisted to provider scope and divided by the + fabric's own bus width rather than the triggering node's local + buswidth. A fabric has one shared hardware clock; using each + master's local buswidth makes the requested clk rate oscillate + depending on which master called icc_set_bw() last, and caching + the result on the node lets a subsequent update skip clk_set_rate + even though a different node has already moved the hardware. The + new layout adds desc->bus_width per fabric (AFAB/SFAB/DFAB=8, + MMFAB=16) and qp->rate as the single source of truth. + + - msm8660_get_rpm() rewritten: + * returns ERR_PTR(-EPROBE_DEFER) when the RPM phandle resolves + but the device hasn't probed yet, instead of returning NULL + and silently disabling ARB forever; + * adds a device_link to the RPM device so the devres-managed + qcom_rpm struct can't be freed out from under us if the RPM + driver is unbound at runtime (previously a use-after-free + risk because we kept a pointer past put_device()). + Probe propagates IS_ERR(qp->rpm) up so the framework retries. + + - devm_clk_bulk_get_optional() now distinguishes -EPROBE_DEFER + (propagated) from real "no clocks" (continue without scaling). + Previously every error was swallowed, which permanently disabled + clock scaling if the icc driver happened to probe before the + clock provider - which it usually does, given the core_initcall + ordering. + +No functional change intended on the working paths; this is purely +correctness work. Thanks, Herman -Herman van Hazendonk (3): - dt-bindings: mfd: qcom-pm8xxx: allow temp-alarm subnode - dt-bindings: thermal: qcom: add pm8901-temp-alarm - thermal: qcom: add PM8901 PMIC temperature-alarm driver - - .../devicetree/bindings/mfd/qcom-pm8xxx.yaml | 4 + - .../thermal/qcom,pm8901-temp-alarm.yaml | 90 ++++ - drivers/thermal/qcom/Kconfig | 12 + - drivers/thermal/qcom/Makefile | 1 + - drivers/thermal/qcom/qcom-pm8901-tm.c | 408 ++++++++++++++++++ - 5 files changed, 515 insertions(+) - create mode 100644 Documentation/devicetree/bindings/thermal/qcom,pm8901-temp-alarm.yaml - create mode 100644 drivers/thermal/qcom/qcom-pm8901-tm.c +Herman van Hazendonk (2): + dt-bindings: interconnect: qcom: add msm8660 fabric IDs + interconnect: qcom: add MSM8x60 NoC driver + + drivers/interconnect/qcom/Kconfig | 10 + + drivers/interconnect/qcom/Makefile | 2 + + drivers/interconnect/qcom/msm8660.c | 1069 +++++++++++++++++ + .../dt-bindings/interconnect/qcom,msm8660.h | 156 +++ + 4 files changed, 1237 insertions(+) + create mode 100644 drivers/interconnect/qcom/msm8660.c + create mode 100644 include/dt-bindings/interconnect/qcom,msm8660.h -- 2.43.0 diff --git a/a/content_digest b/N1/content_digest index 83e7911..2c7afd7 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,87 +1,85 @@ "ref\0cover.1780148149.git.github.com@herrie.org\0" "From\0Herman van Hazendonk <github.com@herrie.org>\0" - "Subject\0[PATCH v2 0/3] thermal: qcom: add PM8901 PMIC temperature-alarm driver\0" - "Date\0Sun, 31 May 2026 06:09:13 +0200\0" - "To\0Amit Kucheria <amitk@kernel.org>" - Conor Dooley <conor+dt@kernel.org> - Daniel Lezcano <daniel.lezcano@kernel.org> + "Subject\0[PATCH v2 0/2] interconnect: qcom: add MSM8x60 NoC driver\0" + "Date\0Sun, 31 May 2026 06:09:05 +0200\0" + "To\0Conor Dooley <conor+dt@kernel.org>" devicetree@vger.kernel.org + Georgi Djakov <djakov@kernel.org> Krzysztof Kozlowski <krzk+dt@kernel.org> - Lee Jones <lee@kernel.org> linux-arm-msm@vger.kernel.org linux-kernel@vger.kernel.org linux-pm@vger.kernel.org - Lukasz Luba <lukasz.luba@arm.com> - Rafael J. Wysocki <rafael@kernel.org> - Rob Herring <robh@kernel.org> - Satya Priya <quic_c_skakit@quicinc.com> - Thara Gopinath <thara.gopinath@gmail.com> - van Hazendonk <github.com@herrie.org> - " Zhang Rui <rui.zhang@intel.com>\0" + " Rob Herring <robh@kernel.org>\0" "\00:1\0" "b\0" "Hi all,\n" "\n" - "Self-review (with Sashiko AI assist) caught issues in v1 before\n" - "maintainer review reached them; re-rolling promptly. v1:\n" + "Self-review (with Sashiko AI assist) caught five real issues in v1's\n" + "NoC driver before the maintainer review cycle reached them, so\n" + "re-rolling promptly. v1:\n" "\n" " https://lore.kernel.org/linux-arm-msm/cover.1780148149.git.github.com@herrie.org/\n" "\n" - "v2 changes:\n" + "v2 changes (driver patch only; the binding header is unchanged from v1):\n" "\n" - " - NEW patch 1/3: extend the qcom,pm8xxx parent schema with a\n" - " `temp-alarm@[0-9a-f]+$` patternProperty so the new sub-node\n" - " validates as a recognised child of the PMIC. Without this, any\n" - " board DT instantiating the temp-alarm sub-node fails\n" - " dt_binding_check (CI bot caught this on v1).\n" + " - MMFAB master port collision: mmfab_to_appss claimed port 2, but\n" + " that port was already owned by mmfab_mas_adm1_port0. Per the\n" + " fabric's port table the APPS_FAB gateway lives at port 11; fix\n" + " the DEFINE_QNODE so ADM1 DMA's arbitration vote on MMFAB is no\n" + " longer overwritten by the gateway.\n" "\n" - " - patch 2/3: thermal binding YAML rewritten:\n" - " * add `allOf: $ref: /schemas/thermal/thermal-sensor.yaml#`;\n" - " * rewrite the example so the parent qcom,pm8901 node itself\n" - " satisfies its own schema (reg, address-cells, interrupts,\n" - " interrupt-controller) - addresses the CI bot's `'interrupts'\n" - " is a required property` complaint on the embedded pmic node;\n" - " * reword the commit message; v1 incorrectly said the binding\n" - " describes the \"GIC interrupt\" and \"parent PMIC reference\"\n" - " (the interrupts are actually PMIC-internal, and the parent\n" - " relationship is the standard DT parent-child hierarchy).\n" + " - msm8660_rpm_commit() double-converted bandwidth units: it called\n" + " icc_units_to_bps() (which already returns bytes/s) and then\n" + " immediately divided by 8 \"bits -> bytes\", asking RPM for 1/8 of\n" + " the bandwidth that consumers had requested. Drop the spurious\n" + " divide.\n" "\n" - " - patch 3/3: driver fixes:\n" - " * defer the SW-override switch (which disables PMIC HW\n" - " auto-shutdown) to the very end of probe and install a devm\n" - " action that restores HW auto-shutdown on unbind, so the part\n" - " is never left without any thermal protection if an earlier\n" - " probe step fails;\n" - " * fix the first-read temperature comment: the formula computes\n" - " the lower bound of the current stage, not the midpoint;\n" - " * snapshot chip->stage/thresh/temp under chip->lock before\n" - " printing the boot banner so the values are consistent now\n" - " that the ISR is live;\n" - " * drop the explicit ->remove(), the new devm restore action\n" - " replaces it.\n" + " - Fabric rate cache hoisted to provider scope and divided by the\n" + " fabric's own bus width rather than the triggering node's local\n" + " buswidth. A fabric has one shared hardware clock; using each\n" + " master's local buswidth makes the requested clk rate oscillate\n" + " depending on which master called icc_set_bw() last, and caching\n" + " the result on the node lets a subsequent update skip clk_set_rate\n" + " even though a different node has already moved the hardware. The\n" + " new layout adds desc->bus_width per fabric (AFAB/SFAB/DFAB=8,\n" + " MMFAB=16) and qp->rate as the single source of truth.\n" "\n" - "dt_binding_check passes on both the parent qcom,pm8xxx and the new\n" - "qcom,pm8901-temp-alarm. Driver passes checkpatch with zero warnings\n" - "or errors.\n" + " - msm8660_get_rpm() rewritten:\n" + " * returns ERR_PTR(-EPROBE_DEFER) when the RPM phandle resolves\n" + " but the device hasn't probed yet, instead of returning NULL\n" + " and silently disabling ARB forever;\n" + " * adds a device_link to the RPM device so the devres-managed\n" + " qcom_rpm struct can't be freed out from under us if the RPM\n" + " driver is unbound at runtime (previously a use-after-free\n" + " risk because we kept a pointer past put_device()).\n" + " Probe propagates IS_ERR(qp->rpm) up so the framework retries.\n" + "\n" + " - devm_clk_bulk_get_optional() now distinguishes -EPROBE_DEFER\n" + " (propagated) from real \"no clocks\" (continue without scaling).\n" + " Previously every error was swallowed, which permanently disabled\n" + " clock scaling if the icc driver happened to probe before the\n" + " clock provider - which it usually does, given the core_initcall\n" + " ordering.\n" + "\n" + "No functional change intended on the working paths; this is purely\n" + "correctness work.\n" "\n" "Thanks,\n" "Herman\n" "\n" - "Herman van Hazendonk (3):\n" - " dt-bindings: mfd: qcom-pm8xxx: allow temp-alarm subnode\n" - " dt-bindings: thermal: qcom: add pm8901-temp-alarm\n" - " thermal: qcom: add PM8901 PMIC temperature-alarm driver\n" + "Herman van Hazendonk (2):\n" + " dt-bindings: interconnect: qcom: add msm8660 fabric IDs\n" + " interconnect: qcom: add MSM8x60 NoC driver\n" "\n" - " .../devicetree/bindings/mfd/qcom-pm8xxx.yaml | 4 +\n" - " .../thermal/qcom,pm8901-temp-alarm.yaml | 90 ++++\n" - " drivers/thermal/qcom/Kconfig | 12 +\n" - " drivers/thermal/qcom/Makefile | 1 +\n" - " drivers/thermal/qcom/qcom-pm8901-tm.c | 408 ++++++++++++++++++\n" - " 5 files changed, 515 insertions(+)\n" - " create mode 100644 Documentation/devicetree/bindings/thermal/qcom,pm8901-temp-alarm.yaml\n" - " create mode 100644 drivers/thermal/qcom/qcom-pm8901-tm.c\n" + " drivers/interconnect/qcom/Kconfig | 10 +\n" + " drivers/interconnect/qcom/Makefile | 2 +\n" + " drivers/interconnect/qcom/msm8660.c | 1069 +++++++++++++++++\n" + " .../dt-bindings/interconnect/qcom,msm8660.h | 156 +++\n" + " 4 files changed, 1237 insertions(+)\n" + " create mode 100644 drivers/interconnect/qcom/msm8660.c\n" + " create mode 100644 include/dt-bindings/interconnect/qcom,msm8660.h\n" "\n" "-- \n" 2.43.0 -e170179e74fcd14bd0bf85cd7a73009a724e63b7d32291d5358c4520ccba8b5c +640748d5341aad3695c325794f7c5f1318ec3c52ed7e456432ae65477f555940
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox