{
        struct snd_pcm_substream *substream = strm->substream;
        struct snd_pcm_runtime *runtime;
-       bool done = false;
        u16 *buf;
        int fifo_samples;
        int frames_left;
 
        runtime = substream->runtime;
 
-       while (!done) {
+       do {
                /* frames left in this period */
                frames_left = runtime->period_size -
                              (strm->buffer_pos % runtime->period_size);
                        break;
 
                /* calculate new buffer index */
-               buf = (u16 *)(runtime->dma_area);
+               buf = (u16 *)runtime->dma_area;
                buf += strm->buffer_pos * runtime->channels;
 
                /* Note, only supports 16-bit samples */
 
                rz_ssi_reg_mask_setl(ssi, SSIFSR, SSIFSR_RDF, 0);
                rz_ssi_pointer_update(strm, samples / runtime->channels);
-
-               /* check if there are no more samples in the RX FIFO */
-               if (!(!frames_left && fifo_samples >= runtime->channels))
-                       done = true;
-       }
+       } while (!frames_left && fifo_samples >= runtime->channels);
 
        return 0;
 }