mirror of https://gitee.com/openkylin/linux.git
staging: comedi: adv_pci1723: tidy up DIO io_bits initialization
Tidy up the code that determines the initial io_bits (direction) of the digital I/O subdevice and remove the magic numbers. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0f35abd5ed
commit
348aeaa712
|
@ -144,6 +144,7 @@ static int pci1723_auto_attach(struct comedi_device *dev,
|
||||||
{
|
{
|
||||||
struct pci_dev *pcidev = comedi_to_pci_dev(dev);
|
struct pci_dev *pcidev = comedi_to_pci_dev(dev);
|
||||||
struct comedi_subdevice *s;
|
struct comedi_subdevice *s;
|
||||||
|
unsigned int val;
|
||||||
int ret;
|
int ret;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -195,22 +196,12 @@ static int pci1723_auto_attach(struct comedi_device *dev,
|
||||||
s->insn_config = pci1723_dio_insn_config;
|
s->insn_config = pci1723_dio_insn_config;
|
||||||
s->insn_bits = pci1723_dio_insn_bits;
|
s->insn_bits = pci1723_dio_insn_bits;
|
||||||
|
|
||||||
/* read DIO config */
|
/* get initial DIO direction and state */
|
||||||
switch (inw(dev->iobase + PCI1723_DIO_CTRL_REG) & 0x03) {
|
val = inw(dev->iobase + PCI1723_DIO_CTRL_REG);
|
||||||
case 0x00: /* low byte output, high byte output */
|
if (!(val & PCI1723_DIO_CTRL_LDIO))
|
||||||
s->io_bits = 0xFFFF;
|
s->io_bits |= 0x00ff; /* low byte output */
|
||||||
break;
|
if (!(val & PCI1723_DIO_CTRL_HDIO))
|
||||||
case 0x01: /* low byte input, high byte output */
|
s->io_bits |= 0xff00; /* high byte output */
|
||||||
s->io_bits = 0xFF00;
|
|
||||||
break;
|
|
||||||
case 0x02: /* low byte output, high byte input */
|
|
||||||
s->io_bits = 0x00FF;
|
|
||||||
break;
|
|
||||||
case 0x03: /* low byte input, high byte input */
|
|
||||||
s->io_bits = 0x0000;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
/* read DIO port state */
|
|
||||||
s->state = inw(dev->iobase + PCI1723_DIO_DATA_REG);
|
s->state = inw(dev->iobase + PCI1723_DIO_DATA_REG);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue