Commit f91852ce authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: drivers: tidy up insn_rw_emulate_bits()

Tidy up this function and fix the checkpatch.pl issues:
WARNING: Prefer 'unsigned int' to bare use of 'unsigned'
Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9bc9e60e
...@@ -575,38 +575,35 @@ EXPORT_SYMBOL_GPL(comedi_handle_events); ...@@ -575,38 +575,35 @@ EXPORT_SYMBOL_GPL(comedi_handle_events);
static int insn_rw_emulate_bits(struct comedi_device *dev, static int insn_rw_emulate_bits(struct comedi_device *dev,
struct comedi_subdevice *s, struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data) struct comedi_insn *insn,
unsigned int *data)
{ {
struct comedi_insn new_insn; struct comedi_insn _insn;
unsigned int chan = CR_CHAN(insn->chanspec);
unsigned int base_chan = (chan < 32) ? 0 : chan;
unsigned int _data[2];
int ret; int ret;
static const unsigned channels_per_bitfield = 32;
unsigned chan = CR_CHAN(insn->chanspec);
const unsigned base_bitfield_channel =
(chan < channels_per_bitfield) ? 0 : chan;
unsigned int new_data[2];
memset(new_data, 0, sizeof(new_data)); memset(_data, 0, sizeof(_data));
memset(&new_insn, 0, sizeof(new_insn)); memset(&_insn, 0, sizeof(_insn));
new_insn.insn = INSN_BITS; _insn.insn = INSN_BITS;
new_insn.chanspec = base_bitfield_channel; _insn.chanspec = base_chan;
new_insn.n = 2; _insn.n = 2;
new_insn.subdev = insn->subdev; _insn.subdev = insn->subdev;
if (insn->insn == INSN_WRITE) { if (insn->insn == INSN_WRITE) {
if (!(s->subdev_flags & SDF_WRITABLE)) if (!(s->subdev_flags & SDF_WRITABLE))
return -EINVAL; return -EINVAL;
new_data[0] = 1 << (chan - base_bitfield_channel); /* mask */ _data[0] = 1 << (chan - base_chan); /* mask */
new_data[1] = data[0] ? (1 << (chan - base_bitfield_channel)) _data[1] = data[0] ? (1 << (chan - base_chan)) : 0; /* bits */
: 0; /* bits */
} }
ret = s->insn_bits(dev, s, &new_insn, new_data); ret = s->insn_bits(dev, s, &_insn, _data);
if (ret < 0) if (ret < 0)
return ret; return ret;
if (insn->insn == INSN_READ) if (insn->insn == INSN_READ)
data[0] = (new_data[1] >> (chan - base_bitfield_channel)) & 1; data[0] = (_data[1] >> (chan - base_chan)) & 1;
return 1; return 1;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment