If we take an ahci driver as an example. In ahci_platform.c there are some driver functions described under:
static struct platform_driver ahci_driver = {...functions...}.
The question is:
What's the difference between functions described under platform_driver
structure and functions described under *_ops
(ahci_ops
as an example)?
From my understanding, functions in the platform_driver
structure are usually called automatically when loading/unloading the driver as an example.
Functions described in *_ops
are more user-accessible functions. Is that correct?