diff options
author | Joonas Lahtinen <joonas.lahtinen@linux.intel.com> | 2018-11-16 08:55:09 -0500 |
---|---|---|
committer | Joonas Lahtinen <joonas.lahtinen@linux.intel.com> | 2018-11-19 06:07:29 -0500 |
commit | fe841686470d383e33b606d0704ef4295141c582 (patch) | |
tree | 54d22fd51061de86da9357799b1ed21d9498fc48 | |
parent | 9e180d9991dc4d9c6b18ffede928841e6b0e35f4 (diff) |
Revert "drm/i915/perf: add a parameter to control the size of OA buffer"
Userspace portion is still missing.
This reverts commit cd956bfcd0f58d20485ac0a785415f7d9327a95f.
Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Acked-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181116135510.13807-1-joonas.lahtinen@linux.intel.com
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_perf.c | 99 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 2 | ||||
-rw-r--r-- | include/uapi/drm/i915_drm.h | 7 |
4 files changed, 33 insertions, 76 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index d69b71d368d3..017f851a586a 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -2004,7 +2004,6 @@ struct drm_i915_private { | |||
2004 | u32 last_ctx_id; | 2004 | u32 last_ctx_id; |
2005 | int format; | 2005 | int format; |
2006 | int format_size; | 2006 | int format_size; |
2007 | int size_exponent; | ||
2008 | 2007 | ||
2009 | /** | 2008 | /** |
2010 | * Locks reads and writes to all head/tail state | 2009 | * Locks reads and writes to all head/tail state |
diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c index 2c2b63be7a6c..c762418d3b01 100644 --- a/drivers/gpu/drm/i915/i915_perf.c +++ b/drivers/gpu/drm/i915/i915_perf.c | |||
@@ -212,7 +212,13 @@ | |||
212 | #include "i915_oa_icl.h" | 212 | #include "i915_oa_icl.h" |
213 | #include "intel_lrc_reg.h" | 213 | #include "intel_lrc_reg.h" |
214 | 214 | ||
215 | #define OA_TAKEN(tail, head) (((tail) - (head)) & (dev_priv->perf.oa.oa_buffer.vma->size - 1)) | 215 | /* HW requires this to be a power of two, between 128k and 16M, though driver |
216 | * is currently generally designed assuming the largest 16M size is used such | ||
217 | * that the overflow cases are unlikely in normal operation. | ||
218 | */ | ||
219 | #define OA_BUFFER_SIZE SZ_16M | ||
220 | |||
221 | #define OA_TAKEN(tail, head) ((tail - head) & (OA_BUFFER_SIZE - 1)) | ||
216 | 222 | ||
217 | /** | 223 | /** |
218 | * DOC: OA Tail Pointer Race | 224 | * DOC: OA Tail Pointer Race |
@@ -356,7 +362,6 @@ struct perf_open_properties { | |||
356 | int oa_format; | 362 | int oa_format; |
357 | bool oa_periodic; | 363 | bool oa_periodic; |
358 | int oa_period_exponent; | 364 | int oa_period_exponent; |
359 | u32 oa_buffer_size_exponent; | ||
360 | }; | 365 | }; |
361 | 366 | ||
362 | static void free_oa_config(struct drm_i915_private *dev_priv, | 367 | static void free_oa_config(struct drm_i915_private *dev_priv, |
@@ -519,7 +524,7 @@ static bool oa_buffer_check_unlocked(struct drm_i915_private *dev_priv) | |||
519 | * could put the tail out of bounds... | 524 | * could put the tail out of bounds... |
520 | */ | 525 | */ |
521 | if (hw_tail >= gtt_offset && | 526 | if (hw_tail >= gtt_offset && |
522 | hw_tail < (gtt_offset + dev_priv->perf.oa.oa_buffer.vma->size)) { | 527 | hw_tail < (gtt_offset + OA_BUFFER_SIZE)) { |
523 | dev_priv->perf.oa.oa_buffer.tails[!aged_idx].offset = | 528 | dev_priv->perf.oa.oa_buffer.tails[!aged_idx].offset = |
524 | aging_tail = hw_tail; | 529 | aging_tail = hw_tail; |
525 | dev_priv->perf.oa.oa_buffer.aging_timestamp = now; | 530 | dev_priv->perf.oa.oa_buffer.aging_timestamp = now; |
@@ -648,7 +653,7 @@ static int gen8_append_oa_reports(struct i915_perf_stream *stream, | |||
648 | int report_size = dev_priv->perf.oa.oa_buffer.format_size; | 653 | int report_size = dev_priv->perf.oa.oa_buffer.format_size; |
649 | u8 *oa_buf_base = dev_priv->perf.oa.oa_buffer.vaddr; | 654 | u8 *oa_buf_base = dev_priv->perf.oa.oa_buffer.vaddr; |
650 | u32 gtt_offset = i915_ggtt_offset(dev_priv->perf.oa.oa_buffer.vma); | 655 | u32 gtt_offset = i915_ggtt_offset(dev_priv->perf.oa.oa_buffer.vma); |
651 | u32 mask = (dev_priv->perf.oa.oa_buffer.vma->size - 1); | 656 | u32 mask = (OA_BUFFER_SIZE - 1); |
652 | size_t start_offset = *offset; | 657 | size_t start_offset = *offset; |
653 | unsigned long flags; | 658 | unsigned long flags; |
654 | unsigned int aged_tail_idx; | 659 | unsigned int aged_tail_idx; |
@@ -688,8 +693,8 @@ static int gen8_append_oa_reports(struct i915_perf_stream *stream, | |||
688 | * only be incremented by multiples of the report size (notably also | 693 | * only be incremented by multiples of the report size (notably also |
689 | * all a power of two). | 694 | * all a power of two). |
690 | */ | 695 | */ |
691 | if (WARN_ONCE(head > dev_priv->perf.oa.oa_buffer.vma->size || head % report_size || | 696 | if (WARN_ONCE(head > OA_BUFFER_SIZE || head % report_size || |
692 | tail > dev_priv->perf.oa.oa_buffer.vma->size || tail % report_size, | 697 | tail > OA_BUFFER_SIZE || tail % report_size, |
693 | "Inconsistent OA buffer pointers: head = %u, tail = %u\n", | 698 | "Inconsistent OA buffer pointers: head = %u, tail = %u\n", |
694 | head, tail)) | 699 | head, tail)) |
695 | return -EIO; | 700 | return -EIO; |
@@ -712,7 +717,7 @@ static int gen8_append_oa_reports(struct i915_perf_stream *stream, | |||
712 | * here would imply a driver bug that would result | 717 | * here would imply a driver bug that would result |
713 | * in an overrun. | 718 | * in an overrun. |
714 | */ | 719 | */ |
715 | if (WARN_ON((dev_priv->perf.oa.oa_buffer.vma->size - head) < report_size)) { | 720 | if (WARN_ON((OA_BUFFER_SIZE - head) < report_size)) { |
716 | DRM_ERROR("Spurious OA head ptr: non-integral report offset\n"); | 721 | DRM_ERROR("Spurious OA head ptr: non-integral report offset\n"); |
717 | break; | 722 | break; |
718 | } | 723 | } |
@@ -871,6 +876,11 @@ static int gen8_oa_read(struct i915_perf_stream *stream, | |||
871 | * automatically triggered reports in this condition and so we | 876 | * automatically triggered reports in this condition and so we |
872 | * have to assume that old reports are now being trampled | 877 | * have to assume that old reports are now being trampled |
873 | * over. | 878 | * over. |
879 | * | ||
880 | * Considering how we don't currently give userspace control | ||
881 | * over the OA buffer size and always configure a large 16MB | ||
882 | * buffer, then a buffer overflow does anyway likely indicate | ||
883 | * that something has gone quite badly wrong. | ||
874 | */ | 884 | */ |
875 | if (oastatus & GEN8_OASTATUS_OABUFFER_OVERFLOW) { | 885 | if (oastatus & GEN8_OASTATUS_OABUFFER_OVERFLOW) { |
876 | ret = append_oa_status(stream, buf, count, offset, | 886 | ret = append_oa_status(stream, buf, count, offset, |
@@ -932,7 +942,7 @@ static int gen7_append_oa_reports(struct i915_perf_stream *stream, | |||
932 | int report_size = dev_priv->perf.oa.oa_buffer.format_size; | 942 | int report_size = dev_priv->perf.oa.oa_buffer.format_size; |
933 | u8 *oa_buf_base = dev_priv->perf.oa.oa_buffer.vaddr; | 943 | u8 *oa_buf_base = dev_priv->perf.oa.oa_buffer.vaddr; |
934 | u32 gtt_offset = i915_ggtt_offset(dev_priv->perf.oa.oa_buffer.vma); | 944 | u32 gtt_offset = i915_ggtt_offset(dev_priv->perf.oa.oa_buffer.vma); |
935 | u32 mask = (dev_priv->perf.oa.oa_buffer.vma->size - 1); | 945 | u32 mask = (OA_BUFFER_SIZE - 1); |
936 | size_t start_offset = *offset; | 946 | size_t start_offset = *offset; |
937 | unsigned long flags; | 947 | unsigned long flags; |
938 | unsigned int aged_tail_idx; | 948 | unsigned int aged_tail_idx; |
@@ -969,8 +979,8 @@ static int gen7_append_oa_reports(struct i915_perf_stream *stream, | |||
969 | * only be incremented by multiples of the report size (notably also | 979 | * only be incremented by multiples of the report size (notably also |
970 | * all a power of two). | 980 | * all a power of two). |
971 | */ | 981 | */ |
972 | if (WARN_ONCE(head > dev_priv->perf.oa.oa_buffer.vma->size || head % report_size || | 982 | if (WARN_ONCE(head > OA_BUFFER_SIZE || head % report_size || |
973 | tail > dev_priv->perf.oa.oa_buffer.vma->size || tail % report_size, | 983 | tail > OA_BUFFER_SIZE || tail % report_size, |
974 | "Inconsistent OA buffer pointers: head = %u, tail = %u\n", | 984 | "Inconsistent OA buffer pointers: head = %u, tail = %u\n", |
975 | head, tail)) | 985 | head, tail)) |
976 | return -EIO; | 986 | return -EIO; |
@@ -990,7 +1000,7 @@ static int gen7_append_oa_reports(struct i915_perf_stream *stream, | |||
990 | * here would imply a driver bug that would result | 1000 | * here would imply a driver bug that would result |
991 | * in an overrun. | 1001 | * in an overrun. |
992 | */ | 1002 | */ |
993 | if (WARN_ON((dev_priv->perf.oa.oa_buffer.vma->size - head) < report_size)) { | 1003 | if (WARN_ON((OA_BUFFER_SIZE - head) < report_size)) { |
994 | DRM_ERROR("Spurious OA head ptr: non-integral report offset\n"); | 1004 | DRM_ERROR("Spurious OA head ptr: non-integral report offset\n"); |
995 | break; | 1005 | break; |
996 | } | 1006 | } |
@@ -1385,9 +1395,7 @@ static void gen7_init_oa_buffer(struct drm_i915_private *dev_priv) | |||
1385 | 1395 | ||
1386 | I915_WRITE(GEN7_OABUFFER, gtt_offset); | 1396 | I915_WRITE(GEN7_OABUFFER, gtt_offset); |
1387 | 1397 | ||
1388 | I915_WRITE(GEN7_OASTATUS1, gtt_offset | | 1398 | I915_WRITE(GEN7_OASTATUS1, gtt_offset | OABUFFER_SIZE_16M); /* tail */ |
1389 | ((dev_priv->perf.oa.oa_buffer.size_exponent - 17) << | ||
1390 | GEN7_OASTATUS1_BUFFER_SIZE_SHIFT)); /* tail */ | ||
1391 | 1399 | ||
1392 | /* Mark that we need updated tail pointers to read from... */ | 1400 | /* Mark that we need updated tail pointers to read from... */ |
1393 | dev_priv->perf.oa.oa_buffer.tails[0].offset = INVALID_TAIL_PTR; | 1401 | dev_priv->perf.oa.oa_buffer.tails[0].offset = INVALID_TAIL_PTR; |
@@ -1412,8 +1420,7 @@ static void gen7_init_oa_buffer(struct drm_i915_private *dev_priv) | |||
1412 | * the assumption that new reports are being written to zeroed | 1420 | * the assumption that new reports are being written to zeroed |
1413 | * memory... | 1421 | * memory... |
1414 | */ | 1422 | */ |
1415 | memset(dev_priv->perf.oa.oa_buffer.vaddr, 0, | 1423 | memset(dev_priv->perf.oa.oa_buffer.vaddr, 0, OA_BUFFER_SIZE); |
1416 | dev_priv->perf.oa.oa_buffer.vma->size); | ||
1417 | 1424 | ||
1418 | /* Maybe make ->pollin per-stream state if we support multiple | 1425 | /* Maybe make ->pollin per-stream state if we support multiple |
1419 | * concurrent streams in the future. | 1426 | * concurrent streams in the future. |
@@ -1443,9 +1450,7 @@ static void gen8_init_oa_buffer(struct drm_i915_private *dev_priv) | |||
1443 | * bit." | 1450 | * bit." |
1444 | */ | 1451 | */ |
1445 | I915_WRITE(GEN8_OABUFFER, gtt_offset | | 1452 | I915_WRITE(GEN8_OABUFFER, gtt_offset | |
1446 | ((dev_priv->perf.oa.oa_buffer.size_exponent - 17) << | 1453 | OABUFFER_SIZE_16M | GEN8_OABUFFER_MEM_SELECT_GGTT); |
1447 | GEN8_OABUFFER_BUFFER_SIZE_SHIFT) | | ||
1448 | GEN8_OABUFFER_MEM_SELECT_GGTT); | ||
1449 | I915_WRITE(GEN8_OATAILPTR, gtt_offset & GEN8_OATAILPTR_MASK); | 1454 | I915_WRITE(GEN8_OATAILPTR, gtt_offset & GEN8_OATAILPTR_MASK); |
1450 | 1455 | ||
1451 | /* Mark that we need updated tail pointers to read from... */ | 1456 | /* Mark that we need updated tail pointers to read from... */ |
@@ -1473,8 +1478,7 @@ static void gen8_init_oa_buffer(struct drm_i915_private *dev_priv) | |||
1473 | * the assumption that new reports are being written to zeroed | 1478 | * the assumption that new reports are being written to zeroed |
1474 | * memory... | 1479 | * memory... |
1475 | */ | 1480 | */ |
1476 | memset(dev_priv->perf.oa.oa_buffer.vaddr, 0, | 1481 | memset(dev_priv->perf.oa.oa_buffer.vaddr, 0, OA_BUFFER_SIZE); |
1477 | dev_priv->perf.oa.oa_buffer.vma->size); | ||
1478 | 1482 | ||
1479 | /* | 1483 | /* |
1480 | * Maybe make ->pollin per-stream state if we support multiple | 1484 | * Maybe make ->pollin per-stream state if we support multiple |
@@ -1483,24 +1487,23 @@ static void gen8_init_oa_buffer(struct drm_i915_private *dev_priv) | |||
1483 | dev_priv->perf.oa.pollin = false; | 1487 | dev_priv->perf.oa.pollin = false; |
1484 | } | 1488 | } |
1485 | 1489 | ||
1486 | static int alloc_oa_buffer(struct drm_i915_private *dev_priv, int size_exponent) | 1490 | static int alloc_oa_buffer(struct drm_i915_private *dev_priv) |
1487 | { | 1491 | { |
1488 | struct drm_i915_gem_object *bo; | 1492 | struct drm_i915_gem_object *bo; |
1489 | struct i915_vma *vma; | 1493 | struct i915_vma *vma; |
1490 | size_t size = 1U << size_exponent; | ||
1491 | int ret; | 1494 | int ret; |
1492 | 1495 | ||
1493 | if (WARN_ON(dev_priv->perf.oa.oa_buffer.vma)) | 1496 | if (WARN_ON(dev_priv->perf.oa.oa_buffer.vma)) |
1494 | return -ENODEV; | 1497 | return -ENODEV; |
1495 | 1498 | ||
1496 | if (WARN_ON(size < SZ_128K || size > SZ_16M)) | ||
1497 | return -EINVAL; | ||
1498 | |||
1499 | ret = i915_mutex_lock_interruptible(&dev_priv->drm); | 1499 | ret = i915_mutex_lock_interruptible(&dev_priv->drm); |
1500 | if (ret) | 1500 | if (ret) |
1501 | return ret; | 1501 | return ret; |
1502 | 1502 | ||
1503 | bo = i915_gem_object_create(dev_priv, size); | 1503 | BUILD_BUG_ON_NOT_POWER_OF_2(OA_BUFFER_SIZE); |
1504 | BUILD_BUG_ON(OA_BUFFER_SIZE < SZ_128K || OA_BUFFER_SIZE > SZ_16M); | ||
1505 | |||
1506 | bo = i915_gem_object_create(dev_priv, OA_BUFFER_SIZE); | ||
1504 | if (IS_ERR(bo)) { | 1507 | if (IS_ERR(bo)) { |
1505 | DRM_ERROR("Failed to allocate OA buffer\n"); | 1508 | DRM_ERROR("Failed to allocate OA buffer\n"); |
1506 | ret = PTR_ERR(bo); | 1509 | ret = PTR_ERR(bo); |
@@ -1518,7 +1521,6 @@ static int alloc_oa_buffer(struct drm_i915_private *dev_priv, int size_exponent) | |||
1518 | goto err_unref; | 1521 | goto err_unref; |
1519 | } | 1522 | } |
1520 | dev_priv->perf.oa.oa_buffer.vma = vma; | 1523 | dev_priv->perf.oa.oa_buffer.vma = vma; |
1521 | dev_priv->perf.oa.oa_buffer.size_exponent = size_exponent; | ||
1522 | 1524 | ||
1523 | dev_priv->perf.oa.oa_buffer.vaddr = | 1525 | dev_priv->perf.oa.oa_buffer.vaddr = |
1524 | i915_gem_object_pin_map(bo, I915_MAP_WB); | 1526 | i915_gem_object_pin_map(bo, I915_MAP_WB); |
@@ -1527,10 +1529,9 @@ static int alloc_oa_buffer(struct drm_i915_private *dev_priv, int size_exponent) | |||
1527 | goto err_unpin; | 1529 | goto err_unpin; |
1528 | } | 1530 | } |
1529 | 1531 | ||
1530 | DRM_DEBUG_DRIVER("OA Buffer initialized, gtt offset = 0x%x, vaddr = %p, size = %llu\n", | 1532 | DRM_DEBUG_DRIVER("OA Buffer initialized, gtt offset = 0x%x, vaddr = %p\n", |
1531 | i915_ggtt_offset(dev_priv->perf.oa.oa_buffer.vma), | 1533 | i915_ggtt_offset(dev_priv->perf.oa.oa_buffer.vma), |
1532 | dev_priv->perf.oa.oa_buffer.vaddr, | 1534 | dev_priv->perf.oa.oa_buffer.vaddr); |
1533 | dev_priv->perf.oa.oa_buffer.vma->size); | ||
1534 | 1535 | ||
1535 | goto unlock; | 1536 | goto unlock; |
1536 | 1537 | ||
@@ -2090,7 +2091,7 @@ static int i915_oa_stream_init(struct i915_perf_stream *stream, | |||
2090 | intel_runtime_pm_get(dev_priv); | 2091 | intel_runtime_pm_get(dev_priv); |
2091 | intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL); | 2092 | intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL); |
2092 | 2093 | ||
2093 | ret = alloc_oa_buffer(dev_priv, props->oa_buffer_size_exponent); | 2094 | ret = alloc_oa_buffer(dev_priv); |
2094 | if (ret) | 2095 | if (ret) |
2095 | goto err_oa_buf_alloc; | 2096 | goto err_oa_buf_alloc; |
2096 | 2097 | ||
@@ -2649,26 +2650,6 @@ static u64 oa_exponent_to_ns(struct drm_i915_private *dev_priv, int exponent) | |||
2649 | 1000ULL * INTEL_INFO(dev_priv)->cs_timestamp_frequency_khz); | 2650 | 1000ULL * INTEL_INFO(dev_priv)->cs_timestamp_frequency_khz); |
2650 | } | 2651 | } |
2651 | 2652 | ||
2652 | static int | ||
2653 | select_oa_buffer_exponent(struct drm_i915_private *i915, | ||
2654 | u64 requested_size) | ||
2655 | { | ||
2656 | int order; | ||
2657 | |||
2658 | /* | ||
2659 | * When no size is specified, use the largest size supported by all | ||
2660 | * generations. | ||
2661 | */ | ||
2662 | if (!requested_size) | ||
2663 | return order_base_2(SZ_16M); | ||
2664 | |||
2665 | order = order_base_2(clamp_t(u64, requested_size, SZ_128K, SZ_16M)); | ||
2666 | if (requested_size != (1UL << order)) | ||
2667 | return -EINVAL; | ||
2668 | |||
2669 | return order; | ||
2670 | } | ||
2671 | |||
2672 | /** | 2653 | /** |
2673 | * read_properties_unlocked - validate + copy userspace stream open properties | 2654 | * read_properties_unlocked - validate + copy userspace stream open properties |
2674 | * @dev_priv: i915 device instance | 2655 | * @dev_priv: i915 device instance |
@@ -2796,14 +2777,6 @@ static int read_properties_unlocked(struct drm_i915_private *dev_priv, | |||
2796 | props->oa_periodic = true; | 2777 | props->oa_periodic = true; |
2797 | props->oa_period_exponent = value; | 2778 | props->oa_period_exponent = value; |
2798 | break; | 2779 | break; |
2799 | case DRM_I915_PERF_PROP_OA_BUFFER_SIZE: | ||
2800 | ret = select_oa_buffer_exponent(dev_priv, value); | ||
2801 | if (ret < 0) { | ||
2802 | DRM_DEBUG("OA buffer size invalid %llu\n", value); | ||
2803 | return ret; | ||
2804 | } | ||
2805 | props->oa_buffer_size_exponent = ret; | ||
2806 | break; | ||
2807 | case DRM_I915_PERF_PROP_MAX: | 2780 | case DRM_I915_PERF_PROP_MAX: |
2808 | MISSING_CASE(id); | 2781 | MISSING_CASE(id); |
2809 | return -EINVAL; | 2782 | return -EINVAL; |
@@ -2812,12 +2785,6 @@ static int read_properties_unlocked(struct drm_i915_private *dev_priv, | |||
2812 | uprop += 2; | 2785 | uprop += 2; |
2813 | } | 2786 | } |
2814 | 2787 | ||
2815 | /* If no buffer size was requested, select the default one. */ | ||
2816 | if (!props->oa_buffer_size_exponent) { | ||
2817 | props->oa_buffer_size_exponent = | ||
2818 | select_oa_buffer_exponent(dev_priv, 0); | ||
2819 | } | ||
2820 | |||
2821 | return 0; | 2788 | return 0; |
2822 | } | 2789 | } |
2823 | 2790 | ||
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 94ba86018a4f..edb58af1e903 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
@@ -586,14 +586,12 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg) | |||
586 | #define GEN8_OABUFFER_UDW _MMIO(0x23b4) | 586 | #define GEN8_OABUFFER_UDW _MMIO(0x23b4) |
587 | #define GEN8_OABUFFER _MMIO(0x2b14) | 587 | #define GEN8_OABUFFER _MMIO(0x2b14) |
588 | #define GEN8_OABUFFER_MEM_SELECT_GGTT (1 << 0) /* 0: PPGTT, 1: GGTT */ | 588 | #define GEN8_OABUFFER_MEM_SELECT_GGTT (1 << 0) /* 0: PPGTT, 1: GGTT */ |
589 | #define GEN8_OABUFFER_BUFFER_SIZE_SHIFT 3 | ||
590 | 589 | ||
591 | #define GEN7_OASTATUS1 _MMIO(0x2364) | 590 | #define GEN7_OASTATUS1 _MMIO(0x2364) |
592 | #define GEN7_OASTATUS1_TAIL_MASK 0xffffffc0 | 591 | #define GEN7_OASTATUS1_TAIL_MASK 0xffffffc0 |
593 | #define GEN7_OASTATUS1_COUNTER_OVERFLOW (1 << 2) | 592 | #define GEN7_OASTATUS1_COUNTER_OVERFLOW (1 << 2) |
594 | #define GEN7_OASTATUS1_OABUFFER_OVERFLOW (1 << 1) | 593 | #define GEN7_OASTATUS1_OABUFFER_OVERFLOW (1 << 1) |
595 | #define GEN7_OASTATUS1_REPORT_LOST (1 << 0) | 594 | #define GEN7_OASTATUS1_REPORT_LOST (1 << 0) |
596 | #define GEN7_OASTATUS1_BUFFER_SIZE_SHIFT 3 | ||
597 | 595 | ||
598 | #define GEN7_OASTATUS2 _MMIO(0x2368) | 596 | #define GEN7_OASTATUS2 _MMIO(0x2368) |
599 | #define GEN7_OASTATUS2_HEAD_MASK 0xffffffc0 | 597 | #define GEN7_OASTATUS2_HEAD_MASK 0xffffffc0 |
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h index e477ef8c644e..298b2e197744 100644 --- a/include/uapi/drm/i915_drm.h +++ b/include/uapi/drm/i915_drm.h | |||
@@ -1540,13 +1540,6 @@ enum drm_i915_perf_property_id { | |||
1540 | */ | 1540 | */ |
1541 | DRM_I915_PERF_PROP_OA_EXPONENT, | 1541 | DRM_I915_PERF_PROP_OA_EXPONENT, |
1542 | 1542 | ||
1543 | /** | ||
1544 | * Specify a global OA buffer size to be allocated in bytes. The size | ||
1545 | * specified must be supported by HW (currently supported sizes are | ||
1546 | * powers of 2 ranging from 128Kb to 16Mb). | ||
1547 | */ | ||
1548 | DRM_I915_PERF_PROP_OA_BUFFER_SIZE, | ||
1549 | |||
1550 | DRM_I915_PERF_PROP_MAX /* non-ABI */ | 1543 | DRM_I915_PERF_PROP_MAX /* non-ABI */ |
1551 | }; | 1544 | }; |
1552 | 1545 | ||