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....