*********************************************************************/
 
 /* Special Values of .frequency field */
-#define CPUFREQ_ENTRY_INVALID  ~0u
-#define CPUFREQ_TABLE_END      ~1u
+#define CPUFREQ_ENTRY_INVALID          ~0u
+#define CPUFREQ_TABLE_END              ~1u
 /* Special Values of .flags field */
-#define CPUFREQ_BOOST_FREQ     (1 << 0)
+#define CPUFREQ_BOOST_FREQ             (1 << 0)
+#define CPUFREQ_INEFFICIENT_FREQ       (1 << 1)
 
 struct cpufreq_frequency_table {
        unsigned int    flags;
        return count;
 }
 
+/**
+ * cpufreq_table_set_inefficient() - Mark a frequency as inefficient
+ * @policy:    the &struct cpufreq_policy containing the inefficient frequency
+ * @frequency: the inefficient frequency
+ *
+ * The &struct cpufreq_policy must use a sorted frequency table
+ *
+ * Return:     %0 on success or a negative errno code
+ */
+
+static inline int
+cpufreq_table_set_inefficient(struct cpufreq_policy *policy,
+                             unsigned int frequency)
+{
+       struct cpufreq_frequency_table *pos;
+
+       /* Not supported */
+       if (policy->freq_table_sorted == CPUFREQ_TABLE_UNSORTED)
+               return -EINVAL;
+
+       cpufreq_for_each_valid_entry(pos, policy->freq_table) {
+               if (pos->frequency == frequency) {
+                       pos->flags |= CPUFREQ_INEFFICIENT_FREQ;
+                       return 0;
+               }
+       }
+
+       return -EINVAL;
+}
+
 static inline int parse_perf_domain(int cpu, const char *list_name,
                                    const char *cell_name)
 {
        return false;
 }
 
+static inline int
+cpufreq_table_set_inefficient(struct cpufreq_policy *policy,
+                             unsigned int frequency)
+{
+       return -EINVAL;
+}
+
 static inline int of_perf_domain_get_sharing_cpumask(int pcpu, const char *list_name,
                                                     const char *cell_name, struct cpumask *cpumask)
 {