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

Pull i2c fixes from Wolfram Sang:
"Some more bugfixes from I2C for v5.13. Usual stuff"

* 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
i2c: qcom-geni: Suspend and resume the bus during SYSTEM_SLEEP_PM ops
i2c: qcom-geni: Add shutdown callback for i2c
i2c: tegra-bpmp: Demote kernel-doc abuses
i2c: altera: Fix formatting issue in struct and demote unworthy kernel-doc headers

+26 -8
+4 -5
drivers/i2c/busses/i2c-altera.c
··· 55 55 #define ALTR_I2C_XFER_TIMEOUT (msecs_to_jiffies(250)) 56 56 57 57 /** 58 - * altr_i2c_dev - I2C device context 58 + * struct altr_i2c_dev - I2C device context 59 59 * @base: pointer to register struct 60 60 * @msg: pointer to current message 61 61 * @msg_len: number of bytes transferred in msg ··· 172 172 altr_i2c_int_enable(idev, ALTR_I2C_ALL_IRQ, false); 173 173 } 174 174 175 - /** 175 + /* 176 176 * altr_i2c_transfer - On the last byte to be transmitted, send 177 177 * a Stop bit on the last byte. 178 178 */ ··· 185 185 writel(data, idev->base + ALTR_I2C_TFR_CMD); 186 186 } 187 187 188 - /** 188 + /* 189 189 * altr_i2c_empty_rx_fifo - Fetch data from RX FIFO until end of 190 190 * transfer. Send a Stop bit on the last byte. 191 191 */ ··· 201 201 } 202 202 } 203 203 204 - /** 204 + /* 205 205 * altr_i2c_fill_tx_fifo - Fill TX FIFO from current message buffer. 206 - * @return: Number of bytes left to transfer. 207 206 */ 208 207 static int altr_i2c_fill_tx_fifo(struct altr_i2c_dev *idev) 209 208 {
+20 -1
drivers/i2c/busses/i2c-qcom-geni.c
··· 650 650 return 0; 651 651 } 652 652 653 + static void geni_i2c_shutdown(struct platform_device *pdev) 654 + { 655 + struct geni_i2c_dev *gi2c = platform_get_drvdata(pdev); 656 + 657 + /* Make client i2c transfers start failing */ 658 + i2c_mark_adapter_suspended(&gi2c->adap); 659 + } 660 + 653 661 static int __maybe_unused geni_i2c_runtime_suspend(struct device *dev) 654 662 { 655 663 int ret; ··· 698 690 { 699 691 struct geni_i2c_dev *gi2c = dev_get_drvdata(dev); 700 692 693 + i2c_mark_adapter_suspended(&gi2c->adap); 694 + 701 695 if (!gi2c->suspended) { 702 696 geni_i2c_runtime_suspend(dev); 703 697 pm_runtime_disable(dev); ··· 709 699 return 0; 710 700 } 711 701 702 + static int __maybe_unused geni_i2c_resume_noirq(struct device *dev) 703 + { 704 + struct geni_i2c_dev *gi2c = dev_get_drvdata(dev); 705 + 706 + i2c_mark_adapter_resumed(&gi2c->adap); 707 + return 0; 708 + } 709 + 712 710 static const struct dev_pm_ops geni_i2c_pm_ops = { 713 - SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(geni_i2c_suspend_noirq, NULL) 711 + SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(geni_i2c_suspend_noirq, geni_i2c_resume_noirq) 714 712 SET_RUNTIME_PM_OPS(geni_i2c_runtime_suspend, geni_i2c_runtime_resume, 715 713 NULL) 716 714 }; ··· 732 714 static struct platform_driver geni_i2c_driver = { 733 715 .probe = geni_i2c_probe, 734 716 .remove = geni_i2c_remove, 717 + .shutdown = geni_i2c_shutdown, 735 718 .driver = { 736 719 .name = "geni_i2c", 737 720 .pm = &geni_i2c_pm_ops,
+2 -2
drivers/i2c/busses/i2c-tegra-bpmp.c
··· 65 65 *out |= SERIALI2C_RECV_LEN; 66 66 } 67 67 68 - /** 68 + /* 69 69 * The serialized I2C format is simply the following: 70 70 * [addr little-endian][flags little-endian][len little-endian][data if write] 71 71 * [addr little-endian][flags little-endian][len little-endian][data if write] ··· 109 109 request->xfer.data_size = pos; 110 110 } 111 111 112 - /** 112 + /* 113 113 * The data in the BPMP -> CPU direction is composed of sequential blocks for 114 114 * those messages that have I2C_M_RD. So, for example, if you have: 115 115 *