diff options
author | Eric Anholt <eric@anholt.net> | 2010-05-07 17:30:03 -0400 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-05-10 16:36:52 -0400 |
commit | 34dc4d4423dc342848d72be764832cbc0852854a (patch) | |
tree | 056402a4afc2b7ef2f4dee30a712ce847279c13a /drivers/char | |
parent | 3d8620cc5f8538364ee152811e2bd8713abb1d58 (diff) | |
parent | 722154e4cacf015161efe60009ae9be23d492296 (diff) |
Merge remote branch 'origin/master' into drm-intel-next
Conflicts:
drivers/gpu/drm/i915/i915_dma.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/radeon/r300.c
The BSD ringbuffer support that is landing in this branch
significantly conflicts with the Ironlake PIPE_CONTROL fix on master,
and requires it to be tested successfully anyway.
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/isicom.c | 9 | ||||
-rw-r--r-- | drivers/char/istallion.c | 2 | ||||
-rw-r--r-- | drivers/char/mxser.c | 3 | ||||
-rw-r--r-- | drivers/char/pcmcia/cm4000_cs.c | 8 | ||||
-rw-r--r-- | drivers/char/riscom8.c | 1 | ||||
-rw-r--r-- | drivers/char/stallion.c | 7 |
6 files changed, 21 insertions, 9 deletions
diff --git a/drivers/char/isicom.c b/drivers/char/isicom.c index 0fa2e4a0835d..c1ab303455cf 100644 --- a/drivers/char/isicom.c +++ b/drivers/char/isicom.c | |||
@@ -879,8 +879,8 @@ static int isicom_open(struct tty_struct *tty, struct file *filp) | |||
879 | if (tport == NULL) | 879 | if (tport == NULL) |
880 | return -ENODEV; | 880 | return -ENODEV; |
881 | port = container_of(tport, struct isi_port, port); | 881 | port = container_of(tport, struct isi_port, port); |
882 | card = &isi_card[BOARD(tty->index)]; | ||
883 | 882 | ||
883 | tty->driver_data = port; | ||
884 | return tty_port_open(tport, tty, filp); | 884 | return tty_port_open(tport, tty, filp); |
885 | } | 885 | } |
886 | 886 | ||
@@ -936,7 +936,12 @@ static void isicom_shutdown(struct tty_port *port) | |||
936 | static void isicom_close(struct tty_struct *tty, struct file *filp) | 936 | static void isicom_close(struct tty_struct *tty, struct file *filp) |
937 | { | 937 | { |
938 | struct isi_port *ip = tty->driver_data; | 938 | struct isi_port *ip = tty->driver_data; |
939 | struct tty_port *port = &ip->port; | 939 | struct tty_port *port; |
940 | |||
941 | if (ip == NULL) | ||
942 | return; | ||
943 | |||
944 | port = &ip->port; | ||
940 | if (isicom_paranoia_check(ip, tty->name, "isicom_close")) | 945 | if (isicom_paranoia_check(ip, tty->name, "isicom_close")) |
941 | return; | 946 | return; |
942 | tty_port_close(port, tty, filp); | 947 | tty_port_close(port, tty, filp); |
diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c index 4cd6c527ee41..4e395c956a09 100644 --- a/drivers/char/istallion.c +++ b/drivers/char/istallion.c | |||
@@ -827,6 +827,8 @@ static int stli_open(struct tty_struct *tty, struct file *filp) | |||
827 | return -ENODEV; | 827 | return -ENODEV; |
828 | if (portp->devnr < 1) | 828 | if (portp->devnr < 1) |
829 | return -ENODEV; | 829 | return -ENODEV; |
830 | |||
831 | tty->driver_data = portp; | ||
830 | return tty_port_open(&portp->port, tty, filp); | 832 | return tty_port_open(&portp->port, tty, filp); |
831 | } | 833 | } |
832 | 834 | ||
diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c index 47023053ee85..d2692d443f7b 100644 --- a/drivers/char/mxser.c +++ b/drivers/char/mxser.c | |||
@@ -1011,6 +1011,7 @@ static int mxser_open(struct tty_struct *tty, struct file *filp) | |||
1011 | if (!info->ioaddr) | 1011 | if (!info->ioaddr) |
1012 | return -ENODEV; | 1012 | return -ENODEV; |
1013 | 1013 | ||
1014 | tty->driver_data = info; | ||
1014 | return tty_port_open(&info->port, tty, filp); | 1015 | return tty_port_open(&info->port, tty, filp); |
1015 | } | 1016 | } |
1016 | 1017 | ||
@@ -1074,7 +1075,7 @@ static void mxser_close(struct tty_struct *tty, struct file *filp) | |||
1074 | struct mxser_port *info = tty->driver_data; | 1075 | struct mxser_port *info = tty->driver_data; |
1075 | struct tty_port *port = &info->port; | 1076 | struct tty_port *port = &info->port; |
1076 | 1077 | ||
1077 | if (tty->index == MXSER_PORTS) | 1078 | if (tty->index == MXSER_PORTS || info == NULL) |
1078 | return; | 1079 | return; |
1079 | if (tty_port_close_start(port, tty, filp) == 0) | 1080 | if (tty_port_close_start(port, tty, filp) == 0) |
1080 | return; | 1081 | return; |
diff --git a/drivers/char/pcmcia/cm4000_cs.c b/drivers/char/pcmcia/cm4000_cs.c index c9bc896d68af..90b199f97bec 100644 --- a/drivers/char/pcmcia/cm4000_cs.c +++ b/drivers/char/pcmcia/cm4000_cs.c | |||
@@ -1026,14 +1026,16 @@ static ssize_t cmm_read(struct file *filp, __user char *buf, size_t count, | |||
1026 | 1026 | ||
1027 | xoutb(0, REG_FLAGS1(iobase)); /* clear detectCMM */ | 1027 | xoutb(0, REG_FLAGS1(iobase)); /* clear detectCMM */ |
1028 | /* last check before exit */ | 1028 | /* last check before exit */ |
1029 | if (!io_detect_cm4000(iobase, dev)) | 1029 | if (!io_detect_cm4000(iobase, dev)) { |
1030 | count = -ENODEV; | 1030 | rc = -ENODEV; |
1031 | goto release_io; | ||
1032 | } | ||
1031 | 1033 | ||
1032 | if (test_bit(IS_INVREV, &dev->flags) && count > 0) | 1034 | if (test_bit(IS_INVREV, &dev->flags) && count > 0) |
1033 | str_invert_revert(dev->rbuf, count); | 1035 | str_invert_revert(dev->rbuf, count); |
1034 | 1036 | ||
1035 | if (copy_to_user(buf, dev->rbuf, count)) | 1037 | if (copy_to_user(buf, dev->rbuf, count)) |
1036 | return -EFAULT; | 1038 | rc = -EFAULT; |
1037 | 1039 | ||
1038 | release_io: | 1040 | release_io: |
1039 | clear_bit(LOCK_IO, &dev->flags); | 1041 | clear_bit(LOCK_IO, &dev->flags); |
diff --git a/drivers/char/riscom8.c b/drivers/char/riscom8.c index 0a8d1e56c993..b02332a5412f 100644 --- a/drivers/char/riscom8.c +++ b/drivers/char/riscom8.c | |||
@@ -909,6 +909,7 @@ static int rc_open(struct tty_struct *tty, struct file *filp) | |||
909 | if (error) | 909 | if (error) |
910 | return error; | 910 | return error; |
911 | 911 | ||
912 | tty->driver_data = port; | ||
912 | return tty_port_open(&port->port, tty, filp); | 913 | return tty_port_open(&port->port, tty, filp); |
913 | } | 914 | } |
914 | 915 | ||
diff --git a/drivers/char/stallion.c b/drivers/char/stallion.c index 0e511d61f544..6049fd731924 100644 --- a/drivers/char/stallion.c +++ b/drivers/char/stallion.c | |||
@@ -724,7 +724,6 @@ static int stl_open(struct tty_struct *tty, struct file *filp) | |||
724 | { | 724 | { |
725 | struct stlport *portp; | 725 | struct stlport *portp; |
726 | struct stlbrd *brdp; | 726 | struct stlbrd *brdp; |
727 | struct tty_port *port; | ||
728 | unsigned int minordev, brdnr, panelnr; | 727 | unsigned int minordev, brdnr, panelnr; |
729 | int portnr; | 728 | int portnr; |
730 | 729 | ||
@@ -754,7 +753,8 @@ static int stl_open(struct tty_struct *tty, struct file *filp) | |||
754 | portp = brdp->panels[panelnr]->ports[portnr]; | 753 | portp = brdp->panels[panelnr]->ports[portnr]; |
755 | if (portp == NULL) | 754 | if (portp == NULL) |
756 | return -ENODEV; | 755 | return -ENODEV; |
757 | port = &portp->port; | 756 | |
757 | tty->driver_data = portp; | ||
758 | return tty_port_open(&portp->port, tty, filp); | 758 | return tty_port_open(&portp->port, tty, filp); |
759 | 759 | ||
760 | } | 760 | } |
@@ -841,7 +841,8 @@ static void stl_close(struct tty_struct *tty, struct file *filp) | |||
841 | pr_debug("stl_close(tty=%p,filp=%p)\n", tty, filp); | 841 | pr_debug("stl_close(tty=%p,filp=%p)\n", tty, filp); |
842 | 842 | ||
843 | portp = tty->driver_data; | 843 | portp = tty->driver_data; |
844 | BUG_ON(portp == NULL); | 844 | if(portp == NULL) |
845 | return; | ||
845 | tty_port_close(&portp->port, tty, filp); | 846 | tty_port_close(&portp->port, tty, filp); |
846 | } | 847 | } |
847 | 848 | ||