@@ -1256,16 +1256,11 @@ static int xiic_i2c_probe(struct platform_device *pdev)
1256
1256
1257
1257
mutex_init (& i2c -> lock );
1258
1258
1259
- i2c -> clk = devm_clk_get (& pdev -> dev , NULL );
1259
+ i2c -> clk = devm_clk_get_enabled (& pdev -> dev , NULL );
1260
1260
if (IS_ERR (i2c -> clk ))
1261
1261
return dev_err_probe (& pdev -> dev , PTR_ERR (i2c -> clk ),
1262
- "input clock not found .\n" );
1262
+ "failed to enable input clock .\n" );
1263
1263
1264
- ret = clk_prepare_enable (i2c -> clk );
1265
- if (ret ) {
1266
- dev_err (& pdev -> dev , "Unable to enable clock.\n" );
1267
- return ret ;
1268
- }
1269
1264
i2c -> dev = & pdev -> dev ;
1270
1265
pm_runtime_set_autosuspend_delay (i2c -> dev , XIIC_PM_TIMEOUT );
1271
1266
pm_runtime_use_autosuspend (i2c -> dev );
@@ -1286,7 +1281,7 @@ static int xiic_i2c_probe(struct platform_device *pdev)
1286
1281
1287
1282
if (ret < 0 ) {
1288
1283
dev_err (& pdev -> dev , "Cannot claim IRQ\n" );
1289
- goto err_clk_dis ;
1284
+ goto err_pm_disable ;
1290
1285
}
1291
1286
1292
1287
i2c -> singlemaster =
@@ -1307,14 +1302,14 @@ static int xiic_i2c_probe(struct platform_device *pdev)
1307
1302
ret = xiic_reinit (i2c );
1308
1303
if (ret < 0 ) {
1309
1304
dev_err (& pdev -> dev , "Cannot xiic_reinit\n" );
1310
- goto err_clk_dis ;
1305
+ goto err_pm_disable ;
1311
1306
}
1312
1307
1313
1308
/* add i2c adapter to i2c tree */
1314
1309
ret = i2c_add_adapter (& i2c -> adap );
1315
1310
if (ret ) {
1316
1311
xiic_deinit (i2c );
1317
- goto err_clk_dis ;
1312
+ goto err_pm_disable ;
1318
1313
}
1319
1314
1320
1315
if (pdata ) {
@@ -1328,10 +1323,10 @@ static int xiic_i2c_probe(struct platform_device *pdev)
1328
1323
1329
1324
return 0 ;
1330
1325
1331
- err_clk_dis :
1326
+ err_pm_disable :
1332
1327
pm_runtime_set_suspended (& pdev -> dev );
1333
1328
pm_runtime_disable (& pdev -> dev );
1334
- clk_disable_unprepare ( i2c -> clk );
1329
+
1335
1330
return ret ;
1336
1331
}
1337
1332
@@ -1352,7 +1347,6 @@ static void xiic_i2c_remove(struct platform_device *pdev)
1352
1347
xiic_deinit (i2c );
1353
1348
1354
1349
pm_runtime_put_sync (i2c -> dev );
1355
- clk_disable_unprepare (i2c -> clk );
1356
1350
pm_runtime_disable (& pdev -> dev );
1357
1351
pm_runtime_set_suspended (& pdev -> dev );
1358
1352
pm_runtime_dont_use_autosuspend (& pdev -> dev );
0 commit comments