First, there already are ->suspend() and ->resume() callbacks in
struct bus_type which are regarded as "legacy". The PM core uses those as
appropriate in drivers/base/power/main.c .
Second, the situation at hand is that the bus type implements dev_pm_ops,
but the driver doesn't. Now, pm_generic_suspend() is called with a struct
device pointer, so it would have to go back to dev->bus, find the
->legacy_suspend() callback (as opposed to ->suspend(), which also is legacy,
but is called by the PM core instead). May I call that confusing?
Well, I don't really think so.
Thanks,
Rafael
--