irqmask = MCI_RXFIFOHALFFULLMASK;
 
                /*
-                * If we have less than a FIFOSIZE of bytes to transfer,
-                * trigger a PIO interrupt as soon as any data is available.
+                * If we have less than the fifo 'half-full' threshold to
+                * transfer, trigger a PIO interrupt as soon as any data
+                * is available.
                 */
-               if (host->size < variant->fifosize)
+               if (host->size < variant->fifohalfsize)
                        irqmask |= MCI_RXDATAAVLBLMASK;
        } else {
                /*
        local_irq_restore(flags);
 
        /*
-        * If we're nearing the end of the read, switch to
-        * "any data available" mode.
+        * If we have less than the fifo 'half-full' threshold to transfer,
+        * trigger a PIO interrupt as soon as any data is available.
         */
-       if (status & MCI_RXACTIVE && host->size < variant->fifosize)
+       if (status & MCI_RXACTIVE && host->size < variant->fifohalfsize)
                mmci_set_mask1(host, MCI_RXDATAAVLBLMASK);
 
        /*