diff options
| -rw-r--r-- | drivers/s390/char/raw3270.c | 16 | 
1 files changed, 11 insertions, 5 deletions
| diff --git a/drivers/s390/char/raw3270.c b/drivers/s390/char/raw3270.c index d5eefeaba50c..328d9cbc56a3 100644 --- a/drivers/s390/char/raw3270.c +++ b/drivers/s390/char/raw3270.c | |||
| @@ -632,12 +632,9 @@ __raw3270_size_device(struct raw3270 *rp) | |||
| 632 | raw3270_init_request.ccw.cda = (__u32) __pa(raw3270_init_data); | 632 | raw3270_init_request.ccw.cda = (__u32) __pa(raw3270_init_data); | 
| 633 | 633 | ||
| 634 | rc = raw3270_start_init(rp, &raw3270_init_view, &raw3270_init_request); | 634 | rc = raw3270_start_init(rp, &raw3270_init_view, &raw3270_init_request); | 
| 635 | if (rc) { | 635 | if (rc) | 
| 636 | /* Check error cases: -ERESTARTSYS, -EIO and -EOPNOTSUPP */ | 636 | /* Check error cases: -ERESTARTSYS, -EIO and -EOPNOTSUPP */ | 
| 637 | if (rc == -EOPNOTSUPP && MACHINE_IS_VM) | ||
| 638 | return __raw3270_size_device_vm(rp); | ||
| 639 | return rc; | 637 | return rc; | 
| 640 | } | ||
| 641 | 638 | ||
| 642 | /* Wait for attention interrupt. */ | 639 | /* Wait for attention interrupt. */ | 
| 643 | #ifdef CONFIG_TN3270_CONSOLE | 640 | #ifdef CONFIG_TN3270_CONSOLE | 
| @@ -695,7 +692,10 @@ raw3270_size_device(struct raw3270 *rp) | |||
| 695 | down(&raw3270_init_sem); | 692 | down(&raw3270_init_sem); | 
| 696 | rp->view = &raw3270_init_view; | 693 | rp->view = &raw3270_init_view; | 
| 697 | raw3270_init_view.dev = rp; | 694 | raw3270_init_view.dev = rp; | 
| 698 | rc = __raw3270_size_device(rp); | 695 | if (MACHINE_IS_VM) | 
| 696 | rc = __raw3270_size_device_vm(rp); | ||
| 697 | else | ||
| 698 | rc = __raw3270_size_device(rp); | ||
| 699 | raw3270_init_view.dev = 0; | 699 | raw3270_init_view.dev = 0; | 
| 700 | rp->view = 0; | 700 | rp->view = 0; | 
| 701 | up(&raw3270_init_sem); | 701 | up(&raw3270_init_sem); | 
| @@ -710,6 +710,12 @@ raw3270_size_device(struct raw3270 *rp) | |||
| 710 | rp->model = 4; | 710 | rp->model = 4; | 
| 711 | if (rp->rows == 27 && rp->cols == 132) | 711 | if (rp->rows == 27 && rp->cols == 132) | 
| 712 | rp->model = 5; | 712 | rp->model = 5; | 
| 713 | } else { | ||
| 714 | /* Couldn't detect size. Use default model 2. */ | ||
| 715 | rp->model = 2; | ||
| 716 | rp->rows = 24; | ||
| 717 | rp->cols = 80; | ||
| 718 | return 0; | ||
| 713 | } | 719 | } | 
| 714 | return rc; | 720 | return rc; | 
| 715 | } | 721 | } | 
