Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'i2c-for-6.6-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c fixes from Wolfram Sang:
"Bugfixes for Axxia when it is a target and for PEC handling of
stm32f7.

Plus, fix an OF node leak pattern in the mux subsystem"

* tag 'i2c-for-6.6-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
i2c: stm32f7: Fix PEC handling in case of SMBUS transfers
i2c: muxes: i2c-mux-gpmux: Use of_get_i2c_adapter_by_node()
i2c: muxes: i2c-demux-pinctrl: Use of_get_i2c_adapter_by_node()
i2c: muxes: i2c-mux-pinctrl: Use of_get_i2c_adapter_by_node()
i2c: aspeed: Fix i2c bus hang in slave read

+11 -7
+2 -1
drivers/i2c/busses/i2c-aspeed.c
··· 749 749 func_ctrl_reg_val = readl(bus->base + ASPEED_I2C_FUN_CTRL_REG); 750 750 func_ctrl_reg_val |= ASPEED_I2CD_SLAVE_EN; 751 751 writel(func_ctrl_reg_val, bus->base + ASPEED_I2C_FUN_CTRL_REG); 752 + 753 + bus->slave_state = ASPEED_I2C_SLAVE_INACTIVE; 752 754 } 753 755 754 756 static int aspeed_i2c_reg_slave(struct i2c_client *client) ··· 767 765 __aspeed_i2c_reg_slave(bus, client->addr); 768 766 769 767 bus->slave = client; 770 - bus->slave_state = ASPEED_I2C_SLAVE_INACTIVE; 771 768 spin_unlock_irqrestore(&bus->lock, flags); 772 769 773 770 return 0;
+6 -3
drivers/i2c/busses/i2c-stm32f7.c
··· 1059 1059 /* Configure PEC */ 1060 1060 if ((flags & I2C_CLIENT_PEC) && f7_msg->size != I2C_SMBUS_QUICK) { 1061 1061 cr1 |= STM32F7_I2C_CR1_PECEN; 1062 - cr2 |= STM32F7_I2C_CR2_PECBYTE; 1063 - if (!f7_msg->read_write) 1062 + if (!f7_msg->read_write) { 1063 + cr2 |= STM32F7_I2C_CR2_PECBYTE; 1064 1064 f7_msg->count++; 1065 + } 1065 1066 } else { 1066 1067 cr1 &= ~STM32F7_I2C_CR1_PECEN; 1067 1068 cr2 &= ~STM32F7_I2C_CR2_PECBYTE; ··· 1150 1149 f7_msg->stop = true; 1151 1150 1152 1151 /* Add one byte for PEC if needed */ 1153 - if (cr1 & STM32F7_I2C_CR1_PECEN) 1152 + if (cr1 & STM32F7_I2C_CR1_PECEN) { 1153 + cr2 |= STM32F7_I2C_CR2_PECBYTE; 1154 1154 f7_msg->count++; 1155 + } 1155 1156 1156 1157 /* Set number of bytes to be transferred */ 1157 1158 cr2 &= ~(STM32F7_I2C_CR2_NBYTES_MASK);
+1 -1
drivers/i2c/muxes/i2c-demux-pinctrl.c
··· 61 61 if (ret) 62 62 goto err; 63 63 64 - adap = of_find_i2c_adapter_by_node(priv->chan[new_chan].parent_np); 64 + adap = of_get_i2c_adapter_by_node(priv->chan[new_chan].parent_np); 65 65 if (!adap) { 66 66 ret = -ENODEV; 67 67 goto err_with_revert;
+1 -1
drivers/i2c/muxes/i2c-mux-gpmux.c
··· 52 52 dev_err(dev, "Cannot parse i2c-parent\n"); 53 53 return ERR_PTR(-ENODEV); 54 54 } 55 - parent = of_find_i2c_adapter_by_node(parent_np); 55 + parent = of_get_i2c_adapter_by_node(parent_np); 56 56 of_node_put(parent_np); 57 57 if (!parent) 58 58 return ERR_PTR(-EPROBE_DEFER);
+1 -1
drivers/i2c/muxes/i2c-mux-pinctrl.c
··· 62 62 dev_err(dev, "Cannot parse i2c-parent\n"); 63 63 return ERR_PTR(-ENODEV); 64 64 } 65 - parent = of_find_i2c_adapter_by_node(parent_np); 65 + parent = of_get_i2c_adapter_by_node(parent_np); 66 66 of_node_put(parent_np); 67 67 if (!parent) 68 68 return ERR_PTR(-EPROBE_DEFER);