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:
"Three driver bugfixes: fixing uninitialized memory pointers (eg20t),
pm/clock imbalance (qup), and a wrongly set cached variable (pc954x)"

* 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
i2c: qup: skip qup_i2c_suspend if the device is already runtime suspended
i2c: mux: pca954x: retry updating the mux selection on failure
i2c-eg20t: fix race between i2c init and interrupt enable

+14 -9
+11 -7
drivers/i2c/busses/i2c-eg20t.c
··· 773 773 /* Set the number of I2C channel instance */ 774 774 adap_info->ch_num = id->driver_data; 775 775 776 - ret = request_irq(pdev->irq, pch_i2c_handler, IRQF_SHARED, 777 - KBUILD_MODNAME, adap_info); 778 - if (ret) { 779 - pch_pci_err(pdev, "request_irq FAILED\n"); 780 - goto err_request_irq; 781 - } 782 - 783 776 for (i = 0; i < adap_info->ch_num; i++) { 784 777 pch_adap = &adap_info->pch_data[i].pch_adapter; 785 778 adap_info->pch_i2c_suspended = false; ··· 790 797 791 798 pch_adap->dev.of_node = pdev->dev.of_node; 792 799 pch_adap->dev.parent = &pdev->dev; 800 + } 801 + 802 + ret = request_irq(pdev->irq, pch_i2c_handler, IRQF_SHARED, 803 + KBUILD_MODNAME, adap_info); 804 + if (ret) { 805 + pch_pci_err(pdev, "request_irq FAILED\n"); 806 + goto err_request_irq; 807 + } 808 + 809 + for (i = 0; i < adap_info->ch_num; i++) { 810 + pch_adap = &adap_info->pch_data[i].pch_adapter; 793 811 794 812 pch_i2c_init(&adap_info->pch_data[i]); 795 813
+2 -1
drivers/i2c/busses/i2c-qup.c
··· 1599 1599 #ifdef CONFIG_PM_SLEEP 1600 1600 static int qup_i2c_suspend(struct device *device) 1601 1601 { 1602 - qup_i2c_pm_suspend_runtime(device); 1602 + if (!pm_runtime_suspended(device)) 1603 + return qup_i2c_pm_suspend_runtime(device); 1603 1604 return 0; 1604 1605 } 1605 1606
+1 -1
drivers/i2c/muxes/i2c-mux-pca954x.c
··· 164 164 /* Only select the channel if its different from the last channel */ 165 165 if (data->last_chan != regval) { 166 166 ret = pca954x_reg_write(muxc->parent, client, regval); 167 - data->last_chan = regval; 167 + data->last_chan = ret ? 0 : regval; 168 168 } 169 169 170 170 return ret;