Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 317152
b: refs/heads/master
c: adb4601
h: refs/heads/master
v: v3
  • Loading branch information
Ian Abbott authored and Greg Kroah-Hartman committed Jun 5, 2012
1 parent a2b0dd3 commit 9911988
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 12 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 181ad5edbf6d3c244263b770e9dd4eda645de5bf
refs/heads/master: adb4601a82343e846997320b41d5b7d49137fe42
24 changes: 13 additions & 11 deletions trunk/drivers/staging/comedi/drivers/amplc_dio200.c
Original file line number Diff line number Diff line change
Expand Up @@ -419,13 +419,6 @@ static const struct dio200_layout_struct dio200_layouts[] = {
},
};

/*
* Useful for shorthand access to the particular board structure
*/
#define thisboard ((const struct dio200_board *)dev->board_ptr)
#define thislayout (&dio200_layouts[((struct dio200_board *) \
dev->board_ptr)->layout])

/* this structure is for data unique to this hardware driver. If
several hardware drivers keep similar information in this structure,
feel free to suggest moving the variable to the struct comedi_device struct.
Expand All @@ -435,8 +428,6 @@ struct dio200_private {
int intr_sd;
};

#define devpriv ((struct dio200_private *)dev->private)

struct dio200_subdev_8254 {
unsigned long iobase; /* Counter base address */
unsigned long clk_sce_iobase; /* CLK_SCE base address */
Expand Down Expand Up @@ -466,6 +457,7 @@ struct dio200_subdev_intr {
static struct pci_dev *
dio200_find_pci(struct comedi_device *dev, int bus, int slot)
{
const struct dio200_board *thisboard = comedi_board(dev);
struct pci_dev *pci_dev = NULL;

/* Look for matching PCI device. */
Expand All @@ -489,6 +481,7 @@ dio200_find_pci(struct comedi_device *dev, int bus, int slot)
if (pci_dev->device == dio200_boards[i].devid) {
/* Change board_ptr to matched board. */
dev->board_ptr = &dio200_boards[i];
thisboard = comedi_board(dev);
break;
}
}
Expand Down Expand Up @@ -972,6 +965,7 @@ dio200_subdev_intr_cleanup(struct comedi_device *dev,
static irqreturn_t dio200_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct dio200_private *devpriv = dev->private;
int handled;

if (!dev->attached)
Expand Down Expand Up @@ -1230,6 +1224,8 @@ dio200_subdev_8254_cleanup(struct comedi_device *dev,

static void dio200_report_attach(struct comedi_device *dev, unsigned int irq)
{
const struct dio200_board *thisboard = comedi_board(dev);
struct dio200_private *devpriv = dev->private;
char tmpbuf[60];
int tmplen;

Expand Down Expand Up @@ -1261,6 +1257,8 @@ static void dio200_report_attach(struct comedi_device *dev, unsigned int irq)
*/
static int dio200_attach(struct comedi_device *dev, struct comedi_devconfig *it)
{
const struct dio200_board *thisboard = comedi_board(dev);
struct dio200_private *devpriv;
struct comedi_subdevice *s;
unsigned long iobase = 0;
unsigned int irq = 0;
Expand All @@ -1277,6 +1275,7 @@ static int dio200_attach(struct comedi_device *dev, struct comedi_devconfig *it)
dev_err(dev->class_dev, "error! out of memory!\n");
return ret;
}
devpriv = dev->private;

/* Process options and reserve resources according to bus type. */
if (IS_ENABLED(CONFIG_COMEDI_AMPLC_DIO200_ISA) &&
Expand All @@ -1298,6 +1297,7 @@ static int dio200_attach(struct comedi_device *dev, struct comedi_devconfig *it)
pci_dev = dio200_find_pci(dev, bus, slot);
if (pci_dev == NULL)
return -EIO;
thisboard = comedi_board(dev); /* replaced wildcard board */
devpriv->pci_dev = pci_dev;
ret = comedi_pci_enable(pci_dev, DIO200_DRIVER_NAME);
if (ret < 0) {
Expand All @@ -1317,7 +1317,7 @@ static int dio200_attach(struct comedi_device *dev, struct comedi_devconfig *it)

dev->iobase = iobase;

layout = thislayout;
layout = &dio200_layouts[thisboard->layout];

ret = alloc_subdevices(dev, layout->n_subdevs);
if (ret < 0) {
Expand Down Expand Up @@ -1392,13 +1392,15 @@ static int dio200_attach(struct comedi_device *dev, struct comedi_devconfig *it)

static void dio200_detach(struct comedi_device *dev)
{
const struct dio200_board *thisboard = comedi_board(dev);
struct dio200_private *devpriv = dev->private;
const struct dio200_layout_struct *layout;
unsigned n;

if (dev->irq)
free_irq(dev->irq, dev);
if (dev->subdevices) {
layout = thislayout;
layout = &dio200_layouts[thisboard->layout];
for (n = 0; n < dev->n_subdevices; n++) {
struct comedi_subdevice *s = &dev->subdevices[n];
switch (layout->sdtype[n]) {
Expand Down

0 comments on commit 9911988

Please sign in to comment.