Hi tech@,

Add a handler for the WSDISPLAYIO_GINFO ioctl in radeondrm, allowing
to retrieve basic information about a framebuffer display.

Same rationale as the diff I sent for inteldrm, and it can also be
tested with wsconsctl which will return new display values for width,
height and depth.

Comments? OK?

Index: sys/dev/pci/drm/radeon/radeon_kms.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/drm/radeon/radeon_kms.c,v
retrieving revision 1.49
diff -u -p -r1.49 radeon_kms.c
--- sys/dev/pci/drm/radeon/radeon_kms.c 8 Jan 2017 12:11:54 -0000       1.49
+++ sys/dev/pci/drm/radeon/radeon_kms.c 18 Jun 2017 11:09:53 -0000
@@ -354,9 +354,19 @@ struct wsdisplay_accessops radeondrm_acc
 int
 radeondrm_wsioctl(void *v, u_long cmd, caddr_t data, int flag, struct proc *p)
 {
+       struct rasops_info *ri = v;
+       struct wsdisplay_fbinfo *wdf;
+
        switch (cmd) {
        case WSDISPLAYIO_GTYPE:
                *(int *)data = WSDISPLAY_TYPE_RADEONDRM;
+               return 0;
+       case WSDISPLAYIO_GINFO:
+               wdf = (struct wsdisplay_fbinfo *)data;
+               wdf->width = ri->ri_width;
+               wdf->height = ri->ri_height;
+               wdf->depth = ri->ri_depth;
+               wdf->cmsize = 0;
                return 0;
        default:
                return -1;

Reply via email to