diff --git a/sdm/include/private/hw_info_types.h b/sdm/include/private/hw_info_types.h
index 89d00c8..39ab20b 100644
--- a/sdm/include/private/hw_info_types.h
+++ b/sdm/include/private/hw_info_types.h
@@ -215,7 +215,6 @@
   std::string device_path = "";
   float min_downscale = 2.0f;
   bool downscale_compression = false;
-  uint64_t max_line_width = 0;
 };
 
 enum HWQseedStepVersion {
diff --git a/sdm/libs/core/drm/hw_info_drm.cpp b/sdm/libs/core/drm/hw_info_drm.cpp
index c700684..e6245a8 100644
--- a/sdm/libs/core/drm/hw_info_drm.cpp
+++ b/sdm/libs/core/drm/hw_info_drm.cpp
@@ -626,16 +626,12 @@
         while (Sys::getline_(caps_fs, caps)) {
           const string downscale_compression = "downscale_compression=";
           const string min_downscale = "min_downscale=";
-          const string max_line_width = "max_line_width=";
           if (caps.find(downscale_compression) != string::npos) {
             hw_resource->hw_rot_info.downscale_compression =
               std::stoi(string(caps, downscale_compression.length()));
           } else if (caps.find(min_downscale) != string::npos) {
             hw_resource->hw_rot_info.min_downscale =
               std::stof(string(caps, min_downscale.length()));
-          } else if (caps.find(max_line_width) != string::npos) {
-            hw_resource->hw_rot_info.max_line_width =
-              std::stoul(string(caps, max_line_width.length()));
           }
         }
       }
@@ -645,10 +641,9 @@
     }
   }
 
-  DLOGI("V4L2 Rotator: Count = %d, Downscale = %d, Min_downscale = %f," \
-        "Downscale_compression = %d, Max_line_width = %d", hw_resource->hw_rot_info.num_rotator,
-        hw_resource->hw_rot_info.has_downscale, hw_resource->hw_rot_info.min_downscale,
-        hw_resource->hw_rot_info.downscale_compression, hw_resource->hw_rot_info.max_line_width);
+  DLOGI("V4L2 Rotator: Count = %d, Downscale = %d, Min_downscale = %f, Downscale_compression = %d",
+        hw_resource->hw_rot_info.num_rotator, hw_resource->hw_rot_info.has_downscale,
+        hw_resource->hw_rot_info.min_downscale, hw_resource->hw_rot_info.downscale_compression);
 
   return kErrorNone;
 }
diff --git a/sdm/libs/core/fb/hw_info.cpp b/sdm/libs/core/fb/hw_info.cpp
index 87bf9e5..65b17cd 100644
--- a/sdm/libs/core/fb/hw_info.cpp
+++ b/sdm/libs/core/fb/hw_info.cpp
@@ -370,15 +370,13 @@
         hw_resource->hw_rot_info.device_path = "/dev/mdss_rotator";
       } else if (!strncmp(tokens[0], "downscale", strlen("downscale"))) {
         hw_resource->hw_rot_info.has_downscale = UINT8(atoi(tokens[1]));
-      } else if (!strncmp(tokens[0], "max_line_width", strlen("max_line_width"))) {
-        hw_resource->hw_rot_info.max_line_width = UINT64(atoi(tokens[1]));
       }
     }
   }
 
-  DLOGI("MDSS Rotator: Count = %d, Downscale = %d, Min_downscale = %f Max_line_width= %d",
+  DLOGI("MDSS Rotator: Count = %d, Downscale = %d, Min_downscale = %f",
         hw_resource->hw_rot_info.num_rotator, hw_resource->hw_rot_info.has_downscale,
-        hw_resource->hw_rot_info.min_downscale, hw_resource->hw_rot_info.max_line_width);
+        hw_resource->hw_rot_info.min_downscale);
 
   return kErrorNone;
 }
@@ -418,8 +416,6 @@
                  hw_resource->hw_rot_info.downscale_compression = UINT8(atoi(tokens[1]));
                } else if (!strncmp(tokens[0], "min_downscale", strlen("min_downscale"))) {
                  hw_resource->hw_rot_info.min_downscale = FLOAT(atof(tokens[1]));
-               } else if (!strncmp(tokens[0], "max_line_width", strlen("max_line_width"))) {
-                 hw_resource->hw_rot_info.max_line_width = UINT64(atoi(tokens[1]));
                }
              }
            }
@@ -431,10 +427,9 @@
     }
   }
 
-  DLOGI("V4L2 Rotator: Count = %d, Downscale = %d, Min_downscale = %f, Downscale_compression =%d", \
-        "Max_line_width = %d", hw_resource->hw_rot_info.num_rotator,
-        hw_resource->hw_rot_info.has_downscale, hw_resource->hw_rot_info.min_downscale,
-        hw_resource->hw_rot_info.downscale_compression, hw_resource->hw_rot_info.max_line_width);
+  DLOGI("V4L2 Rotator: Count = %d, Downscale = %d, Min_downscale = %f, Downscale_compression = %d",
+        hw_resource->hw_rot_info.num_rotator, hw_resource->hw_rot_info.has_downscale,
+        hw_resource->hw_rot_info.min_downscale, hw_resource->hw_rot_info.downscale_compression);
 
   return kErrorNone;
 }
