Input: synaptics-rmi4 - fix command completion check for bootloader v7/v8
The command register is reset to 0 when a command has completed. Check for this condition instead of the error status, which will not accurately reflect completion. In particular, the incorrect condition caused every command error to be reported as a timeout. Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Link: https://lore.kernel.org/r/20220608124808.51402-4-matthias.schiffer@ew.tq-group.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
Родитель
33fe4d976f
Коммит
b4d6c6a07f
|
@ -114,13 +114,13 @@ static irqreturn_t rmi_f34_attention(int irq, void *ctx)
|
|||
complete(&f34->v5.cmd_done);
|
||||
} else {
|
||||
ret = rmi_read_block(f34->fn->rmi_dev,
|
||||
f34->fn->fd.data_base_addr +
|
||||
f34->v7.off.flash_status,
|
||||
&status, sizeof(status));
|
||||
rmi_dbg(RMI_DEBUG_FN, &fn->dev, "%s: status: %#02x, ret: %d\n",
|
||||
f34->fn->fd.data_base_addr +
|
||||
f34->v7.off.flash_cmd,
|
||||
&status, sizeof(status));
|
||||
rmi_dbg(RMI_DEBUG_FN, &f34->fn->dev, "%s: cmd: %#02x, ret: %d\n",
|
||||
__func__, status, ret);
|
||||
|
||||
if (!ret && !(status & 0x1f))
|
||||
if (!ret && status == CMD_V7_IDLE)
|
||||
complete(&f34->v7.cmd_done);
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче