@@ -248,41 +248,35 @@ static int xlnx_spdif_probe(struct platform_device *pdev)
248248 if (!ctx )
249249 return - ENOMEM ;
250250
251- ctx -> axi_clk = devm_clk_get (dev , "s_axi_aclk" );
251+ ctx -> axi_clk = devm_clk_get_enabled (dev , "s_axi_aclk" );
252252 if (IS_ERR (ctx -> axi_clk )) {
253253 ret = PTR_ERR (ctx -> axi_clk );
254254 dev_err (dev , "failed to get s_axi_aclk(%d)\n" , ret );
255255 return ret ;
256256 }
257- ret = clk_prepare_enable (ctx -> axi_clk );
258- if (ret ) {
259- dev_err (dev , "failed to enable s_axi_aclk(%d)\n" , ret );
260- return ret ;
261- }
262257
263258 ctx -> base = devm_platform_ioremap_resource (pdev , 0 );
264- if (IS_ERR (ctx -> base )) {
265- ret = PTR_ERR (ctx -> base );
266- goto clk_err ;
267- }
259+ if (IS_ERR (ctx -> base ))
260+ return PTR_ERR (ctx -> base );
261+
268262 ret = of_property_read_u32 (node , "xlnx,spdif-mode" , & ctx -> mode );
269263 if (ret < 0 ) {
270264 dev_err (dev , "cannot get SPDIF mode\n" );
271- goto clk_err ;
265+ return ret ;
272266 }
273267 if (ctx -> mode ) {
274268 dai_drv = & xlnx_spdif_tx_dai ;
275269 } else {
276270 ret = platform_get_irq (pdev , 0 );
277271 if (ret < 0 )
278- goto clk_err ;
272+ return ret ;
273+
279274 ret = devm_request_irq (dev , ret ,
280275 xlnx_spdifrx_irq_handler ,
281276 0 , "XLNX_SPDIF_RX" , ctx );
282277 if (ret ) {
283278 dev_err (dev , "spdif rx irq request failed\n" );
284- ret = - ENODEV ;
285- goto clk_err ;
279+ return - ENODEV ;
286280 }
287281
288282 init_waitqueue_head (& ctx -> chsts_q );
@@ -292,7 +286,7 @@ static int xlnx_spdif_probe(struct platform_device *pdev)
292286 ret = of_property_read_u32 (node , "xlnx,aud_clk_i" , & ctx -> aclk );
293287 if (ret < 0 ) {
294288 dev_err (dev , "cannot get aud_clk_i value\n" );
295- goto clk_err ;
289+ return ret ;
296290 }
297291
298292 dev_set_drvdata (dev , ctx );
@@ -301,22 +295,13 @@ static int xlnx_spdif_probe(struct platform_device *pdev)
301295 dai_drv , 1 );
302296 if (ret ) {
303297 dev_err (dev , "SPDIF component registration failed\n" );
304- goto clk_err ;
298+ return ret ;
305299 }
306300
307301 writel (XSPDIF_SOFT_RESET_VALUE , ctx -> base + XSPDIF_SOFT_RESET_REG );
308302 dev_info (dev , "%s DAI registered\n" , dai_drv -> name );
309303
310- clk_err :
311- clk_disable_unprepare (ctx -> axi_clk );
312- return ret ;
313- }
314-
315- static void xlnx_spdif_remove (struct platform_device * pdev )
316- {
317- struct spdif_dev_data * ctx = dev_get_drvdata (& pdev -> dev );
318-
319- clk_disable_unprepare (ctx -> axi_clk );
304+ return 0 ;
320305}
321306
322307static struct platform_driver xlnx_spdif_driver = {
@@ -325,7 +310,6 @@ static struct platform_driver xlnx_spdif_driver = {
325310 .of_match_table = xlnx_spdif_of_match ,
326311 },
327312 .probe = xlnx_spdif_probe ,
328- .remove = xlnx_spdif_remove ,
329313};
330314module_platform_driver (xlnx_spdif_driver );
331315
0 commit comments