lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Wed, 11 Jul 2012 11:30:17 -0500
From:	H Hartley Sweeten <hartleys@...ionengravers.com>
To:	Ian Abbott <abbotti@....co.uk>,
	Linux Kernel <linux-kernel@...r.kernel.org>
CC:	"devel@...verdev.osuosl.org" <devel@...verdev.osuosl.org>,
	Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: RE: [PATCH] staging: comedi: rtd520: add a few comments

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 <abbotti@....co.uk>
> Cc: H Hartley Sweeten <hsweeten@...ionengravers.com>
> Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.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 <hsweeten@...ionengravers.com>

Thanks!

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ