Lines Matching refs:private

19 static int fsm_io_helper(struct vfio_ccw_private *private)  in fsm_io_helper()  argument
21 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_io_helper()
30 orb = cp_get_orb(&private->cp, sch); in fsm_io_helper()
51 private->state = VFIO_CCW_STATE_CP_PENDING; in fsm_io_helper()
79 static int fsm_do_halt(struct vfio_ccw_private *private) in fsm_do_halt() argument
81 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_do_halt()
118 static int fsm_do_clear(struct vfio_ccw_private *private) in fsm_do_clear() argument
120 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_do_clear()
154 static void fsm_notoper(struct vfio_ccw_private *private, in fsm_notoper() argument
157 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_notoper()
164 private->state); in fsm_notoper()
171 private->state = VFIO_CCW_STATE_NOT_OPER; in fsm_notoper()
174 cp_free(&private->cp); in fsm_notoper()
180 static void fsm_nop(struct vfio_ccw_private *private, in fsm_nop() argument
185 static void fsm_io_error(struct vfio_ccw_private *private, in fsm_io_error() argument
188 pr_err("vfio-ccw: FSM: I/O request from state:%d\n", private->state); in fsm_io_error()
189 private->io_region->ret_code = -EIO; in fsm_io_error()
192 static void fsm_io_busy(struct vfio_ccw_private *private, in fsm_io_busy() argument
195 private->io_region->ret_code = -EBUSY; in fsm_io_busy()
198 static void fsm_io_retry(struct vfio_ccw_private *private, in fsm_io_retry() argument
201 private->io_region->ret_code = -EAGAIN; in fsm_io_retry()
204 static void fsm_async_error(struct vfio_ccw_private *private, in fsm_async_error() argument
207 struct ccw_cmd_region *cmd_region = private->cmd_region; in fsm_async_error()
212 "<unknown>", private->state); in fsm_async_error()
216 static void fsm_async_retry(struct vfio_ccw_private *private, in fsm_async_retry() argument
219 private->cmd_region->ret_code = -EAGAIN; in fsm_async_retry()
222 static void fsm_disabled_irq(struct vfio_ccw_private *private, in fsm_disabled_irq() argument
225 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_disabled_irq()
243 static void fsm_io_request(struct vfio_ccw_private *private, in fsm_io_request() argument
247 union scsw *scsw = &private->scsw; in fsm_io_request()
248 struct ccw_io_region *io_region = private->io_region; in fsm_io_request()
250 struct subchannel_id schid = get_schid(private); in fsm_io_request()
252 private->state = VFIO_CCW_STATE_CP_PROCESSING; in fsm_io_request()
268 io_region->ret_code = cp_init(&private->cp, orb); in fsm_io_request()
279 io_region->ret_code = cp_prefetch(&private->cp); in fsm_io_request()
287 cp_free(&private->cp); in fsm_io_request()
292 io_region->ret_code = fsm_io_helper(private); in fsm_io_request()
300 cp_free(&private->cp); in fsm_io_request()
323 private->state = VFIO_CCW_STATE_IDLE; in fsm_io_request()
331 static void fsm_async_request(struct vfio_ccw_private *private, in fsm_async_request() argument
334 struct ccw_cmd_region *cmd_region = private->cmd_region; in fsm_async_request()
338 cmd_region->ret_code = fsm_do_halt(private); in fsm_async_request()
341 cmd_region->ret_code = fsm_do_clear(private); in fsm_async_request()
348 trace_vfio_ccw_fsm_async_request(get_schid(private), in fsm_async_request()
356 static void fsm_irq(struct vfio_ccw_private *private, in fsm_irq() argument
359 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_irq()
365 memcpy(&private->irb, irb, sizeof(*irb)); in fsm_irq()
367 queue_work(vfio_ccw_work_q, &private->io_work); in fsm_irq()
369 if (private->completion) in fsm_irq()
370 complete(private->completion); in fsm_irq()
373 static void fsm_open(struct vfio_ccw_private *private, in fsm_open() argument
376 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_open()
385 private->state = VFIO_CCW_STATE_IDLE; in fsm_open()
391 vfio_ccw_fsm_event(private, VFIO_CCW_EVENT_NOT_OPER); in fsm_open()
394 static void fsm_close(struct vfio_ccw_private *private, in fsm_close() argument
397 struct subchannel *sch = to_subchannel(private->vdev.dev->parent); in fsm_close()
411 private->state = VFIO_CCW_STATE_STANDBY; in fsm_close()
413 cp_free(&private->cp); in fsm_close()
418 vfio_ccw_fsm_event(private, VFIO_CCW_EVENT_NOT_OPER); in fsm_close()