verify_link_capability_non_destructive(link);
 }
 
+static void read_scdc_caps(struct ddc_service *ddc_service, struct dc_sink *sink)
+{
+       uint8_t slave_address = HDMI_SCDC_ADDRESS;
+       uint8_t offset = HDMI_SCDC_MANUFACTURER_OUI;
+
+       link_query_ddc_data(ddc_service, slave_address, &offset,
+                       sizeof(offset), sink->scdc_caps.manufacturer_OUI.byte,
+                       sizeof(sink->scdc_caps.manufacturer_OUI.byte));
+
+       offset = HDMI_SCDC_DEVICE_ID;
+
+       link_query_ddc_data(ddc_service, slave_address, &offset,
+                       sizeof(offset), &(sink->scdc_caps.device_id.byte), sizeof(sink->scdc_caps.device_id.byte));
+}
 
 /**
  * detect_link_and_local_sink() - Detect if a sink is attached to a given link
                if (sink->edid_caps.panel_patch.skip_scdc_overwrite)
                        link->ctx->dc->debug.hdmi20_disable = true;
 
+               if (dc_is_hdmi_signal(link->connector_signal))
+                       read_scdc_caps(link->ddc, link->local_sink);
+
                if (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
                    sink_caps.transaction_type ==
                    DDC_TRANSACTION_TYPE_I2C_OVER_AUX) {
 
        bool is_topology_fec_supported;
 };
 
+struct scdc_caps {
+       union hdmi_scdc_manufacturer_OUI_data manufacturer_OUI;
+       union hdmi_scdc_device_id_data device_id;
+};
+
 /*
  * The sink structure contains EDID and other display device properties
  */
        struct stereo_3d_features features_3d[TIMING_3D_FORMAT_MAX];
        bool converter_disable_audio;
 
+       struct scdc_caps scdc_caps;
        struct dc_sink_dsc_caps dsc_caps;
        struct dc_sink_fec_caps fec_caps;
 
 
 #define HDMI_SCDC_ERR_DETECT 0x50
 #define HDMI_SCDC_TEST_CONFIG 0xC0
 
+#define HDMI_SCDC_MANUFACTURER_OUI 0xD0
+#define HDMI_SCDC_DEVICE_ID 0xDB
+
 union hdmi_scdc_update_read_data {
        uint8_t byte[2];
        struct {
        } fields;
 };
 
+union hdmi_scdc_manufacturer_OUI_data {
+       uint8_t byte[3];
+       struct {
+               uint8_t Manufacturer_OUI_1:8;
+               uint8_t Manufacturer_OUI_2:8;
+               uint8_t Manufacturer_OUI_3:8;
+       } fields;
+};
+
+union hdmi_scdc_device_id_data {
+       uint8_t byte;
+       struct {
+               uint8_t Hardware_Minor_Rev:4;
+               uint8_t Hardware_Major_Rev:4;
+       } fields;
+};
+
 #endif /* DC_HDMI_TYPES_H */