diff options
| -rw-r--r-- | drivers/s390/cio/cio.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c index 82c6a2d45128..b32d7eb3d81a 100644 --- a/drivers/s390/cio/cio.c +++ b/drivers/s390/cio/cio.c | |||
| @@ -576,12 +576,14 @@ cio_validate_subchannel (struct subchannel *sch, struct subchannel_id schid) | |||
| 576 | err = -ENODEV; | 576 | err = -ENODEV; |
| 577 | goto out; | 577 | goto out; |
| 578 | } | 578 | } |
| 579 | if (cio_is_console(sch->schid)) | 579 | if (cio_is_console(sch->schid)) { |
| 580 | sch->opm = 0xff; | 580 | sch->opm = 0xff; |
| 581 | else | 581 | sch->isc = 1; |
| 582 | } else { | ||
| 582 | sch->opm = chp_get_sch_opm(sch); | 583 | sch->opm = chp_get_sch_opm(sch); |
| 584 | sch->isc = 3; | ||
| 585 | } | ||
| 583 | sch->lpm = sch->schib.pmcw.pam & sch->opm; | 586 | sch->lpm = sch->schib.pmcw.pam & sch->opm; |
| 584 | sch->isc = 3; | ||
| 585 | 587 | ||
| 586 | CIO_MSG_EVENT(6, "Detected device %04x on subchannel 0.%x.%04X " | 588 | CIO_MSG_EVENT(6, "Detected device %04x on subchannel 0.%x.%04X " |
| 587 | "- PIM = %02X, PAM = %02X, POM = %02X\n", | 589 | "- PIM = %02X, PAM = %02X, POM = %02X\n", |
| @@ -704,9 +706,9 @@ void wait_cons_dev(void) | |||
| 704 | if (!console_subchannel_in_use) | 706 | if (!console_subchannel_in_use) |
| 705 | return; | 707 | return; |
| 706 | 708 | ||
| 707 | /* disable all but isc 7 (console device) */ | 709 | /* disable all but isc 1 (console device) */ |
| 708 | __ctl_store (save_cr6, 6, 6); | 710 | __ctl_store (save_cr6, 6, 6); |
| 709 | cr6 = 0x01000000; | 711 | cr6 = 0x40000000; |
| 710 | __ctl_load (cr6, 6, 6); | 712 | __ctl_load (cr6, 6, 6); |
| 711 | 713 | ||
| 712 | do { | 714 | do { |
| @@ -788,11 +790,11 @@ cio_probe_console(void) | |||
| 788 | } | 790 | } |
| 789 | 791 | ||
| 790 | /* | 792 | /* |
| 791 | * enable console I/O-interrupt subclass 7 | 793 | * enable console I/O-interrupt subclass 1 |
| 792 | */ | 794 | */ |
| 793 | ctl_set_bit(6, 24); | 795 | ctl_set_bit(6, 30); |
| 794 | console_subchannel.isc = 7; | 796 | console_subchannel.isc = 1; |
| 795 | console_subchannel.schib.pmcw.isc = 7; | 797 | console_subchannel.schib.pmcw.isc = 1; |
| 796 | console_subchannel.schib.pmcw.intparm = | 798 | console_subchannel.schib.pmcw.intparm = |
| 797 | (u32)(addr_t)&console_subchannel; | 799 | (u32)(addr_t)&console_subchannel; |
| 798 | ret = cio_modify(&console_subchannel); | 800 | ret = cio_modify(&console_subchannel); |
