Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 325247
b: refs/heads/master
c: 9c1d784
h: refs/heads/master
i:
  325245: 61ba964
  325243: 0ad6ee3
  325239: 281df4b
  325231: 0828def
  325215: fe98d3b
  325183: 7d653ab
  325119: 4aef51d
v: v3
  • Loading branch information
Jens Taprogge authored and Greg Kroah-Hartman committed Sep 12, 2012
1 parent 836714e commit 2806517
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 37 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: 3f3a592798fe4a6eff0448685280925a9b1830f4
refs/heads/master: 9c1d784afc6fc37d328623d1adf503031b524788
39 changes: 3 additions & 36 deletions trunk/drivers/staging/ipack/devices/ipoctal.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,42 +49,18 @@ struct ipoctal_channel {
};

struct ipoctal {
struct list_head list;
struct ipack_device *dev;
unsigned int board_id;
struct ipoctal_channel channel[NR_CHANNELS];
unsigned char write;
struct tty_driver *tty_drv;
};

/* Linked list to save the registered devices */
static LIST_HEAD(ipoctal_list);

static struct ipoctal *ipoctal_find_board(struct tty_struct *tty)
{
struct ipoctal *p;

list_for_each_entry(p, &ipoctal_list, list) {
if (tty->driver->major == p->tty_drv->major)
return p;
}

return NULL;
}

static int ipoctal_port_activate(struct tty_port *port, struct tty_struct *tty)
{
struct ipoctal *ipoctal;
struct ipoctal_channel *channel;

ipoctal = ipoctal_find_board(tty);

if (ipoctal == NULL) {
dev_err(tty->dev, "Device not found. Major %d\n",
tty->driver->major);
return -ENODEV;
}
channel = &ipoctal->channel[tty->index];
channel = dev_get_drvdata(tty->dev);

iowrite8(CR_ENABLE_RX, &channel->regs->w.cr);
return 0;
Expand All @@ -93,17 +69,9 @@ static int ipoctal_port_activate(struct tty_port *port, struct tty_struct *tty)
static int ipoctal_open(struct tty_struct *tty, struct file *file)
{
int res;
struct ipoctal *ipoctal;
struct ipoctal_channel *channel;

ipoctal = ipoctal_find_board(tty);

if (ipoctal == NULL) {
dev_err(tty->dev, "Device not found. Major %d\n",
tty->driver->major);
return -ENODEV;
}
channel = &ipoctal->channel[tty->index];
channel = dev_get_drvdata(tty->dev);

if (atomic_read(&channel->open))
return -EBUSY;
Expand Down Expand Up @@ -457,6 +425,7 @@ static int ipoctal_inst_slot(struct ipoctal *ipoctal, unsigned int bus_nr,
dev_err(&ipoctal->dev->dev, "Failed to register tty device.\n");
continue;
}
dev_set_drvdata(tty_dev, channel);

/*
* Enable again the RX. TX will be enabled when
Expand Down Expand Up @@ -732,7 +701,6 @@ static int ipoctal_probe(struct ipack_device *dev)
goto out_uninst;

dev_set_drvdata(&dev->dev, ipoctal);
list_add_tail(&ipoctal->list, &ipoctal_list);
return 0;

out_uninst:
Expand All @@ -754,7 +722,6 @@ static void __ipoctal_remove(struct ipoctal *ipoctal)

tty_unregister_driver(ipoctal->tty_drv);
put_tty_driver(ipoctal->tty_drv);
list_del(&ipoctal->list);
kfree(ipoctal);
}

Expand Down

0 comments on commit 2806517

Please sign in to comment.