diff options
Diffstat (limited to 'drivers/spi/spi-omap2-mcspi.c')
| -rw-r--r-- | drivers/spi/spi-omap2-mcspi.c | 16 |
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"); |