summaryrefslogtreecommitdiff
path: root/drivers/spi/spi-omap2-mcspi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/spi/spi-omap2-mcspi.c')
-rw-r--r--drivers/spi/spi-omap2-mcspi.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index 86d2158946b..ea5d0e0a310 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -1070,6 +1070,9 @@ static int omap2_mcspi_transfer_one_message(struct spi_master *master,
const void *tx_buf = t->tx_buf;
void *rx_buf = t->rx_buf;
unsigned len = t->len;
+ if ((t->speed_hz < (OMAP2_MCSPI_MAX_FREQ >> 15)) ||
+ t->speed_hz > OMAP2_MCSPI_MAX_FREQ)
+ t->speed_hz = 1000000;
if (t->speed_hz > OMAP2_MCSPI_MAX_FREQ
|| (len && !(rx_buf || tx_buf))
@@ -1384,5 +1387,16 @@ static struct platform_driver omap2_mcspi_driver = {
.remove = omap2_mcspi_remove,
};
-module_platform_driver(omap2_mcspi_driver);
+static int __init omap2_mcspi_init(void)
+{
+ return platform_driver_register(&omap2_mcspi_driver);
+}
+subsys_initcall_sync(omap2_mcspi_init);
+
+static void __exit omap2_mcspi_exit(void)
+{
+ platform_driver_unregister(&omap2_mcspi_driver);
+}
+module_exit(omap2_mcspi_exit);
+
MODULE_LICENSE("GPL");