Lines Matching full:view

46 	struct raw3270_view *view;	/* Active view. */  member
90 * Wait queue for device init/delete, view delete.
239 __raw3270_start(struct raw3270 *rp, struct raw3270_view *view, in __raw3270_start() argument
242 rq->view = view; in __raw3270_start()
243 raw3270_get_view(view); in __raw3270_start()
250 raw3270_put_view(view); in __raw3270_start()
259 raw3270_view_active(struct raw3270_view *view) in raw3270_view_active() argument
261 struct raw3270 *rp = view->dev; in raw3270_view_active()
263 return rp && rp->view == view && in raw3270_view_active()
268 raw3270_start(struct raw3270_view *view, struct raw3270_request *rq) in raw3270_start() argument
274 spin_lock_irqsave(get_ccwdev_lock(view->dev->cdev), flags); in raw3270_start()
275 rp = view->dev; in raw3270_start()
276 if (!rp || rp->view != view || in raw3270_start()
282 rc = __raw3270_start(rp, view, rq); in raw3270_start()
283 spin_unlock_irqrestore(get_ccwdev_lock(view->dev->cdev), flags); in raw3270_start()
288 raw3270_start_locked(struct raw3270_view *view, struct raw3270_request *rq) in raw3270_start_locked() argument
293 rp = view->dev; in raw3270_start_locked()
294 if (!rp || rp->view != view || in raw3270_start_locked()
300 rc = __raw3270_start(rp, view, rq); in raw3270_start_locked()
305 raw3270_start_irq(struct raw3270_view *view, struct raw3270_request *rq) in raw3270_start_irq() argument
309 rp = view->dev; in raw3270_start_irq()
310 rq->view = view; in raw3270_start_irq()
311 raw3270_get_view(view); in raw3270_start_irq()
323 struct raw3270_view *view; in raw3270_irq() local
330 view = rq ? rq->view : rp->view; in raw3270_irq()
347 /* Call interrupt handler of the view */ in raw3270_irq()
348 if (view) in raw3270_irq()
349 view->fn->intv(view, rq, irb); in raw3270_irq()
362 raw3270_put_view(view); in raw3270_irq()
380 raw3270_put_view(view); in raw3270_irq()
510 struct raw3270_view *view; in raw3270_size_device_done() local
512 rp->view = NULL; in raw3270_size_device_done()
515 list_for_each_entry(view, &rp->view_list, list) in raw3270_size_device_done()
516 if (view->fn->resize) in raw3270_size_device_done()
517 view->fn->resize(view, rp->model, rp->rows, rp->cols); in raw3270_size_device_done()
518 /* Setup processing done, now activate a view */ in raw3270_size_device_done()
519 list_for_each_entry(view, &rp->view_list, list) { in raw3270_size_device_done()
520 rp->view = view; in raw3270_size_device_done()
521 if (view->fn->activate(view) == 0) in raw3270_size_device_done()
523 rp->view = NULL; in raw3270_size_device_done()
530 struct raw3270 *rp = rq->view->dev; in raw3270_read_modified_cb()
577 struct raw3270 *rp = rq->view->dev; in raw3270_reset_device_cb()
598 if (rp->init_reset.view) in __raw3270_reset_device()
626 raw3270_reset(struct raw3270_view *view) in raw3270_reset() argument
631 rp = view->dev; in raw3270_reset()
632 if (!rp || rp->view != view || in raw3270_reset()
638 rc = raw3270_reset_device(view->dev); in raw3270_reset()
646 struct raw3270_view *view; in __raw3270_disconnect() local
649 rp->view = &rp->init_view; in __raw3270_disconnect()
653 view = rq->view; in __raw3270_disconnect()
658 raw3270_put_view(view); in __raw3270_disconnect()
665 raw3270_init_irq(struct raw3270_view *view, struct raw3270_request *rq, in raw3270_init_irq() argument
680 rp = view->dev; in raw3270_init_irq()
719 rp->view = &rp->init_view; in raw3270_setup_device()
839 * Activate a view.
842 raw3270_activate_view(struct raw3270_view *view) in raw3270_activate_view() argument
849 rp = view->dev; in raw3270_activate_view()
853 if (rp->view == view) in raw3270_activate_view()
861 if (rp->view && rp->view->fn->deactivate) { in raw3270_activate_view()
862 oldview = rp->view; in raw3270_activate_view()
865 rp->view = view; in raw3270_activate_view()
866 rc = view->fn->activate(view); in raw3270_activate_view()
868 /* Didn't work. Try to reactivate the old view. */ in raw3270_activate_view()
869 rp->view = oldview; in raw3270_activate_view()
871 /* Didn't work as well. Try any other view. */ in raw3270_activate_view()
873 if (nv != view && nv != oldview) { in raw3270_activate_view()
874 rp->view = nv; in raw3270_activate_view()
877 rp->view = NULL; in raw3270_activate_view()
887 * Deactivate current view.
890 raw3270_deactivate_view(struct raw3270_view *view) in raw3270_deactivate_view() argument
895 rp = view->dev; in raw3270_deactivate_view()
899 if (rp->view == view) { in raw3270_deactivate_view()
900 view->fn->deactivate(view); in raw3270_deactivate_view()
901 rp->view = NULL; in raw3270_deactivate_view()
902 /* Move deactivated view to end of list. */ in raw3270_deactivate_view()
903 list_del_init(&view->list); in raw3270_deactivate_view()
904 list_add_tail(&view->list, &rp->view_list); in raw3270_deactivate_view()
905 /* Try to activate another view. */ in raw3270_deactivate_view()
908 list_for_each_entry(view, &rp->view_list, list) { in raw3270_deactivate_view()
909 rp->view = view; in raw3270_deactivate_view()
910 if (view->fn->activate(view) == 0) in raw3270_deactivate_view()
912 rp->view = NULL; in raw3270_deactivate_view()
920 * Add view to device with minor "minor".
923 raw3270_add_view(struct raw3270_view *view, struct raw3270_fn *fn, int minor, int subclass) in raw3270_add_view() argument
937 atomic_set(&view->ref_count, 2); in raw3270_add_view()
938 view->dev = rp; in raw3270_add_view()
939 view->fn = fn; in raw3270_add_view()
940 view->model = rp->model; in raw3270_add_view()
941 view->rows = rp->rows; in raw3270_add_view()
942 view->cols = rp->cols; in raw3270_add_view()
943 view->ascebc = rp->ascebc; in raw3270_add_view()
944 spin_lock_init(&view->lock); in raw3270_add_view()
945 lockdep_set_subclass(&view->lock, subclass); in raw3270_add_view()
946 list_add(&view->list, &rp->view_list); in raw3270_add_view()
956 * Find specific view of device with minor "minor".
962 struct raw3270_view *view, *tmp; in raw3270_find_view() local
966 view = ERR_PTR(-ENODEV); in raw3270_find_view()
974 view = tmp; in raw3270_find_view()
982 return view; in raw3270_find_view()
986 * Remove view from device and free view structure via call to view->fn->free.
989 raw3270_del_view(struct raw3270_view *view) in raw3270_del_view() argument
995 rp = view->dev; in raw3270_del_view()
997 if (rp->view == view) { in raw3270_del_view()
998 view->fn->deactivate(view); in raw3270_del_view()
999 rp->view = NULL; in raw3270_del_view()
1001 list_del_init(&view->list); in raw3270_del_view()
1002 if (!rp->view && raw3270_state_ready(rp) && in raw3270_del_view()
1004 /* Try to activate another view. */ in raw3270_del_view()
1007 rp->view = nv; in raw3270_del_view()
1014 atomic_dec(&view->ref_count); in raw3270_del_view()
1015 wait_event(raw3270_wait_queue, atomic_read(&view->ref_count) == 0); in raw3270_del_view()
1016 if (view->fn->free) in raw3270_del_view()
1017 view->fn->free(view); in raw3270_del_view()
1175 /* Deactivate current view and remove all views. */ in raw3270_remove()
1177 if (rp->view) { in raw3270_remove()
1178 if (rp->view->fn->deactivate) in raw3270_remove()
1179 rp->view->fn->deactivate(rp->view); in raw3270_remove()
1180 rp->view = NULL; in raw3270_remove()
1221 struct raw3270_view *view; in raw3270_pm_stop() local
1228 if (rp->view && rp->view->fn->deactivate) in raw3270_pm_stop()
1229 rp->view->fn->deactivate(rp->view); in raw3270_pm_stop()
1235 list_for_each_entry(view, &rp->view_list, list) { in raw3270_pm_stop()
1236 if (view->fn->release) in raw3270_pm_stop()
1237 view->fn->release(view); in raw3270_pm_stop()
1255 if (rp->view && rp->view->fn->activate) in raw3270_pm_start()
1256 rp->view->fn->activate(rp->view); in raw3270_pm_start()
1261 void raw3270_pm_unfreeze(struct raw3270_view *view) in raw3270_pm_unfreeze() argument
1266 rp = view->dev; in raw3270_pm_unfreeze()