Exemple #1
0
ssize_t QUsb::qhyccd_get_device_list(qhyccd_device ***list)
{
        ssize_t length = 0;
        libusb_device **usb_devices;
        ssize_t usb_devices_num;
        ssize_t i;

        *list = (qhyccd_device**)malloc(sizeof(qhyccd_device*));
        (*list)[length] = NULL;
        
        usb_devices_num = libusb_get_device_list(qhyusb->ctx, &usb_devices);
        
        if (usb_devices_num < 0) {
                return -1;
        }

        for (i = 0; i < usb_devices_num; i++) {
                libusb_device *device = usb_devices[i];
                if (is_supported_device(device)) {
                        libusb_ref_device(device);
                        (*list)[length] = device;
                        length++;
                        *list = (qhyccd_device**)
                                realloc(*list, sizeof(qhyccd_device*) * (length + 1));
                        (*list)[length] = NULL;
                }
        }
        
        libusb_free_device_list(usb_devices, 1);

        return length;
}
Exemple #2
0
/**
 * intel_gvt_init - initialize GVT components
 * @dev_priv: drm i915 private data
 *
 * This function is called at the initialization stage to create a GVT device.
 *
 * Returns:
 * Zero on success, negative error code if failed.
 *
 */
int intel_gvt_init(struct drm_i915_private *dev_priv)
{
	int ret;

	if (!i915.enable_gvt) {
		DRM_DEBUG_DRIVER("GVT-g is disabled by kernel params\n");
		return 0;
	}

	if (!is_supported_device(dev_priv)) {
		DRM_DEBUG_DRIVER("Unsupported device. GVT-g is disabled\n");
		goto bail;
	}

	/*
	 * We're not in host or fail to find a MPT module, disable GVT-g
	 */
	ret = intel_gvt_init_host();
	if (ret) {
		DRM_DEBUG_DRIVER("Not in host or MPT modules not found\n");
		goto bail;
	}

	ret = intel_gvt_init_device(dev_priv);
	if (ret) {
		DRM_DEBUG_DRIVER("Fail to init GVT device\n");
		goto bail;
	}

	return 0;

bail:
	i915.enable_gvt = 0;
	return 0;
}
Exemple #3
0
/**
 * intel_gvt_sanitize_options - sanitize GVT related options
 * @dev_priv: drm i915 private data
 *
 * This function is called at the i915 options sanitize stage.
 */
void intel_gvt_sanitize_options(struct drm_i915_private *dev_priv)
{
	if (!i915_modparams.enable_gvt)
		return;

	if (intel_vgpu_active(dev_priv)) {
		DRM_INFO("GVT-g is disabled for guest\n");
		goto bail;
	}

	if (!is_supported_device(dev_priv)) {
		DRM_INFO("Unsupported device. GVT-g is disabled\n");
		goto bail;
	}

	return;
bail:
	i915_modparams.enable_gvt = 0;
}