If the driver is built as a module, autoload won't work because the module alias information is not filled. So user-space can't match the registered device with the corresponding module.
Export the module alias information using the MODULE_DEVICE_TABLE() macro. Before this patch: $ modinfo drivers/auxdisplay/img-ascii-lcd.ko | grep alias $ After this patch: $ modinfo drivers/auxdisplay/img-ascii-lcd.ko | grep alias alias: of:N*T*Cmti,sead3-lcdC* alias: of:N*T*Cmti,sead3-lcd alias: of:N*T*Cmti,malta-lcdC* alias: of:N*T*Cmti,malta-lcd alias: of:N*T*Cimg,boston-lcdC* alias: of:N*T*Cimg,boston-lcd Signed-off-by: Javier Martinez Canillas <jav...@osg.samsung.com> --- Hello Greg, This is another re-send of a patch that was previously posted in [0] and [1] but were never picked. I'm sending it to you as suggested by Dmitry [2]. [0]: https://lkml.org/lkml/2017/1/2/394 [1]: https://lkml.org/lkml/2017/3/10/977 [2]: https://lkml.org/lkml/2017/3/16/840 Best regards, Javier drivers/auxdisplay/img-ascii-lcd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/auxdisplay/img-ascii-lcd.c b/drivers/auxdisplay/img-ascii-lcd.c index 83f1439e57fd..25306fa27251 100644 --- a/drivers/auxdisplay/img-ascii-lcd.c +++ b/drivers/auxdisplay/img-ascii-lcd.c @@ -220,6 +220,7 @@ static const struct of_device_id img_ascii_lcd_matches[] = { { .compatible = "mti,sead3-lcd", .data = &sead3_config }, { /* sentinel */ } }; +MODULE_DEVICE_TABLE(of, img_ascii_lcd_matches); /** * img_ascii_lcd_scroll() - scroll the display by a character -- 2.9.3