Lines Matching +full:assigned +full:- +full:resolution +full:- +full:bits

1 /* SPDX-License-Identifier: MIT */
7 * Copyright (C) 2016-2017 EPAM Systems Inc.
32 * sophisticated use-cases than a framebuffer device can handle. At the
42 * Note: display resolution (XenStore's "resolution" property) defines
43 * visible area of the virtual display. At the same time resolution of
45 * or bigger than the visible area. This is to enable use-cases, where backend
46 * may do some post-processing of the display and frame buffers supplied,
63 * Front->back notifications: when enqueuing a new request, sending a
65 * hold-off mechanism provided by the ring macros). Backends must set
68 * Back->front notifications: when enqueuing a new response, sending a
70 * hold-off mechanism provided by the ring macros). Frontends must set
73 * The two halves of a para-virtual display driver utilize nodes within
87 * Note: depending on the use-case backend can expose more display connectors
92 *--------------------------------- Backend -----------------------------------
94 * /local/domain/0/backend/vdispl/1/0/frontend-id = "1"
99 *--------------------------------- Frontend ----------------------------------
101 * /local/domain/1/device/vdispl/0/backend-id = "0"
105 * /local/domain/1/device/vdispl/0/be-alloc = "1"
107 *-------------------------- Connector 0 configuration ------------------------
109 * /local/domain/1/device/vdispl/0/0/resolution = "1920x1080"
110 * /local/domain/1/device/vdispl/0/0/req-ring-ref = "2832"
111 * /local/domain/1/device/vdispl/0/0/req-event-channel = "15"
112 * /local/domain/1/device/vdispl/0/0/evt-ring-ref = "387"
113 * /local/domain/1/device/vdispl/0/0/evt-event-channel = "16"
115 *-------------------------- Connector 1 configuration ------------------------
117 * /local/domain/1/device/vdispl/0/1/resolution = "800x600"
118 * /local/domain/1/device/vdispl/0/1/req-ring-ref = "2833"
119 * /local/domain/1/device/vdispl/0/1/req-event-channel = "17"
120 * /local/domain/1/device/vdispl/0/1/evt-ring-ref = "388"
121 * /local/domain/1/device/vdispl/0/1/evt-event-channel = "18"
127 *----------------------------- Protocol version ------------------------------
139 *-------------------------------- Addressing ---------------------------------
141 * dom-id
146 * dev-id
151 * conn-idx
155 * /local/domain/<dom-id>/device/vdispl/<dev-id>/<conn-idx>/...
157 *----------------------------- Protocol version ------------------------------
164 *------------------------- Backend buffer allocation -------------------------
166 * be-alloc
174 *----------------------------- Connector settings ----------------------------
176 * unique-id
179 * After device instance initialization each connector is assigned a
183 * resolution
193 *------------------ Connector Request Transport Parameters -------------------
199 * req-event-channel
205 * req-ring-ref
211 *------------------- Connector Event Transport Parameters --------------------
216 * evt-event-channel
222 * evt-ring-ref
239 *-------------------------------- Normal flow --------------------------------
289 *------------------------------- Recovery flow -------------------------------
323 * to periodically check if this is the right time to re-try removal of
361 #define XENDISPL_FIELD_REQ_RING_REF "req-ring-ref"
362 #define XENDISPL_FIELD_REQ_CHANNEL "req-event-channel"
363 #define XENDISPL_FIELD_EVT_RING_REF "evt-ring-ref"
364 #define XENDISPL_FIELD_EVT_CHANNEL "evt-event-channel"
365 #define XENDISPL_FIELD_RESOLUTION "resolution"
366 #define XENDISPL_FIELD_BE_ALLOC "be-alloc"
367 #define XENDISPL_FIELD_UNIQUE_ID "unique-id"
378 * Status return code is zero on success and -XEN_EXX on failure.
393 * The two halves of a Para-virtual display driver communicate with
402 * dbuf_cookie - uint64_t, unique to guest domain value used by the backend
404 * fb_cookie - uint64_t, unique to guest domain value used by the backend
407 *---------------------------------- Requests ---------------------------------
411 * /local/domain/<dom-id>/device/vdispl/<dev-id>/0/req-ring-ref
416 * +----------------+----------------+----------------+----------------+
418 * +----------------+----------------+----------------+----------------+
420 * +----------------+----------------+----------------+----------------+
421 * id - uint16_t, private guest value, echoed in response
422 * operation - uint8_t, operation code, XENDISPL_OP_???
424 * Request dbuf creation - request creation of a display buffer.
426 * +----------------+----------------+----------------+----------------+
428 * +----------------+----------------+----------------+----------------+
430 * +----------------+----------------+----------------+----------------+
431 * | dbuf_cookie low 32-bit | 12
432 * +----------------+----------------+----------------+----------------+
433 * | dbuf_cookie high 32-bit | 16
434 * +----------------+----------------+----------------+----------------+
436 * +----------------+----------------+----------------+----------------+
438 * +----------------+----------------+----------------+----------------+
440 * +----------------+----------------+----------------+----------------+
442 * +----------------+----------------+----------------+----------------+
444 * +----------------+----------------+----------------+----------------+
446 * +----------------+----------------+----------------+----------------+
448 * +----------------+----------------+----------------+----------------+
450 * +----------------+----------------+----------------+----------------+
452 * +----------------+----------------+----------------+----------------+
454 * +----------------+----------------+----------------+----------------+
458 * /local/domain/<dom-id>/device/vdispl/<dev-id>/0/req-ring-ref
459 * All unused bits in flags field must be set to 0.
462 * an error. dbuf_cookie can be re-used after destroying the corresponding
466 * than the connector's resolution. Depth/pixel format of the individual
469 * width - uint32_t, width in pixels
470 * height - uint32_t, height in pixels
471 * bpp - uint32_t, bits per pixel
472 * buffer_sz - uint32_t, buffer size to be allocated, octets
473 * flags - uint32_t, flags of the operation
474 * o XENDISPL_DBUF_FLG_REQ_ALLOC - if set, then backend is requested
487 * gref_directory - grant_ref_t, a reference to the first shared page
492 * data_ofs - uint32_t, offset of the data in the buffer, octets
513 * +----------------+----------------+----------------+----------------+
515 * +----------------+----------------+----------------+----------------+
517 * +----------------+----------------+----------------+----------------+
519 * +----------------+----------------+----------------+----------------+
521 * +----------------+----------------+----------------+----------------+
523 * +----------------+----------------+----------------+----------------+
524 * | gref[N - 1] | N*4+8
525 * +----------------+----------------+----------------+----------------+
527 * gref_dir_next_page - grant_ref_t, reference to the next page describing
529 * gref[i] - grant_ref_t, reference to a shared page of the buffer
534 * num_grefs_total = (XENDISPL_OP_DBUF_CREATE.buffer_sz + XEN_PAGE_SIZE - 1) /
544 * Request dbuf destruction - destroy a previously allocated display buffer:
546 * +----------------+----------------+----------------+----------------+
548 * +----------------+----------------+----------------+----------------+
550 * +----------------+----------------+----------------+----------------+
551 * | dbuf_cookie low 32-bit | 12
552 * +----------------+----------------+----------------+----------------+
553 * | dbuf_cookie high 32-bit | 16
554 * +----------------+----------------+----------------+----------------+
556 * +----------------+----------------+----------------+----------------+
558 * +----------------+----------------+----------------+----------------+
560 * +----------------+----------------+----------------+----------------+
564 * /local/domain/<dom-id>/device/vdispl/<dev-id>/0/req-ring-ref
572 * Request framebuffer attachment - request attachment of a framebuffer to
575 * +----------------+----------------+----------------+----------------+
577 * +----------------+----------------+----------------+----------------+
579 * +----------------+----------------+----------------+----------------+
580 * | dbuf_cookie low 32-bit | 12
581 * +----------------+----------------+----------------+----------------+
582 * | dbuf_cookie high 32-bit | 16
583 * +----------------+----------------+----------------+----------------+
584 * | fb_cookie low 32-bit | 20
585 * +----------------+----------------+----------------+----------------+
586 * | fb_cookie high 32-bit | 24
587 * +----------------+----------------+----------------+----------------+
589 * +----------------+----------------+----------------+----------------+
591 * +----------------+----------------+----------------+----------------+
593 * +----------------+----------------+----------------+----------------+
595 * +----------------+----------------+----------------+----------------+
597 * +----------------+----------------+----------------+----------------+
599 * +----------------+----------------+----------------+----------------+
603 * /local/domain/<dom-id>/device/vdispl/<dev-id>/0/req-ring-ref
605 * resolution.
608 * an error. fb_cookie can be re-used after destroying the corresponding
611 * width - uint32_t, width in pixels
612 * height - uint32_t, height in pixels
613 * pixel_format - uint32_t, pixel format of the framebuffer, FOURCC code
625 * Request framebuffer detach - detach a previously
628 * +----------------+----------------+----------------+----------------+
630 * +----------------+----------------+----------------+----------------+
632 * +----------------+----------------+----------------+----------------+
633 * | fb_cookie low 32-bit | 12
634 * +----------------+----------------+----------------+----------------+
635 * | fb_cookie high 32-bit | 16
636 * +----------------+----------------+----------------+----------------+
638 * +----------------+----------------+----------------+----------------+
640 * +----------------+----------------+----------------+----------------+
642 * +----------------+----------------+----------------+----------------+
646 * /local/domain/<dom-id>/device/vdispl/<dev-id>/0/req-ring-ref
654 * Request configuration set/reset - request to set or reset
657 * +----------------+----------------+----------------+----------------+
659 * +----------------+----------------+----------------+----------------+
661 * +----------------+----------------+----------------+----------------+
662 * | fb_cookie low 32-bit | 12
663 * +----------------+----------------+----------------+----------------+
664 * | fb_cookie high 32-bit | 16
665 * +----------------+----------------+----------------+----------------+
667 * +----------------+----------------+----------------+----------------+
669 * +----------------+----------------+----------------+----------------+
671 * +----------------+----------------+----------------+----------------+
673 * +----------------+----------------+----------------+----------------+
675 * +----------------+----------------+----------------+----------------+
677 * +----------------+----------------+----------------+----------------+
679 * +----------------+----------------+----------------+----------------+
681 * +----------------+----------------+----------------+----------------+
687 * x, y, width and height are bound by the connector's resolution and must not
690 * x - uint32_t, starting position in pixels by X axis
691 * y - uint32_t, starting position in pixels by Y axis
692 * width - uint32_t, width in pixels
693 * height - uint32_t, height in pixels
694 * bpp - uint32_t, bits per pixel
707 * Request page flip - request to flip a page identified by the framebuffer
710 * +----------------+----------------+----------------+----------------+
712 * +----------------+----------------+----------------+----------------+
714 * +----------------+----------------+----------------+----------------+
715 * | fb_cookie low 32-bit | 12
716 * +----------------+----------------+----------------+----------------+
717 * | fb_cookie high 32-bit | 16
718 * +----------------+----------------+----------------+----------------+
720 * +----------------+----------------+----------------+----------------+
722 * +----------------+----------------+----------------+----------------+
724 * +----------------+----------------+----------------+----------------+
732 * Request EDID - request EDID describing current connector:
734 * +----------------+----------------+----------------+----------------+
736 * +----------------+----------------+----------------+----------------+
738 * +----------------+----------------+----------------+----------------+
740 * +----------------+----------------+----------------+----------------+
742 * +----------------+----------------+----------------+----------------+
744 * +----------------+----------------+----------------+----------------+
746 * +----------------+----------------+----------------+----------------+
749 * - This command is not available in protocol version 1 and should be
751 * - This request is optional and if not supported then visible area
752 * is defined by the relevant XenStore's "resolution" property.
753 * - Shared buffer, allocated for EDID storage, must not be less then
756 * buffer_sz - uint32_t, buffer size to be allocated, octets
757 * gref_directory - grant_ref_t, a reference to the first shared page
770 *---------------------------------- Responses --------------------------------
776 * +----------------+----------------+----------------+----------------+
778 * +----------------+----------------+----------------+----------------+
780 * +----------------+----------------+----------------+----------------+
782 * +----------------+----------------+----------------+----------------+
784 * +----------------+----------------+----------------+----------------+
786 * +----------------+----------------+----------------+----------------+
788 * id - uint16_t, private guest value, echoed from request
789 * status - int32_t, response status, zero on success and -XEN_EXX on failure
792 * Get EDID response - response for XENDISPL_OP_GET_EDID:
794 * +----------------+----------------+----------------+----------------+
796 * +----------------+----------------+----------------+----------------+
798 * +----------------+----------------+----------------+----------------+
800 * +----------------+----------------+----------------+----------------+
802 * +----------------+----------------+----------------+----------------+
804 * +----------------+----------------+----------------+----------------+
806 * +----------------+----------------+----------------+----------------+
809 * - This response is not available in protocol version 1 and should be
812 * edid_sz - uint32_t, size of the EDID, octets
820 *----------------------------------- Events ----------------------------------
823 * evt-event-channel/evt-ring-ref XenStore entries
827 * +----------------+----------------+----------------+----------------+
829 * +----------------+----------------+----------------+----------------+
831 * +----------------+----------------+----------------+----------------+
833 * id - uint16_t, event id, may be used by front
834 * type - uint8_t, type of the event
837 * Page flip complete event - event from back to front on page flip completed:
839 * +----------------+----------------+----------------+----------------+
841 * +----------------+----------------+----------------+----------------+
843 * +----------------+----------------+----------------+----------------+
844 * | fb_cookie low 32-bit | 12
845 * +----------------+----------------+----------------+----------------+
846 * | fb_cookie high 32-bit | 16
847 * +----------------+----------------+----------------+----------------+
849 * +----------------+----------------+----------------+----------------+
851 * +----------------+----------------+----------------+----------------+
853 * +----------------+----------------+----------------+----------------+
905 * XenStore entries (evt-ring-ref/evt-event-channel).
923 #define XENDISPL_IN_RING_SIZE (XENDISPL_EVENT_PAGE_SIZE - XENDISPL_IN_RING_OFFS)