On Wed, Dec 08, 2021 at 11:12:20AM +0200, Leon Romanovsky wrote: > On Wed, Dec 08, 2021 at 09:43:37AM +0100, Greg KH wrote: ... > The idea that you have two APIs which do the same thing, one is > obfuscated version of another. > > If you don't want from people to use driver core function and structures, > you shouldn't expose them in global headers. For all these APIs the rationale is very simple. If you have callback that takes a pointer to the container (*), you better use the APIs related to this container (no need to have an explicit dereferencing). Otherwise you use dev_*() APIs (when it's pointer to the pure struct device). The value is to have coherent APIs around struct device containers. *) under container here I assume the data structure that has the embedded struct device in it. -- With Best Regards, Andy Shevchenko