}
 }
 
+static void sienna_cichlid_check_fan_support(struct smu_context *smu)
+{
+       struct smu_table_context *table_context = &smu->smu_table;
+       PPTable_t *pptable = table_context->driver_pptable;
+       uint64_t features = *(uint64_t *) pptable->FeaturesToRun;
+
+       /* Fan control is not possible if PPTable has it disabled */
+       smu->adev->pm.no_fan =
+               !(features & (1ULL << FEATURE_FAN_CONTROL_BIT));
+       if (smu->adev->pm.no_fan)
+               dev_info_once(smu->adev->dev,
+                             "PMFW based fan control disabled");
+}
+
 static int sienna_cichlid_check_powerplay_table(struct smu_context *smu)
 {
        struct smu_table_context *table_context = &smu->smu_table;
                smu->dc_controlled_by_gpio = true;
 
        sienna_cichlid_check_bxco_support(smu);
+       sienna_cichlid_check_fan_support(smu);
 
        table_context->thermal_controller_type =
                powerplay_table->thermal_controller_type;