6.18: Add Arduino UNO Q (QRB2210) board support - #995
6.18: Add Arduino UNO Q (QRB2210) board support#995Ricardo Salveti (ricardosalveti) wants to merge 30 commits into
Conversation
The config_noc interconnect should use SLAVE_QUP_0. Signed-off-by: Wojciech Slenska <wojciech.slenska@gmail.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Link: https://lore.kernel.org/r/20251009090718.32503-1-wojciech.slenska@gmail.com Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit cdf9756) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add nodes to support uart1 and uart5. Signed-off-by: Wojciech Slenska <wojciech.slenska@gmail.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Link: https://lore.kernel.org/r/20251009090858.32911-1-wojciech.slenska@gmail.com Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit 89e4902) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
uart2 is used in Arduino UnoQ as an interface between microprocessor and microcontroller. Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Link: https://lore.kernel.org/r/20251120155825.121483-6-r.mereu.kernel@arduino.cc Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit 925ac1f) [rsalveti: applied to qcm2290.dtsi, as the rename to agatti.dtsi is not part of this branch] Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Patching existing DT nodes based on full path is error prone and generally not recommended. Follow the pattern introduced in the last platforms, add gpu_zap_shader label to the ZAP node and use it in the board files. Only the qcm2290 part of the upstream commit is backported here, as the label is required by the Arduino UNO Q board DT. The remaining platforms are left untouched to avoid churn on boards that do not need it. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: David Heidelberg <david@ixit.cz> Link: https://lore.kernel.org/r/20251028-dt-zap-shader-v1-7-7eccb823b986@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit 2377626) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add APR (asynchronous packet router) node and its associated services required to enable audio on QRB2210 RB1 board. Cc: Srinivas Kandagatla <srini@kernel.org> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org> Link: https://lore.kernel.org/r/20251022-rb1_hdmi_audio-v3-1-0d38f777a547@linaro.org Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit f8d21b5) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
On Agatti platform the ADSP provides FastRPC support. Add corresponding device node, in order to be able to utilize the DSP offload from the Linux side. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260113-agatti-fastrpc-v2-1-b66870213f89@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit 851d5ae) [rsalveti: applied to qcm2290.dtsi, as the rename to agatti.dtsi is not part of this branch] Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
|
Merge Check Failed: No CR Numbers Found Error: No Change Request numbers were found. Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests. |
|
As we are adding Ventuno-Q there is also need to bring Uno-Q along, so we can have arduino support for both boards coming from the QLI LTS kernel. |
…mpatible Add a compatible for the LPASS LPI pin controller on QCM2290. It seems to be compatible with sm6115 LPASS pinctrl. Cc: Konrad Dybcio <konradybcio@kernel.org> Cc: Srinivas Kandagatla <srini@kernel.org> Acked-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20251007-rb1_hdmi_audio-v2-1-821b6a705e4c@linaro.org (cherry picked from commit f919466) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add the Low Power Audio SubSystem Low Power Island (LPASS LPI) pin controller device node required for audio subsystem on Qualcomm QRB2210 RB1. QRB2210 is based on qcm2290 which is based on sm6115. While at this, also add description of lpi_i2s2 pins (active state) required for audio playback via HDMI/I2S. Cc: Srinivas Kandagatla <srini@kernel.org> Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org> Link: https://lore.kernel.org/r/20251022-rb1_hdmi_audio-v3-2-0d38f777a547@linaro.org Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit 1fc3073) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add additional OPP entries for the Agatti platform to support higher operating frequencies as specified in the hardware documentation. Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260507-iris-ar50lt-v1-16-d22cccedc3e2@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit f8874bc) [rsalveti: applied to qcm2290.dtsi, as the rename to agatti.dtsi is not part of this branch] Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
…domains property Add the missing power-domains property to associate DISPCC with RPMPD_CX. This is to ensure the genpd performance state votes on the GDSC to get propagated to the CX rail and to avoid the rail under-voltage conditions. This change breaks ABI, as the power-domains property is marked as required. Fixes: 85cedb4 ("dt-bindings: clock: Add qualcomm QCM2290 DISPCC bindings") Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260718-shikra-dispcc-gpucc-v6-1-62703e05ef0f@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit 70ef527) [rsalveti: keep the DSI1/sleep clocks already present in this branch, and require power-domains only when the compatible is not qcom,shikra-dispcc. Upstream marks it required for every compatible, but this branch also matches qcom,shikra-dispcc against this schema and the Shikra DTs do not describe the CX domain yet, so making it unconditional regresses dtbs_check on shikra-cq{m,s}-evk{,-imx577-camera}] Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
…SPCC Add the missing power-domains property to associate DISPCC with CX rail. This is to ensure the genpd performance state votes on the GDSC to get propagated to the CX rail and to avoid the rail under-voltage conditions. Fixes: a2b3209 ("arm64: dts: qcom: qcm2290: Add display nodes") Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260718-shikra-dispcc-gpucc-v6-12-62703e05ef0f@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit 26d7b23) [rsalveti: applied to qcm2290.dtsi, keeping the DSI1/sleep clocks already present in this branch] Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
…619L/610/702
These GPUs have physically have the same regions as the base case
("main" + "cx_mem" + "cx_dbgc"). Remove the specific override.
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Patchwork: https://patchwork.freedesktop.org/patch/696547/
Message-ID: <20251229-topic-6115_2290_gpu_dbgc-v1-1-4a24d196389c@oss.qualcomm.com>
Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20251229-topic-6115_2290_gpu_dbgc-v1-1-4a24d196389c@oss.qualcomm.com
(cherry picked from commit ae26b4d)
Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add entry for Arduino SRL (https://arduino.cc) Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Link: https://lore.kernel.org/r/20251120155825.121483-2-r.mereu.kernel@arduino.cc Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit d16ffac) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Document Arduino imola, UnoQ codename. Arduino UnoQ combines Qualcomm Dragonwing™ QRB2210 microprocessor with STMicroelectronics STM32U585 microcontroller. Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20251120155825.121483-5-r.mereu.kernel@arduino.cc Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit 311d173) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add unoq mcu interface. It describes an iterface between Qualcomm QRB2210 microprocessor and STMicroelectronics STM32U585 microcontroller on Arduino UnoQ single-board computer. This is a trivial device since it's usage is handled in user space by the arduino-router service. Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Link: https://patch.msgid.link/20251120155825.121483-3-r.mereu.kernel@arduino.cc Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit a7bde7c) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add compatible entry in spidev describing in Arduino UnoQ single-board computer the interface between Qualcomm QRB2210 microprocessor and STMicroelectronics STM32U585 microcontroller. It is handled in user space by the arduino-router service. Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Link: https://patch.msgid.link/20251120155825.121483-4-r.mereu.kernel@arduino.cc Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 43a3adb) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Arduino UnoQ is a single-board computer combining Qualcomm Dragonwing™ QRB2210 microprocessor with STMicroelectronics STM32U585 microcontroller. Support to a simply boot to shell environment includes: - UART, I2C, SPI - onboard LEDS - eMMC - WLAN and BT Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Link: https://lore.kernel.org/r/20251120155825.121483-7-r.mereu.kernel@arduino.cc Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit 3f745bc) [rsalveti: include qcm2290.dtsi, as the rename to agatti.dtsi is not part of this branch] Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
CS pin added on pinctrl0 property is causing spidev to return -ENODEV since that GPIO is already part of spi5 pinmuxing. Fixes: 3f745bc ("arm64: dts: qcom: qrb2210: add dts for Arduino unoq") Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260213101002.105238-1-r.mereu.kernel@arduino.cc Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit 1a040df) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
ANX7625 can be used to mux converted video stream with the USB signals on a Type-C connector. Describe the optional connector subnode, make it exclusive with the AUX bus and port@1 as it is impossible to have both eDP panel and USB-C connector. Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://patch.msgid.link/20260121-anx7625-typec-v2-1-d14f31256a17@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> (cherry picked from commit 1d75324) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
ANX7625 can be used as a USB-C controller, handling USB and DP data streams. Provide minimal Type-C support necessary for ANX7625 to register the Type-C port device and properly respond to data / power role events from the Type-C partner. While ANX7625 provides TCPCI interface, using it would circumvent the on-chip running firmware. Analogix recommended using the higher-level interface instead of TCPCI. Reviewed-by: Xin Ji <xji@analogixsemi.com> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Link: https://patch.msgid.link/20260121-anx7625-typec-v2-2-d14f31256a17@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> (cherry picked from commit f81455b) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Swapping the data role requires sending the message to the other USB-C side. Implement sending these messages through the OCM. The code is largely based on the anx7411.c USB-C driver. Reviewed-by: Xin Ji <xji@analogixsemi.com> Link: https://patch.msgid.link/20260121-anx7625-typec-v2-3-d14f31256a17@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> (cherry picked from commit 8ad0f7d) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
…ency When CONFIG_TYPEC is enabled, but USB_ROLE_SWITCH=m, the anx7625 driver fails to link as built-in: aarch64-linux-ld: drivers/gpu/drm/bridge/analogix/anx7625.o: in function `anx7625_i2c_remove': anx7625.c:(.text+0x6ec): undefined reference to `usb_role_switch_put' aarch64-linux-ld: drivers/gpu/drm/bridge/analogix/anx7625.o: in function `anx7625_typec_set_status': anx7625.c:(.text+0x3080): undefined reference to `usb_role_switch_set_role' aarch64-linux-ld: drivers/gpu/drm/bridge/analogix/anx7625.o: in function `anx7625_i2c_probe': anx7625.c:(.text+0x5368): undefined reference to `fwnode_usb_role_switch_get' The problem is that both dependencies are optional in the sense of allowing the anx7625 driver to call the exported interfaces to be used from a loadable module, but cannot work for built-in drivers. It would be possible to handle all nine combinations of the CONFIG_TYPEC and CONFIG_USB_ROLE_SWITCH tristate options, but that does add a lot of complexity that seems unnecessary when in reality any user of this driver would have both enabled anyway. Turn both dependencies into hard 'depends on' here to only allow configurations where it's possible to actually use them, and remove the misguided IS_REACHABLE() check that did nothing here. Fixes: f81455b ("drm: bridge: anx7625: implement minimal Type-C support") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patch.msgid.link/20260304083604.724519-1-arnd@kernel.org Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> (cherry picked from commit 10e9ff4) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
The typec_set_*() functions do not tolerate being passed the NULL typec_port instance. However, if CONFIG_TYPEC is enabled, but anx7625 DT node doesn't have the usb-c connector fwnode, then typec_port remains NULL, crashing the kernel. Prevent calling typec_set_foo() functions by checking that ctx->typec_port is not NULL in anx7625_typec_set_status(). Call trace: typec_set_orientation+0x18/0x68 (P) anx7625_typec_set_status+0x108/0x13c anx7625_work_func+0x124/0x438 process_one_work+0x214/0x648 worker_thread+0x1b4/0x358 kthread+0x14c/0x214 ret_from_fork+0x10/0x20 Code: 910003fd a90153f3 aa0003f3 2a0103f4 (f9431400) Fixes: f81455b ("drm: bridge: anx7625: implement minimal Type-C support") Reported-by: Salendarsingh Gaud <sgaud@qti.qualcomm.com> Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com> [db: dropped chunk anx7625_typec_unregister(), wrote commit message] Cc: Amit Kucheria <akucheri@qti.qualcomm.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patch.msgid.link/20260215-anx-fix-no-typec-v1-1-75172a5ca88b@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> (cherry picked from commit 8e3d8b3) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
During initial checks the ANX7625 bridge can be powered on before setting up the Type-C port. At this point, when anx7625_ocm_loading_check() checks if it can disable PD or not, it will notice that typec_port is not set and disable PD, breaking orientation and HPD handling. Unify the check between anx7625_ocm_loading_check() anx7625_i2c_probe() and anx7625_typec_register() and check for the presence of the "connector" node. Fixes: 8ad0f7d ("drm: bridge: anx7625: implement message sending") Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Reviewed-by: Xin Ji <xji@analogixsemi.com> Tested-by: Loic Poulain <loic.poulain@oss.qualcomm.com> Link: https://patch.msgid.link/20260211-anx7625-fix-pd-v1-1-1dd31451b06f@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> (cherry picked from commit 91d0450) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
…bridge Aruino Uno-Q uses Analogix ANX7625 DSI-to-DP bridge to convert DSI signals to the connected USB-C DisplayPort dongles. Decribe the chip, USB-C connector and routing of USB and display signals. Co-developed-by: Martino Facchin <m.facchin@arduino.cc> Signed-off-by: Martino Facchin <m.facchin@arduino.cc> Tested-by: Loic Poulain <loic.poulain@oss.qualcomm.com> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260213-uno-q-anx7625-v2-1-c23359616528@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit d5574bb) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
…onstraints Remove pm8150b fallback compatible from pm4125_vbus and fix regulator constraints in qrb2210 DTS files to use microvolt instead of microamp. Signed-off-by: Rakesh Kota <rakesh.kota@oss.qualcomm.com> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260706-add_pm4125-vbus-reg-v3-4-999d78a87b81@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit cab6d96) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
The gcc_qupv3_wrap0_s[0-5]_clk_src RCGs feed the QUP serial engines (UART/I2C/SPI). Since shared RCGs are parked to XO at registration time, binding the gcc-qcm2290 driver reprograms these clocks away from the rate configured by the bootloader. For the UART used as the boot console this drops early console output until the serial driver later reconfigures the clock. Switch the QUP wrap0 clock sources over to clk_rcg2_shared_no_init_park_ops so their frequency is left unchanged at registration time, keeping the bootloader-configured console working across the gcc driver probe. Fixes: 01a0a6c ("clk: qcom: Park shared RCGs upon registration") Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260722-agatti-no-park-v1-1-31ae3a4774e5@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org> (cherry picked from commit 9c4cee9) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
When transmit flushing a qcom-geni UART during an ongoing TX DMA, the UART gets stuck infinitely repeating corrupted TX DMA frames. The DMA-mode uart_ops does not provide a flush_buffer callback, so an in-flight transfer can complete after serial core has reset the transmit kfifo, underflowing its length and resubmitting page-sized transfers indefinitely. Add one that stops the transfer and clears tx_remaining and tx_queued. The stop path was also broken: it unmapped the buffer while the serial engine could still read it, and never reset the TX DMA state machine. Cancel the main sequencer command first, then reset the state machine and wait for it before unmapping. Drop the early return so a pending mapping is also cleaned up when the main command is inactive. The bug can be triggered from userspace with a large write immediately followed by TCOFLUSH. A following tcdrain will hang forever. The bug was reproduced and this fix was validated on Arduino Uno Q (QRB2210) using /dev/ttyHS1. Assisted-by: Claude:claude-5-opus Codex:gpt-5 Signed-off-by: Jan Sebastian Götte <linux@jaseg.de> Fixes: 2aaa43c ("tty: serial: qcom-geni-serial: add support for serial engine DMA") Cc: stable <stable@kernel.org> Reviewed-by: Praveen Talari <praveen.talari@oss.qualcomm.com> Link: https://patch.msgid.link/20260729174105.21838-2-git@jaseg.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit e3c0483) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
The qcom GENI serial DMA TX completion path advances the transmit fifo by the number of bytes recorded in port->tx_remaining. If uart_flush_buffer() runs after the hardware has completed a DMA transfer but before the DMA completion interrupt has been handled, the serial core resets the transmit fifo while port->tx_remaining still describes the old DMA transfer. A previous fix avoided advancing an empty fifo by checking that the fifo length is at least tx_remaining. That still does not distinguish the old DMA payload from new bytes written after the flush. If userspace writes new data before the stale DMA completion interrupt is handled, the fifo can again contain at least tx_remaining bytes and the stale completion can advance and discard those new bytes. Mark an in-flight DMA transfer stale when the transmit fifo is flushed. The later completion still unprepares the original DMA mapping using the saved length, but it no longer advances the transmit fifo. Fixes: 2aaa43c ("tty: serial: qcom-geni-serial: add support for serial engine DMA") Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com> Link: https://patch.msgid.link/20260708131726.768692-1-lgs201920130244@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 7ea38c4) Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
The Arduino UNO Q exposes its three user LEDs (red, green, blue) both individually and as a single RGB LED through the leds-group-multicolor driver. Enable it as a module so the multi-led node in qrb2210-arduino-imola.dts probes. Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
962b4f3 to
6e188e5
Compare
|
Merge Check Failed: No CR Numbers Found Error: No Change Request numbers were found. Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests. |
|
| Commit | Warning | Why it stands |
|---|---|---|
f3230c634fca APR services |
line length of 101 ×3 |
Byte-identical to upstream f8d21b5e4caa; re-indenting would break check-patch-compliance's diff against the Link: patch. |
9b8bef5c0689, 1764203ac478, fa2f4d458d4e, 086538743104 |
Unknown commit id ×4 |
Upstream Fixes: tags. The targets are in this series (2006dea1a7ef, d297a8669579 ×2, f5e18277159f) but under backport SHAs. Rewriting them to local SHAs would destroy upstream traceability. |
fa2f4d458d4e |
Reported-by: without Closes: |
Verbatim upstream message. |
1764203ac478 |
Prefer a maximum 75 chars per line |
Verbatim upstream message. |
80c257f6c534 |
Invalid email format for stable |
Verbatim upstream trailer. |
The three vendor "arduino" appears un-documented warnings from the previous run
were real, and are fixed by backporting the missing d16ffac77171
"dt-bindings: vendor-prefixes: Add Arduino name".
check-patch-compliance — 3 adapted backports + 1 local patch
BACKPORT: arm64: dts: qcom: add gpu_zap_shader label ==> Change is different from the one mentioned in Link
BACKPORT: dt-bindings: clock: qcom,qcm2290-dispcc: Add missing power-domains ==> Change is different from the one mentioned in Link
BACKPORT: arm64: dts: qcom: qrb2210: add dts for Arduino unoq ==> Change is different from the one mentioned in Link
QCLINUX: arm64: defconfig: Enable multicolor LED group support ==> Commit summary does not start with a required prefix
The first three are precisely what BACKPORT: denotes, each documented in a
[rsalveti: ...] note: only the qcm2290.dtsi hunk of a 64-file commit; keeping
this branch's DSI1/sleep clocks plus the Shikra scoping; and including
qcm2290.dtsi rather than agatti.dtsi since the rename (021df9dee9cd) is not
on this branch. The script has no exemption for BACKPORT:, so any adapted
backport fails by construction — worth relaxing the diff check for that prefix.
The last is a downstream-only defconfig change: the checker accepts only
FROMLIST|FROMGIT|UPSTREAM|BACKPORT and requires a Link:, which no local patch
can satisfy — though this branch already carries 119 QCLINUX: commits,
including config ones. Happy to move it to the BSP layer if you prefer the PR to
be exclusively backports.
Backport series enabling the Arduino UNO Q (
qrb2210-arduino-imola, QCM2290/Agatti)on qcom-6.18.y. 29 commits: 18 UPSTREAM, 7 BACKPORT, 3 FROMGIT, 1 QCLINUX.
The BACKPORT ones are applied to
qcm2290.dtsi, since the upstream rename toagatti.dtsi(021df9d) is not part of this branch.gpu_zap_shaderlabel, APR services, FastRPC on the ADSP, LPASS LPI pin controller,venus 300/384 MHz OPPs, and the missing CX power domain on DISPCC (without it DPU
performance-state votes never reach the CX rail).
arduino,imolacompatible,arduino,unoq-mcubinding + spidev entry,the board DTS, spidev node fix, and the DSI/DP bridge description.
Includes both upstream
Fixes:commits, so boards without aconnectornode areunaffected.
bootloader console alive across gcc probe), two geni-serial TX DMA fixes (one
Cc: stable, reproduced on this board).CONFIG_LEDS_GROUP_MULTICOLOR=mfor the RGB user LED.Deliberately not taken: the qcm2290→agatti rename, the tree-wide lowercase-hex and
GICv3-PPI sweeps, IPA nodes, camera mclk pinctrl, and the v7.2 UBWC rework.
Validation
Built with meta-qcom / meta-qcom-3rdparty and booted on real hardware in LAVA
(
core-image-baseandqcom-multimedia-image). Working: display (card0,card0-DP-1via the ANX7625) and GPU render node, USB-C Type-C port with data/powerrole and orientation, iris decoder + encoder, modem and ADSP remoteprocs with
/dev/fastrpc-adsp, eMMC with CQE, WiFi, Bluetooth, spidev to the MCU, GPIO + RGBLEDs, gpio-keys, cpufreq, thermal. No oops, no deferred probes, no regulator errors.
qrb2210-arduino-imola.dtbpassesCHECK_DTBS=ycleanly, as doqrb2210-rb1and thesm6115 boards; full
make dtbsis clean.Known gaps
to lore but not yet merged (upstream's imola DTS has no sound nodes), plus the
va-macro version-detection rework, which conflicts with this branch's local shikra
divergence in the same function. Planned as a separate, separately validated step.