The glink transports enable their receive interrupt only after
qcom_glink_native_probe() has returned, while the version command is sent
from within native_probe(). A remote that answers quickly can have its
version ACK dropped, and the handshake never completes.

Patch 1 moves the version command out into a new
qcom_glink_native_start(), which the transports call once their interrupt
is live. Patch 2 drops IRQF_NO_AUTOEN, which is no longer needed once the
ordering is explicit.

---
Changes in v2:
- Drop IRQF_NO_AUTOEN in a second patch, as Konrad suggested on v1.
- Keep a failing chrdev registration non-fatal in native_start() and note
  it in the kernel-doc; v1 turned it into a probe failure by mistake.
- Add Assisted-by tags per Documentation/process/coding-assistants.rst.
- Link to v1: 
https://patch.msgid.link/20260618-rpmsg-glink-split-protocol-start-v1-1-c4f93986c...@oss.qualcomm.com

---
Chunkai Deng (2):
      rpmsg: glink: Split protocol start out of native_probe
      rpmsg: glink: Request the RX interrupt already enabled

 drivers/rpmsg/qcom_glink_native.c | 32 ++++++++++++++++++++++++++++----
 drivers/rpmsg/qcom_glink_native.h |  1 +
 drivers/rpmsg/qcom_glink_rpm.c    | 30 ++++++++++++++++++++----------
 drivers/rpmsg/qcom_glink_smem.c   | 27 +++++++++++++++++----------
 4 files changed, 66 insertions(+), 24 deletions(-)
---
base-commit: a225caacc36546a09586e3ece36c0313146e7da9
change-id: 20260604-rpmsg-glink-split-protocol-start-3df74dbd5c94

Best regards,
--  
Chunkai Deng <[email protected]>


Reply via email to