Pull i2c fixes from Wolfram Sang: - PM cleanup after all prerequisites are merged with rc1 - usbio: missing addition after all dependencies are in - slimpro: DT binding schema conversion * tag 'i2c-for-6.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: dt-bindings: i2c: Convert apm,xgene-slimpro-i2c to DT schema i2c: usbio: Add ACPI device-id for MTL-CVF devices i2c: Remove redundant pm_runtime_mark_last_busy() calls
Unified · Split
| @@ -0,0 +1,36 @@ | ||
| 1 | +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | |
| 2 | +%YAML 1.2 | |
| 3 | +--- | |
| 4 | +$id: http://devicetree.org/schemas/i2c/apm,xgene-slimpro-i2c.yaml# | |
| 5 | +$schema: http://devicetree.org/meta-schemas/core.yaml# | |
| 6 | + | |
| 7 | +title: APM X-Gene SLIMpro Mailbox I2C | |
| 8 | + | |
| 9 | +maintainers: | |
| 10 | + - Khuong Dinh <khuong@os.amperecomputing.com> | |
| 11 | + | |
| 12 | +description: | |
| 13 | + An I2C controller accessed over the "SLIMpro" mailbox. | |
| 14 | + | |
| 15 | +allOf: | |
| 16 | + - $ref: /schemas/i2c/i2c-controller.yaml# | |
| 17 | + | |
| 18 | +properties: | |
| 19 | + compatible: | |
| 20 | + const: apm,xgene-slimpro-i2c | |
| 21 | + | |
| 22 | + mboxes: | |
| 23 | + maxItems: 1 | |
| 24 | + | |
| 25 | +required: | |
| 26 | + - compatible | |
| 27 | + - mboxes | |
| 28 | + | |
| 29 | +unevaluatedProperties: false | |
| 30 | + | |
| 31 | +examples: | |
| 32 | + - | | |
| 33 | + i2c { | |
| 34 | + compatible = "apm,xgene-slimpro-i2c"; | |
| 35 | + mboxes = <&mailbox 0>; | |
| 36 | + }; | |
| @@ -1,15 +0,0 @@ | ||
| 1 | −APM X-Gene SLIMpro Mailbox I2C Driver | |
| 2 | − | |
| 3 | −An I2C controller accessed over the "SLIMpro" mailbox. | |
| 4 | − | |
| 5 | −Required properties : | |
| 6 | − | |
| 7 | − - compatible : should be "apm,xgene-slimpro-i2c" | |
| 8 | − - mboxes : use the label reference for the mailbox as the first parameter. | |
| 9 | − The second parameter is the channel number. | |
| 10 | − | |
| 11 | −Example : | |
| 12 | − i2cslimpro { | |
| 13 | − compatible = "apm,xgene-slimpro-i2c"; | |
| 14 | − mboxes = <&mailbox 0>; | |
| 15 | − }; | |
| @@ -207,7 +207,6 @@ static inline void amd_mp2_pm_runtime_get(struct amd_mp2_dev *mp2_dev) · 206 unmodified lines | ||
| 207 | 207 | |
| 208 | 208 | static inline void amd_mp2_pm_runtime_put(struct amd_mp2_dev *mp2_dev) |
| 209 | 209 | { |
| 210 | − pm_runtime_mark_last_busy(&mp2_dev->pci_dev->dev); | |
| 211 | 210 | pm_runtime_put_autosuspend(&mp2_dev->pci_dev->dev); |
| 212 | 211 | } |
| 213 | 212 | |
| @@ -313,7 +313,6 @@ static int __maybe_unused at91_twi_resume_noirq(struct device *dev) · 312 unmodified lines | ||
| 313 | 313 | return ret; |
| 314 | 314 | } |
| 315 | 315 | |
| 316 | − pm_runtime_mark_last_busy(dev); | |
| 317 | 316 | pm_request_autosuspend(dev); |
| 318 | 317 | |
| 319 | 318 | at91_init_twi_bus(twi_dev); |
| @@ -717,7 +717,6 @@ static int at91_twi_xfer(struct i2c_adapter *adap, struct i2c_msg *msg, int num) · 716 unmodified lines | ||
| 717 | 717 | |
| 718 | 718 | ret = (ret < 0) ? ret : num; |
| 719 | 719 | out: |
| 720 | − pm_runtime_mark_last_busy(dev->dev); | |
| 721 | 720 | pm_runtime_put_autosuspend(dev->dev); |
| 722 | 721 | |
| 723 | 722 | return ret; |
| @@ -1128,7 +1128,6 @@ out: · 1127 unmodified lines | ||
| 1128 | 1128 | cdns_i2c_set_mode(CDNS_I2C_MODE_SLAVE, id); |
| 1129 | 1129 | #endif |
| 1130 | 1130 | |
| 1131 | − pm_runtime_mark_last_busy(id->dev); | |
| 1132 | 1131 | pm_runtime_put_autosuspend(id->dev); |
| 1133 | 1132 | return ret; |
| 1134 | 1133 | } |
| @@ -543,7 +543,6 @@ i2c_davinci_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num) · 542 unmodified lines | ||
| 543 | 543 | ret = num; |
| 544 | 544 | |
| 545 | 545 | out: |
| 546 | − pm_runtime_mark_last_busy(dev->dev); | |
| 547 | 546 | pm_runtime_put_autosuspend(dev->dev); |
| 548 | 547 | |
| 549 | 548 | return ret; |
| @@ -821,7 +820,6 @@ static int davinci_i2c_probe(struct platform_device *pdev) · 271 unmodified lines | ||
| 821 | 820 | if (r) |
| 822 | 821 | goto err_unuse_clocks; |
| 823 | 822 | |
| 824 | − pm_runtime_mark_last_busy(dev->dev); | |
| 825 | 823 | pm_runtime_put_autosuspend(dev->dev); |
| 826 | 824 | |
| 827 | 825 | return 0; |
| @@ -901,7 +901,6 @@ done: · 900 unmodified lines | ||
| 901 | 901 | i2c_dw_release_lock(dev); |
| 902 | 902 | |
| 903 | 903 | done_nolock: |
| 904 | − pm_runtime_mark_last_busy(dev->dev); | |
| 905 | 904 | pm_runtime_put_autosuspend(dev->dev); |
| 906 | 905 | |
| 907 | 906 | return ret; |
| @@ -373,7 +373,6 @@ static int hix5hd2_i2c_xfer(struct i2c_adapter *adap, · 372 unmodified lines | ||
| 373 | 373 | ret = num; |
| 374 | 374 | |
| 375 | 375 | out: |
| 376 | − pm_runtime_mark_last_busy(priv->dev); | |
| 377 | 376 | pm_runtime_put_autosuspend(priv->dev); |
| 378 | 377 | return ret; |
| 379 | 378 | } |
| @@ -930,7 +930,6 @@ out: · 929 unmodified lines | ||
| 930 | 930 | */ |
| 931 | 931 | iowrite8(SMBHSTSTS_INUSE_STS | STATUS_FLAGS, SMBHSTSTS(priv)); |
| 932 | 932 | |
| 933 | − pm_runtime_mark_last_busy(&priv->pci_dev->dev); | |
| 934 | 933 | pm_runtime_put_autosuspend(&priv->pci_dev->dev); |
| 935 | 934 | return ret; |
| 936 | 935 | } |
| @@ -1131,7 +1131,6 @@ static int img_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, · 1130 unmodified lines | ||
| 1131 | 1131 | break; |
| 1132 | 1132 | } |
| 1133 | 1133 | |
| 1134 | − pm_runtime_mark_last_busy(adap->dev.parent); | |
| 1135 | 1134 | pm_runtime_put_autosuspend(adap->dev.parent); |
| 1136 | 1135 | |
| 1137 | 1136 | return i2c->msg_status ? i2c->msg_status : num; |
| @@ -1165,7 +1164,6 @@ static int img_i2c_init(struct img_i2c *i2c) · 27 unmodified lines | ||
| 1165 | 1164 | "Unknown hardware revision (%d.%d.%d.%d)\n", |
| 1166 | 1165 | (rev >> 24) & 0xff, (rev >> 16) & 0xff, |
| 1167 | 1166 | (rev >> 8) & 0xff, rev & 0xff); |
| 1168 | − pm_runtime_mark_last_busy(i2c->adap.dev.parent); | |
| 1169 | 1167 | pm_runtime_put_autosuspend(i2c->adap.dev.parent); |
| 1170 | 1168 | return -EINVAL; |
| 1171 | 1169 | } |
| @@ -1317,7 +1315,6 @@ static int img_i2c_init(struct img_i2c *i2c) · 145 unmodified lines | ||
| 1317 | 1315 | /* Perform a synchronous sequence to reset the bus */ |
| 1318 | 1316 | ret = img_i2c_reset_bus(i2c); |
| 1319 | 1317 | |
| 1320 | − pm_runtime_mark_last_busy(i2c->adap.dev.parent); | |
| 1321 | 1318 | pm_runtime_put_autosuspend(i2c->adap.dev.parent); |
| 1322 | 1319 | |
| 1323 | 1320 | return ret; |
| @@ -363,7 +363,6 @@ static int lpi2c_imx_master_enable(struct lpi2c_imx_struct *lpi2c_imx) · 362 unmodified lines | ||
| 363 | 363 | return 0; |
| 364 | 364 | |
| 365 | 365 | rpm_put: |
| 366 | − pm_runtime_mark_last_busy(lpi2c_imx->adapter.dev.parent); | |
| 367 | 366 | pm_runtime_put_autosuspend(lpi2c_imx->adapter.dev.parent); |
| 368 | 367 | |
| 369 | 368 | return ret; |
| @@ -377,7 +376,6 @@ static int lpi2c_imx_master_disable(struct lpi2c_imx_struct *lpi2c_imx) · 7 unmodified lines | ||
| 377 | 376 | temp &= ~MCR_MEN; |
| 378 | 377 | writel(temp, lpi2c_imx->base + LPI2C_MCR); |
| 379 | 378 | |
| 380 | − pm_runtime_mark_last_busy(lpi2c_imx->adapter.dev.parent); | |
| 381 | 379 | pm_runtime_put_autosuspend(lpi2c_imx->adapter.dev.parent); |
| 382 | 380 | |
| 383 | 381 | return 0; |
| @@ -1462,7 +1460,6 @@ static int lpi2c_imx_probe(struct platform_device *pdev) · 1078 unmodified lines | ||
| 1462 | 1460 | if (ret) |
| 1463 | 1461 | goto rpm_disable; |
| 1464 | 1462 | |
| 1465 | − pm_runtime_mark_last_busy(&pdev->dev); | |
| 1466 | 1463 | pm_runtime_put_autosuspend(&pdev->dev); |
| 1467 | 1464 | |
| 1468 | 1465 | dev_info(&lpi2c_imx->adapter.dev, "LPI2C adapter registered\n"); |
| @@ -1564,7 +1561,6 @@ static int lpi2c_suspend(struct device *dev) · 95 unmodified lines | ||
| 1564 | 1561 | |
| 1565 | 1562 | static int lpi2c_resume(struct device *dev) |
| 1566 | 1563 | { |
| 1567 | − pm_runtime_mark_last_busy(dev); | |
| 1568 | 1564 | pm_runtime_put_autosuspend(dev); |
| 1569 | 1565 | |
| 1570 | 1566 | return 0; |
| @@ -1637,7 +1637,6 @@ static int i2c_imx_xfer(struct i2c_adapter *adapter, · 1636 unmodified lines | ||
| 1637 | 1637 | |
| 1638 | 1638 | result = i2c_imx_xfer_common(adapter, msgs, num, false); |
| 1639 | 1639 | |
| 1640 | − pm_runtime_mark_last_busy(i2c_imx->adapter.dev.parent); | |
| 1641 | 1640 | pm_runtime_put_autosuspend(i2c_imx->adapter.dev.parent); |
| 1642 | 1641 | |
| 1643 | 1642 | return result; |
| @@ -1822,7 +1821,6 @@ static int i2c_imx_probe(struct platform_device *pdev) · 178 unmodified lines | ||
| 1822 | 1821 | if (ret < 0) |
| 1823 | 1822 | goto clk_notifier_unregister; |
| 1824 | 1823 | |
| 1825 | − pm_runtime_mark_last_busy(&pdev->dev); | |
| 1826 | 1824 | pm_runtime_put_autosuspend(&pdev->dev); |
| 1827 | 1825 | |
| 1828 | 1826 | dev_dbg(&i2c_imx->adapter.dev, "claimed irq %d\n", irq); |
| @@ -1928,7 +1926,6 @@ static int i2c_imx_suspend(struct device *dev) · 99 unmodified lines | ||
| 1928 | 1926 | |
| 1929 | 1927 | static int i2c_imx_resume(struct device *dev) |
| 1930 | 1928 | { |
| 1931 | − pm_runtime_mark_last_busy(dev); | |
| 1932 | 1929 | pm_runtime_put_autosuspend(dev); |
| 1933 | 1930 | |
| 1934 | 1931 | return 0; |
| @@ -766,7 +766,6 @@ mv64xxx_i2c_xfer_core(struct i2c_adapter *adap, struct i2c_msg msgs[], int num) · 765 unmodified lines | ||
| 766 | 766 | drv_data->num_msgs = 0; |
| 767 | 767 | drv_data->msgs = NULL; |
| 768 | 768 | |
| 769 | − pm_runtime_mark_last_busy(&adap->dev); | |
| 770 | 769 | pm_runtime_put_autosuspend(&adap->dev); |
| 771 | 770 | |
| 772 | 771 | return ret; |
| @@ -216,7 +216,6 @@ exit: · 215 unmodified lines | ||
| 216 | 216 | if (status2 < 0) |
| 217 | 217 | dev_err(i2cd->dev, "i2c stop failed %d\n", status2); |
| 218 | 218 | } |
| 219 | − pm_runtime_mark_last_busy(i2cd->dev); | |
| 220 | 219 | pm_runtime_put_autosuspend(i2cd->dev); |
| 221 | 220 | return status; |
| 222 | 221 | } |
| @@ -828,7 +828,6 @@ omap_i2c_xfer_common(struct i2c_adapter *adap, struct i2c_msg msgs[], int num, · 827 unmodified lines | ||
| 828 | 828 | omap->set_mpu_wkup_lat(omap->dev, -1); |
| 829 | 829 | |
| 830 | 830 | out: |
| 831 | − pm_runtime_mark_last_busy(omap->dev); | |
| 832 | 831 | pm_runtime_put_autosuspend(omap->dev); |
| 833 | 832 | return r; |
| 834 | 833 | } |
| @@ -1510,7 +1509,6 @@ omap_i2c_probe(struct platform_device *pdev) · 675 unmodified lines | ||
| 1510 | 1509 | dev_info(omap->dev, "bus %d rev%d.%d at %d kHz\n", adap->nr, |
| 1511 | 1510 | major, minor, omap->speed); |
| 1512 | 1511 | |
| 1513 | − pm_runtime_mark_last_busy(omap->dev); | |
| 1514 | 1512 | pm_runtime_put_autosuspend(omap->dev); |
| 1515 | 1513 | |
| 1516 | 1514 | return 0; |
| @@ -1605,7 +1603,6 @@ static int omap_i2c_suspend(struct device *dev) · 88 unmodified lines | ||
| 1605 | 1603 | |
| 1606 | 1604 | static int omap_i2c_resume(struct device *dev) |
| 1607 | 1605 | { |
| 1608 | − pm_runtime_mark_last_busy(dev); | |
| 1609 | 1606 | pm_runtime_put_autosuspend(dev); |
| 1610 | 1607 | |
| 1611 | 1608 | return 0; |
| @@ -450,7 +450,6 @@ static int cci_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num) · 449 unmodified lines | ||
| 450 | 450 | ret = num; |
| 451 | 451 | |
| 452 | 452 | err: |
| 453 | − pm_runtime_mark_last_busy(cci->dev); | |
| 454 | 453 | pm_runtime_put_autosuspend(cci->dev); |
| 455 | 454 | |
| 456 | 455 | return ret; |
| @@ -508,7 +507,6 @@ static int __maybe_unused cci_suspend(struct device *dev) · 51 unmodified lines | ||
| 508 | 507 | static int __maybe_unused cci_resume(struct device *dev) |
| 509 | 508 | { |
| 510 | 509 | cci_resume_runtime(dev); |
| 511 | − pm_runtime_mark_last_busy(dev); | |
| 512 | 510 | pm_request_autosuspend(dev); |
| 513 | 511 | |
| 514 | 512 | return 0; |
| @@ -714,7 +714,6 @@ static int geni_i2c_xfer(struct i2c_adapter *adap, · 713 unmodified lines | ||
| 714 | 714 | else |
| 715 | 715 | ret = geni_i2c_fifo_xfer(gi2c, msgs, num); |
| 716 | 716 | |
| 717 | − pm_runtime_mark_last_busy(gi2c->se.dev); | |
| 718 | 717 | pm_runtime_put_autosuspend(gi2c->se.dev); |
| 719 | 718 | gi2c->cur = NULL; |
| 720 | 719 | gi2c->err = 0; |
| @@ -1139,7 +1139,6 @@ static int qup_i2c_xfer(struct i2c_adapter *adap, · 1138 unmodified lines | ||
| 1139 | 1139 | ret = num; |
| 1140 | 1140 | out: |
| 1141 | 1141 | |
| 1142 | − pm_runtime_mark_last_busy(qup->dev); | |
| 1143 | 1142 | pm_runtime_put_autosuspend(qup->dev); |
| 1144 | 1143 | |
| 1145 | 1144 | return ret; |
| @@ -1624,7 +1623,6 @@ static int qup_i2c_xfer_v2(struct i2c_adapter *adap, · 478 unmodified lines | ||
| 1624 | 1623 | if (ret == 0) |
| 1625 | 1624 | ret = num; |
| 1626 | 1625 | out: |
| 1627 | − pm_runtime_mark_last_busy(qup->dev); | |
| 1628 | 1626 | pm_runtime_put_autosuspend(qup->dev); |
| 1629 | 1627 | |
| 1630 | 1628 | return ret; |
| @@ -1991,7 +1989,6 @@ static int qup_i2c_suspend(struct device *device) · 360 unmodified lines | ||
| 1991 | 1989 | static int qup_i2c_resume(struct device *device) |
| 1992 | 1990 | { |
| 1993 | 1991 | qup_i2c_pm_resume_runtime(device); |
| 1994 | − pm_runtime_mark_last_busy(device); | |
| 1995 | 1992 | pm_request_autosuspend(device); |
| 1996 | 1993 | return 0; |
| 1997 | 1994 | } |
| @@ -206,7 +206,6 @@ static int riic_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num) · 205 unmodified lines | ||
| 206 | 206 | } |
| 207 | 207 | |
| 208 | 208 | out: |
| 209 | − pm_runtime_mark_last_busy(dev); | |
| 210 | 209 | pm_runtime_put_autosuspend(dev); |
| 211 | 210 | |
| 212 | 211 | return riic->err ?: num; |
| @@ -452,7 +451,6 @@ static int riic_init_hw(struct riic_dev *riic) · 239 unmodified lines | ||
| 452 | 451 | |
| 453 | 452 | riic_clear_set_bit(riic, ICCR1_IICRST, 0, RIIC_ICCR1); |
| 454 | 453 | |
| 455 | − pm_runtime_mark_last_busy(dev); | |
| 456 | 454 | pm_runtime_put_autosuspend(dev); |
| 457 | 455 | return 0; |
| 458 | 456 | } |
| @@ -372,7 +372,6 @@ static int rzv2m_i2c_xfer(struct i2c_adapter *adap, · 371 unmodified lines | ||
| 372 | 372 | ret = num; |
| 373 | 373 | |
| 374 | 374 | out: |
| 375 | − pm_runtime_mark_last_busy(dev); | |
| 376 | 375 | pm_runtime_put_autosuspend(dev); |
| 377 | 376 | |
| 378 | 377 | return ret; |
| @@ -302,7 +302,6 @@ static int sprd_i2c_xfer(struct i2c_adapter *i2c_adap, · 301 unmodified lines | ||
| 302 | 302 | ret = sprd_i2c_handle_msg(i2c_adap, &msgs[im++], 1); |
| 303 | 303 | |
| 304 | 304 | err_msg: |
| 305 | − pm_runtime_mark_last_busy(i2c_dev->dev); | |
| 306 | 305 | pm_runtime_put_autosuspend(i2c_dev->dev); |
| 307 | 306 | |
| 308 | 307 | return ret < 0 ? ret : im; |
| @@ -559,7 +558,6 @@ static int sprd_i2c_probe(struct platform_device *pdev) · 250 unmodified lines | ||
| 559 | 558 | goto err_rpm_put; |
| 560 | 559 | } |
| 561 | 560 | |
| 562 | − pm_runtime_mark_last_busy(i2c_dev->dev); | |
| 563 | 561 | pm_runtime_put_autosuspend(i2c_dev->dev); |
| 564 | 562 | return 0; |
| 565 | 563 | |
| @@ -1761,7 +1761,6 @@ static int stm32f7_i2c_xfer_core(struct i2c_adapter *i2c_adap, · 1760 unmodified lines | ||
| 1761 | 1761 | } |
| 1762 | 1762 | |
| 1763 | 1763 | pm_free: |
| 1764 | − pm_runtime_mark_last_busy(i2c_dev->dev); | |
| 1765 | 1764 | pm_runtime_put_autosuspend(i2c_dev->dev); |
| 1766 | 1765 | |
| 1767 | 1766 | return (ret < 0) ? ret : num; |
| @@ -1870,7 +1869,6 @@ static int stm32f7_i2c_smbus_xfer(struct i2c_adapter *adapter, u16 addr, · 102 unmodified lines | ||
| 1870 | 1869 | } |
| 1871 | 1870 | |
| 1872 | 1871 | pm_free: |
| 1873 | − pm_runtime_mark_last_busy(dev); | |
| 1874 | 1872 | pm_runtime_put_autosuspend(dev); |
| 1875 | 1873 | return ret; |
| 1876 | 1874 | } |
| @@ -1977,7 +1975,6 @@ pm_free: · 100 unmodified lines | ||
| 1977 | 1975 | if (!stm32f7_i2c_is_slave_registered(i2c_dev)) |
| 1978 | 1976 | stm32f7_i2c_enable_wakeup(i2c_dev, false); |
| 1979 | 1977 | |
| 1980 | − pm_runtime_mark_last_busy(dev); | |
| 1981 | 1978 | pm_runtime_put_autosuspend(dev); |
| 1982 | 1979 | |
| 1983 | 1980 | return ret; |
| @@ -2015,7 +2012,6 @@ static int stm32f7_i2c_unreg_slave(struct i2c_client *slave) · 31 unmodified lines | ||
| 2015 | 2012 | stm32f7_i2c_enable_wakeup(i2c_dev, false); |
| 2016 | 2013 | } |
| 2017 | 2014 | |
| 2018 | − pm_runtime_mark_last_busy(i2c_dev->dev); | |
| 2019 | 2015 | pm_runtime_put_autosuspend(i2c_dev->dev); |
| 2020 | 2016 | |
| 2021 | 2017 | return 0; |
| @@ -2328,7 +2324,6 @@ static int stm32f7_i2c_probe(struct platform_device *pdev) · 306 unmodified lines | ||
| 2328 | 2324 | |
| 2329 | 2325 | dev_info(i2c_dev->dev, "STM32F7 I2C-%d bus adapter\n", adap->nr); |
| 2330 | 2326 | |
| 2331 | − pm_runtime_mark_last_busy(i2c_dev->dev); | |
| 2332 | 2327 | pm_runtime_put_autosuspend(i2c_dev->dev); |
| 2333 | 2328 | |
| 2334 | 2329 | return 0; |
| @@ -27,6 +27,7 @@ static const struct acpi_device_id usbio_i2c_acpi_hids[] = { · 26 unmodified lines | ||
| 27 | 27 | { "INTC1008" }, /* MTL */ |
| 28 | 28 | { "INTC10B3" }, /* ARL */ |
| 29 | 29 | { "INTC10B6" }, /* LNL */ |
| 30 | + { "INTC10D2" }, /* MTL-CVF */ | |
| 30 | 31 | { "INTC10E3" }, /* PTL */ |
| 31 | 32 | { } |
| 32 | 33 | }; |
| @@ -1349,7 +1349,6 @@ static int xiic_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) · 1348 unmodified lines | ||
| 1349 | 1349 | mutex_unlock(&i2c->lock); |
| 1350 | 1350 | |
| 1351 | 1351 | out: |
| 1352 | − pm_runtime_mark_last_busy(i2c->dev); | |
| 1353 | 1352 | pm_runtime_put_autosuspend(i2c->dev); |
| 1354 | 1353 | return err; |
| 1355 | 1354 | } |