[PATCH] drm/ssd130x: Only define a SPI device ID table when built as a module

Nathan Chancellor nathan at kernel.org
Tue May 31 15:10:42 UTC 2022


On Mon, May 30, 2022 at 04:02:46PM +0200, Javier Martinez Canillas wrote:
> The kernel test robot reports a compile warning due the ssd130x_spi_table
> variable being defined but not used. This happen when ssd130x-spi driver
> is built-in instead of being built as a module, i.e:
> 
>   CC      drivers/gpu/drm/solomon/ssd130x-spi.o
>   AR      drivers/base/firmware_loader/built-in.a
>   AR      drivers/base/built-in.a
>   CC      kernel/trace/trace.o
> drivers/gpu/drm/solomon/ssd130x-spi.c:155:35: warning: ‘ssd130x_spi_table’ defined but not used [-Wunused-const-variable=]
>   155 | static const struct spi_device_id ssd130x_spi_table[] = {
>       |                                   ^~~~~~~~~~~~~~~~~
> 
> The driver shouldn't need a SPI device ID table and only have an OF device
> ID table, but the former is needed to workaround an issue in the SPI core.
> This always reports a MODALIAS of the form "spi:<device>" even for devices
> registered through Device Trees.
> 
> But the table is only needed when the driver built as a module to populate
> the .ko alias info. It's not needed when the driver is built-in the kernel.
> 
> Fixes: 74373977d2ca ("drm/solomon: Add SSD130x OLED displays SPI support")
> Reported-by: kernel test robot <lkp at intel.com>
> Signed-off-by: Javier Martinez Canillas <javierm at redhat.com>

Reviewed-by: Nathan Chancellor <nathan at kernel.org>

> ---
> 
>  drivers/gpu/drm/solomon/ssd130x-spi.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/solomon/ssd130x-spi.c b/drivers/gpu/drm/solomon/ssd130x-spi.c
> index 43722adab1f8..07802907e39a 100644
> --- a/drivers/gpu/drm/solomon/ssd130x-spi.c
> +++ b/drivers/gpu/drm/solomon/ssd130x-spi.c
> @@ -143,6 +143,7 @@ static const struct of_device_id ssd130x_of_match[] = {
>  };
>  MODULE_DEVICE_TABLE(of, ssd130x_of_match);
>  
> +#if IS_MODULE(CONFIG_DRM_SSD130X_SPI)
>  /*
>   * The SPI core always reports a MODALIAS uevent of the form "spi:<dev>", even
>   * if the device was registered via OF. This means that the module will not be
> @@ -160,6 +161,7 @@ static const struct spi_device_id ssd130x_spi_table[] = {
>  	{ /* sentinel */ }
>  };
>  MODULE_DEVICE_TABLE(spi, ssd130x_spi_table);
> +#endif
>  
>  static struct spi_driver ssd130x_spi_driver = {
>  	.driver = {
> -- 
> 2.36.1
> 


More information about the dri-devel mailing list