struct cmipci_pcm {
        struct snd_pcm_substream *substream;
-       int running;            /* dac/adc running? */
+       u8 running;             /* dac/adc running? */
+       u8 fmt;                 /* format bits */
+       u8 is_dac;
        unsigned int dma_size;  /* in frames */
-       unsigned int period_size;       /* in frames */
+       unsigned int shift;
+       unsigned int ch;        /* channel (0/1) */
        unsigned int offset;    /* physical address of the buffer */
-       unsigned int fmt;       /* format bits */
-       int ch;                 /* channel (0/1) */
-       unsigned int is_dac;            /* is dac? */
-       int bytes_per_frame;
-       int shift;
 };
 
 /* mixer elements toggled/resumed during ac3 playback */
                                 struct snd_pcm_substream *substream)
 {
        unsigned int reg, freq, val;
+       unsigned int period_size;
        struct snd_pcm_runtime *runtime = substream->runtime;
 
        rec->fmt = 0;
        rec->offset = runtime->dma_addr;
        /* buffer and period sizes in frame */
        rec->dma_size = runtime->buffer_size << rec->shift;
-       rec->period_size = runtime->period_size << rec->shift;
+       period_size = runtime->period_size << rec->shift;
        if (runtime->channels > 2) {
                /* multi-channels */
                rec->dma_size = (rec->dma_size * runtime->channels) / 2;
-               rec->period_size = (rec->period_size * runtime->channels) / 2;
+               period_size = (period_size * runtime->channels) / 2;
        }
 
        spin_lock_irq(&cm->reg_lock);
        /* program sample counts */
        reg = rec->ch ? CM_REG_CH1_FRAME2 : CM_REG_CH0_FRAME2;
        snd_cmipci_write_w(cm, reg, rec->dma_size - 1);
-       snd_cmipci_write_w(cm, reg + 2, rec->period_size - 1);
+       snd_cmipci_write_w(cm, reg + 2, period_size - 1);
 
        /* set adc/dac flag */
        val = rec->ch ? CM_CHADC1 : CM_CHADC0;
  * PCM trigger/stop
  */
 static int snd_cmipci_pcm_trigger(struct cmipci *cm, struct cmipci_pcm *rec,
-                                 struct snd_pcm_substream *substream, int cmd)
+                                 int cmd)
 {
        unsigned int inthld, chen, reset, pause;
        int result = 0;
                                       int cmd)
 {
        struct cmipci *cm = snd_pcm_substream_chip(substream);
-       return snd_cmipci_pcm_trigger(cm, &cm->channel[CM_CH_PLAY], substream, cmd);
+       return snd_cmipci_pcm_trigger(cm, &cm->channel[CM_CH_PLAY], cmd);
 }
 
 static snd_pcm_uframes_t snd_cmipci_playback_pointer(struct snd_pcm_substream *substream)
                                     int cmd)
 {
        struct cmipci *cm = snd_pcm_substream_chip(substream);
-       return snd_cmipci_pcm_trigger(cm, &cm->channel[CM_CH_CAPT], substream, cmd);
+       return snd_cmipci_pcm_trigger(cm, &cm->channel[CM_CH_CAPT], cmd);
 }
 
 static snd_pcm_uframes_t snd_cmipci_capture_pointer(struct snd_pcm_substream *substream)