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