xfree86: Store kernel driver name in platform device attribute
When opening a DRM device, query the version and store the driver name as a new attribute for future reference. Reviewed-by: Aaron Plattner <aplattner@nvidia.com> Tested-By: Aaron Plattner <aplattner@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Reviewed-by: Rob Clark <robdclark@gmail.com> Tested-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
		
							parent
							
								
									5a4e15c3f6
								
							
						
					
					
						commit
						856bb80cea
					
				|  | @ -24,6 +24,7 @@ static Bool | |||
| get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index) | ||||
| { | ||||
|     drmSetVersion sv; | ||||
|     drmVersionPtr v; | ||||
|     char *buf; | ||||
|     int major, minor, fd; | ||||
|     int err = 0; | ||||
|  | @ -74,6 +75,17 @@ get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index) | |||
|     xf86_add_platform_device_attrib(delayed_index, | ||||
|                                     ODEV_ATTRIB_BUSID, buf); | ||||
|     drmFreeBusid(buf); | ||||
| 
 | ||||
|     v = drmGetVersion(fd); | ||||
|     if (!v) { | ||||
|         xf86Msg(X_ERROR, "%s: failed to query DRM version\n", path); | ||||
|         goto out; | ||||
|     } | ||||
| 
 | ||||
|     xf86_add_platform_device_attrib(delayed_index, ODEV_ATTRIB_DRIVER, | ||||
|                                     v->name); | ||||
|     drmFreeVersion(v); | ||||
| 
 | ||||
| out: | ||||
|     if (!server_fd) | ||||
|         close(fd); | ||||
|  |  | |||
|  | @ -87,6 +87,8 @@ config_odev_free_attributes(struct OdevAttributes *attribs); | |||
| #define ODEV_ATTRIB_MAJOR 5 | ||||
| /* Minor number of the device node pointed to by ODEV_ATTRIB_PATH */ | ||||
| #define ODEV_ATTRIB_MINOR 6 | ||||
| /* kernel driver name */ | ||||
| #define ODEV_ATTRIB_DRIVER 4 | ||||
| 
 | ||||
| typedef void (*config_odev_probe_proc_ptr)(struct OdevAttributes *attribs); | ||||
| void config_odev_probe(config_odev_probe_proc_ptr probe_callback); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue