@@ -1256,16 +1256,11 @@ static int xiic_i2c_probe(struct platform_device *pdev)
12561256
12571257 mutex_init (& i2c -> lock );
12581258
1259- i2c -> clk = devm_clk_get (& pdev -> dev , NULL );
1259+ i2c -> clk = devm_clk_get_enabled (& pdev -> dev , NULL );
12601260 if (IS_ERR (i2c -> clk ))
12611261 return dev_err_probe (& pdev -> dev , PTR_ERR (i2c -> clk ),
1262- "input clock not found .\n" );
1262+ "failed to enable input clock .\n" );
12631263
1264- ret = clk_prepare_enable (i2c -> clk );
1265- if (ret ) {
1266- dev_err (& pdev -> dev , "Unable to enable clock.\n" );
1267- return ret ;
1268- }
12691264 i2c -> dev = & pdev -> dev ;
12701265 pm_runtime_set_autosuspend_delay (i2c -> dev , XIIC_PM_TIMEOUT );
12711266 pm_runtime_use_autosuspend (i2c -> dev );
@@ -1286,7 +1281,7 @@ static int xiic_i2c_probe(struct platform_device *pdev)
12861281
12871282 if (ret < 0 ) {
12881283 dev_err (& pdev -> dev , "Cannot claim IRQ\n" );
1289- goto err_clk_dis ;
1284+ goto err_pm_disable ;
12901285 }
12911286
12921287 i2c -> singlemaster =
@@ -1307,14 +1302,14 @@ static int xiic_i2c_probe(struct platform_device *pdev)
13071302 ret = xiic_reinit (i2c );
13081303 if (ret < 0 ) {
13091304 dev_err (& pdev -> dev , "Cannot xiic_reinit\n" );
1310- goto err_clk_dis ;
1305+ goto err_pm_disable ;
13111306 }
13121307
13131308 /* add i2c adapter to i2c tree */
13141309 ret = i2c_add_adapter (& i2c -> adap );
13151310 if (ret ) {
13161311 xiic_deinit (i2c );
1317- goto err_clk_dis ;
1312+ goto err_pm_disable ;
13181313 }
13191314
13201315 if (pdata ) {
@@ -1328,10 +1323,10 @@ static int xiic_i2c_probe(struct platform_device *pdev)
13281323
13291324 return 0 ;
13301325
1331- err_clk_dis :
1326+ err_pm_disable :
13321327 pm_runtime_set_suspended (& pdev -> dev );
13331328 pm_runtime_disable (& pdev -> dev );
1334- clk_disable_unprepare ( i2c -> clk );
1329+
13351330 return ret ;
13361331}
13371332
@@ -1352,7 +1347,6 @@ static void xiic_i2c_remove(struct platform_device *pdev)
13521347 xiic_deinit (i2c );
13531348
13541349 pm_runtime_put_sync (i2c -> dev );
1355- clk_disable_unprepare (i2c -> clk );
13561350 pm_runtime_disable (& pdev -> dev );
13571351 pm_runtime_set_suspended (& pdev -> dev );
13581352 pm_runtime_dont_use_autosuspend (& pdev -> dev );
0 commit comments