diff options
Diffstat (limited to 'drivers/i3c/master.c')
| -rw-r--r-- | drivers/i3c/master.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index 2dc628d4f1ae..5f4bd52121fe 100644 --- a/drivers/i3c/master.c +++ b/drivers/i3c/master.c @@ -385,8 +385,9 @@ static void i3c_bus_set_addr_slot_status(struct i3c_bus *bus, u16 addr,  		return;  	ptr = bus->addrslots + (bitpos / BITS_PER_LONG); -	*ptr &= ~(I3C_ADDR_SLOT_STATUS_MASK << (bitpos % BITS_PER_LONG)); -	*ptr |= status << (bitpos % BITS_PER_LONG); +	*ptr &= ~((unsigned long)I3C_ADDR_SLOT_STATUS_MASK << +						(bitpos % BITS_PER_LONG)); +	*ptr |= (unsigned long)status << (bitpos % BITS_PER_LONG);  }  static bool i3c_bus_dev_addr_is_avail(struct i3c_bus *bus, u8 addr) @@ -1980,7 +1981,6 @@ of_i3c_master_add_i3c_boardinfo(struct i3c_master_controller *master,  {  	struct i3c_dev_boardinfo *boardinfo;  	struct device *dev = &master->dev; -	struct i3c_device_info info = { };  	enum i3c_addr_slot_status addrstatus;  	u32 init_dyn_addr = 0; @@ -2012,8 +2012,8 @@ of_i3c_master_add_i3c_boardinfo(struct i3c_master_controller *master,  	boardinfo->pid = ((u64)reg[1] << 32) | reg[2]; -	if ((info.pid & GENMASK_ULL(63, 48)) || -	    I3C_PID_RND_LOWER_32BITS(info.pid)) +	if ((boardinfo->pid & GENMASK_ULL(63, 48)) || +	    I3C_PID_RND_LOWER_32BITS(boardinfo->pid))  		return -EINVAL;  	boardinfo->init_dyn_addr = init_dyn_addr;  | 
