summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/comedi/drivers/s626.c22
-rw-r--r--drivers/staging/comedi/drivers/s626.h8
2 files changed, 15 insertions, 15 deletions
diff --git a/drivers/staging/comedi/drivers/s626.c b/drivers/staging/comedi/drivers/s626.c
index 3fd544777abd..c2837da862db 100644
--- a/drivers/staging/comedi/drivers/s626.c
+++ b/drivers/staging/comedi/drivers/s626.c
@@ -708,7 +708,6 @@ static uint16_t s626_get_mode_a(struct comedi_device *dev,
/*
* Populate the standardized counter setup bit fields.
- * Note: IndexSrc is restricted to ENC_X or IndxPol.
*/
setup =
/* LoadSrc = LoadSrcA. */
@@ -717,8 +716,8 @@ static uint16_t s626_get_mode_a(struct comedi_device *dev,
S626_SET_STD_LATCHSRC(S626_GET_CRB_LATCHSRC(crb)) |
/* IntSrc = IntSrcA. */
S626_SET_STD_INTSRC(S626_GET_CRA_INTSRC_A(cra)) |
- /* IndxSrc = IndxSrcA<1>. */
- S626_SET_STD_INDXSRC(S626_GET_CRA_INDXSRC_A(cra) >> 1) |
+ /* IndxSrc = IndxSrcA. */
+ S626_SET_STD_INDXSRC(S626_GET_CRA_INDXSRC_A(cra)) |
/* IndxPol = IndxPolA. */
S626_SET_STD_INDXPOL(S626_GET_CRA_INDXPOL_A(cra)) |
/* ClkEnab = ClkEnabA. */
@@ -764,7 +763,6 @@ static uint16_t s626_get_mode_b(struct comedi_device *dev,
/*
* Populate the standardized counter setup bit fields.
- * Note: IndexSrc is restricted to ENC_X or IndxPol.
*/
setup =
/* IntSrc = IntSrcB. */
@@ -777,8 +775,8 @@ static uint16_t s626_get_mode_b(struct comedi_device *dev,
S626_SET_STD_INDXPOL(S626_GET_CRB_INDXPOL_B(crb)) |
/* ClkEnab = ClkEnabB. */
S626_SET_STD_CLKENAB(S626_GET_CRB_CLKENAB_B(crb)) |
- /* IndxSrc = IndxSrcB<1>. */
- S626_SET_STD_INDXSRC(S626_GET_CRA_INDXSRC_B(cra) >> 1);
+ /* IndxSrc = IndxSrcB. */
+ S626_SET_STD_INDXSRC(S626_GET_CRA_INDXSRC_B(cra));
/* Adjust mode-dependent parameters. */
cntsrc = S626_GET_CRA_CNTSRC_B(cra);
@@ -829,8 +827,8 @@ static void s626_set_mode_a(struct comedi_device *dev,
/* Initialize CRA and CRB images. */
/* Preload trigger is passed through. */
cra = S626_SET_CRA_LOADSRC_A(S626_GET_STD_LOADSRC(setup));
- /* IndexSrc is restricted to ENC_X or IndxPol. */
- cra |= S626_SET_CRA_INDXSRC_A(S626_GET_STD_INDXSRC(setup) << 1);
+ /* IndexSrc is passed through. */
+ cra |= S626_SET_CRA_INDXSRC_A(S626_GET_STD_INDXSRC(setup));
/* Reset any pending CounterA event captures. */
crb = S626_SET_CRB_INTRESETCMD(1) | S626_SET_CRB_INTRESET_A(1);
@@ -874,7 +872,7 @@ static void s626_set_mode_a(struct comedi_device *dev,
* Force positive index polarity if IndxSrc is software-driven only,
* otherwise pass it through.
*/
- if (S626_GET_STD_INDXSRC(setup) == S626_INDXSRC_HARD)
+ if (S626_GET_STD_INDXSRC(setup) != S626_INDXSRC_SOFT)
cra |= S626_SET_CRA_INDXPOL_A(S626_GET_STD_INDXPOL(setup));
/*
@@ -904,8 +902,8 @@ static void s626_set_mode_b(struct comedi_device *dev,
unsigned cntsrc, clkmult, clkpol;
/* Initialize CRA and CRB images. */
- /* IndexSrc field is restricted to ENC_X or IndxPol. */
- cra = S626_SET_CRA_INDXSRC_B(S626_GET_STD_INDXSRC(setup) << 1);
+ /* IndexSrc is passed through. */
+ cra = S626_SET_CRA_INDXSRC_B(S626_GET_STD_INDXSRC(setup));
/* Reset event captures and disable interrupts. */
crb = S626_SET_CRB_INTRESETCMD(1) | S626_SET_CRB_INTRESET_B(1);
@@ -958,7 +956,7 @@ static void s626_set_mode_b(struct comedi_device *dev,
* Force positive index polarity if IndxSrc is software-driven only,
* otherwise pass it through.
*/
- if (S626_GET_STD_INDXSRC(setup) == S626_INDXSRC_HARD)
+ if (S626_GET_STD_INDXSRC(setup) != S626_INDXSRC_SOFT)
crb |= S626_SET_CRB_INDXPOL_B(S626_GET_STD_INDXPOL(setup));
/*
diff --git a/drivers/staging/comedi/drivers/s626.h b/drivers/staging/comedi/drivers/s626.h
index f6b68bf1df3e..8509537bb2d8 100644
--- a/drivers/staging/comedi/drivers/s626.h
+++ b/drivers/staging/comedi/drivers/s626.h
@@ -462,8 +462,10 @@
#define S626_LATCHSRC_B_OVERA 3 /* Latch B on A Overflow. */
/* IndxSrc values: */
-#define S626_INDXSRC_HARD 0 /* Hardware or software index. */
-#define S626_INDXSRC_SOFT 1 /* Software index only. */
+#define S626_INDXSRC_ENCODER 0 /* Encoder. */
+#define S626_INDXSRC_DIGIN 1 /* Digital inputs. */
+#define S626_INDXSRC_SOFT 2 /* S/w controlled by IndxPol bit. */
+#define S626_INDXSRC_DISABLED 3 /* Index disabled. */
/* IndxPol values: */
#define S626_INDXPOL_POS 0 /* Index input is active high. */
@@ -730,7 +732,7 @@
#define S626_STDWID_INTSRC 2
#define S626_STDWID_LATCHSRC 2
#define S626_STDWID_LOADSRC 2
-#define S626_STDWID_INDXSRC 1
+#define S626_STDWID_INDXSRC 2
#define S626_STDWID_INDXPOL 1
#define S626_STDWID_ENCMODE 2
#define S626_STDWID_CLKPOL 1