-
sent/20230929-caleb-rmi4-quirks-062a057e98bb-v2e408204a · ·
Input: synaptics-rmi4: add quirks for third party touchscreen controllers With the growing popularity of running upstream Linux on mobile devices, we're beginning to run into more and more edgecases. The OnePlus 6 is a fairly well supported 2018 era smartphone, selling over a million units in it's first 22 days. With this level of popularity, it's almost inevitable that we get third party replacement displays, and as a result, replacement touchscreen controllers. The OnePlus 6 shipped with an extremely usecase specific touchscreen driver, it implemented only the bare minimum parts of the highly generic rmi4 protocol, instead hardcoding most of the register addresses. As a result, the third party touchscreen controllers that are often found in replacement screens, implement only the registers that the downstream driver reads from. They additionally have other restrictions such as heavy penalties on unaligned reads. This series attempts to implement the necessary workaround to support some of these chips with the rmi4 driver. Although it's worth noting that at the time of writing there are other unofficial controllers in the wild that don't work even with these patches. We have been shipping these patches in postmarketOS for the last several months, and they are known to not cause any regressions on the OnePlus 6/6T (with the official Synaptics controller), however I don't own any other rmi4 hardware to further validate this. These patches were contributed by a community developer who has given permission for me to submit them on their behalf. --- To: Dmitry Torokhov <dmitry.torokhov@gmail.com> To: Vincent Huang <vincent.huang@tw.synaptics.com> Cc: methanal <baclofen@tuta.io> Cc: linux-input@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: phone-devel@vger.kernel.org Cc: ~postmarketos/upstreaming@lists.sr.ht --- Changes since v1: - Improve dt-bindings patch (thanks Rob) - Add missing cast in patch 5 to fix the pointer arithmetic - Link to v1: https://lore.kernel.org/r/20230929-caleb-rmi4-quirks-v1-0-cc3c703f022d@linaro.org --- Caleb Connolly (2): dt-bindings: input: syna,rmi4: document syna,pdt-fallback-desc Input: synaptics-rmi4 - handle duplicate/unknown PDT entries methanal (5): Input: synaptics-rmi4 - f12: use hardcoded values for aftermarket touch ICs Input: synaptics-rmi4 - f55: handle zero electrode count Input: synaptics-rmi4 - don't do unaligned reads in IRQ context Input: synaptics-rmi4 - read product ID on aftermarket touch ICs Input: synaptics-rmi4 - support fallback values for PDT descriptor bytes .../devicetree/bindings/input/syna,rmi4.yaml | 15 +++ drivers/input/rmi4/rmi_driver.c | 134 ++++++++++++++++++--- drivers/input/rmi4/rmi_driver.h | 8 ++ drivers/input/rmi4/rmi_f01.c | 14 +++ drivers/input/rmi4/rmi_f12.c | 117 ++++++++++++++---- drivers/input/rmi4/rmi_f55.c | 5 + include/linux/rmi.h | 3 + 7 files changed, 252 insertions(+), 44 deletions(-) --- base-commit: b0d95ff7653ef6ace66a24d6c09147d0731825ce // Caleb (they/them)
-
qcom-dts-for-6.72138c32a · ·
Qualcomm ARM DeviceTree updates for v6.7 RPM master stats is introduced for MSM8226 and MSM8974. The PCIe PHY of SDX55 is transitioned to the new binding. The hall sensor on the Samsung Galaxy Tab 4 is inverted. A number of fixes reported from DeviceTree validation are fixed.
-
qcom-drivers-for-6.7c0989f7d · ·
Qualcomm driver updates for v6.7 This introduces partial support for the Qualcomm Secure Execution Environment SCM interface, and uses this to implement EFI variable access on the Windows On Snapdragon devices (for now). The 32/64-bit calling convention detector of the SCM interface is updated to not choose 64-bit convention when Linux is 32-bit. The "extern" specifier is dropped from the interface include file. The LLCC driver gains support for carrying configuration for multiple different system/DDR configurations for a given platform, and selecting between them. Support for Q[DR]U1000 is added to the driver. All exported symbols are transitioned to EXPORT_SYMBOL_GPL(). The platform_drivers in the Qualcomm SoC are transitioned to the void-returning remove_new implementation. The rmtfs memory driver gains support for leaving guard pages around the used area, to avoid issues if the allocation happens to be placed adjacent to another protected memory region. The socinfo driver gains knowledge about IPQ8174, QCM6490, SM7150P and various PMICs used together with SM8550.
-
qcom-arm64-defconfig-for-6.7b46d856c · ·
Qualcomm ARM64 defconfig updates for v6.7 This enables the NB7VPQ904M SuperSpeed redriver driver, used in SM8550, the LPASS pinctrl driver for SM6115 and SM8350 and the M31 USB phy driver found in IPQ5332.
-
qcom-arm64-for-6.733e9032a · ·
Qualcomm ARM64 DeviceTree updates for v6.7 The SM7125 platform is introduced, with support for Xiaomi Redmi Note 9 Pro. Support for Fairphone 5, on QCM6490, and BQ Aquaris M5, on MSM8939, are introduced. With the various QMP PHY bindings having been refactored, SC7180, SC7280, SDM845, SM8150, and SM8250 are transitioned to the new USB/DP combo PHY binding. IPQ6018, IPQ8074 MSM8998, SC7280, SC8180X, SDM845, SM8150, SM8250, and SM8450 are transitioned to the new PCIe PHY binding, and SC8180X is transitioned to the new UFS phy binding. The UFS power supply situation is clarified, and a range of boards across MSM8996, MSM8998, SM4250, SM6115, SM6125, SM8350, SM8450, and SM8550 receives corrections for this. On IPQ5018 watchdog support is introduced, and the SCM driver has SDI (debug image) enabled - so that it can be disabled. On IPQ5332 USB is enabled. The hwspinlock identifier is corrected across IPQ5332, IPQ6018, IPQ8074 and IPQ9574. The reserved-memory ranges for the remoteprocs on MSM8916 boards are refactored, to reduce the amount of duplicated boilerplate definitions. A number of nodes are transitioned to be disabled by default, to facilitate new boards. Samsung Galaxy Tab A 8.0 and Samsung Galaxy Tab A 9.7 gains display support, and the latter capacitive keys. Samsung Galaxy J5 gains accelerometer support. The Dragonboard 410c gains missing ADC7533 regulator definition, and an overlay forcing the board to operate in host mode, for automation purposes. On MSM8976, the outgoing IPC bits for modem and wcss are corrected, and reserved-memory regions are updated. Incorrect reserved-memory regions are also corrected for MSM8992 and MSM8994 devices. The QRB2210 RB1 board gets debug UART moved per hardware update. regulator voltage ranges are corrected, remoteprocs are enabled, USB SuperSpeed PHY is enabled, and GPIO LEDs are introduced for Bluetooth, WiFi and a user LED. Interrupts are described for the SGMII PHYs on SA8775P Ride platform, and the inline crypto engine is introduced for UFS. On SC7180 the audio DSP remoteproc is introduced. Additional SKUs of the Lazor boards are added.The RT5682 audio codec part is reorganized to be easier to maintain. On Trogdor devices, the touchscreen and display panels are linked to improve the power cycling behavior across the two. On SC7280 the cpuidle states are rewritten to support OS-initiated PCSI mode. LMH interrupts are added, to receive feedback when throttling occurs. The embedded usb debugger (EUD) description and the dummy usb-c-connector node is removed, as this is not correctly described. The USB3 pipe clock input of the global clock controller is properly described. Modem remoteproc is introduced on SDM630, and the SDM670 PDC mapping is corrected. On the SDM845 MTP PCIe support is introduced. The volumn down and reset buttons are defined. Remoteproc firmware names and the WiFI configuration is corrected. On Sony Xperia XZ2, XZ2 Compact, and XZ3 GPIO lines names are provided for TLMM and PMICs. The camera regulators are also added. Display hardware blocks are added to SM6125, and enabled on Sony Xperia 10 II. The ref clock is wired up to PCIe PHY on SM8150. On SM8250/QRB5165, and the RB5 board, the DisplayPort controller and the TCPM is introduced, with all the plumbing to get USB role and orientation switching, as well as DisplayPort altmode to work. Interconnects and power-domains are also described for the QUPs on this platform. Previously ignored PMICs are described for the SM8350 Hardware Development Kit (HDK), and PMR735a regulators are introduced. The pinctrl state for uart18 is corrected. On SM8450 HDK audio routes are corrected, to enable the analog microphones on the board. The addition of the PRNG is reverted, in favor of an upcoming additon of a true RNG. Constants are replaced with QCOM_SCM_VMID_* defines on a variety of boards. The SM8550 QRD board gets Bluetooth support, and the camera clock controller is described. Additionally, a number of fixes are introduced in a variety of platforms and boards, to align with Devicetree bindings.
-
qcom-arm64-fixes-for-6.6725f5936 · ·
Qualcomm ARM64 DeviceTree fixes for v6.6 This fixes an error with an incorrect gpio-ranges preventing the PMIC GPIO instances from being registered on SA877P, and fixes a regression from a refactoring of the top-level clocks node that caused divclocks to no longer probe on a few of the MSM8996 devices.
-
sent/20231010-caleb-rb2-host-mode-4af5df88e72a-v1f579c1db · ·
put rb2 in host mode To: Andy Gross <agross@kernel.org> To: Bjorn Andersson <andersson@kernel.org> To: Konrad Dybcio <konrad.dybcio@linaro.org> To: Rob Herring <robh+dt@kernel.org> To: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> To: Conor Dooley <conor+dt@kernel.org> Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org> Cc: linux-arm-msm@vger.kernel.org Cc: devicetree@vger.kernel.org --- Caleb Connolly (1): arm64: dts: qcom: qrb4210-rb2: don't force usb peripheral mode arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 1 - 1 file changed, 1 deletion(-) --- base-commit: 6465e260f48790807eef06b583b38ca9789b6072 // Caleb (they/them)
-
sent/20231009-caleb-notch-example-f033f5ee56e7-v1c9b27c68 · ·
Add bindings for describing panel notches, cutouts, and corners Some folks have previously suggested that this information belongs in userspace and not in devicetree. I would like to be clear that devicetree is for describing hardware, and parts of a display which can never actually be seen are very much properties of the underlying hardware. To: Neil Armstrong <neil.armstrong@linaro.org> To: Sam Ravnborg <sam@ravnborg.org> To: David Airlie <airlied@gmail.com> To: Daniel Vetter <daniel@ffwll.ch> To: Rob Herring <robh+dt@kernel.org> To: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> To: Conor Dooley <conor+dt@kernel.org> To: Thierry Reding <thierry.reding@gmail.com> To: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> To: Caleb Connolly <caleb.connolly@linaro.org> Cc: Robert Mader <robert.mader@posteo.de> Cc: "Guido Gunther <agx@sigxcpu.org>" Cc: dri-devel@lists.freedesktop.org Cc: Hector Martin <marcan@marcan.st> Cc: devicetree@vger.kernel.org Cc: phone-devel@vger.kernel.org Cc: asahi@lists.linux.dev Cc: ~postmarketos/upstreaming@lists.sr.ht --- Caleb Connolly (1): dt-bindings: display: document display panel occlusions .../bindings/display/panel/panel-common.yaml | 7 + .../bindings/display/panel/panel-occlusions.yaml | 182 +++++++++++++++++++++ 2 files changed, 189 insertions(+) --- base-commit: 268c4b354d66908697299063c44c0b553b01d935 // Caleb (they/them)
-
sent/20231001-b4-sdm845-flash-dts-3c099478b60b-v19adce7a0 · ·
dts: qcom: enable flash LED on OnePlus 6 and PocoPhone F1 Like the SHIFT6mq, these devices both feature a dual-tone flash, enable them. Both patches have been shipping in postmarketOS for a few months now with no known issues. To: Andy Gross <agross@kernel.org> To: Bjorn Andersson <andersson@kernel.org> To: Konrad Dybcio <konrad.dybcio@linaro.org> To: Rob Herring <robh+dt@kernel.org> To: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> To: Conor Dooley <conor+dt@kernel.org> Cc: linux-arm-msm@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: ~postmarketos/upstreaming@lists.sr.ht Cc: phone-devel@vger.kernel.org --- Caleb Connolly (1): arm64: dts: qcom: sdm845-oneplus: enable flash LED Joel Selvaraj (1): arm64: dts: qcom: sdm845-xiaomi-beryllium: enable flash led .../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 23 ++++++++++++++++++++++ .../dts/qcom/sdm845-xiaomi-beryllium-common.dtsi | 22 +++++++++++++++++++++ 2 files changed, 45 insertions(+) --- base-commit: 4b9e79bf480770216d598ed9383c675d50b0ae92 // Caleb (they/them)
-
sent/20230929-caleb-rmi4-quirks-062a057e98bb-v11e9d7791 · ·
Input: synaptics-rmi4: add quirks for third party touchscreen controllers With the growing popularity of running upstream Linux on mobile devices, we're beginning to run into more and more edgecases. The OnePlus 6 is a fairly well supported 2018 era smartphone, selling over a million units in it's first 22 days. With this level of popularity, it's almost inevitable that we get third party replacement displays, and as a result, replacement touchscreen controllers. The OnePlus 6 shipped with an extremely usecase specific touchscreen driver, it implemented only the bare minimum parts of the highly generic rmi4 protocol, instead hardcoding most of the register addresses. As a result, the third party touchscreen controllers that are often found in replacement screens, implement only the registers that the downstream driver reads from. They additionally have other restrictions such as heavy penalties on unaligned reads. This series attempts to implement the necessary workaround to support some of these chips with the rmi4 driver. Although it's worth noting that at the time of writing there are other unofficial controllers in the wild that don't work even with these patches. We have been shipping these patches in postmarketOS for the last several months, and they are known to not cause any regressions on the OnePlus 6/6T (with the official Synaptics controller), however I don't own any other rmi4 hardware to further validate this. These patches were contributed by a community developer who has given permission for me to submit them on their behalf. --- To: Dmitry Torokhov <dmitry.torokhov@gmail.com> To: Vincent Huang <vincent.huang@tw.synaptics.com> Cc: methanal <baclofen@tuta.io> Cc: linux-input@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: phone-devel@vger.kernel.org Cc: ~postmarketos/upstreaming@lists.sr.ht --- Caleb Connolly (2): dt-bindings: input: syna,rmi4: document syna,pdt-fallback-desc Input: synaptics-rmi4 - handle duplicate/unknown PDT entries methanal (5): Input: synaptics-rmi4 - f12: use hardcoded values for aftermarket touch ICs Input: synaptics-rmi4 - f55: handle zero electrode count Input: synaptics-rmi4 - don't do unaligned reads in IRQ context Input: synaptics-rmi4 - read product ID on aftermarket touch ICs Input: synaptics-rmi4 - support fallback values for PDT descriptor bytes .../devicetree/bindings/input/syna,rmi4.yaml | 10 ++ drivers/input/rmi4/rmi_driver.c | 134 ++++++++++++++++++--- drivers/input/rmi4/rmi_driver.h | 8 ++ drivers/input/rmi4/rmi_f01.c | 14 +++ drivers/input/rmi4/rmi_f12.c | 117 ++++++++++++++---- drivers/input/rmi4/rmi_f55.c | 5 + include/linux/rmi.h | 3 + 7 files changed, 247 insertions(+), 44 deletions(-) --- base-commit: b0d95ff7653ef6ace66a24d6c09147d0731825ce // Caleb (they/them)
-
sent/20230905-caleb-qmi_cooling-56167ac97b12-v12727664f · ·
thermal: Introduce Qualcomm Thermal Mitigation Device support The Thermal Mitigation Device (TMD) Service is a QMI service that runs on remote subsystems (the modem and DSPs) on Qualcomm SoCs. It exposes various mitigations including passive thermal controls and rail voltage restrictions. This series introduces support for exposing TMDs as cooling devices in the kernel through the thermal framework, using the QMI interface. Each TMD client is described as a child of the remoteproc node in devicetree. With subnodes for each control. This series is based on previous work by Bhupesh Sharma which can be found at [1]. I'm sending this as a fresh series as it has been a year since the original version and I have rewritten most of the driver. [1]: https://lore.kernel.org/linux-arm-msm/20220912085049.3517140-1-bhupesh.sharma@linaro.org/ To: Andy Gross <agross@kernel.org> To: Bhupesh Sharma <bhupesh.linux@gmail.com> To: Bjorn Andersson <andersson@kernel.org> To: Konrad Dybcio <konrad.dybcio@linaro.org> To: Mathieu Poirier <mathieu.poirier@linaro.org> To: Rob Herring <robh+dt@kernel.org> To: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> To: Conor Dooley <conor+dt@kernel.org> To: "Rafael J. Wysocki" <rafael@kernel.org> To: Daniel Lezcano <daniel.lezcano@linaro.org> To: Amit Kucheria <amitk@kernel.org> To: Zhang Rui <rui.zhang@intel.com> To: Sibi Sankar <quic_sibis@quicinc.com> To: Manivannan Sadhasivam <mani@kernel.org> To: Thara Gopinath <thara.gopinath@gmail.com> Cc: linux-arm-msm@vger.kernel.org Cc: linux-remoteproc@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: linux-pm@vger.kernel.org --- Caleb Connolly (4): remoteproc: qcom: probe all child devices dt-bindings: thermal: Add qcom,qmi-cooling yaml bindings thermal: qcom: add qmi-cooling driver MAINTAINERS: Add entry for Qualcomm Cooling Driver .../bindings/remoteproc/qcom,msm8996-mss-pil.yaml | 13 + .../bindings/remoteproc/qcom,pas-common.yaml | 6 + .../bindings/thermal/qcom,qmi-cooling.yaml | 168 +++++++ MAINTAINERS | 8 + drivers/remoteproc/qcom_q6v5.c | 4 + drivers/remoteproc/qcom_q6v5_mss.c | 8 - drivers/thermal/qcom/Kconfig | 13 + drivers/thermal/qcom/Makefile | 1 + drivers/thermal/qcom/qmi-cooling.c | 520 +++++++++++++++++++++ drivers/thermal/qcom/qmi-cooling.h | 428 +++++++++++++++++ 10 files changed, 1161 insertions(+), 8 deletions(-) --- base-commit: 9067f80db58bbce81d5f0703aa2fd261e88bc812 // Caleb (they/them)
-
-
-