A SoC typically has multiple remoteprocs (ADSP, MPSS, CDSP, etc.), each
registering its own SMEM GLINK instance. With the static name "glink-smem"
all instances appear identically in /proc/interrupts, making it impossible
to associate an IRQ with a specific remote processor.

Pass dev_name(&smem->dev) to devm_request_irq() instead. The device name
is already set to "<parent>:<edge-node>" which uniquely identifies each
instance without requiring an additional field in the driver struct.

Signed-off-by: Chunkai Deng <[email protected]>
---
 drivers/rpmsg/qcom_glink_smem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/rpmsg/qcom_glink_smem.c b/drivers/rpmsg/qcom_glink_smem.c
index 62adc4db2317..edab912557ac 100644
--- a/drivers/rpmsg/qcom_glink_smem.c
+++ b/drivers/rpmsg/qcom_glink_smem.c
@@ -307,7 +307,7 @@ struct qcom_glink_smem *qcom_glink_smem_register(struct 
device *parent,
        smem->irq = of_irq_get(smem->dev.of_node, 0);
        ret = devm_request_irq(&smem->dev, smem->irq, qcom_glink_smem_intr,
                               IRQF_NO_SUSPEND | IRQF_NO_AUTOEN,
-                              "glink-smem", smem);
+                              dev_name(&smem->dev), smem);
        if (ret) {
                dev_err(&smem->dev, "failed to request IRQ\n");
                goto err_put_dev;

-- 
2.34.1


Reply via email to