diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2008-07-14 03:59:05 -0400 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2008-07-14 04:02:12 -0400 |
commit | 9d92a7e1b0d095c8be96ce5e592c6c5541684631 (patch) | |
tree | 22cfca810de07a7d7f87f17a89de0ae10d462038 /drivers/s390/cio/cio.c | |
parent | 683c5418e6ac9f40f925dab6f547a5b0a4ad43c6 (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.c | 9 |
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 | ||
880 | static void __clear_chsc_subchannel_easy(void) | ||
881 | { | ||
882 | /* It seems we can only wait for a bit here :/ */ | ||
883 | udelay_reset(100); | ||
884 | } | ||
885 | |||
880 | static int pgm_check_occured; | 886 | static int pgm_check_occured; |
881 | 887 | ||
882 | static void cio_reset_pgm_check_handler(void) | 888 | static 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; |