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-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c fixes from Wolfram Sang:
"Usual business: a driver fix, a DT fix, a minor core fix"

* tag 'i2c-for-6.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
i2c: npcm7xx: Fix callback completion ordering
i2c: mux: Avoid potential false error message in i2c_mux_add_adapter
dt-bindings: i2c: mxs: Pass ref and 'unevaluatedProperties: false'

+12 -12
+4 -1
Documentation/devicetree/bindings/i2c/i2c-mxs.yaml
··· 9 9 maintainers: 10 10 - Shawn Guo <shawnguo@kernel.org> 11 11 12 + allOf: 13 + - $ref: /schemas/i2c/i2c-controller.yaml# 14 + 12 15 properties: 13 16 compatible: 14 17 enum: ··· 40 37 - dmas 41 38 - dma-names 42 39 43 - additionalProperties: false 40 + unevaluatedProperties: false 44 41 45 42 examples: 46 43 - |
+7 -10
drivers/i2c/busses/i2c-npcm7xx.c
··· 694 694 { 695 695 struct i2c_msg *msgs; 696 696 int msgs_num; 697 + bool do_complete = false; 697 698 698 699 msgs = bus->msgs; 699 700 msgs_num = bus->msgs_num; ··· 723 722 msgs[1].flags & I2C_M_RD) 724 723 msgs[1].len = info; 725 724 } 726 - if (completion_done(&bus->cmd_complete) == false) 727 - complete(&bus->cmd_complete); 728 - break; 729 - 725 + do_complete = true; 726 + break; 730 727 case I2C_NACK_IND: 731 728 /* MASTER transmit got a NACK before tx all bytes */ 732 729 bus->cmd_err = -ENXIO; 733 - if (bus->master_or_slave == I2C_MASTER) 734 - complete(&bus->cmd_complete); 735 - 730 + do_complete = true; 736 731 break; 737 732 case I2C_BUS_ERR_IND: 738 733 /* Bus error */ 739 734 bus->cmd_err = -EAGAIN; 740 - if (bus->master_or_slave == I2C_MASTER) 741 - complete(&bus->cmd_complete); 742 - 735 + do_complete = true; 743 736 break; 744 737 case I2C_WAKE_UP_IND: 745 738 /* I2C wake up */ ··· 747 752 if (bus->slave) 748 753 bus->master_or_slave = I2C_SLAVE; 749 754 #endif 755 + if (do_complete) 756 + complete(&bus->cmd_complete); 750 757 } 751 758 752 759 static u8 npcm_i2c_fifo_usage(struct npcm_i2c *bus)
+1 -1
drivers/i2c/i2c-mux.c
··· 341 341 priv->adap.lock_ops = &i2c_parent_lock_ops; 342 342 343 343 /* Sanity check on class */ 344 - if (i2c_mux_parent_classes(parent) & class) 344 + if (i2c_mux_parent_classes(parent) & class & ~I2C_CLASS_DEPRECATED) 345 345 dev_err(&parent->dev, 346 346 "Segment %d behind mux can't share classes with ancestors\n", 347 347 chan_id);