diff --git a/configs/lm3s6965-ek/nx/defconfig b/configs/lm3s6965-ek/nx/defconfig
index 601c8c186741e3e3599ceebc4e680abac9c79700..de6ae2a1587e3c79881e164865e43a7e8b80ec6e 100755
--- a/configs/lm3s6965-ek/nx/defconfig
+++ b/configs/lm3s6965-ek/nx/defconfig
@@ -594,7 +594,7 @@ CONFIG_NX_MXCLIENTMSGS=16
 #   The latter limitation effectively reduces the 128x96 disply to 64x96.
 CONFIG_LCD_P14201=y
 CONFIG_P14201_SPIMODE=2
-CONFIG_P14201_FREQUENCY=20000000
+CONFIG_P14201_FREQUENCY=3500000
 CONFIG_P14201_NINTERFACES=1
 CONFIG_P14201_FRAMEBUFFER=y
 
diff --git a/configs/lm3s6965-ek/src/up_ssi.c b/configs/lm3s6965-ek/src/up_ssi.c
index 90d24ef7831f300272cdae2ae040bcaadc855173..4dcd231c060732ed09467cb0591a1f0292b01d5e 100755
--- a/configs/lm3s6965-ek/src/up_ssi.c
+++ b/configs/lm3s6965-ek/src/up_ssi.c
@@ -137,6 +137,7 @@ void lm3s_spiselect(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool select
 {
   ssidbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert");
   ssi_dumpgpio("lm3s_spiselect() Entry");
+
   if (devid == SPIDEV_MMCSD)
     {
       /* Assert the CS pin to the card */
diff --git a/drivers/lcd/p14201.c b/drivers/lcd/p14201.c
index a8bb347a91a2b5b470fef458688121b9e0bb22bb..d591360292cbdcdcc1e320cef2553b178e1984ac 100755
--- a/drivers/lcd/p14201.c
+++ b/drivers/lcd/p14201.c
@@ -552,6 +552,7 @@ static void rit_deselect(FAR struct spi_dev_s *spi)
  *   None
  *
  * Assumptions:
+ *   The caller as selected the OLED device.
  *
  **************************************************************************************/
 
@@ -565,15 +566,11 @@ static void rit_sndbytes(FAR struct rit_dev_s *priv, FAR const uint8_t *buffer,
          buflen, data ? "YES" : "NO", buffer[0], buffer[1], buffer[2] );
   DEBUGASSERT(spi);
 
-  /* Select the SD1329 controller */
-
-  rit_select(spi);
-
-  /* Clear the D/Cn bit to enable command mode */
+  /* Clear the D/Cn bit to enable command or data mode */
 
   rit_seldata(0, data);
 
-  /* Loop until the entire command is transferred */
+  /* Loop until the entire command/data block is transferred */
 
   while (buflen-- > 0)
     {
@@ -581,15 +578,7 @@ static void rit_sndbytes(FAR struct rit_dev_s *priv, FAR const uint8_t *buffer,
  
       tmp = *buffer++;
       (void)SPI_SEND(spi, tmp);
-
-      /* Send a dummy byte */
-
-      (void)SPI_SEND(spi, 0xff);
    }
-
- /* De-select the SD1329 controller */
-
- rit_deselect(spi);
 }
 
 /**************************************************************************************
@@ -635,6 +624,9 @@ static void rit_sndcmds(FAR struct rit_dev_s *priv, FAR const uint8_t *table)
  *   npixels - The number of pixels to write to the LCD
  *             (range: 0 < npixels <= xres-col)
  *
+ * Assumptions:
+ *   Caller has selected the OLED section.
+ *
  **************************************************************************************/
 
 #ifdef CONFIG_P14201_FRAMEBUFFER
@@ -829,6 +821,10 @@ static int rit_putrun(fb_coord_t row, fb_coord_t col, FAR const uint8_t *buffer,
         }
     }
 
+  /* Select the SD1329 controller */
+
+  rit_select(priv->spi);
+
   /* Setup a window that describes a run starting at the specified column
    * and row, and ending at the column + npixels on the same row.
    */
@@ -848,6 +844,9 @@ static int rit_putrun(fb_coord_t row, fb_coord_t col, FAR const uint8_t *buffer,
   rit_sndcmd(priv, g_horzinc, sizeof(g_horzinc));
   rit_snddata(priv, &run[start], aend - start);
 
+  /* De-select the SD1329 controller */
+
+  rit_deselect(priv->spi);
   return OK;
 }
 #else
@@ -872,6 +871,10 @@ static int rit_putrun(fb_coord_t row, fb_coord_t col, FAR const uint8_t *buffer,
 
       DEBUGASSERT((col & 1) == 0 && (npixels & 1) == 0);
 
+      /* Select the SD1329 controller */
+
+      rit_select(priv->spi);
+
       /* Setup a window that describes a run starting at the specified column
        * and row, and ending at the column + npixels on the same row.
        */
@@ -890,6 +893,10 @@ static int rit_putrun(fb_coord_t row, fb_coord_t col, FAR const uint8_t *buffer,
 
       rit_sndcmd(priv, g_horzinc, sizeof(g_horzinc));
       rit_snddata(priv, buffer, npixels >> 1);
+
+      /* De-select the SD1329 controller */
+
+      rit_deselect(priv->spi);
     }
   return OK;
 }
@@ -1079,6 +1086,13 @@ static int rit_setpower(struct lcd_dev_s *dev, int power)
   DEBUGASSERT(priv && (unsigned)power <= CONFIG_LCD_MAXPOWER && priv->spi);
 
   gvdbg("power: %d\n", power);
+
+  /* Select the SD1329 controller */
+
+  rit_select(priv->spi);
+
+  /* Only two power settings -- 0: sleep on, 1: sleep off */
+
   if (power > 0)
     {
       /* Re-initialize the SSD1329 controller */
@@ -1087,7 +1101,7 @@ static int rit_setpower(struct lcd_dev_s *dev, int power)
 
       /* Take the display out of sleep mode */
 
-      rit_sndcmd(priv, g_sleepoff, sizeof(g_sleepon));
+      rit_sndcmd(priv, g_sleepoff, sizeof(g_sleepoff));
     }
   else
     {
@@ -1095,7 +1109,11 @@ static int rit_setpower(struct lcd_dev_s *dev, int power)
 
       rit_sndcmd(priv, g_sleepon, sizeof(g_sleepon));
     }
-  return -ENOSYS; /* Not implemented */
+
+  /* De-select the SD1329 controller */
+
+  rit_deselect(priv->spi);
+  return OK;
 }
 
 /**************************************************************************************
@@ -1130,6 +1148,10 @@ static int rit_setcontrast(struct lcd_dev_s *dev, unsigned int contrast)
   gvdbg("contrast: %d\n", contrast);
   DEBUGASSERT(contrast <= CONFIG_LCD_MAXCONTRAST);
 
+  /* Select the SD1329 controller */
+
+  rit_select(priv->spi);
+
   /* Set new contrast */
 
   cmd[0] = SSD1329_SET_CONTRAST;
@@ -1137,6 +1159,9 @@ static int rit_setcontrast(struct lcd_dev_s *dev, unsigned int contrast)
   cmd[2] = SSD1329_NOOP;
   rit_sndcmd(priv, cmd, 3);
 
+  /* De-select the SD1329 controller */
+
+  rit_deselect(priv->spi);
   priv->contrast = contrast;
   return OK;
 }
@@ -1179,14 +1204,22 @@ FAR struct lcd_dev_s *rit_initialize(FAR struct spi_dev_s *spi, unsigned int dev
   priv->contrast = RIT_CONTRAST;
   priv->on       = false;
 
-  /* Configure and enable LCD */
+  /* Select the SD1329 controller */
 
   rit_configspi(spi);
-  rit_sndcmds(priv, g_initcmds);
+  rit_select(spi);
 
   /* Clear the display */
 
   rit_clear(priv);
+
+  /* Configure (but don't enable) the OLED */
+
+  rit_sndcmds(priv, g_initcmds);
+
+  /* De-select the SD1329 controller */
+
+  rit_deselect(spi);
   return &priv->dev;
 }
 #endif /* CONFIG_LCD_P14201 */