History

Revert "i2c: core: support bus regulator controlling in adapter"

This reverts commit 6fe12cdbcfe35ad4726a619a9546822d34fc934c. Testing in linux-next showed it needs some more time.

Wolfram Sang committed 6 years ago

Commit 7a4e63c1 parent 3f350642 files · +0 −86Browse files

Unified · Split

2 files
  1. drivers/i2c/i2c-core-base.c +0 −84
  2. include/linux/i2c.h +0 −2
drivers/i2c/i2c-core-base.c+0−84
@@ -313,14 +313,12 @@ static int i2c_smbus_host_notify_to_irq(const struct i2c_client *client) · 312 unmodified lines
313313 static int i2c_device_probe(struct device *dev)
314314 {
315315 struct i2c_client *client = i2c_verify_client(dev);
316− struct i2c_adapter *adap;
317316 struct i2c_driver *driver;
318317 int status;
319318
320319 if (!client)
321320 return 0;
322321
323− adap = client->adapter;
324322 driver = to_i2c_driver(dev->driver);
325323
326324 client->irq = client->init_irq;
@@ -386,12 +384,6 @@ static int i2c_device_probe(struct device *dev) · 59 unmodified lines
386384
387385 dev_dbg(dev, "probe\n");
388386
389− status = regulator_enable(adap->bus_regulator);
390− if (status < 0) {
391− dev_err(&adap->dev, "Failed to enable power regulator\n");
392− goto err_clear_wakeup_irq;
393− }
394−
395387 status = of_clk_set_defaults(dev->of_node, false);
396388 if (status < 0)
397389 goto err_clear_wakeup_irq;
@@ -432,14 +424,12 @@ put_sync_adapter: · 34 unmodified lines
432424 static int i2c_device_remove(struct device *dev)
433425 {
434426 struct i2c_client *client = i2c_verify_client(dev);
435− struct i2c_adapter *adap;
436427 struct i2c_driver *driver;
437428 int status = 0;
438429
439430 if (!client || !dev->driver)
440431 return 0;
441432
442− adap = client->adapter;
443433 driver = to_i2c_driver(dev->driver);
444434 if (driver->remove) {
445435 dev_dbg(dev, "remove\n");
@@ -447,8 +437,6 @@ static int i2c_device_remove(struct device *dev) · 1 unmodified line
447437 }
448438
449439 dev_pm_domain_detach(&client->dev, true);
450− if (!pm_runtime_status_suspended(&client->dev))
451− regulator_disable(adap->bus_regulator);
452440
453441 dev_pm_clear_wake_irq(&client->dev);
454442 device_init_wakeup(&client->dev, false);
@@ -460,72 +448,6 @@ static int i2c_device_remove(struct device *dev) · 5 unmodified lines
460448 return status;
461449 }
462450
463−#ifdef CONFIG_PM_SLEEP
464−static int i2c_resume_early(struct device *dev)
465−{
466− struct i2c_client *client = i2c_verify_client(dev);
467− struct i2c_adapter *adap = client->adapter;
468− int err;
469−
470− if (!pm_runtime_status_suspended(&client->dev)) {
471− err = regulator_enable(adap->bus_regulator);
472− if (err)
473− return err;
474− }
475−
476− return pm_generic_resume_early(&client->dev);
477−}
478−
479−static int i2c_suspend_late(struct device *dev)
480−{
481− struct i2c_client *client = i2c_verify_client(dev);
482− struct i2c_adapter *adap = client->adapter;
483− int err;
484−
485− err = pm_generic_suspend_late(&client->dev);
486− if (err)
487− return err;
488−
489− if (!pm_runtime_status_suspended(&client->dev))
490− return regulator_disable(adap->bus_regulator);
491−
492− return 0;
493−}
494−#endif
495−
496−#ifdef CONFIG_PM
497−static int i2c_runtime_resume(struct device *dev)
498−{
499− struct i2c_client *client = i2c_verify_client(dev);
500− struct i2c_adapter *adap = client->adapter;
501− int err;
502−
503− err = regulator_enable(adap->bus_regulator);
504− if (err)
505− return err;
506−
507− return pm_generic_runtime_resume(&client->dev);
508−}
509−
510−static int i2c_runtime_suspend(struct device *dev)
511−{
512− struct i2c_client *client = i2c_verify_client(dev);
513− struct i2c_adapter *adap = client->adapter;
514− int err;
515−
516− err = pm_generic_runtime_suspend(&client->dev);
517− if (err)
518− return err;
519−
520− return regulator_disable(adap->bus_regulator);
521−}
522−#endif
523−
524−static const struct dev_pm_ops i2c_device_pm = {
525− SET_LATE_SYSTEM_SLEEP_PM_OPS(i2c_suspend_late, i2c_resume_early)
526− SET_RUNTIME_PM_OPS(i2c_runtime_suspend, i2c_runtime_resume, NULL)
527−};
528−
529451 static void i2c_device_shutdown(struct device *dev)
530452 {
531453 struct i2c_client *client = i2c_verify_client(dev);
@@ -583,7 +505,6 @@ struct bus_type i2c_bus_type = { · 51 unmodified lines
583505 .probe = i2c_device_probe,
584506 .remove = i2c_device_remove,
585507 .shutdown = i2c_device_shutdown,
586− .pm = &i2c_device_pm,
587508 };
588509 EXPORT_SYMBOL_GPL(i2c_bus_type);
589510
@@ -1422,11 +1343,6 @@ static int i2c_register_adapter(struct i2c_adapter *adap) · 832 unmodified lines
14221343 if (res)
14231344 goto out_reg;
14241345
1425− adap->bus_regulator = devm_regulator_get(&adap->dev, "bus");
1426− if (IS_ERR(adap->bus_regulator)) {
1427− res = PTR_ERR(adap->bus_regulator);
1428− goto out_reg;
1429− }
14301346 dev_dbg(&adap->dev, "adapter [%s] registered\n", adap->name);
14311347
14321348 pm_runtime_no_callbacks(&adap->dev);
include/linux/i2c.h+0−2
@@ -15,7 +15,6 @@ · 14 unmodified lines
1515 #include <linux/device.h> /* for struct device */
1616 #include <linux/sched.h> /* for completion */
1717 #include <linux/mutex.h>
18−#include <linux/regulator/consumer.h>
1918 #include <linux/rtmutex.h>
2019 #include <linux/irqdomain.h> /* for Host Notify IRQ */
2120 #include <linux/of.h> /* for struct device_node */
@@ -716,7 +715,6 @@ struct i2c_adapter { · 694 unmodified lines
716715 const struct i2c_adapter_quirks *quirks;
717716
718717 struct irq_domain *host_notify_domain;
719− struct regulator *bus_regulator;
720718 };
721719 #define to_i2c_adapter(d) container_of(d, struct i2c_adapter, dev)
722720