Since you're redoing this already, I thought I nit pick it to death. On Fri, Mar 16, 2012 at 12:19:25PM +0600, Alexander Pazdnikov wrote: > Thank you Greg, I've corrected driver taking into account your comments. > This is my first friver, I've missed to check the first version with > checkpatch script. > Today it goes through checkpatch script with no errors and warnings. > Appreciate any comments. > > The ad7739.h file is need for inclusion into board specific initialization > file > and to configure the exact chip. > > Signed-off-by: Alexander Pazdnikov <[email protected]> ^^^^^^^ gmail.com
> +/*
> + Usage example through board-setup.
> +static const struct ad7739_platform_data dd11_adc =.{
^
Remove the typo extra period.
> + .chanselect_p0p1 = 1,
> +};
> +
> +
> +struct ad7739_private *devpriv(struct comedi_device *dev)
Make this function static.
> +{
> + return dev->private;
> +}
> +
> +/* write buffer */
> +static
> +int ad7739_write_msg(struct comedi_device *dev, const u8 *buf, size_t len)
Normally we would either break this up like:
static int ad7739_write_msg(struct comedi_device *dev, const u8 *buf,
size_t len)
Or if you are really old maybe like this:
static int
ad7739_write_msg(struct comedi_device *dev, const u8 *buf, size_t len)
> +{
> + return spi_write(devpriv(dev)->spi, buf, len);
> +}
> +
> +#define COMM_REG_READ 0x40
> +
> +/* write 8-bit register */
> +static int ad7739_write(struct comedi_device *dev, u8 reg, u8 val)
> +{
> + int ret = 0;
^^^^
No need to initialize this.
> + struct spi_device *spi = devpriv(dev)->spi;
> +
> + u8 out[2];
Remove the blank line before the "out" declaration.
> +
> + out[0] = reg & ~COMM_REG_READ;
> + out[1] = val;
> +
> + dev_dbg(&spi->dev, "write reg %#x, val %#x\n", reg, val);
> +
> + ret = spi_write(spi, out, sizeof(out));
> +
> + return ret;
> +}
> +
> +/* read register of desired size */
> +static
> +int ad7739_read(struct comedi_device *dev, u8 reg, u8 *in, size_t size)
> +{
> + struct spi_device *spi = devpriv(dev)->spi;
> + int ret;
> +
> + u8 cmd = reg | COMM_REG_READ;
Remove blank line before the "cmd" declaration.
> +
> + ret = spi_write_then_read(spi, &cmd, 1, in, size);
> +
> +static int ai_insn_read(struct comedi_device *dev, struct comedi_subdevice
> *s,
> + struct comedi_insn *insn, unsigned int *data)
> +{
> + u8 buf[4];
> + u8 status = 0;
> +
> + const unsigned chan = CR_CHAN(insn->chanspec);
> + const unsigned range = CR_RANGE(insn->chanspec);
> + const unsigned aref = CR_AREF(insn->chanspec);
> + struct ad7739_platform_data *pdata;
> +
> + int ret = 0;
> +
> + u8 setup = range
> + + ((aref == AREF_DIFF) ? SETUP_DIFFER : 0) + SETUP_ENABLE;
> +
Remove the blank lines between the declarations. "ret" and "status"
don't need to be initialized.
> +static
> +int ad7739_attach(struct comedi_device *dev, struct comedi_devconfig *it)
> +{
> + struct comedi_subdevice *s = NULL;
> + struct ad7739_private *priv = NULL;
> + struct device *d = NULL;
> +
> + char devname[64];
Remove blank line in declaration block.
> +
> + if (alloc_private(dev, sizeof(struct ad7739_private)) < 0)
> + return -ENOMEM;
ret = alloc_private(dev, sizeof(struct ad7739_private));
if (ret)
return ret;
> +
> + if (alloc_subdevices(dev, 1) < 0)
> + return -ENOMEM;
ret = alloc_subdevices(dev, 1);
if (ret)
return ret;
> + /* Reset the chip */
> + ad7739_reset(dev);
> +
> + init_completion(&priv->ready);
> +
> + if (request_irq(priv->spi->irq, ad7739_irq, 0, dev->board_name, priv)) {
> +
> + dev_err(dev->class_dev, "IRQ %u request failed\n",
> + priv->spi->irq);
> + return -EBUSY;
> + }
ret = request_irq(priv->spi->irq, ad7739_irq, 0, dev->board_name, priv);
if (ret) {
dev_err(dev->class_dev, "IRQ %u request failed (%d)\n",
priv->spi->irq, ret);
return ret;
}
Anyway, small nit picks. In a way, if this driver were crap like
certain other staging drivers I wouldn't have said anything but it's
actually really nice. Good job.
regards,
dan carpenter
signature.asc
Description: Digital signature
_______________________________________________ devel mailing list [email protected] http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
