From 3f6be01484bc6f8887460c7c4e0546496818ebf0 Mon Sep 17 00:00:00 2001 From: Dino Li Date: Fri, 29 Apr 2022 15:04:28 +0800 Subject: [PATCH] it8xxx2: espi/kbc: read kbc event type before read input buffer Host might send command or data immediately after EC read the KBC input buffer (IBF gets cleared). This change make sure EC won't get wrong event type in IBF ISR. Signed-off-by: Dino Li --- drivers/espi/espi_it8xxx2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/espi/espi_it8xxx2.c b/drivers/espi/espi_it8xxx2.c index 98d96681dfc..86a3b170a3d 100644 --- a/drivers/espi/espi_it8xxx2.c +++ b/drivers/espi/espi_it8xxx2.c @@ -378,14 +378,14 @@ static void kbc_it8xxx2_ibf_isr(const struct device *dev) /* KBC Input Buffer Full event */ kbc_evt->evt = HOST_KBC_EVT_IBF; - /* The data in KBC Input Buffer */ - kbc_evt->data = kbc_reg->KBHIDIR; /* * Indicates if the host sent a command or data. * 0 = data * 1 = Command. */ kbc_evt->type = !!(kbc_reg->KBHISR & KBC_KBHISR_A2_ADDR); + /* The data in KBC Input Buffer */ + kbc_evt->data = kbc_reg->KBHIDIR; espi_send_callbacks(&data->callbacks, dev, evt); }