diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index 804a53534370389a321077af34b3cb6ed625e949..808cce9b68057506415c213b3a9b374d0f28cf13 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c @@ -338,7 +338,7 @@ void omap_dm_timer_set_source(struct omap_dm_timer *timer, int source) /* When the functional clock disappears, too quick writes seem to * cause an abort. */ - __delay(15000); + __delay(150000); } #endif diff --git a/drivers/spi/omap2_mcspi.c b/drivers/spi/omap2_mcspi.c index 2c7cd54fa85a76ef387a07bd7490a2e7ace9196a..1a72872d695afa543b9c6f460ded0bbfd1ed1822 100644 --- a/drivers/spi/omap2_mcspi.c +++ b/drivers/spi/omap2_mcspi.c @@ -426,7 +426,10 @@ static void omap2_mcspi_work(unsigned long arg) omap2_mcspi_txrx(spi, t); if (t->cs_change) { - omap2_mcspi_force_cs(spi, 0); + /* In the last transfer entry the flag means + * _leave_ CS on */ + if (t->transfer_list.next != &m->transfers) + omap2_mcspi_force_cs(spi, 0); cs_active = 0; } }