File tree Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -817,15 +817,21 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq)
817
817
}
818
818
819
819
if (unlikely (!target_freq )) {
820
- if (opp_table -> required_opp_tables ) {
821
- ret = _set_required_opps (dev , opp_table , NULL );
822
- } else if (!_get_opp_count (opp_table )) {
820
+ /*
821
+ * Some drivers need to support cases where some platforms may
822
+ * have OPP table for the device, while others don't and
823
+ * opp_set_rate() just needs to behave like clk_set_rate().
824
+ */
825
+ if (!_get_opp_count (opp_table ))
823
826
return 0 ;
824
- } else {
827
+
828
+ if (!opp_table -> required_opp_tables ) {
825
829
dev_err (dev , "target frequency can't be 0\n" );
826
830
ret = - EINVAL ;
831
+ goto put_opp_table ;
827
832
}
828
833
834
+ ret = _set_required_opps (dev , opp_table , NULL );
829
835
goto put_opp_table ;
830
836
}
831
837
You can’t perform that action at this time.
0 commit comments