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 fix from Wolfram Sang:
"Just one I2C driver update this time"

* 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
i2c: mediatek: Move suspend and resume handling to NOIRQ phase

+16 -3
+16 -3
drivers/i2c/busses/i2c-mt65xx.c
··· 1275 1275 mtk_i2c_clock_disable(i2c); 1276 1276 1277 1277 ret = devm_request_irq(&pdev->dev, irq, mtk_i2c_irq, 1278 - IRQF_TRIGGER_NONE, I2C_DRV_NAME, i2c); 1278 + IRQF_NO_SUSPEND | IRQF_TRIGGER_NONE, 1279 + I2C_DRV_NAME, i2c); 1279 1280 if (ret < 0) { 1280 1281 dev_err(&pdev->dev, 1281 1282 "Request I2C IRQ %d fail\n", irq); ··· 1303 1302 } 1304 1303 1305 1304 #ifdef CONFIG_PM_SLEEP 1306 - static int mtk_i2c_resume(struct device *dev) 1305 + static int mtk_i2c_suspend_noirq(struct device *dev) 1306 + { 1307 + struct mtk_i2c *i2c = dev_get_drvdata(dev); 1308 + 1309 + i2c_mark_adapter_suspended(&i2c->adap); 1310 + 1311 + return 0; 1312 + } 1313 + 1314 + static int mtk_i2c_resume_noirq(struct device *dev) 1307 1315 { 1308 1316 int ret; 1309 1317 struct mtk_i2c *i2c = dev_get_drvdata(dev); ··· 1327 1317 1328 1318 mtk_i2c_clock_disable(i2c); 1329 1319 1320 + i2c_mark_adapter_resumed(&i2c->adap); 1321 + 1330 1322 return 0; 1331 1323 } 1332 1324 #endif 1333 1325 1334 1326 static const struct dev_pm_ops mtk_i2c_pm = { 1335 - SET_SYSTEM_SLEEP_PM_OPS(NULL, mtk_i2c_resume) 1327 + SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(mtk_i2c_suspend_noirq, 1328 + mtk_i2c_resume_noirq) 1336 1329 }; 1337 1330 1338 1331 static struct platform_driver mtk_i2c_driver = {