Hi Mario, [...] > +int psp_ring_platform_doorbell(int msg) > +{ > + struct psp_device *psp = psp_get_master_device(); > + struct psp_platform_access_device *pa_dev; > + u32 __iomem *button, *cmd; > + int ret, val; > + > + if (!psp || !psp->platform_access_data) > + return -ENODEV; > + > + pa_dev = psp->platform_access_data; > + button = psp->io_regs + pa_dev->vdata->doorbell_button_reg; > + cmd = psp->io_regs + pa_dev->vdata->doorbell_cmd_reg; > + > + mutex_lock(&pa_dev->doorbell_mutex); > + > + if (check_doorbell(button)) { > + dev_dbg(psp->dev, "doorbell is not ready\n"); Can you change dev_dbg() to dev_err() when there is an error in all cases in that function? [...] > + > + val = FIELD_GET(PSP_CMDRESP_STS, ioread32(cmd)); > + if (val) { > + ret = -EIO; > + goto unlock; > + } Are you sure that PSP_CMDRESP_STS should be zero? My tests failed due to the fact the val is 1 and moreover I don't see that check in the original Jan's patch. Can you also add here dev_err()? thanks, grzegorz