From efa3571a54982207f60d3e960c4ccd99eac972af Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 30 Dec 2024 11:11:18 +0000 Subject: [PATCH] Revert "i3c: master: svc: Modify enabled_events bit 7:0 to act as IBI enable counter" This reverts commit 6d636e0934979690836ea111f160d43705038568 which is commit 25bc99be5fe53853053ceeaa328068c49dc1e799 upstream. It breaks the Android kernel abi and can be brought back in the future in an abi-safe way if it is really needed. Bug: 161946584 Change-Id: Iac7ace1a9671eb1c57dac23f885ab615368348cc Signed-off-by: Greg Kroah-Hartman --- drivers/i3c/master/svc-i3c-master.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i3c-master.c index 8f0da6e2d9d8..3dc34b31767d 100644 --- a/drivers/i3c/master/svc-i3c-master.c +++ b/drivers/i3c/master/svc-i3c-master.c @@ -128,8 +128,8 @@ /* This parameter depends on the implementation and may be tuned */ #define SVC_I3C_FIFO_SIZE 16 -#define SVC_I3C_EVENT_IBI GENMASK(7, 0) -#define SVC_I3C_EVENT_HOTJOIN BIT(31) +#define SVC_I3C_EVENT_IBI BIT(0) +#define SVC_I3C_EVENT_HOTJOIN BIT(1) struct svc_i3c_cmd { u8 addr; @@ -204,7 +204,7 @@ struct svc_i3c_master { spinlock_t lock; } ibi; struct mutex lock; - u32 enabled_events; + int enabled_events; u32 mctrl_config; }; @@ -1541,7 +1541,7 @@ static int svc_i3c_master_enable_ibi(struct i3c_dev_desc *dev) return ret; } - master->enabled_events++; + master->enabled_events |= SVC_I3C_EVENT_IBI; svc_i3c_master_enable_interrupts(master, SVC_I3C_MINT_SLVSTART); return i3c_master_enec_locked(m, dev->info.dyn_addr, I3C_CCC_EVENT_SIR); @@ -1553,7 +1553,7 @@ static int svc_i3c_master_disable_ibi(struct i3c_dev_desc *dev) struct svc_i3c_master *master = to_svc_i3c_master(m); int ret; - master->enabled_events--; + master->enabled_events &= ~SVC_I3C_EVENT_IBI; if (!master->enabled_events) svc_i3c_master_disable_interrupts(master);