#include "xf86drmMode.h"
#include "xf86drm.h"
#include <drm.h>
+#include <string.h>
/*
* Util functions
r->crtcs = out.crtcs;
r->clones = out.clones;
r->modes = drmAllocCpy(out.modes, out.count_modes, sizeof(uint32_t));
-
+ strncpy(r->name, out.name, DRM_OUTPUT_NAME_LEN);
+ r->name[DRM_OUTPUT_NAME_LEN-1] = 0;
return r;
err_allocs:
typedef struct _drmModeOutput {
unsigned int crtc; /**< Crtc currently connected to */
-
+ unsigned char name[DRM_OUTPUT_NAME_LEN];
drmModeConnection connection;
uint32_t mmWidth, mmHeight; /**< HxW in millimeters */
drmModeSubPixel subpixel;
if (copy_from_user(&out_resp, argp, sizeof(out_resp)))
return -EFAULT;
- DRM_DEBUG("output id %d\n", out_resp.output);
+ DRM_DEBUG("output id %d:\n", out_resp.output);
output= idr_find(&dev->mode_config.crtc_idr, out_resp.output);
if (!output || (output->id != out_resp.output))
return -EINVAL;
- DRM_DEBUG("about to count modes\n");
+ DRM_DEBUG("about to count modes: %s\n", output->name);
list_for_each_entry(mode, &output->modes, head)
mode_count++;
DRM_DEBUG("about to count modes %d %d %p\n", mode_count, out_resp.count_modes, output->crtc);
+ strncpy(out_resp.name, output->name, DRM_OUTPUT_NAME_LEN);
+ out_resp.name[DRM_OUTPUT_NAME_LEN-1] = 0;
+
out_resp.mm_width = output->mm_width;
out_resp.mm_height = output->mm_height;
out_resp.subpixel = output->subpixel_order;
/*
* Drm mode setting
*/
-
+#define DRM_OUTPUT_NAME_LEN 32
#define DRM_DISPLAY_MODE_LEN 32
struct drm_mode_modeinfo {
unsigned int output; /**< Id */
unsigned int crtc; /**< Id of crtc */
+ unsigned char name[DRM_OUTPUT_NAME_LEN];
unsigned int connection;
unsigned int mm_width, mm_height; /**< HxW in millimeters */