summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/intel/isl/isl.h3
-rw-r--r--src/intel/isl/isl_drm.c17
2 files changed, 20 insertions, 0 deletions
diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h
index d81df31a372..92d2ffc31a5 100644
--- a/src/intel/isl/isl.h
+++ b/src/intel/isl/isl.h
@@ -1516,6 +1516,9 @@ isl_tiling_is_std_y(enum isl_tiling tiling)
uint32_t
isl_tiling_to_i915_tiling(enum isl_tiling tiling);
+enum isl_tiling
+isl_tiling_from_i915_tiling(uint32_t tiling);
+
const struct isl_drm_modifier_info * ATTRIBUTE_CONST
isl_drm_modifier_get_info(uint64_t modifier);
diff --git a/src/intel/isl/isl_drm.c b/src/intel/isl/isl_drm.c
index b7a4997d2d0..ef80e42fdf7 100644
--- a/src/intel/isl/isl_drm.c
+++ b/src/intel/isl/isl_drm.c
@@ -54,6 +54,23 @@ isl_tiling_to_i915_tiling(enum isl_tiling tiling)
unreachable("Invalid ISL tiling");
}
+enum isl_tiling
+isl_tiling_from_i915_tiling(uint32_t tiling)
+{
+ switch (tiling) {
+ case I915_TILING_NONE:
+ return ISL_TILING_LINEAR;
+
+ case I915_TILING_X:
+ return ISL_TILING_X;
+
+ case I915_TILING_Y:
+ return ISL_TILING_Y0;
+ }
+
+ unreachable("Invalid i915 tiling");
+}
+
struct isl_drm_modifier_info modifier_info[] = {
{
.modifier = DRM_FORMAT_MOD_NONE,