i2c ドライバーの電源管理に取り組んでいて、奇妙なことに気付きました。
include/linux/i2c.h
struct i2c_driver {
//...
int (*suspend)(struct i2c_client *, pm_message_t mesg);
int (*resume)(struct i2c_client *);
//...
struct device_driver driver;
//...
}
include/linux/device.h
struct device_driver {
//...
int (*suspend) (struct device *dev, pm_message_t state);
int (*resume) (struct device *dev);
//...
const struct dev_pm_ops *pm;
//...
}
include/linux/pm.h
struct dev_pm_ops {
//...
int (*suspend)(struct device *dev);
int (*resume)(struct device *dev);
//...
}
サスペンドおよびレジューム関数ポインタが非常に多いのはなぜですか? ある種の遺産?ドライバーにはどれを使用すればよいですか?
古いカーネル (2.6.35) を使用しています
ありがとう!