On Wednesday, July 11, 2012 5:28 AM, Ian Abbott wrote:
> H Hartley Sweeten's recent series of patches to clean up the rtd520
> driver made some of the register accesses harder to understand.  Add a
> few comments to provide some clues to the reader.
>
> Signed-off-by: Ian Abbott <abbo...@mev.co.uk>
> Cc: H Hartley Sweeten <hswee...@visionengravers.com>
> Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
> ---
> To be applied after Hartley's 83 patches.
> ---
>  drivers/staging/comedi/drivers/rtd520.c |   23 ++++++++++++++++++-----
>  1 files changed, 18 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/staging/comedi/drivers/rtd520.c 
> b/drivers/staging/comedi/drivers/rtd520.c
> index 5a2953e..9998d6b 100644
> --- a/drivers/staging/comedi/drivers/rtd520.c
> +++ b/drivers/staging/comedi/drivers/rtd520.c
> @@ -494,6 +494,7 @@ static int rtd520_probe_fifo_depth(struct comedi_device 
> *dev)
>  
>       writel(0, devpriv->las0 + LAS0_ADC_FIFO_CLEAR);
>       rtd_load_channelgain_list(dev, 1, &chanspec);
> +     /* ADC conversion trigger source: SOFTWARE */
>       writel(0, devpriv->las0 + LAS0_ADC_CONVERSION);
>       /* convert  samples */
>       for (i = 0; i < limit; ++i) {
> @@ -544,7 +545,7 @@ static int rtd_ai_rinsn(struct comedi_device *dev,
>       /* write channel to multiplexer and clear channel gain table */
>       rtd_load_channelgain_list(dev, 1, &insn->chanspec);
>  
> -     /* set conversion source */
> +     /* ADC conversion trigger source: SOFTWARE */
>       writel(0, devpriv->las0 + LAS0_ADC_CONVERSION);
>  
>       /* convert n samples */
> @@ -908,8 +909,9 @@ abortTransfer:
>       /* fall into transferDone */
>  
>  transferDone:
> +     /* pacer stop source: SOFTWARE */
>       writel(0, devpriv->las0 + LAS0_PACER_STOP);
> -     writel(0, devpriv->las0 + LAS0_PACER);
> +     writel(0, devpriv->las0 + LAS0_PACER);  /* stop pacer */
>       writel(0, devpriv->las0 + LAS0_ADC_CONVERSION);
>       devpriv->intMask = 0;
>       writew(devpriv->intMask, devpriv->las0 + LAS0_IT);
> @@ -1180,8 +1182,9 @@ static int rtd_ai_cmd(struct comedi_device *dev, struct 
> comedi_subdevice *s)
>       int timer;
>  
>       /* stop anything currently running */
> +     /* pacer stop source: SOFTWARE */
>       writel(0, devpriv->las0 + LAS0_PACER_STOP);
> -     writel(0, devpriv->las0 + LAS0_PACER);
> +     writel(0, devpriv->las0 + LAS0_PACER);  /* stop pacer */
>       writel(0, devpriv->las0 + LAS0_ADC_CONVERSION);
>       devpriv->intMask = 0;
>       writew(devpriv->intMask, devpriv->las0 + LAS0_IT);
> @@ -1215,12 +1218,17 @@ static int rtd_ai_cmd(struct comedi_device *dev, 
> struct comedi_subdevice *s)
>       /* setup the common case and override if needed */
>       if (cmd->chanlist_len > 1) {
>               /*DPRINTK ("rtd520: Multi channel setup\n"); */
> +             /* pacer start source: SOFTWARE */
>               writel(0, devpriv->las0 + LAS0_PACER_START);
> +             /* burst trigger source: PACER */
>               writel(1, devpriv->las0 + LAS0_BURST_START);
> +             /* ADC conversion trigger source: BURST */
>               writel(2, devpriv->las0 + LAS0_ADC_CONVERSION);
>       } else {                /* single channel */
>               /*DPRINTK ("rtd520: single channel setup\n"); */
> +             /* pacer start source: SOFTWARE */
>               writel(0, devpriv->las0 + LAS0_PACER_START);
> +             /* ADC conversion trigger source: PACER */
>               writel(1, devpriv->las0 + LAS0_ADC_CONVERSION);
>       }
>       writel((devpriv->fifoLen / 2 - 1) & 0xffff, devpriv->las0 + LAS0_ACNT);
> @@ -1269,7 +1277,9 @@ static int rtd_ai_cmd(struct comedi_device *dev, struct 
> comedi_subdevice *s)
>               devpriv->transCount = 0;
>               devpriv->flags &= ~SEND_EOS;
>       }
> +     /* pacer clock source: INTERNAL 8MHz */
>       writel(1, devpriv->las0 + LAS0_PACER_SELECT);
> +     /* just interrupt, don't stop */
>       writel(1, devpriv->las0 + LAS0_ACNT_STOP_ENABLE);
>  
>       /* BUG??? these look like enumerated values, but they are bit fields */
> @@ -1305,6 +1315,7 @@ static int rtd_ai_cmd(struct comedi_device *dev, struct 
> comedi_subdevice *s)
>               break;
>  
>       case TRIG_EXT:
> +             /* pacer start source: EXTERNAL */
>               writel(1, devpriv->las0 + LAS0_PACER_START);
>               break;
>  
> @@ -1327,6 +1338,7 @@ static int rtd_ai_cmd(struct comedi_device *dev, struct 
> comedi_subdevice *s)
>               break;
>  
>       case TRIG_EXT:          /* external */
> +             /* burst trigger source: EXTERNAL */
>               writel(2, devpriv->las0 + LAS0_BURST_START);
>               break;
>  
> @@ -1378,7 +1390,7 @@ static int rtd_ai_cmd(struct comedi_device *dev, struct 
> comedi_subdevice *s)
>  
>       /* BUG: start_src is ASSUMED to be TRIG_NOW */
>       /* BUG? it seems like things are running before the "start" */
> -     readl(devpriv->las0 + LAS0_PACER);
> +     readl(devpriv->las0 + LAS0_PACER);      /* start pacer */
>       return 0;
>  }
>  
> @@ -1391,8 +1403,9 @@ static int rtd_ai_cancel(struct comedi_device *dev, 
> struct comedi_subdevice *s)
>       u32 overrun;
>       u16 status;
>  
> +     /* pacer stop source: SOFTWARE */
>       writel(0, devpriv->las0 + LAS0_PACER_STOP);
> -     writel(0, devpriv->las0 + LAS0_PACER);
> +     writel(0, devpriv->las0 + LAS0_PACER);  /* stop pacer */
>       writel(0, devpriv->las0 + LAS0_ADC_CONVERSION);
>       devpriv->intMask = 0;
>       writew(devpriv->intMask, devpriv->las0 + LAS0_IT);

Reviewed-by: H Hartley Sweeten <hswee...@visionengravers.com>

Thanks!

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to