libhwc2.1: fix null pointer crash in setupHWResource

mainDisp could be null if all displays are OFF. This could happen when
the client is destoyed after setting all displays to OFF.

Bug: 304976052
Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: I3a3687d1681a5b61d207aaf4c1212b058b9cf704
diff --git a/libhwc2.1/libresource/ExynosResourceManagerModule.cpp b/libhwc2.1/libresource/ExynosResourceManagerModule.cpp
index 0380f3d..255ea66 100644
--- a/libhwc2.1/libresource/ExynosResourceManagerModule.cpp
+++ b/libhwc2.1/libresource/ExynosResourceManagerModule.cpp
@@ -162,12 +162,13 @@
         const auto &TDMInfoIdx = (HWAttrs.at(tdmAttrId).loadSharing == LS_DPUF)
                 ? std::make_pair(blkId, AXI_DONT_CARE)
                 : std::make_pair(blkId, axiId);
-        const uint32_t mainAmount =
-                (minorDisp != nullptr) ? hwResource.mainAmount
-                                       : hwResource.mainAmount + hwResource.minorAmount;
-
-        mainDisp->mDisplayTDMInfo[TDMInfoIdx]
-                .initTDMInfo(DisplayTDMInfo::ResourceAmount_t{mainAmount}, tdmAttrId);
+        if (mainDisp != nullptr) {
+            const uint32_t mainAmount = (minorDisp != nullptr)
+                    ? hwResource.mainAmount
+                    : hwResource.mainAmount + hwResource.minorAmount;
+            mainDisp->mDisplayTDMInfo[TDMInfoIdx]
+                    .initTDMInfo(DisplayTDMInfo::ResourceAmount_t{mainAmount}, tdmAttrId);
+        }
         if (minorDisp != nullptr) {
             const uint32_t minorAmount = hwResource.minorAmount;
             minorDisp->mDisplayTDMInfo[TDMInfoIdx]