On Mon, Mar 01, 2021 at 11:39:23AM +0100, Maciej Kwapulinski wrote: > > Maciej Kwapulinski <maciej.kwapulinski@xxxxxxxxxxxxxxx> writes: > > > Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> writes: > > > >> On Mon, Mar 01, 2021 at 11:18:59AM +0100, Maciej Kwapulinski wrote: > >>> > >>> Andy Shevchenko <andy.shevchenko@xxxxxxxxx> writes: > >>> > >>> > On Tue, Feb 16, 2021 at 6:11 PM Maciej Kwapulinski > >>> > <maciej.kwapulinski@xxxxxxxxxxxxxxx> wrote: > >>> >> > >>> .... > >>> >> +static int __init gna_drv_init(void) > >>> >> +{ > >>> >> + int ret; > >>> >> + > >>> >> + mutex_init(&gna_drv_priv.lock); > >>> >> + > >>> >> + gna_class = class_create(THIS_MODULE, "gna"); > >>> >> + if (IS_ERR(gna_class)) { > >>> >> + pr_err("class device create failed\n"); > >>> >> + return PTR_ERR(gna_class); > >>> >> + } > >>> >> + gna_class->devnode = gna_devnode; > >>> >> + > >>> >> + ret = pci_register_driver(&gna_driver); > >>> > > >>> > Is it possible to decouple a PCI glue driver from the class as many > >>> > other existing examples are doing? > >>> > > >>> > >>> I see many pci drivers (including staging) that do have it glued though. > >>> > >>> Examples are: > >>> 1. "static int __init kp2000_pcie_init(void)" (commit on May 20 09:34:11 > >>> 2019) > >>> 2. "static int __init hl_init(void)" (commit on Mon Feb 18 09:46:43 2019) > >>> > >>> Please give me more details. > >> > >> Never use a staging driver for any type of example, _EXECPT_ for a bad > >> one. There's a reason the code is in staging and not in the "real" part > >> of the kernel. > > > > ok. > > > > another one (1) is not staging.. > > I meant "static int __init hl_init(void)" is not staging one.... Still doesn't mean it is a good thing to do. Again, why isn't this driver just using the misc driver interface instead? It's much simpler to use and should work just fine for this tiny driver, instead of having to create a custom class just for it. thanks, greg k-h