SF: Add sideband stream setup to setUpHwComposer

Add programming of sideband streams in SetupHwComposer

Test: Compile/Run manually
Merged-In: Ic71d95746015f6634d7f861370be6a1de41f4eb7
Change-Id: Ic71d95746015f6634d7f861370be6a1de41f4eb7
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index d3cd1ac..e70344e 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1967,6 +1967,20 @@
     return HAL_DATASPACE_V0_SRGB;
 }
 
+void SurfaceFlinger::configureSidebandComposition(const CompositionInfo& compositionInfo) const
+{
+    HWC2::Error error;
+    LOG_ALWAYS_FATAL_IF(compositionInfo.hwc.sidebandStream == nullptr,
+                        "CompositionType is sideband, but sideband stream is nullptr");
+    error = (*compositionInfo.hwc.hwcLayer)
+                    ->setSidebandStream(compositionInfo.hwc.sidebandStream->handle());
+    if (error != HWC2::Error::None) {
+        ALOGE("[SF] Failed to set sideband stream %p: %s (%d)",
+                compositionInfo.hwc.sidebandStream->handle(), to_string(error).c_str(),
+                static_cast<int32_t>(error));
+    }
+}
+
 void SurfaceFlinger::configureHwcCommonData(const CompositionInfo& compositionInfo) const
 {
     HWC2::Error error;
@@ -2114,7 +2128,10 @@
                 case HWC2::Composition::Invalid:
                 case HWC2::Composition::Client:
                 case HWC2::Composition::Cursor:
+                    break;
+
                 case HWC2::Composition::Sideband:
+                    configureSidebandComposition(compositionInfo);
                     break;
 
                 case HWC2::Composition::SolidColor: