@@ -99,20 +99,12 @@ void lima_devfreq_fini(struct lima_device *ldev)
9999 devm_devfreq_remove_device (ldev -> dev , devfreq -> devfreq );
100100 devfreq -> devfreq = NULL ;
101101 }
102-
103- dev_pm_opp_of_remove_table (ldev -> dev );
104-
105- dev_pm_opp_put_regulators (devfreq -> regulators_opp_table );
106- dev_pm_opp_put_clkname (devfreq -> clkname_opp_table );
107- devfreq -> regulators_opp_table = NULL ;
108- devfreq -> clkname_opp_table = NULL ;
109102}
110103
111104int lima_devfreq_init (struct lima_device * ldev )
112105{
113106 struct thermal_cooling_device * cooling ;
114107 struct device * dev = ldev -> dev ;
115- struct opp_table * opp_table ;
116108 struct devfreq * devfreq ;
117109 struct lima_devfreq * ldevfreq = & ldev -> devfreq ;
118110 struct dev_pm_opp * opp ;
@@ -125,40 +117,28 @@ int lima_devfreq_init(struct lima_device *ldev)
125117
126118 spin_lock_init (& ldevfreq -> lock );
127119
128- opp_table = dev_pm_opp_set_clkname (dev , "core" );
129- if (IS_ERR (opp_table )) {
130- ret = PTR_ERR (opp_table );
131- goto err_fini ;
132- }
133-
134- ldevfreq -> clkname_opp_table = opp_table ;
135-
136- opp_table = dev_pm_opp_set_regulators (dev ,
137- (const char * []){ "mali" },
138- 1 );
139- if (IS_ERR (opp_table )) {
140- ret = PTR_ERR (opp_table );
120+ ret = devm_pm_opp_set_clkname (dev , "core" );
121+ if (ret )
122+ return ret ;
141123
124+ ret = devm_pm_opp_set_regulators (dev , (const char * []){ "mali" }, 1 );
125+ if (ret ) {
142126 /* Continue if the optional regulator is missing */
143127 if (ret != - ENODEV )
144- goto err_fini ;
145- } else {
146- ldevfreq -> regulators_opp_table = opp_table ;
128+ return ret ;
147129 }
148130
149- ret = dev_pm_opp_of_add_table (dev );
131+ ret = devm_pm_opp_of_add_table (dev );
150132 if (ret )
151- goto err_fini ;
133+ return ret ;
152134
153135 lima_devfreq_reset (ldevfreq );
154136
155137 cur_freq = clk_get_rate (ldev -> clk_gpu );
156138
157139 opp = devfreq_recommended_opp (dev , & cur_freq , 0 );
158- if (IS_ERR (opp )) {
159- ret = PTR_ERR (opp );
160- goto err_fini ;
161- }
140+ if (IS_ERR (opp ))
141+ return PTR_ERR (opp );
162142
163143 lima_devfreq_profile .initial_freq = cur_freq ;
164144 dev_pm_opp_put (opp );
@@ -167,8 +147,7 @@ int lima_devfreq_init(struct lima_device *ldev)
167147 DEVFREQ_GOV_SIMPLE_ONDEMAND , NULL );
168148 if (IS_ERR (devfreq )) {
169149 dev_err (dev , "Couldn't initialize GPU devfreq\n" );
170- ret = PTR_ERR (devfreq );
171- goto err_fini ;
150+ return PTR_ERR (devfreq );
172151 }
173152
174153 ldevfreq -> devfreq = devfreq ;
@@ -180,10 +159,6 @@ int lima_devfreq_init(struct lima_device *ldev)
180159 ldevfreq -> cooling = cooling ;
181160
182161 return 0 ;
183-
184- err_fini :
185- lima_devfreq_fini (ldev );
186- return ret ;
187162}
188163
189164void lima_devfreq_record_busy (struct lima_devfreq * devfreq )
0 commit comments