diff options
author | Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 2008-07-14 03:58:50 -0400 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2008-07-14 04:02:07 -0400 |
commit | 23d805b647db6c2063a13089497615efa9deacdd (patch) | |
tree | 87fea2384f95192b68535c7ddb1495776677ce85 /drivers/s390/cio/cio.c | |
parent | 4f2bd92e3b4f3b6405c5aadae3ad64acd94cdb78 (diff) |
[S390] cio: introduce fcx enabled scsw format
Extend the scsw data structure to the format required by fcx. Also
provide helper functions for easier access to fields which are present
in both the traditional as well as the modified format.
Signed-off-by: Peter Oberparleiter <peter.oberparleiter@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 | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c index 0511fe31d049..40b2884126da 100644 --- a/drivers/s390/cio/cio.c +++ b/drivers/s390/cio/cio.c | |||
@@ -128,7 +128,7 @@ cio_tpi(void) | |||
128 | local_bh_disable(); | 128 | local_bh_disable(); |
129 | irq_enter (); | 129 | irq_enter (); |
130 | spin_lock(sch->lock); | 130 | spin_lock(sch->lock); |
131 | memcpy (&sch->schib.scsw, &irb->scsw, sizeof (struct scsw)); | 131 | memcpy(&sch->schib.scsw, &irb->scsw, sizeof(union scsw)); |
132 | if (sch->driver && sch->driver->irq) | 132 | if (sch->driver && sch->driver->irq) |
133 | sch->driver->irq(sch); | 133 | sch->driver->irq(sch); |
134 | spin_unlock(sch->lock); | 134 | spin_unlock(sch->lock); |
@@ -202,7 +202,7 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */ | |||
202 | /* | 202 | /* |
203 | * initialize device status information | 203 | * initialize device status information |
204 | */ | 204 | */ |
205 | sch->schib.scsw.actl |= SCSW_ACTL_START_PEND; | 205 | sch->schib.scsw.cmd.actl |= SCSW_ACTL_START_PEND; |
206 | return 0; | 206 | return 0; |
207 | case 1: /* status pending */ | 207 | case 1: /* status pending */ |
208 | case 2: /* busy */ | 208 | case 2: /* busy */ |
@@ -237,7 +237,7 @@ cio_resume (struct subchannel *sch) | |||
237 | 237 | ||
238 | switch (ccode) { | 238 | switch (ccode) { |
239 | case 0: | 239 | case 0: |
240 | sch->schib.scsw.actl |= SCSW_ACTL_RESUME_PEND; | 240 | sch->schib.scsw.cmd.actl |= SCSW_ACTL_RESUME_PEND; |
241 | return 0; | 241 | return 0; |
242 | case 1: | 242 | case 1: |
243 | return -EBUSY; | 243 | return -EBUSY; |
@@ -277,7 +277,7 @@ cio_halt(struct subchannel *sch) | |||
277 | 277 | ||
278 | switch (ccode) { | 278 | switch (ccode) { |
279 | case 0: | 279 | case 0: |
280 | sch->schib.scsw.actl |= SCSW_ACTL_HALT_PEND; | 280 | sch->schib.scsw.cmd.actl |= SCSW_ACTL_HALT_PEND; |
281 | return 0; | 281 | return 0; |
282 | case 1: /* status pending */ | 282 | case 1: /* status pending */ |
283 | case 2: /* busy */ | 283 | case 2: /* busy */ |
@@ -312,7 +312,7 @@ cio_clear(struct subchannel *sch) | |||
312 | 312 | ||
313 | switch (ccode) { | 313 | switch (ccode) { |
314 | case 0: | 314 | case 0: |
315 | sch->schib.scsw.actl |= SCSW_ACTL_CLEAR_PEND; | 315 | sch->schib.scsw.cmd.actl |= SCSW_ACTL_CLEAR_PEND; |
316 | return 0; | 316 | return 0; |
317 | default: /* device not operational */ | 317 | default: /* device not operational */ |
318 | return -ENODEV; | 318 | return -ENODEV; |
@@ -458,7 +458,7 @@ int cio_disable_subchannel(struct subchannel *sch) | |||
458 | if (ccode == 3) /* Not operational. */ | 458 | if (ccode == 3) /* Not operational. */ |
459 | return -ENODEV; | 459 | return -ENODEV; |
460 | 460 | ||
461 | if (sch->schib.scsw.actl != 0) | 461 | if (scsw_actl(&sch->schib.scsw) != 0) |
462 | /* | 462 | /* |
463 | * the disable function must not be called while there are | 463 | * the disable function must not be called while there are |
464 | * requests pending for completion ! | 464 | * requests pending for completion ! |
@@ -708,7 +708,7 @@ void wait_cons_dev(void) | |||
708 | if (!cio_tpi()) | 708 | if (!cio_tpi()) |
709 | cpu_relax(); | 709 | cpu_relax(); |
710 | spin_lock(console_subchannel.lock); | 710 | spin_lock(console_subchannel.lock); |
711 | } while (console_subchannel.schib.scsw.actl != 0); | 711 | } while (console_subchannel.schib.scsw.cmd.actl != 0); |
712 | /* | 712 | /* |
713 | * restore previous isc value | 713 | * restore previous isc value |
714 | */ | 714 | */ |