sdm: Add support for excl rect

- Check if excl rect is supported

- Program excl rect for all layers
  below opaque surfaces

Change-Id: Ibb27863ab722b51338990e17c2bacf1bfe920209
CRs-Fixed: 2178936
diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h
index 97660ea..5b1b7ac 100644
--- a/libdrmutils/drm_interface.h
+++ b/libdrmutils/drm_interface.h
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2017, The Linux Foundation. All rights reserved.
+* Copyright (c) 2018, The Linux Foundation. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
@@ -60,6 +60,12 @@
    */
   PLANE_SET_DST_RECT,
   /*
+   * Op: Sets plane exclusion rect
+   * Arg: uint32_t - Plane ID
+   *      drm_clip_rect - Exclusion Rectangle
+   */
+  PLANE_SET_EXCL_RECT,
+  /*
    * Op: Sets plane zorder
    * Arg: uint32_t - Plane ID
    *      uint32_t - zorder
@@ -434,6 +440,7 @@
   uint32_t max_vertical_deci;
   uint64_t max_pipe_bandwidth;
   uint32_t cache_size;  // cache size in bytes for inline rotation support.
+  bool has_excl_rect = false;
   QSEEDStepVersion qseed3_version;
   bool multirect_prop_present = false;
 };