Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1402251 > unrolled thread
| Started by | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| First post | 2016-05-17 12:00 +0200 |
| Last post | 2016-05-19 20:20 +0200 |
| Articles | 20 on this page of 48 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH 00/14] staging: comedi: daqboard2000: checkpatch clean-ups Ian Abbott <abbotti@mev.co.uk> - 2016-05-17 12:00 +0200
[PATCH 07/14] staging: comedi: daqboard2000: rename acquisition control register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-17 12:00 +0200
[PATCH 14/14] staging: comedi: daqboard2000: prefer usleep_range() Ian Abbott <abbotti@mev.co.uk> - 2016-05-17 12:00 +0200
RE: [PATCH 14/14] staging: comedi: daqboard2000: prefer usleep_range() Hartley Sweeten <HartleyS@visionengravers.com> - 2016-05-17 19:50 +0200
Re: [PATCH 14/14] staging: comedi: daqboard2000: prefer usleep_range() Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 12:30 +0200
RE: [PATCH 00/14] staging: comedi: daqboard2000: checkpatch clean-ups Hartley Sweeten <HartleyS@visionengravers.com> - 2016-05-17 20:10 +0200
Re: [PATCH 00/14] staging: comedi: daqboard2000: checkpatch clean-ups Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:10 +0200
[PATCH v2 10/14] staging: comedi: daqboard2000: redo DAC status macros and fix busy Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:40 +0200
[PATCH v2 06/14] staging: comedi: daqboard2000: rename register offset macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:40 +0200
RE: [PATCH v2 06/14] staging: comedi: daqboard2000: rename register offset macros Hartley Sweeten <HartleyS@visionengravers.com> - 2016-05-19 00:50 +0200
[PATCH v3 06/14] staging: comedi: daqboard2000: rename register offset macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 12:00 +0200
RE: [PATCH v3 06/14] staging: comedi: daqboard2000: rename register offset macros Hartley Sweeten <HartleyS@visionengravers.com> - 2016-05-19 18:50 +0200
Re: [PATCH v3 06/14] staging: comedi: daqboard2000: rename register offset macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 19:50 +0200
[PATCH v2 11/14] staging: comedi: daqboard2000: rename trigger control register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:40 +0200
[PATCH v2 08/14] staging: comedi: daqboard2000: rename acq status register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:40 +0200
[PATCH v2 07/14] staging: comedi: daqboard2000: rename acquisition control register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:40 +0200
[PATCH v2 09/14] staging: comedi: daqboard2000: redo DAC control register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:40 +0200
[PATCH v2 04/14] staging: comedi: daqboard2000: add blank line after struct declaration Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:40 +0200
[PATCH v2 12/14] staging: comedi: daqboard2000: rename reference DACs register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:40 +0200
RE: [PATCH v2 12/14] staging: comedi: daqboard2000: rename reference DACs register macros Hartley Sweeten <HartleyS@visionengravers.com> - 2016-05-19 01:00 +0200
[PATCH v3 12/14] staging: comedi: daqboard2000: rename reference DACs register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 12:00 +0200
Re: [PATCH v3 12/14] staging: comedi: daqboard2000: rename reference DACs register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 12:10 +0200
[PATCH v4 12/14] staging: comedi: daqboard2000: rename reference DACs register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 12:20 +0200
[PATCH v2 02/14] staging: comedi: daqboard2000: use usual block comment style Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:40 +0200
[PATCH v2 14/14] staging: comedi: daqboard2000: prefer usleep_range() Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:40 +0200
[PATCH v2 13/14] staging: comedi: daqboard2000: rename CamelCase functions Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:40 +0200
[PATCH v2 05/14] staging: comedi: daqboard2000: rename serial EEPROM register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:50 +0200
[PATCH v2 03/14] staging: comedi: daqboard2000: CHECK: spaces preferred around that '*' Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:50 +0200
[PATCH v2 00/14] staging: comedi: daqboard2000: checkpatch clean-ups Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:50 +0200
[PATCH v2 01/14] staging: comedi: daqboard2000: remove commented out code Ian Abbott <abbotti@mev.co.uk> - 2016-05-18 14:50 +0200
Re: [PATCH v2 00/14] staging: comedi: daqboard2000: checkpatch clean-ups Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 12:10 +0200
Re: [PATCH v2 00/14] staging: comedi: daqboard2000: checkpatch clean-ups Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 12:20 +0200
Re: [PATCH v2 00/14] staging: comedi: daqboard2000: checkpatch clean-ups Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:10 +0200
[PATCH v4 00/14] staging: comedi: daqboard2000: checkpatch clean-ups Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 11/14] staging: comedi: daqboard2000: rename trigger control register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 03/14] staging: comedi: daqboard2000: CHECK: spaces preferred around that '*' Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 04/14] staging: comedi: daqboard2000: add blank line after struct declaration Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 01/14] staging: comedi: daqboard2000: remove commented out code Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 07/14] staging: comedi: daqboard2000: rename acquisition control register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 08/14] staging: comedi: daqboard2000: rename acq status register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 10/14] staging: comedi: daqboard2000: redo DAC status macros and fix busy Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 14/14] staging: comedi: daqboard2000: prefer usleep_range() Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 06/14] staging: comedi: daqboard2000: rename register offset macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 12/14] staging: comedi: daqboard2000: rename reference DACs register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 13/14] staging: comedi: daqboard2000: rename CamelCase functions Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 09/14] staging: comedi: daqboard2000: redo DAC control register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 02/14] staging: comedi: daqboard2000: use usual block comment style Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
[PATCH v4 05/14] staging: comedi: daqboard2000: rename serial EEPROM register macros Ian Abbott <abbotti@mev.co.uk> - 2016-05-19 20:20 +0200
Page 1 of 3 [1] 2 3 Next page →
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-17 12:00 +0200 |
| Subject | [PATCH 00/14] staging: comedi: daqboard2000: checkpatch clean-ups |
| Message-ID | <rzJXb-2UD-3@gated-at.bofh.it> |
This series of patches to the daqboard2000 driver is mostly to fix the
checkpatch.pl warnings. There is one warning remaining about one of the
`udelay` calls with a parameter of 10 microseconds, but I decided to
leave it alone, as converting it to `usleep_range` could increase
firmware loading time.
Patches 03 and 06 have checkpatch warnings themselves about CamelCase
issues, but they are not "new" issues, and are resolved by the later
patches in the series.
01) staging: comedi: daqboard2000: remove commented out code
02) staging: comedi: daqboard2000: use usual block comment style
03) staging: comedi: daqboard2000: CHECK: spaces preferred around that
'*'
04) staging: comedi: daqboard2000: add blank line after struct
declaration
05) staging: comedi: daqboard2000: rename serial EEPROM register macros
06) staging: comedi: daqboard2000: rename register offset macros
07) staging: comedi: daqboard2000: rename acquisition control register
macros
08) staging: comedi: daqboard2000: rename acq status register macros
09) staging: comedi: daqboard2000: redo DAC control register macros
10) staging: comedi: daqboard2000: redo DAC status macros and fix busy
11) staging: comedi: daqboard2000: rename trigger control register
macros
12) staging: comedi: daqboard2000: rename reference DACs register macros
13) staging: comedi: daqboard2000: rename CamelCase functions
14) staging: comedi: daqboard2000: prefer usleep_range()
drivers/staging/comedi/drivers/daqboard2000.c | 376 +++++++++++++-------------
1 file changed, 188 insertions(+), 188 deletions(-)
[toc] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-17 12:00 +0200 |
| Subject | [PATCH 07/14] staging: comedi: daqboard2000: rename acquisition control register macros |
| Message-ID | <rzJXi-2UD-51@gated-at.bofh.it> |
| In reply to | #1402251 |
Rename the macros defining values for the acquisition control register
to avoid CamelCase, and to make it clearer which register they are
associated with.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
---
drivers/staging/comedi/drivers/daqboard2000.c | 50 ++++++++++++---------------
1 file changed, 23 insertions(+), 27 deletions(-)
diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c
index 92ff8f4..3634331 100644
--- a/drivers/staging/comedi/drivers/daqboard2000.c
+++ b/drivers/staging/comedi/drivers/daqboard2000.c
@@ -182,13 +182,13 @@ static const struct comedi_lrange range_daqboard2000_ai = {
#define DAQBOARD2000_REG_DIO_P2_EXP_IO_16_BIT(x) (0xc0 + (x) * 2) /* s16 */
/* Scan Sequencer programming */
-#define DAQBOARD2000_SeqStartScanList 0x0011
-#define DAQBOARD2000_SeqStopScanList 0x0010
+#define DAQBOARD2000_ACQ_CONTROL_SEQ_START_SCAN_LIST 0x0011
+#define DAQBOARD2000_ACQ_CONTROL_SEQ_STOP_SCAN_LIST 0x0010
/* Prepare for acquisition */
-#define DAQBOARD2000_AcqResetScanListFifo 0x0004
-#define DAQBOARD2000_AcqResetResultsFifo 0x0002
-#define DAQBOARD2000_AcqResetConfigPipe 0x0001
+#define DAQBOARD2000_ACQ_CONTROL_RESET_SCAN_LIST_FIFO 0x0004
+#define DAQBOARD2000_ACQ_CONTROL_RESET_RESULTS_FIFO 0x0002
+#define DAQBOARD2000_ACQ_CONTROL_RESET_CONFIG_PIPE 0x0001
/* Acqusition status bits */
#define DAQBOARD2000_AcqResultsFIFOMore1Sample 0x0001
@@ -203,20 +203,16 @@ static const struct comedi_lrange range_daqboard2000_ai = {
#define DAQBOARD2000_DacPacerOverrun 0x0200
#define DAQBOARD2000_AcqHardwareError 0x01c0
-/* Scan Sequencer programming */
-#define DAQBOARD2000_SeqStartScanList 0x0011
-#define DAQBOARD2000_SeqStopScanList 0x0010
-
/* Pacer Clock Control */
-#define DAQBOARD2000_AdcPacerInternal 0x0030
-#define DAQBOARD2000_AdcPacerExternal 0x0032
-#define DAQBOARD2000_AdcPacerEnable 0x0031
-#define DAQBOARD2000_AdcPacerEnableDacPacer 0x0034
-#define DAQBOARD2000_AdcPacerDisable 0x0030
-#define DAQBOARD2000_AdcPacerNormalMode 0x0060
-#define DAQBOARD2000_AdcPacerCompatibilityMode 0x0061
-#define DAQBOARD2000_AdcPacerInternalOutEnable 0x0008
-#define DAQBOARD2000_AdcPacerExternalRising 0x0100
+#define DAQBOARD2000_ACQ_CONTROL_ADC_PACER_INTERNAL 0x0030
+#define DAQBOARD2000_ACQ_CONTROL_ADC_PACER_EXTERNAL 0x0032
+#define DAQBOARD2000_ACQ_CONTROL_ADC_PACER_ENABLE 0x0031
+#define DAQBOARD2000_ACQ_CONTROL_ADC_PACER_ENABLE_DAC_PACER 0x0034
+#define DAQBOARD2000_ACQ_CONTROL_ADC_PACER_DISABLE 0x0030
+#define DAQBOARD2000_ACQ_CONTROL_ADC_PACER_NORMAL_MODE 0x0060
+#define DAQBOARD2000_ACQ_CONTROL_ADC_PACER_COMPATIBILITY_MODE 0x0061
+#define DAQBOARD2000_ACQ_CONTROL_ADC_PACER_INTERNAL_OUT_ENABLE 0x0008
+#define DAQBOARD2000_ACQ_CONTROL_ADC_PACER_EXTERNAL_RISING 0x0100
/* DAC status */
#define DAQBOARD2000_DacFull 0x0001
@@ -346,9 +342,9 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
int ret;
int i;
- writew(DAQBOARD2000_AcqResetScanListFifo |
- DAQBOARD2000_AcqResetResultsFifo |
- DAQBOARD2000_AcqResetConfigPipe,
+ writew(DAQBOARD2000_ACQ_CONTROL_RESET_SCAN_LIST_FIFO |
+ DAQBOARD2000_ACQ_CONTROL_RESET_RESULTS_FIFO |
+ DAQBOARD2000_ACQ_CONTROL_RESET_CONFIG_PIPE,
dev->mmio + DAQBOARD2000_REG_ACQ_CONTROL);
/*
@@ -371,7 +367,7 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
for (i = 0; i < insn->n; i++) {
setup_sampling(dev, chan, gain);
/* Enable reading from the scanlist FIFO */
- writew(DAQBOARD2000_SeqStartScanList,
+ writew(DAQBOARD2000_ACQ_CONTROL_SEQ_START_SCAN_LIST,
dev->mmio + DAQBOARD2000_REG_ACQ_CONTROL);
ret = comedi_timeout(dev, s, insn, daqboard2000_ai_status,
@@ -379,7 +375,7 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
if (ret)
return ret;
- writew(DAQBOARD2000_AdcPacerEnable,
+ writew(DAQBOARD2000_ACQ_CONTROL_ADC_PACER_ENABLE,
dev->mmio + DAQBOARD2000_REG_ACQ_CONTROL);
ret = comedi_timeout(dev, s, insn, daqboard2000_ai_status,
@@ -393,9 +389,9 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
return ret;
data[i] = readw(dev->mmio + DAQBOARD2000_REG_ACQ_RESULTS_FIFO);
- writew(DAQBOARD2000_AdcPacerDisable,
+ writew(DAQBOARD2000_ACQ_CONTROL_ADC_PACER_DISABLE,
dev->mmio + DAQBOARD2000_REG_ACQ_CONTROL);
- writew(DAQBOARD2000_SeqStopScanList,
+ writew(DAQBOARD2000_ACQ_CONTROL_SEQ_STOP_SCAN_LIST,
dev->mmio + DAQBOARD2000_REG_ACQ_CONTROL);
}
@@ -563,12 +559,12 @@ static void daqboard2000_adcDisarm(struct comedi_device *dev)
/* Stop the scan list FIFO from loading the configuration pipe */
udelay(2);
- writew(DAQBOARD2000_SeqStopScanList,
+ writew(DAQBOARD2000_ACQ_CONTROL_SEQ_STOP_SCAN_LIST,
dev->mmio + DAQBOARD2000_REG_ACQ_CONTROL);
/* Stop the pacer clock */
udelay(2);
- writew(DAQBOARD2000_AdcPacerDisable,
+ writew(DAQBOARD2000_ACQ_CONTROL_ADC_PACER_DISABLE,
dev->mmio + DAQBOARD2000_REG_ACQ_CONTROL);
/* Stop the input dma (abort channel 1) */
--
2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-17 12:00 +0200 |
| Subject | [PATCH 14/14] staging: comedi: daqboard2000: prefer usleep_range() |
| Message-ID | <rzJXi-2UD-53@gated-at.bofh.it> |
| In reply to | #1402251 |
The checkpatch.pl warns about two `udelay(x)` calls, one of 100 microseconds, and one of 10 microseconds. The 100 microseconds one is used when waiting for FPGA to become ready to accept firmware, and is not that critical, so replace it with a call to `usleep_range(100, 1000)`. The 10 microseconds one is called as each 16-bit word of firmware data is written. A longer sleep would slow down firmware loading, so leave it alone. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> --- drivers/staging/comedi/drivers/daqboard2000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c index 846de82..0831547 100644 --- a/drivers/staging/comedi/drivers/daqboard2000.c +++ b/drivers/staging/comedi/drivers/daqboard2000.c @@ -476,7 +476,7 @@ static int daqboard2000_poll_cpld(struct comedi_device *dev, int mask) result = 1; break; } - udelay(100); + usleep_range(100, 1000); } udelay(5); return result; -- 2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Hartley Sweeten <HartleyS@visionengravers.com> |
|---|---|
| Date | 2016-05-17 19:50 +0200 |
| Subject | RE: [PATCH 14/14] staging: comedi: daqboard2000: prefer usleep_range() |
| Message-ID | <rzRi1-7zt-5@gated-at.bofh.it> |
| In reply to | #1402253 |
On Tuesday, May 17, 2016 2:53 AM, Ian Abbott wrote: > The checkpatch.pl warns about two `udelay(x)` calls, one of 100 > microseconds, and one of 10 microseconds. The 100 microseconds one is > used when waiting for FPGA to become ready to accept firmware, and is > not that critical, so replace it with a call to `usleep_range(100, > 1000)`. The 10 microseconds one is called as each 16-bit word of > firmware data is written. A longer sleep would slow down firmware > loading, so leave it alone. The firmware blob in comedi-nonfree-firmware/daqboard2000 is 41236 bytes or 20618 words. With the 10 microsecond delay for each word to total delay time is only 0.0206 seconds. I don't think a small usleep_range() would slow down the firmware loading by much. How about usleep_range(10, 20)? Regards, Hartley
[toc] | [prev] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-18 12:30 +0200 |
| Subject | Re: [PATCH 14/14] staging: comedi: daqboard2000: prefer usleep_range() |
| Message-ID | <rA6TM-Pd-15@gated-at.bofh.it> |
| In reply to | #1402498 |
On 17/05/16 18:42, Hartley Sweeten wrote: > On Tuesday, May 17, 2016 2:53 AM, Ian Abbott wrote: >> The checkpatch.pl warns about two `udelay(x)` calls, one of 100 >> microseconds, and one of 10 microseconds. The 100 microseconds one is >> used when waiting for FPGA to become ready to accept firmware, and is >> not that critical, so replace it with a call to `usleep_range(100, >> 1000)`. The 10 microseconds one is called as each 16-bit word of >> firmware data is written. A longer sleep would slow down firmware >> loading, so leave it alone. > > The firmware blob in comedi-nonfree-firmware/daqboard2000 is > 41236 bytes or 20618 words. With the 10 microsecond delay for > each word to total delay time is only 0.0206 seconds. I don't think a > small usleep_range() would slow down the firmware loading by much. > How about usleep_range(10, 20)? > > Regards, > Hartley Okay. -- -=( Ian Abbott @ MEV Ltd. E-mail: <abbotti@mev.co.uk> )=- -=( Web: http://www.mev.co.uk/ )=-
[toc] | [prev] | [next] | [standalone]
| From | Hartley Sweeten <HartleyS@visionengravers.com> |
|---|---|
| Date | 2016-05-17 20:10 +0200 |
| Message-ID | <rzRBo-7V2-11@gated-at.bofh.it> |
| In reply to | #1402251 |
On Tuesday, May 17, 2016 2:53 AM, Ian Abbott wrote: > This series of patches to the daqboard2000 driver is mostly to fix the > checkpatch.pl warnings. There is one warning remaining about one of the > `udelay` calls with a parameter of 10 microseconds, but I decided to > leave it alone, as converting it to `usleep_range` could increase > firmware loading time. > > Patches 03 and 06 have checkpatch warnings themselves about CamelCase > issues, but they are not "new" issues, and are resolved by the later > patches in the series. > > 01) staging: comedi: daqboard2000: remove commented out code > 02) staging: comedi: daqboard2000: use usual block comment style > 03) staging: comedi: daqboard2000: CHECK: spaces preferred around that > '*' > 04) staging: comedi: daqboard2000: add blank line after struct > declaration > 05) staging: comedi: daqboard2000: rename serial EEPROM register macros > 06) staging: comedi: daqboard2000: rename register offset macros > 07) staging: comedi: daqboard2000: rename acquisition control register > macros > 08) staging: comedi: daqboard2000: rename acq status register macros > 09) staging: comedi: daqboard2000: redo DAC control register macros > 10) staging: comedi: daqboard2000: redo DAC status macros and fix busy > 11) staging: comedi: daqboard2000: rename trigger control register > macros > 12) staging: comedi: daqboard2000: rename reference DACs register macros > 13) staging: comedi: daqboard2000: rename CamelCase functions > 14) staging: comedi: daqboard2000: prefer usleep_range() > > drivers/staging/comedi/drivers/daqboard2000.c | 376 +++++++++++++------------- > 1 file changed, 188 insertions(+), 188 deletions(-) Ian, I had a couple comments on patches 1, 5, 6, and 14 but they are really just nitpicks. If you prefer to leave this series as-is: Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Thanks for going through this one, it's annoyed me... Hartley
[toc] | [prev] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-18 14:10 +0200 |
| Message-ID | <rA8sy-1WF-5@gated-at.bofh.it> |
| In reply to | #1402509 |
On 17/05/16 18:46, Hartley Sweeten wrote: > On Tuesday, May 17, 2016 2:53 AM, Ian Abbott wrote: >> This series of patches to the daqboard2000 driver is mostly to fix the >> checkpatch.pl warnings. There is one warning remaining about one of the >> `udelay` calls with a parameter of 10 microseconds, but I decided to >> leave it alone, as converting it to `usleep_range` could increase >> firmware loading time. >> >> Patches 03 and 06 have checkpatch warnings themselves about CamelCase >> issues, but they are not "new" issues, and are resolved by the later >> patches in the series. >> >> 01) staging: comedi: daqboard2000: remove commented out code >> 02) staging: comedi: daqboard2000: use usual block comment style >> 03) staging: comedi: daqboard2000: CHECK: spaces preferred around that >> '*' >> 04) staging: comedi: daqboard2000: add blank line after struct >> declaration >> 05) staging: comedi: daqboard2000: rename serial EEPROM register macros >> 06) staging: comedi: daqboard2000: rename register offset macros >> 07) staging: comedi: daqboard2000: rename acquisition control register >> macros >> 08) staging: comedi: daqboard2000: rename acq status register macros >> 09) staging: comedi: daqboard2000: redo DAC control register macros >> 10) staging: comedi: daqboard2000: redo DAC status macros and fix busy >> 11) staging: comedi: daqboard2000: rename trigger control register >> macros >> 12) staging: comedi: daqboard2000: rename reference DACs register macros >> 13) staging: comedi: daqboard2000: rename CamelCase functions >> 14) staging: comedi: daqboard2000: prefer usleep_range() >> >> drivers/staging/comedi/drivers/daqboard2000.c | 376 +++++++++++++------------- >> 1 file changed, 188 insertions(+), 188 deletions(-) > > Ian, > > I had a couple comments on patches 1, 5, 6, and 14 but they are really just > nitpicks. If you prefer to leave this series as-is: > > Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Okay, I'll post a new series soon, taking your suggestions into account, apart from your comments on patch 5, which I'll leave until I modify the driver further. I'll edit in your `Reviewed-by` lines if that's okay by you, since the changes are just following your suggestions, and are pretty trivial. The least trivial change is changing patch 14 to change `udelay(10)` to `usleep_range(10, 20)` as you suggested. The other changes are just renaming macros and tagging on a couple of comments. -- -=( Ian Abbott @ MEV Ltd. E-mail: <abbotti@mev.co.uk> )=- -=( Web: http://www.mev.co.uk/ )=-
[toc] | [prev] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-18 14:40 +0200 |
| Subject | [PATCH v2 10/14] staging: comedi: daqboard2000: redo DAC status macros and fix busy |
| Message-ID | <rA8Vz-2a6-3@gated-at.bofh.it> |
| In reply to | #1402251 |
Rename the macros defining values for the DAC status register to avoid
CamelCase, and to make it clear which register they are associated with.
Refactor the macros defining the regular DAC channel "busy" bits into a
single macro that takes the DAC channel number as a parameter.
Add a macro to define the offset of the read-only DAC status register.
It is the same offset as the DAC control register, which is write-only.
The code in `daqboard2000_ao_eoc()` that checks the status for
completion of the DAC conversion looks wrong. The register has a "busy"
bit for each channel, but the existing code only works for channels 0
and 1. The driver only supports two DAC channels at the moment, so the
bug is currently harmless, but fix it so we can support four DAC
channels on some board models.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
---
v2: Shortened prefix from `DAQBOARD2000_` to `DB2K_`.
squash! staging: comedi: daqboard2000: redo DAC status macros and fix busy
---
drivers/staging/comedi/drivers/daqboard2000.c | 28 +++++++++++++--------------
1 file changed, 13 insertions(+), 15 deletions(-)
diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c
index aea40ee..37aa3a4 100644
--- a/drivers/staging/comedi/drivers/daqboard2000.c
+++ b/drivers/staging/comedi/drivers/daqboard2000.c
@@ -162,7 +162,8 @@ static const struct comedi_lrange range_daqboard2000_ai = {
#define DB2K_REG_ACQ_RESULTS_SHADOW 0x14 /* u16 */
#define DB2K_REG_ACQ_ADC_RESULT 0x18 /* u16 */
#define DB2K_REG_DAC_SCAN_COUNTER 0x1c /* u16 */
-#define DB2K_REG_DAC_CONTROL 0x20 /* u16 */
+#define DB2K_REG_DAC_CONTROL 0x20 /* u16 (w) */
+#define DB2K_REG_DAC_STATUS 0x20 /* u16 (r) */
#define DB2K_REG_DAC_FIFO 0x24 /* s16 */
#define DB2K_REG_DAC_PACER_CLOCK_DIV 0x2a /* u16 */
#define DB2K_REG_REF_DACS 0x2c /* u16 */
@@ -215,14 +216,11 @@ static const struct comedi_lrange range_daqboard2000_ai = {
#define DB2K_ACQ_STATUS_DAC_PACER_OVERRUN 0x0200
/* DAC status */
-#define DAQBOARD2000_DacFull 0x0001
-#define DAQBOARD2000_RefBusy 0x0002
-#define DAQBOARD2000_TrgBusy 0x0004
-#define DAQBOARD2000_CalBusy 0x0008
-#define DAQBOARD2000_Dac0Busy 0x0010
-#define DAQBOARD2000_Dac1Busy 0x0020
-#define DAQBOARD2000_Dac2Busy 0x0040
-#define DAQBOARD2000_Dac3Busy 0x0080
+#define DB2K_DAC_STATUS_DAC_FULL 0x0001
+#define DB2K_DAC_STATUS_REF_BUSY 0x0002
+#define DB2K_DAC_STATUS_TRIG_BUSY 0x0004
+#define DB2K_DAC_STATUS_CAL_BUSY 0x0008
+#define DB2K_DAC_STATUS_DAC_BUSY(x) (0x0010 << (x))
/* DAC control */
#define DB2K_DAC_CONTROL_ENABLE_BIT 0x0001
@@ -400,8 +398,8 @@ static int daqboard2000_ao_eoc(struct comedi_device *dev,
unsigned int chan = CR_CHAN(insn->chanspec);
unsigned int status;
- status = readw(dev->mmio + DB2K_REG_DAC_CONTROL);
- if ((status & ((chan + 1) * 0x0010)) == 0)
+ status = readw(dev->mmio + DB2K_REG_DAC_STATUS);
+ if ((status & DB2K_DAC_STATUS_DAC_BUSY(chan)) == 0)
return 0;
return -EBUSY;
}
@@ -574,8 +572,8 @@ static void daqboard2000_activateReferenceDacs(struct comedi_device *dev)
writew(0x80 | DAQBOARD2000_PosRefDacSelect,
dev->mmio + DB2K_REG_REF_DACS);
for (timeout = 0; timeout < 20; timeout++) {
- val = readw(dev->mmio + DB2K_REG_DAC_CONTROL);
- if ((val & DAQBOARD2000_RefBusy) == 0)
+ val = readw(dev->mmio + DB2K_REG_DAC_STATUS);
+ if ((val & DB2K_DAC_STATUS_REF_BUSY) == 0)
break;
udelay(2);
}
@@ -584,8 +582,8 @@ static void daqboard2000_activateReferenceDacs(struct comedi_device *dev)
writew(0x80 | DAQBOARD2000_NegRefDacSelect,
dev->mmio + DB2K_REG_REF_DACS);
for (timeout = 0; timeout < 20; timeout++) {
- val = readw(dev->mmio + DB2K_REG_DAC_CONTROL);
- if ((val & DAQBOARD2000_RefBusy) == 0)
+ val = readw(dev->mmio + DB2K_REG_DAC_STATUS);
+ if ((val & DB2K_DAC_STATUS_REF_BUSY) == 0)
break;
udelay(2);
}
--
2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-18 14:40 +0200 |
| Subject | [PATCH v2 06/14] staging: comedi: daqboard2000: rename register offset macros |
| Message-ID | <rA8Vz-2a6-7@gated-at.bofh.it> |
| In reply to | #1402251 |
Rename the macros defining register offsets to avoid CamelCase, and to
use namespace associated with the driver.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
---
Other CamelCase issues in this patch will be dealt with by later
patches in the series.
v2: Shortened prefix from `DAQBOARD2000_` to `DB2K_`.
---
drivers/staging/comedi/drivers/daqboard2000.c | 112 ++++++++++++++------------
1 file changed, 61 insertions(+), 51 deletions(-)
diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c
index ceb910d..b068746 100644
--- a/drivers/staging/comedi/drivers/daqboard2000.c
+++ b/drivers/staging/comedi/drivers/daqboard2000.c
@@ -151,35 +151,35 @@ static const struct comedi_lrange range_daqboard2000_ai = {
/*
* Register Memory Map
*/
-#define acqControl 0x00 /* u16 */
-#define acqScanListFIFO 0x02 /* u16 */
-#define acqPacerClockDivLow 0x04 /* u32 */
-#define acqScanCounter 0x08 /* u16 */
-#define acqPacerClockDivHigh 0x0a /* u16 */
-#define acqTriggerCount 0x0c /* u16 */
-#define acqResultsFIFO 0x10 /* u16 */
-#define acqResultsShadow 0x14 /* u16 */
-#define acqAdcResult 0x18 /* u16 */
-#define dacScanCounter 0x1c /* u16 */
-#define dacControl 0x20 /* u16 */
-#define dacFIFO 0x24 /* s16 */
-#define dacPacerClockDiv 0x2a /* u16 */
-#define refDacs 0x2c /* u16 */
-#define dioControl 0x30 /* u16 */
-#define dioP3hsioData 0x32 /* s16 */
-#define dioP3Control 0x34 /* u16 */
-#define calEepromControl 0x36 /* u16 */
-#define dacSetting(x) (0x38 + (x) * 2) /* s16 */
-#define dioP2ExpansionIO8Bit 0x40 /* s16 */
-#define ctrTmrControl 0x80 /* u16 */
-#define ctrInput(x) (0x88 + (x) * 2) /* s16 */
-#define timerDivisor(x) (0xa0 + (x) * 2) /* u16 */
-#define dmaControl 0xb0 /* u16 */
-#define trigControl 0xb2 /* u16 */
-#define calEeprom 0xb8 /* u16 */
-#define acqDigitalMark 0xba /* u16 */
-#define trigDacs 0xbc /* u16 */
-#define dioP2ExpansionIO16Bit(x) (0xc0 + (x) * 2) /* s16 */
+#define DB2K_REG_ACQ_CONTROL 0x00 /* u16 */
+#define DB2K_REG_ACQ_SCAN_LIST_FIFO 0x02 /* u16 */
+#define DB2K_REG_ACQ_PACER_CLOCK_DIV_LOW 0x04 /* u32 */
+#define DB2K_REG_ACQ_SCAN_COUNTER 0x08 /* u16 */
+#define DB2K_REG_ACQ_PACER_CLOCK_DIV_HIGH 0x0a /* u16 */
+#define DB2K_REG_ACQ_TRIGGER_COUNT 0x0c /* u16 */
+#define DB2K_REG_ACQ_RESULTS_FIFO 0x10 /* u16 */
+#define DB2K_REG_ACQ_RESULTS_SHADOW 0x14 /* u16 */
+#define DB2K_REG_ACQ_ADC_RESULT 0x18 /* u16 */
+#define DB2K_REG_DAC_SCAN_COUNTER 0x1c /* u16 */
+#define DB2K_REG_DAC_CONTROL 0x20 /* u16 */
+#define DB2K_REG_DAC_FIFO 0x24 /* s16 */
+#define DB2K_REG_DAC_PACER_CLOCK_DIV 0x2a /* u16 */
+#define DB2K_REG_REF_DACS 0x2c /* u16 */
+#define DB2K_REG_DIO_CONTROL 0x30 /* u16 */
+#define DB2K_REG_P3_HSIO_DATA 0x32 /* s16 */
+#define DB2K_REG_P3_CONTROL 0x34 /* u16 */
+#define DB2K_REG_CAL_EEPROM_CONTROL 0x36 /* u16 */
+#define DB2K_REG_DAC_SETTING(x) (0x38 + (x) * 2) /* s16 */
+#define DB2K_REG_DIO_P2_EXP_IO_8_BIT 0x40 /* s16 */
+#define DB2K_REG_COUNTER_TIMER_CONTROL 0x80 /* u16 */
+#define DB2K_REG_COUNTER_INPUT(x) (0x88 + (x) * 2) /* s16 */
+#define DB2K_REG_TIMER_DIV(x) (0xa0 + (x) * 2) /* u16 */
+#define DB2K_REG_DMA_CONTROL 0xb0 /* u16 */
+#define DB2K_REG_TRIG_CONTROL 0xb2 /* u16 */
+#define DB2K_REG_CAL_EEPROM 0xb8 /* u16 */
+#define DB2K_REG_ACQ_DIGITAL_MARK 0xba /* u16 */
+#define DB2K_REG_TRIG_DACS 0xbc /* u16 */
+#define DB2K_REG_DIO_P2_EXP_IO_16_BIT(x) (0xc0 + (x) * 2) /* s16 */
/* Scan Sequencer programming */
#define DAQBOARD2000_SeqStartScanList 0x0011
@@ -279,8 +279,9 @@ struct daqboard2000_private {
static void writeAcqScanListEntry(struct comedi_device *dev, u16 entry)
{
- writew(entry & 0x00ff, dev->mmio + acqScanListFIFO);
- writew((entry >> 8) & 0x00ff, dev->mmio + acqScanListFIFO);
+ writew(entry & 0x00ff, dev->mmio + DB2K_REG_ACQ_SCAN_LIST_FIFO);
+ writew((entry >> 8) & 0x00ff,
+ dev->mmio + DB2K_REG_ACQ_SCAN_LIST_FIFO);
}
static void setup_sampling(struct comedi_device *dev, int chan, int gain)
@@ -330,7 +331,7 @@ static int daqboard2000_ai_status(struct comedi_device *dev,
{
unsigned int status;
- status = readw(dev->mmio + acqControl);
+ status = readw(dev->mmio + DB2K_REG_ACQ_CONTROL);
if (status & context)
return 0;
return -EBUSY;
@@ -347,15 +348,16 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
writew(DAQBOARD2000_AcqResetScanListFifo |
DAQBOARD2000_AcqResetResultsFifo |
- DAQBOARD2000_AcqResetConfigPipe, dev->mmio + acqControl);
+ DAQBOARD2000_AcqResetConfigPipe,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
/*
* If pacer clock is not set to some high value (> 10 us), we
* risk multiple samples to be put into the result FIFO.
*/
/* 1 second, should be long enough */
- writel(1000000, dev->mmio + acqPacerClockDivLow);
- writew(0, dev->mmio + acqPacerClockDivHigh);
+ writel(1000000, dev->mmio + DB2K_REG_ACQ_PACER_CLOCK_DIV_LOW);
+ writew(0, dev->mmio + DB2K_REG_ACQ_PACER_CLOCK_DIV_HIGH);
gain = CR_RANGE(insn->chanspec);
chan = CR_CHAN(insn->chanspec);
@@ -369,14 +371,16 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
for (i = 0; i < insn->n; i++) {
setup_sampling(dev, chan, gain);
/* Enable reading from the scanlist FIFO */
- writew(DAQBOARD2000_SeqStartScanList, dev->mmio + acqControl);
+ writew(DAQBOARD2000_SeqStartScanList,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
ret = comedi_timeout(dev, s, insn, daqboard2000_ai_status,
DAQBOARD2000_AcqConfigPipeFull);
if (ret)
return ret;
- writew(DAQBOARD2000_AdcPacerEnable, dev->mmio + acqControl);
+ writew(DAQBOARD2000_AdcPacerEnable,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
ret = comedi_timeout(dev, s, insn, daqboard2000_ai_status,
DAQBOARD2000_AcqLogicScanning);
@@ -388,9 +392,11 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
if (ret)
return ret;
- data[i] = readw(dev->mmio + acqResultsFIFO);
- writew(DAQBOARD2000_AdcPacerDisable, dev->mmio + acqControl);
- writew(DAQBOARD2000_SeqStopScanList, dev->mmio + acqControl);
+ data[i] = readw(dev->mmio + DB2K_REG_ACQ_RESULTS_FIFO);
+ writew(DAQBOARD2000_AdcPacerDisable,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
+ writew(DAQBOARD2000_SeqStopScanList,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
}
return i;
@@ -404,7 +410,7 @@ static int daqboard2000_ao_eoc(struct comedi_device *dev,
unsigned int chan = CR_CHAN(insn->chanspec);
unsigned int status;
- status = readw(dev->mmio + dacControl);
+ status = readw(dev->mmio + DB2K_REG_DAC_CONTROL);
if ((status & ((chan + 1) * 0x0010)) == 0)
return 0;
return -EBUSY;
@@ -422,7 +428,7 @@ static int daqboard2000_ao_insn_write(struct comedi_device *dev,
unsigned int val = data[i];
int ret;
- writew(val, dev->mmio + dacSetting(chan));
+ writew(val, dev->mmio + DB2K_REG_DAC_SETTING(chan));
ret = comedi_timeout(dev, s, insn, daqboard2000_ao_eoc, 0);
if (ret)
@@ -550,18 +556,20 @@ static void daqboard2000_adcDisarm(struct comedi_device *dev)
/* Disable hardware triggers */
udelay(2);
writew(DAQBOARD2000_TrigAnalog | DAQBOARD2000_TrigDisable,
- dev->mmio + trigControl);
+ dev->mmio + DB2K_REG_TRIG_CONTROL);
udelay(2);
writew(DAQBOARD2000_TrigTTL | DAQBOARD2000_TrigDisable,
- dev->mmio + trigControl);
+ dev->mmio + DB2K_REG_TRIG_CONTROL);
/* Stop the scan list FIFO from loading the configuration pipe */
udelay(2);
- writew(DAQBOARD2000_SeqStopScanList, dev->mmio + acqControl);
+ writew(DAQBOARD2000_SeqStopScanList,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
/* Stop the pacer clock */
udelay(2);
- writew(DAQBOARD2000_AdcPacerDisable, dev->mmio + acqControl);
+ writew(DAQBOARD2000_AdcPacerDisable,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
/* Stop the input dma (abort channel 1) */
daqboard2000_adcStopDmaTransfer(dev);
@@ -573,18 +581,20 @@ static void daqboard2000_activateReferenceDacs(struct comedi_device *dev)
int timeout;
/* Set the + reference dac value in the FPGA */
- writew(0x80 | DAQBOARD2000_PosRefDacSelect, dev->mmio + refDacs);
+ writew(0x80 | DAQBOARD2000_PosRefDacSelect,
+ dev->mmio + DB2K_REG_REF_DACS);
for (timeout = 0; timeout < 20; timeout++) {
- val = readw(dev->mmio + dacControl);
+ val = readw(dev->mmio + DB2K_REG_DAC_CONTROL);
if ((val & DAQBOARD2000_RefBusy) == 0)
break;
udelay(2);
}
/* Set the - reference dac value in the FPGA */
- writew(0x80 | DAQBOARD2000_NegRefDacSelect, dev->mmio + refDacs);
+ writew(0x80 | DAQBOARD2000_NegRefDacSelect,
+ dev->mmio + DB2K_REG_REF_DACS);
for (timeout = 0; timeout < 20; timeout++) {
- val = readw(dev->mmio + dacControl);
+ val = readw(dev->mmio + DB2K_REG_DAC_CONTROL);
if ((val & DAQBOARD2000_RefBusy) == 0)
break;
udelay(2);
@@ -711,7 +721,7 @@ static int daqboard2000_auto_attach(struct comedi_device *dev,
s = &dev->subdevices[2];
return subdev_8255_init(dev, s, daqboard2000_8255_cb,
- dioP2ExpansionIO8Bit);
+ DB2K_REG_DIO_P2_EXP_IO_8_BIT);
}
static void daqboard2000_detach(struct comedi_device *dev)
--
2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Hartley Sweeten <HartleyS@visionengravers.com> |
|---|---|
| Date | 2016-05-19 00:50 +0200 |
| Subject | RE: [PATCH v2 06/14] staging: comedi: daqboard2000: rename register offset macros |
| Message-ID | <rAirT-8d7-11@gated-at.bofh.it> |
| In reply to | #1402933 |
On Wednesday, May 18, 2016 5:37 AM, Ian Abbott wrote: > Rename the macros defining register offsets to avoid CamelCase, and to > use namespace associated with the driver. > > Signed-off-by: Ian Abbott <abbotti@mev.co.uk> > Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> > --- > Other CamelCase issues in this patch will be dealt with by later > patches in the series. > > v2: Shortened prefix from `DAQBOARD2000_` to `DB2K_`. > --- > drivers/staging/comedi/drivers/daqboard2000.c | 112 ++++++++++++++------------ > 1 file changed, 61 insertions(+), 51 deletions(-) [snip] +#define DB2K_REG_DIO_P2_EXP_IO_16_BIT(x) (0xc0 + (x) * 2) /* s16 */ You slipped an extra space in here: WARNING: please, no space before tabs #184: FILE: drivers/staging/comedi/drivers/daqboard2000.c:184: +#define DB2K_REG_DIO_P2_EXP_IO_16_BIT(x) ^I(0xc0 + (x) * 2) /* s16 */$ Regards, Hartley
[toc] | [prev] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-19 12:00 +0200 |
| Subject | [PATCH v3 06/14] staging: comedi: daqboard2000: rename register offset macros |
| Message-ID | <rAsUh-6sS-13@gated-at.bofh.it> |
| In reply to | #1402933 |
Rename the macros defining register offsets to avoid CamelCase, and to
use namespace associated with the driver.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
---
Other CamelCase issues in this patch will be dealt with by later
patches in the series.
v2: Shortened prefix from `DAQBOARD2000_` to `DB2K_`.
v3: Removed a space before tab that slipped in in v2.
---
drivers/staging/comedi/drivers/daqboard2000.c | 112 ++++++++++++++------------
1 file changed, 61 insertions(+), 51 deletions(-)
diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c
index ceb910d..7c6a2450 100644
--- a/drivers/staging/comedi/drivers/daqboard2000.c
+++ b/drivers/staging/comedi/drivers/daqboard2000.c
@@ -151,35 +151,35 @@ static const struct comedi_lrange range_daqboard2000_ai = {
/*
* Register Memory Map
*/
-#define acqControl 0x00 /* u16 */
-#define acqScanListFIFO 0x02 /* u16 */
-#define acqPacerClockDivLow 0x04 /* u32 */
-#define acqScanCounter 0x08 /* u16 */
-#define acqPacerClockDivHigh 0x0a /* u16 */
-#define acqTriggerCount 0x0c /* u16 */
-#define acqResultsFIFO 0x10 /* u16 */
-#define acqResultsShadow 0x14 /* u16 */
-#define acqAdcResult 0x18 /* u16 */
-#define dacScanCounter 0x1c /* u16 */
-#define dacControl 0x20 /* u16 */
-#define dacFIFO 0x24 /* s16 */
-#define dacPacerClockDiv 0x2a /* u16 */
-#define refDacs 0x2c /* u16 */
-#define dioControl 0x30 /* u16 */
-#define dioP3hsioData 0x32 /* s16 */
-#define dioP3Control 0x34 /* u16 */
-#define calEepromControl 0x36 /* u16 */
-#define dacSetting(x) (0x38 + (x) * 2) /* s16 */
-#define dioP2ExpansionIO8Bit 0x40 /* s16 */
-#define ctrTmrControl 0x80 /* u16 */
-#define ctrInput(x) (0x88 + (x) * 2) /* s16 */
-#define timerDivisor(x) (0xa0 + (x) * 2) /* u16 */
-#define dmaControl 0xb0 /* u16 */
-#define trigControl 0xb2 /* u16 */
-#define calEeprom 0xb8 /* u16 */
-#define acqDigitalMark 0xba /* u16 */
-#define trigDacs 0xbc /* u16 */
-#define dioP2ExpansionIO16Bit(x) (0xc0 + (x) * 2) /* s16 */
+#define DB2K_REG_ACQ_CONTROL 0x00 /* u16 */
+#define DB2K_REG_ACQ_SCAN_LIST_FIFO 0x02 /* u16 */
+#define DB2K_REG_ACQ_PACER_CLOCK_DIV_LOW 0x04 /* u32 */
+#define DB2K_REG_ACQ_SCAN_COUNTER 0x08 /* u16 */
+#define DB2K_REG_ACQ_PACER_CLOCK_DIV_HIGH 0x0a /* u16 */
+#define DB2K_REG_ACQ_TRIGGER_COUNT 0x0c /* u16 */
+#define DB2K_REG_ACQ_RESULTS_FIFO 0x10 /* u16 */
+#define DB2K_REG_ACQ_RESULTS_SHADOW 0x14 /* u16 */
+#define DB2K_REG_ACQ_ADC_RESULT 0x18 /* u16 */
+#define DB2K_REG_DAC_SCAN_COUNTER 0x1c /* u16 */
+#define DB2K_REG_DAC_CONTROL 0x20 /* u16 */
+#define DB2K_REG_DAC_FIFO 0x24 /* s16 */
+#define DB2K_REG_DAC_PACER_CLOCK_DIV 0x2a /* u16 */
+#define DB2K_REG_REF_DACS 0x2c /* u16 */
+#define DB2K_REG_DIO_CONTROL 0x30 /* u16 */
+#define DB2K_REG_P3_HSIO_DATA 0x32 /* s16 */
+#define DB2K_REG_P3_CONTROL 0x34 /* u16 */
+#define DB2K_REG_CAL_EEPROM_CONTROL 0x36 /* u16 */
+#define DB2K_REG_DAC_SETTING(x) (0x38 + (x) * 2) /* s16 */
+#define DB2K_REG_DIO_P2_EXP_IO_8_BIT 0x40 /* s16 */
+#define DB2K_REG_COUNTER_TIMER_CONTROL 0x80 /* u16 */
+#define DB2K_REG_COUNTER_INPUT(x) (0x88 + (x) * 2) /* s16 */
+#define DB2K_REG_TIMER_DIV(x) (0xa0 + (x) * 2) /* u16 */
+#define DB2K_REG_DMA_CONTROL 0xb0 /* u16 */
+#define DB2K_REG_TRIG_CONTROL 0xb2 /* u16 */
+#define DB2K_REG_CAL_EEPROM 0xb8 /* u16 */
+#define DB2K_REG_ACQ_DIGITAL_MARK 0xba /* u16 */
+#define DB2K_REG_TRIG_DACS 0xbc /* u16 */
+#define DB2K_REG_DIO_P2_EXP_IO_16_BIT(x) (0xc0 + (x) * 2) /* s16 */
/* Scan Sequencer programming */
#define DAQBOARD2000_SeqStartScanList 0x0011
@@ -279,8 +279,9 @@ struct daqboard2000_private {
static void writeAcqScanListEntry(struct comedi_device *dev, u16 entry)
{
- writew(entry & 0x00ff, dev->mmio + acqScanListFIFO);
- writew((entry >> 8) & 0x00ff, dev->mmio + acqScanListFIFO);
+ writew(entry & 0x00ff, dev->mmio + DB2K_REG_ACQ_SCAN_LIST_FIFO);
+ writew((entry >> 8) & 0x00ff,
+ dev->mmio + DB2K_REG_ACQ_SCAN_LIST_FIFO);
}
static void setup_sampling(struct comedi_device *dev, int chan, int gain)
@@ -330,7 +331,7 @@ static int daqboard2000_ai_status(struct comedi_device *dev,
{
unsigned int status;
- status = readw(dev->mmio + acqControl);
+ status = readw(dev->mmio + DB2K_REG_ACQ_CONTROL);
if (status & context)
return 0;
return -EBUSY;
@@ -347,15 +348,16 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
writew(DAQBOARD2000_AcqResetScanListFifo |
DAQBOARD2000_AcqResetResultsFifo |
- DAQBOARD2000_AcqResetConfigPipe, dev->mmio + acqControl);
+ DAQBOARD2000_AcqResetConfigPipe,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
/*
* If pacer clock is not set to some high value (> 10 us), we
* risk multiple samples to be put into the result FIFO.
*/
/* 1 second, should be long enough */
- writel(1000000, dev->mmio + acqPacerClockDivLow);
- writew(0, dev->mmio + acqPacerClockDivHigh);
+ writel(1000000, dev->mmio + DB2K_REG_ACQ_PACER_CLOCK_DIV_LOW);
+ writew(0, dev->mmio + DB2K_REG_ACQ_PACER_CLOCK_DIV_HIGH);
gain = CR_RANGE(insn->chanspec);
chan = CR_CHAN(insn->chanspec);
@@ -369,14 +371,16 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
for (i = 0; i < insn->n; i++) {
setup_sampling(dev, chan, gain);
/* Enable reading from the scanlist FIFO */
- writew(DAQBOARD2000_SeqStartScanList, dev->mmio + acqControl);
+ writew(DAQBOARD2000_SeqStartScanList,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
ret = comedi_timeout(dev, s, insn, daqboard2000_ai_status,
DAQBOARD2000_AcqConfigPipeFull);
if (ret)
return ret;
- writew(DAQBOARD2000_AdcPacerEnable, dev->mmio + acqControl);
+ writew(DAQBOARD2000_AdcPacerEnable,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
ret = comedi_timeout(dev, s, insn, daqboard2000_ai_status,
DAQBOARD2000_AcqLogicScanning);
@@ -388,9 +392,11 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
if (ret)
return ret;
- data[i] = readw(dev->mmio + acqResultsFIFO);
- writew(DAQBOARD2000_AdcPacerDisable, dev->mmio + acqControl);
- writew(DAQBOARD2000_SeqStopScanList, dev->mmio + acqControl);
+ data[i] = readw(dev->mmio + DB2K_REG_ACQ_RESULTS_FIFO);
+ writew(DAQBOARD2000_AdcPacerDisable,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
+ writew(DAQBOARD2000_SeqStopScanList,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
}
return i;
@@ -404,7 +410,7 @@ static int daqboard2000_ao_eoc(struct comedi_device *dev,
unsigned int chan = CR_CHAN(insn->chanspec);
unsigned int status;
- status = readw(dev->mmio + dacControl);
+ status = readw(dev->mmio + DB2K_REG_DAC_CONTROL);
if ((status & ((chan + 1) * 0x0010)) == 0)
return 0;
return -EBUSY;
@@ -422,7 +428,7 @@ static int daqboard2000_ao_insn_write(struct comedi_device *dev,
unsigned int val = data[i];
int ret;
- writew(val, dev->mmio + dacSetting(chan));
+ writew(val, dev->mmio + DB2K_REG_DAC_SETTING(chan));
ret = comedi_timeout(dev, s, insn, daqboard2000_ao_eoc, 0);
if (ret)
@@ -550,18 +556,20 @@ static void daqboard2000_adcDisarm(struct comedi_device *dev)
/* Disable hardware triggers */
udelay(2);
writew(DAQBOARD2000_TrigAnalog | DAQBOARD2000_TrigDisable,
- dev->mmio + trigControl);
+ dev->mmio + DB2K_REG_TRIG_CONTROL);
udelay(2);
writew(DAQBOARD2000_TrigTTL | DAQBOARD2000_TrigDisable,
- dev->mmio + trigControl);
+ dev->mmio + DB2K_REG_TRIG_CONTROL);
/* Stop the scan list FIFO from loading the configuration pipe */
udelay(2);
- writew(DAQBOARD2000_SeqStopScanList, dev->mmio + acqControl);
+ writew(DAQBOARD2000_SeqStopScanList,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
/* Stop the pacer clock */
udelay(2);
- writew(DAQBOARD2000_AdcPacerDisable, dev->mmio + acqControl);
+ writew(DAQBOARD2000_AdcPacerDisable,
+ dev->mmio + DB2K_REG_ACQ_CONTROL);
/* Stop the input dma (abort channel 1) */
daqboard2000_adcStopDmaTransfer(dev);
@@ -573,18 +581,20 @@ static void daqboard2000_activateReferenceDacs(struct comedi_device *dev)
int timeout;
/* Set the + reference dac value in the FPGA */
- writew(0x80 | DAQBOARD2000_PosRefDacSelect, dev->mmio + refDacs);
+ writew(0x80 | DAQBOARD2000_PosRefDacSelect,
+ dev->mmio + DB2K_REG_REF_DACS);
for (timeout = 0; timeout < 20; timeout++) {
- val = readw(dev->mmio + dacControl);
+ val = readw(dev->mmio + DB2K_REG_DAC_CONTROL);
if ((val & DAQBOARD2000_RefBusy) == 0)
break;
udelay(2);
}
/* Set the - reference dac value in the FPGA */
- writew(0x80 | DAQBOARD2000_NegRefDacSelect, dev->mmio + refDacs);
+ writew(0x80 | DAQBOARD2000_NegRefDacSelect,
+ dev->mmio + DB2K_REG_REF_DACS);
for (timeout = 0; timeout < 20; timeout++) {
- val = readw(dev->mmio + dacControl);
+ val = readw(dev->mmio + DB2K_REG_DAC_CONTROL);
if ((val & DAQBOARD2000_RefBusy) == 0)
break;
udelay(2);
@@ -711,7 +721,7 @@ static int daqboard2000_auto_attach(struct comedi_device *dev,
s = &dev->subdevices[2];
return subdev_8255_init(dev, s, daqboard2000_8255_cb,
- dioP2ExpansionIO8Bit);
+ DB2K_REG_DIO_P2_EXP_IO_8_BIT);
}
static void daqboard2000_detach(struct comedi_device *dev)
--
2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Hartley Sweeten <HartleyS@visionengravers.com> |
|---|---|
| Date | 2016-05-19 18:50 +0200 |
| Subject | RE: [PATCH v3 06/14] staging: comedi: daqboard2000: rename register offset macros |
| Message-ID | <rAzj4-2e6-9@gated-at.bofh.it> |
| In reply to | #1403611 |
On Thursday, May 19, 2016 2:56 AM, Ian Abbott wrote: > Rename the macros defining register offsets to avoid CamelCase, and to > use namespace associated with the driver. > > Signed-off-by: Ian Abbott <abbotti@mev.co.uk> > Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> > --- > Other CamelCase issues in this patch will be dealt with by later > patches in the series. > > v2: Shortened prefix from `DAQBOARD2000_` to `DB2K_`. > v3: Removed a space before tab that slipped in in v2. Ian, Your [PATCH v2 07/14: ...] does not apply after this one. It's probably better if Greg drops the previous patches and you post a full series. Regards, Hartley
[toc] | [prev] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-19 19:50 +0200 |
| Subject | Re: [PATCH v3 06/14] staging: comedi: daqboard2000: rename register offset macros |
| Message-ID | <rAAf7-2QX-3@gated-at.bofh.it> |
| In reply to | #1403854 |
On 19/05/16 17:49, Hartley Sweeten wrote: > On Thursday, May 19, 2016 2:56 AM, Ian Abbott wrote: >> Rename the macros defining register offsets to avoid CamelCase, and to >> use namespace associated with the driver. >> >> Signed-off-by: Ian Abbott <abbotti@mev.co.uk> >> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> >> --- >> Other CamelCase issues in this patch will be dealt with by later >> patches in the series. >> >> v2: Shortened prefix from `DAQBOARD2000_` to `DB2K_`. >> v3: Removed a space before tab that slipped in in v2. > > Ian, > > Your [PATCH v2 07/14: ...] does not apply after this one. > > It's probably better if Greg drops the previous patches and you > post a full series. I must be having a bad day! I'll repost it all as v4. -- -=( Ian Abbott @ MEV Ltd. E-mail: <abbotti@mev.co.uk> )=- -=( Web: http://www.mev.co.uk/ )=-
[toc] | [prev] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-18 14:40 +0200 |
| Subject | [PATCH v2 11/14] staging: comedi: daqboard2000: rename trigger control register macros |
| Message-ID | <rA8Vz-2a6-9@gated-at.bofh.it> |
| In reply to | #1402251 |
Rename the macros that define values for the trigger control register to
avoid CamelCase, and to make it clearer which register they are
associated with.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
---
v2: Shortened prefix from `DAQBOARD2000_` to `DB2K_`.
---
drivers/staging/comedi/drivers/daqboard2000.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c
index 37aa3a4..9bf831b 100644
--- a/drivers/staging/comedi/drivers/daqboard2000.c
+++ b/drivers/staging/comedi/drivers/daqboard2000.c
@@ -232,16 +232,16 @@ static const struct comedi_lrange range_daqboard2000_ai = {
#define DB2K_DAC_CONTROL_PATTERN_ENABLE 0x0061
/* Trigger Control */
-#define DAQBOARD2000_TrigAnalog 0x0000
-#define DAQBOARD2000_TrigTTL 0x0010
-#define DAQBOARD2000_TrigTransHiLo 0x0004
-#define DAQBOARD2000_TrigTransLoHi 0x0000
-#define DAQBOARD2000_TrigAbove 0x0000
-#define DAQBOARD2000_TrigBelow 0x0004
-#define DAQBOARD2000_TrigLevelSense 0x0002
-#define DAQBOARD2000_TrigEdgeSense 0x0000
-#define DAQBOARD2000_TrigEnable 0x0001
-#define DAQBOARD2000_TrigDisable 0x0000
+#define DB2K_TRIG_CONTROL_TYPE_ANALOG 0x0000
+#define DB2K_TRIG_CONTROL_TYPE_TTL 0x0010
+#define DB2K_TRIG_CONTROL_EDGE_HI_LO 0x0004
+#define DB2K_TRIG_CONTROL_EDGE_LO_HI 0x0000
+#define DB2K_TRIG_CONTROL_LEVEL_ABOVE 0x0000
+#define DB2K_TRIG_CONTROL_LEVEL_BELOW 0x0004
+#define DB2K_TRIG_CONTROL_SENSE_LEVEL 0x0002
+#define DB2K_TRIG_CONTROL_SENSE_EDGE 0x0000
+#define DB2K_TRIG_CONTROL_ENABLE 0x0001
+#define DB2K_TRIG_CONTROL_DISABLE 0x0000
/* Reference Dac Selection */
#define DAQBOARD2000_PosRefDacSelect 0x0100
@@ -543,10 +543,10 @@ static void daqboard2000_adcDisarm(struct comedi_device *dev)
{
/* Disable hardware triggers */
udelay(2);
- writew(DAQBOARD2000_TrigAnalog | DAQBOARD2000_TrigDisable,
+ writew(DB2K_TRIG_CONTROL_TYPE_ANALOG | DB2K_TRIG_CONTROL_DISABLE,
dev->mmio + DB2K_REG_TRIG_CONTROL);
udelay(2);
- writew(DAQBOARD2000_TrigTTL | DAQBOARD2000_TrigDisable,
+ writew(DB2K_TRIG_CONTROL_TYPE_TTL | DB2K_TRIG_CONTROL_DISABLE,
dev->mmio + DB2K_REG_TRIG_CONTROL);
/* Stop the scan list FIFO from loading the configuration pipe */
--
2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-18 14:40 +0200 |
| Subject | [PATCH v2 08/14] staging: comedi: daqboard2000: rename acq status register macros |
| Message-ID | <rA8VA-2a6-13@gated-at.bofh.it> |
| In reply to | #1402251 |
Rename the macros associated with the acquisition status register to
avoid CamelCase and to make it clear which register they are associated
with.
Add a macro to define the offset of the read-only acquisition status
register. It's the same offset as the acquisition control register,
which is write-only.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
---
v2: Shortened prefix from `DAQBOARD2000_` to `DB2K_`.
---
drivers/staging/comedi/drivers/daqboard2000.c | 39 ++++++++++++++-------------
1 file changed, 20 insertions(+), 19 deletions(-)
diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c
index e77a65a..271ad83 100644
--- a/drivers/staging/comedi/drivers/daqboard2000.c
+++ b/drivers/staging/comedi/drivers/daqboard2000.c
@@ -151,7 +151,8 @@ static const struct comedi_lrange range_daqboard2000_ai = {
/*
* Register Memory Map
*/
-#define DB2K_REG_ACQ_CONTROL 0x00 /* u16 */
+#define DB2K_REG_ACQ_CONTROL 0x00 /* u16 (w) */
+#define DB2K_REG_ACQ_STATUS 0x00 /* u16 (r) */
#define DB2K_REG_ACQ_SCAN_LIST_FIFO 0x02 /* u16 */
#define DB2K_REG_ACQ_PACER_CLOCK_DIV_LOW 0x04 /* u32 */
#define DB2K_REG_ACQ_SCAN_COUNTER 0x08 /* u16 */
@@ -190,19 +191,6 @@ static const struct comedi_lrange range_daqboard2000_ai = {
#define DB2K_ACQ_CONTROL_RESET_RESULTS_FIFO 0x0002
#define DB2K_ACQ_CONTROL_RESET_CONFIG_PIPE 0x0001
-/* Acqusition status bits */
-#define DAQBOARD2000_AcqResultsFIFOMore1Sample 0x0001
-#define DAQBOARD2000_AcqResultsFIFOHasValidData 0x0002
-#define DAQBOARD2000_AcqResultsFIFOOverrun 0x0004
-#define DAQBOARD2000_AcqLogicScanning 0x0008
-#define DAQBOARD2000_AcqConfigPipeFull 0x0010
-#define DAQBOARD2000_AcqScanListFIFOEmpty 0x0020
-#define DAQBOARD2000_AcqAdcNotReady 0x0040
-#define DAQBOARD2000_ArbitrationFailure 0x0080
-#define DAQBOARD2000_AcqPacerOverrun 0x0100
-#define DAQBOARD2000_DacPacerOverrun 0x0200
-#define DAQBOARD2000_AcqHardwareError 0x01c0
-
/* Pacer Clock Control */
#define DB2K_ACQ_CONTROL_ADC_PACER_INTERNAL 0x0030
#define DB2K_ACQ_CONTROL_ADC_PACER_EXTERNAL 0x0032
@@ -214,6 +202,18 @@ static const struct comedi_lrange range_daqboard2000_ai = {
#define DB2K_ACQ_CONTROL_ADC_PACER_INTERNAL_OUT_ENABLE 0x0008
#define DB2K_ACQ_CONTROL_ADC_PACER_EXTERNAL_RISING 0x0100
+/* Acquisition status bits */
+#define DB2K_ACQ_STATUS_RESULTS_FIFO_MORE_1_SAMPLE 0x0001
+#define DB2K_ACQ_STATUS_RESULTS_FIFO_HAS_DATA 0x0002
+#define DB2K_ACQ_STATUS_RESULTS_FIFO_OVERRUN 0x0004
+#define DB2K_ACQ_STATUS_LOGIC_SCANNING 0x0008
+#define DB2K_ACQ_STATUS_CONFIG_PIPE_FULL 0x0010
+#define DB2K_ACQ_STATUS_SCAN_LIST_FIFO_EMPTY 0x0020
+#define DB2K_ACQ_STATUS_ADC_NOT_READY 0x0040
+#define DB2K_ACQ_STATUS_ARBITRATION_FAILURE 0x0080
+#define DB2K_ACQ_STATUS_ADC_PACER_OVERRUN 0x0100
+#define DB2K_ACQ_STATUS_DAC_PACER_OVERRUN 0x0200
+
/* DAC status */
#define DAQBOARD2000_DacFull 0x0001
#define DAQBOARD2000_RefBusy 0x0002
@@ -327,7 +327,7 @@ static int daqboard2000_ai_status(struct comedi_device *dev,
{
unsigned int status;
- status = readw(dev->mmio + DB2K_REG_ACQ_CONTROL);
+ status = readw(dev->mmio + DB2K_REG_ACQ_STATUS);
if (status & context)
return 0;
return -EBUSY;
@@ -371,7 +371,7 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
dev->mmio + DB2K_REG_ACQ_CONTROL);
ret = comedi_timeout(dev, s, insn, daqboard2000_ai_status,
- DAQBOARD2000_AcqConfigPipeFull);
+ DB2K_ACQ_STATUS_CONFIG_PIPE_FULL);
if (ret)
return ret;
@@ -379,12 +379,13 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
dev->mmio + DB2K_REG_ACQ_CONTROL);
ret = comedi_timeout(dev, s, insn, daqboard2000_ai_status,
- DAQBOARD2000_AcqLogicScanning);
+ DB2K_ACQ_STATUS_LOGIC_SCANNING);
if (ret)
return ret;
- ret = comedi_timeout(dev, s, insn, daqboard2000_ai_status,
- DAQBOARD2000_AcqResultsFIFOHasValidData);
+ ret =
+ comedi_timeout(dev, s, insn, daqboard2000_ai_status,
+ DB2K_ACQ_STATUS_RESULTS_FIFO_HAS_DATA);
if (ret)
return ret;
--
2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-18 14:40 +0200 |
| Subject | [PATCH v2 07/14] staging: comedi: daqboard2000: rename acquisition control register macros |
| Message-ID | <rA8VA-2a6-17@gated-at.bofh.it> |
| In reply to | #1402251 |
Rename the macros defining values for the acquisition control register
to avoid CamelCase, and to make it clearer which register they are
associated with.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
---
v2: Shortened prefix from `DAQBOARD2000_` to `DB2K_`.
---
drivers/staging/comedi/drivers/daqboard2000.c | 50 ++++++++++++---------------
1 file changed, 23 insertions(+), 27 deletions(-)
diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c
index b068746..e77a65a 100644
--- a/drivers/staging/comedi/drivers/daqboard2000.c
+++ b/drivers/staging/comedi/drivers/daqboard2000.c
@@ -182,13 +182,13 @@ static const struct comedi_lrange range_daqboard2000_ai = {
#define DB2K_REG_DIO_P2_EXP_IO_16_BIT(x) (0xc0 + (x) * 2) /* s16 */
/* Scan Sequencer programming */
-#define DAQBOARD2000_SeqStartScanList 0x0011
-#define DAQBOARD2000_SeqStopScanList 0x0010
+#define DB2K_ACQ_CONTROL_SEQ_START_SCAN_LIST 0x0011
+#define DB2K_ACQ_CONTROL_SEQ_STOP_SCAN_LIST 0x0010
/* Prepare for acquisition */
-#define DAQBOARD2000_AcqResetScanListFifo 0x0004
-#define DAQBOARD2000_AcqResetResultsFifo 0x0002
-#define DAQBOARD2000_AcqResetConfigPipe 0x0001
+#define DB2K_ACQ_CONTROL_RESET_SCAN_LIST_FIFO 0x0004
+#define DB2K_ACQ_CONTROL_RESET_RESULTS_FIFO 0x0002
+#define DB2K_ACQ_CONTROL_RESET_CONFIG_PIPE 0x0001
/* Acqusition status bits */
#define DAQBOARD2000_AcqResultsFIFOMore1Sample 0x0001
@@ -203,20 +203,16 @@ static const struct comedi_lrange range_daqboard2000_ai = {
#define DAQBOARD2000_DacPacerOverrun 0x0200
#define DAQBOARD2000_AcqHardwareError 0x01c0
-/* Scan Sequencer programming */
-#define DAQBOARD2000_SeqStartScanList 0x0011
-#define DAQBOARD2000_SeqStopScanList 0x0010
-
/* Pacer Clock Control */
-#define DAQBOARD2000_AdcPacerInternal 0x0030
-#define DAQBOARD2000_AdcPacerExternal 0x0032
-#define DAQBOARD2000_AdcPacerEnable 0x0031
-#define DAQBOARD2000_AdcPacerEnableDacPacer 0x0034
-#define DAQBOARD2000_AdcPacerDisable 0x0030
-#define DAQBOARD2000_AdcPacerNormalMode 0x0060
-#define DAQBOARD2000_AdcPacerCompatibilityMode 0x0061
-#define DAQBOARD2000_AdcPacerInternalOutEnable 0x0008
-#define DAQBOARD2000_AdcPacerExternalRising 0x0100
+#define DB2K_ACQ_CONTROL_ADC_PACER_INTERNAL 0x0030
+#define DB2K_ACQ_CONTROL_ADC_PACER_EXTERNAL 0x0032
+#define DB2K_ACQ_CONTROL_ADC_PACER_ENABLE 0x0031
+#define DB2K_ACQ_CONTROL_ADC_PACER_ENABLE_DAC_PACER 0x0034
+#define DB2K_ACQ_CONTROL_ADC_PACER_DISABLE 0x0030
+#define DB2K_ACQ_CONTROL_ADC_PACER_NORMAL_MODE 0x0060
+#define DB2K_ACQ_CONTROL_ADC_PACER_COMPATIBILITY_MODE 0x0061
+#define DB2K_ACQ_CONTROL_ADC_PACER_INTERNAL_OUT_ENABLE 0x0008
+#define DB2K_ACQ_CONTROL_ADC_PACER_EXTERNAL_RISING 0x0100
/* DAC status */
#define DAQBOARD2000_DacFull 0x0001
@@ -346,9 +342,9 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
int ret;
int i;
- writew(DAQBOARD2000_AcqResetScanListFifo |
- DAQBOARD2000_AcqResetResultsFifo |
- DAQBOARD2000_AcqResetConfigPipe,
+ writew(DB2K_ACQ_CONTROL_RESET_SCAN_LIST_FIFO |
+ DB2K_ACQ_CONTROL_RESET_RESULTS_FIFO |
+ DB2K_ACQ_CONTROL_RESET_CONFIG_PIPE,
dev->mmio + DB2K_REG_ACQ_CONTROL);
/*
@@ -371,7 +367,7 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
for (i = 0; i < insn->n; i++) {
setup_sampling(dev, chan, gain);
/* Enable reading from the scanlist FIFO */
- writew(DAQBOARD2000_SeqStartScanList,
+ writew(DB2K_ACQ_CONTROL_SEQ_START_SCAN_LIST,
dev->mmio + DB2K_REG_ACQ_CONTROL);
ret = comedi_timeout(dev, s, insn, daqboard2000_ai_status,
@@ -379,7 +375,7 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
if (ret)
return ret;
- writew(DAQBOARD2000_AdcPacerEnable,
+ writew(DB2K_ACQ_CONTROL_ADC_PACER_ENABLE,
dev->mmio + DB2K_REG_ACQ_CONTROL);
ret = comedi_timeout(dev, s, insn, daqboard2000_ai_status,
@@ -393,9 +389,9 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
return ret;
data[i] = readw(dev->mmio + DB2K_REG_ACQ_RESULTS_FIFO);
- writew(DAQBOARD2000_AdcPacerDisable,
+ writew(DB2K_ACQ_CONTROL_ADC_PACER_DISABLE,
dev->mmio + DB2K_REG_ACQ_CONTROL);
- writew(DAQBOARD2000_SeqStopScanList,
+ writew(DB2K_ACQ_CONTROL_SEQ_STOP_SCAN_LIST,
dev->mmio + DB2K_REG_ACQ_CONTROL);
}
@@ -563,12 +559,12 @@ static void daqboard2000_adcDisarm(struct comedi_device *dev)
/* Stop the scan list FIFO from loading the configuration pipe */
udelay(2);
- writew(DAQBOARD2000_SeqStopScanList,
+ writew(DB2K_ACQ_CONTROL_SEQ_STOP_SCAN_LIST,
dev->mmio + DB2K_REG_ACQ_CONTROL);
/* Stop the pacer clock */
udelay(2);
- writew(DAQBOARD2000_AdcPacerDisable,
+ writew(DB2K_ACQ_CONTROL_ADC_PACER_DISABLE,
dev->mmio + DB2K_REG_ACQ_CONTROL);
/* Stop the input dma (abort channel 1) */
--
2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-18 14:40 +0200 |
| Subject | [PATCH v2 09/14] staging: comedi: daqboard2000: redo DAC control register macros |
| Message-ID | <rA8VA-2a6-19@gated-at.bofh.it> |
| In reply to | #1402251 |
Rename the macros used to define values for the DAC control register to
avoid CamelCase and to make it clearer which register they are
associated with. Refactor the macros used to define values to enable or
disable DAC channels to use the channel number as a parameter. None of
these macros are currently used by the driver.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
---
v2: Shortened prefix from `DAQBOARD2000_` to `DB2K_`.
---
drivers/staging/comedi/drivers/daqboard2000.c | 21 +++++++--------------
1 file changed, 7 insertions(+), 14 deletions(-)
diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c
index 271ad83..aea40ee 100644
--- a/drivers/staging/comedi/drivers/daqboard2000.c
+++ b/drivers/staging/comedi/drivers/daqboard2000.c
@@ -225,20 +225,13 @@ static const struct comedi_lrange range_daqboard2000_ai = {
#define DAQBOARD2000_Dac3Busy 0x0080
/* DAC control */
-#define DAQBOARD2000_Dac0Enable 0x0021
-#define DAQBOARD2000_Dac1Enable 0x0031
-#define DAQBOARD2000_Dac2Enable 0x0041
-#define DAQBOARD2000_Dac3Enable 0x0051
-#define DAQBOARD2000_DacEnableBit 0x0001
-#define DAQBOARD2000_Dac0Disable 0x0020
-#define DAQBOARD2000_Dac1Disable 0x0030
-#define DAQBOARD2000_Dac2Disable 0x0040
-#define DAQBOARD2000_Dac3Disable 0x0050
-#define DAQBOARD2000_DacResetFifo 0x0004
-#define DAQBOARD2000_DacPatternDisable 0x0060
-#define DAQBOARD2000_DacPatternEnable 0x0061
-#define DAQBOARD2000_DacSelectSignedData 0x0002
-#define DAQBOARD2000_DacSelectUnsignedData 0x0000
+#define DB2K_DAC_CONTROL_ENABLE_BIT 0x0001
+#define DB2K_DAC_CONTROL_DATA_IS_SIGNED 0x0002
+#define DB2K_DAC_CONTROL_RESET_FIFO 0x0004
+#define DB2K_DAC_CONTROL_DAC_DISABLE(x) (0x0020 + ((x) << 4))
+#define DB2K_DAC_CONTROL_DAC_ENABLE(x) (0x0021 + ((x) << 4))
+#define DB2K_DAC_CONTROL_PATTERN_DISABLE 0x0060
+#define DB2K_DAC_CONTROL_PATTERN_ENABLE 0x0061
/* Trigger Control */
#define DAQBOARD2000_TrigAnalog 0x0000
--
2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-18 14:40 +0200 |
| Subject | [PATCH v2 04/14] staging: comedi: daqboard2000: add blank line after struct declaration |
| Message-ID | <rA8VA-2a6-21@gated-at.bofh.it> |
| In reply to | #1402251 |
Fix checkpatch issue: "CHECK: Please use a blank line after
function/struct/union/enum declarations".
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
---
v2: Fixed typo in patch description: `black line` --> `blank line`.
---
drivers/staging/comedi/drivers/daqboard2000.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c
index 904de95..cbbeb50 100644
--- a/drivers/staging/comedi/drivers/daqboard2000.c
+++ b/drivers/staging/comedi/drivers/daqboard2000.c
@@ -264,6 +264,7 @@ struct daq200_boardtype {
const char *name;
int id;
};
+
static const struct daq200_boardtype boardtypes[] = {
{"ids2", DAQBOARD2000_SUBSYSTEM_IDS2},
{"ids4", DAQBOARD2000_SUBSYSTEM_IDS4},
--
2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Ian Abbott <abbotti@mev.co.uk> |
|---|---|
| Date | 2016-05-18 14:40 +0200 |
| Subject | [PATCH v2 12/14] staging: comedi: daqboard2000: rename reference DACs register macros |
| Message-ID | <rA8VA-2a6-15@gated-at.bofh.it> |
| In reply to | #1402251 |
Rename the macros that define values for the reference DACs register to
avoid CamelCase, and to make it clearer which register they are
associated with. Add a macro `DAQBOARD2000_REF_DACS_SET` for the value
`0x80` that triggers setting one of the references.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
---
v2: Shortened prefix from `DAQBOARD2000_` to `DB2K_`.
---
drivers/staging/comedi/drivers/daqboard2000.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/comedi/drivers/daqboard2000.c b/drivers/staging/comedi/drivers/daqboard2000.c
index 9bf831b..4c6c881 100644
--- a/drivers/staging/comedi/drivers/daqboard2000.c
+++ b/drivers/staging/comedi/drivers/daqboard2000.c
@@ -244,8 +244,9 @@ static const struct comedi_lrange range_daqboard2000_ai = {
#define DB2K_TRIG_CONTROL_DISABLE 0x0000
/* Reference Dac Selection */
-#define DAQBOARD2000_PosRefDacSelect 0x0100
-#define DAQBOARD2000_NegRefDacSelect 0x0000
+#define DB2K_REF_DACS_SET 0x0080
+#define DB2K_REF_DACS_SELECT_POS_REF 0x0100
+#define DB2K_REF_DACS_SELECT_NEG_REF 0x0000
struct daq200_boardtype {
const char *name;
@@ -569,7 +570,7 @@ static void daqboard2000_activateReferenceDacs(struct comedi_device *dev)
int timeout;
/* Set the + reference dac value in the FPGA */
- writew(0x80 | DAQBOARD2000_PosRefDacSelect,
+ writew(DB2K_REF_DACS_SET | DB2K_REF_DACS_SELECT_POS_REF,
dev->mmio + DB2K_REG_REF_DACS);
for (timeout = 0; timeout < 20; timeout++) {
val = readw(dev->mmio + DB2K_REG_DAC_STATUS);
@@ -579,7 +580,7 @@ static void daqboard2000_activateReferenceDacs(struct comedi_device *dev)
}
/* Set the - reference dac value in the FPGA */
- writew(0x80 | DAQBOARD2000_NegRefDacSelect,
+ writew(DB2K_REF_DACS_SET | DB2K_REF_DACS_SELECT_NEG_REF,
dev->mmio + DB2K_REG_REF_DACS);
for (timeout = 0; timeout < 20; timeout++) {
val = readw(dev->mmio + DB2K_REG_DAC_STATUS);
--
2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Hartley Sweeten <HartleyS@visionengravers.com> |
|---|---|
| Date | 2016-05-19 01:00 +0200 |
| Subject | RE: [PATCH v2 12/14] staging: comedi: daqboard2000: rename reference DACs register macros |
| Message-ID | <rAiBA-8gC-27@gated-at.bofh.it> |
| In reply to | #1402939 |
On Wednesday, May 18, 2016 5:37 AM, Ian Abbott wrote: > Rename the macros that define values for the reference DACs register to > avoid CamelCase, and to make it clearer which register they are > associated with. Add a macro `DAQBOARD2000_REF_DACS_SET` for the value > `0x80` that triggers setting one of the references. [snip] +#define DB2K_REF_DACS_SET 0x0080 Minor issue... Typo in the commit. Not sure if it's worth a v3. Regards, Hartley
[toc] | [prev] | [next] | [standalone]
Page 1 of 3 [1] 2 3 Next page →
Back to top | Article view | linux.kernel
csiph-web