From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758198Ab2GKQae (ORCPT ); Wed, 11 Jul 2012 12:30:34 -0400 Received: from mail209.messagelabs.com ([216.82.255.3]:13836 "EHLO mail209.messagelabs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756398Ab2GKQad convert rfc822-to-8bit (ORCPT ); Wed, 11 Jul 2012 12:30:33 -0400 X-Env-Sender: hartleys@visionengravers.com X-Msg-Ref: server-9.tower-209.messagelabs.com!1342024197!8375034!23 X-Originating-IP: [216.166.12.178] X-StarScan-Version: 6.5.10; banners=-,-,- X-VirusChecked: Checked From: H Hartley Sweeten To: Ian Abbott , Linux Kernel CC: "devel@driverdev.osuosl.org" , Greg Kroah-Hartman Date: Wed, 11 Jul 2012 11:30:17 -0500 Subject: RE: [PATCH] staging: comedi: rtd520: add a few comments Thread-Topic: [PATCH] staging: comedi: rtd520: add a few comments Thread-Index: Ac1fYLTHSWLpoTJASy+Exc7ZERQ9rAAIYPmg Message-ID: References: <4FFD5665.7040901@mev.co.uk> <1342009699-7031-1-git-send-email-abbotti@mev.co.uk> In-Reply-To: <1342009699-7031-1-git-send-email-abbotti@mev.co.uk> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > Cc: H Hartley Sweeten > Cc: Greg Kroah-Hartman > --- > 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 Thanks!