aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/cio.c
diff options
context:
space:
mode:
authorCornelia Huck <cornelia.huck@de.ibm.com>2008-07-14 03:59:05 -0400
committerHeiko Carstens <heiko.carstens@de.ibm.com>2008-07-14 04:02:12 -0400
commit9d92a7e1b0d095c8be96ce5e592c6c5541684631 (patch)
tree22cfca810de07a7d7f87f17a89de0ae10d462038 /drivers/s390/cio/cio.c
parent683c5418e6ac9f40f925dab6f547a5b0a4ad43c6 (diff)
[S390] cio: Add chsc subchannel driver.
This patch adds a driver for subchannels of type chsc. A device /dev/chsc is created which may be used to issue ioctls to: - obtain information about the machine's I/O configuration - dynamically change the machine's I/O configuration via asynchronous chsc commands Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/cio.c')
-rw-r--r--drivers/s390/cio/cio.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c
index 34b38fb7c2f7..6ebf1b507362 100644
--- a/drivers/s390/cio/cio.c
+++ b/drivers/s390/cio/cio.c
@@ -877,6 +877,12 @@ __clear_io_subchannel_easy(struct subchannel_id schid)
877 return -EBUSY; 877 return -EBUSY;
878} 878}
879 879
880static void __clear_chsc_subchannel_easy(void)
881{
882 /* It seems we can only wait for a bit here :/ */
883 udelay_reset(100);
884}
885
880static int pgm_check_occured; 886static int pgm_check_occured;
881 887
882static void cio_reset_pgm_check_handler(void) 888static void cio_reset_pgm_check_handler(void)
@@ -920,6 +926,9 @@ static int __shutdown_subchannel_easy(struct subchannel_id schid, void *data)
920 if (__clear_io_subchannel_easy(schid)) 926 if (__clear_io_subchannel_easy(schid))
921 goto out; /* give up... */ 927 goto out; /* give up... */
922 break; 928 break;
929 case SUBCHANNEL_TYPE_CHSC:
930 __clear_chsc_subchannel_easy();
931 break;
923 default: 932 default:
924 /* No default clear strategy */ 933 /* No default clear strategy */
925 break; 934 break;