lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 4 Jan 2021 16:34:35 +0100
From:   Gustav Wiklander <gustav.wiklander@...s.com>
To:     Mark Brown <broonie@...nel.org>
CC:     <kernel@...s.com>, Gustav Wiklander <gustavwi@...s.com>,
        <linux-spi@...r.kernel.org>, <linux-kernel@...r.kernel.org>
Subject: [PATCH] spi: spidev: Fix so the module is autoloaded when built as external

From: Gustav Wiklander <gustavwi@...s.com>

The spi framework sets the modalias for the spi device to belong in
either the acpi device table or the SPI device table. It can never
be in the OF table. Therefore the spidev driver should populate the
spi device table rather than the OF table.

NOTE: platform drivers and i2c drivers support aliases in the
      OF device table.

Signed-off-by: Gustav Wiklander <gustavwi@...s.com>
---
 drivers/spi/spidev.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
index 859910ec8d9f..5cf419a046da 100644
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -687,6 +687,19 @@ static const struct of_device_id spidev_dt_ids[] = {
 MODULE_DEVICE_TABLE(of, spidev_dt_ids);
 #endif
 
+static const struct spi_device_id spidev_ids[] = {
+	{ .name = "dh2228fv" },
+	{ .name = "ltc2488" },
+	{ .name = "achc" },
+	{ .name = "sx1301" },
+	{ .name = "bk4" },
+	{ .name = "dhcom-board" },
+	{ .name = "m53cpld" },
+	{ .name = "xc7a35t" },
+	{},
+};
+MODULE_DEVICE_TABLE(spi, spidev_ids);
+
 #ifdef CONFIG_ACPI
 
 /* Dummy SPI devices not to be used in production systems */
@@ -817,7 +830,7 @@ static struct spi_driver spidev_spi_driver = {
 	},
 	.probe =	spidev_probe,
 	.remove =	spidev_remove,
-
+	.id_table = spidev_ids,
 	/* NOTE:  suspend/resume methods are not necessary here.
 	 * We don't do anything except pass the requests to/from
 	 * the underlying controller.  The refrigerator handles
-- 
2.11.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ