@@ -2175,23 +2175,16 @@ static int stm32f7_i2c_probe(struct platform_device *pdev)
2175
2175
i2c_dev -> wakeup_src = of_property_read_bool (pdev -> dev .of_node ,
2176
2176
"wakeup-source" );
2177
2177
2178
- i2c_dev -> clk = devm_clk_get (& pdev -> dev , NULL );
2178
+ i2c_dev -> clk = devm_clk_get_enabled (& pdev -> dev , NULL );
2179
2179
if (IS_ERR (i2c_dev -> clk ))
2180
2180
return dev_err_probe (& pdev -> dev , PTR_ERR (i2c_dev -> clk ),
2181
- "Failed to get controller clock\n" );
2182
-
2183
- ret = clk_prepare_enable (i2c_dev -> clk );
2184
- if (ret ) {
2185
- dev_err (& pdev -> dev , "Failed to prepare_enable clock\n" );
2186
- return ret ;
2187
- }
2181
+ "Failed to enable controller clock\n" );
2188
2182
2189
2183
rst = devm_reset_control_get (& pdev -> dev , NULL );
2190
- if (IS_ERR (rst )) {
2191
- ret = dev_err_probe (& pdev -> dev , PTR_ERR (rst ),
2192
- "Error: Missing reset ctrl\n" );
2193
- goto clk_free ;
2194
- }
2184
+ if (IS_ERR (rst ))
2185
+ return dev_err_probe (& pdev -> dev , PTR_ERR (rst ),
2186
+ "Error: Missing reset ctrl\n" );
2187
+
2195
2188
reset_control_assert (rst );
2196
2189
udelay (2 );
2197
2190
reset_control_deassert (rst );
@@ -2206,37 +2199,36 @@ static int stm32f7_i2c_probe(struct platform_device *pdev)
2206
2199
if (ret ) {
2207
2200
dev_err (& pdev -> dev , "Failed to request irq event %i\n" ,
2208
2201
irq_event );
2209
- goto clk_free ;
2202
+ return ret ;
2210
2203
}
2211
2204
2212
2205
ret = devm_request_irq (& pdev -> dev , irq_error , stm32f7_i2c_isr_error , 0 ,
2213
2206
pdev -> name , i2c_dev );
2214
2207
if (ret ) {
2215
2208
dev_err (& pdev -> dev , "Failed to request irq error %i\n" ,
2216
2209
irq_error );
2217
- goto clk_free ;
2210
+ return ret ;
2218
2211
}
2219
2212
2220
2213
setup = of_device_get_match_data (& pdev -> dev );
2221
2214
if (!setup ) {
2222
2215
dev_err (& pdev -> dev , "Can't get device data\n" );
2223
- ret = - ENODEV ;
2224
- goto clk_free ;
2216
+ return - ENODEV ;
2225
2217
}
2226
2218
i2c_dev -> setup = * setup ;
2227
2219
2228
2220
ret = stm32f7_i2c_setup_timing (i2c_dev , & i2c_dev -> setup );
2229
2221
if (ret )
2230
- goto clk_free ;
2222
+ return ret ;
2231
2223
2232
2224
/* Setup Fast mode plus if necessary */
2233
2225
if (i2c_dev -> bus_rate > I2C_MAX_FAST_MODE_FREQ ) {
2234
2226
ret = stm32f7_i2c_setup_fm_plus_bits (pdev , i2c_dev );
2235
2227
if (ret )
2236
- goto clk_free ;
2228
+ return ret ;
2237
2229
ret = stm32f7_i2c_write_fm_plus_bits (i2c_dev , true);
2238
2230
if (ret )
2239
- goto clk_free ;
2231
+ return ret ;
2240
2232
}
2241
2233
2242
2234
adap = & i2c_dev -> adap ;
@@ -2347,9 +2339,6 @@ static int stm32f7_i2c_probe(struct platform_device *pdev)
2347
2339
fmp_clear :
2348
2340
stm32f7_i2c_write_fm_plus_bits (i2c_dev , false);
2349
2341
2350
- clk_free :
2351
- clk_disable_unprepare (i2c_dev -> clk );
2352
-
2353
2342
return ret ;
2354
2343
}
2355
2344
@@ -2383,8 +2372,6 @@ static void stm32f7_i2c_remove(struct platform_device *pdev)
2383
2372
}
2384
2373
2385
2374
stm32f7_i2c_write_fm_plus_bits (i2c_dev , false);
2386
-
2387
- clk_disable_unprepare (i2c_dev -> clk );
2388
2375
}
2389
2376
2390
2377
static int __maybe_unused stm32f7_i2c_runtime_suspend (struct device * dev )
0 commit comments