Loading drivers/gpu/drm/radeon/radeon_kms.c +19 −5 Original line number Diff line number Diff line Loading @@ -162,13 +162,27 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) return -EINVAL; } case RADEON_INFO_WANT_HYPERZ: /* The "value" here is both an input and output parameter. * If the input value is 1, filp requests hyper-z access. * If the input value is 0, filp revokes its hyper-z access. * * When returning, the value is 1 if filp owns hyper-z access, * 0 otherwise. */ if (value >= 2) { DRM_DEBUG_KMS("WANT_HYPERZ: invalid value %d\n", value); return -EINVAL; } mutex_lock(&dev->struct_mutex); if (rdev->hyperz_filp) value = 0; else { if (value == 1) { /* wants hyper-z */ if (!rdev->hyperz_filp) rdev->hyperz_filp = filp; value = 1; } else if (value == 0) { /* revokes hyper-z */ if (rdev->hyperz_filp == filp) rdev->hyperz_filp = NULL; } value = rdev->hyperz_filp == filp ? 1 : 0; mutex_unlock(&dev->struct_mutex); break; default: Loading Loading
drivers/gpu/drm/radeon/radeon_kms.c +19 −5 Original line number Diff line number Diff line Loading @@ -162,13 +162,27 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) return -EINVAL; } case RADEON_INFO_WANT_HYPERZ: /* The "value" here is both an input and output parameter. * If the input value is 1, filp requests hyper-z access. * If the input value is 0, filp revokes its hyper-z access. * * When returning, the value is 1 if filp owns hyper-z access, * 0 otherwise. */ if (value >= 2) { DRM_DEBUG_KMS("WANT_HYPERZ: invalid value %d\n", value); return -EINVAL; } mutex_lock(&dev->struct_mutex); if (rdev->hyperz_filp) value = 0; else { if (value == 1) { /* wants hyper-z */ if (!rdev->hyperz_filp) rdev->hyperz_filp = filp; value = 1; } else if (value == 0) { /* revokes hyper-z */ if (rdev->hyperz_filp == filp) rdev->hyperz_filp = NULL; } value = rdev->hyperz_filp == filp ? 1 : 0; mutex_unlock(&dev->struct_mutex); break; default: Loading