@@ -425,6 +425,7 @@ static void sg2044_spifmc_init(struct sg2044_spifmc *spifmc)
425
425
426
426
static int sg2044_spifmc_probe (struct platform_device * pdev )
427
427
{
428
+ struct device * dev = & pdev -> dev ;
428
429
struct spi_controller * ctrl ;
429
430
struct sg2044_spifmc * spifmc ;
430
431
void __iomem * base ;
@@ -435,13 +436,10 @@ static int sg2044_spifmc_probe(struct platform_device *pdev)
435
436
return - ENOMEM ;
436
437
437
438
spifmc = spi_controller_get_devdata (ctrl );
438
- dev_set_drvdata (& pdev -> dev , ctrl );
439
439
440
440
spifmc -> clk = devm_clk_get_enabled (& pdev -> dev , NULL );
441
441
if (IS_ERR (spifmc -> clk ))
442
- return dev_err_probe (& pdev -> dev , PTR_ERR (spifmc -> clk ),
443
- "%s: Cannot get and enable AHB clock\n" ,
444
- __func__ );
442
+ return dev_err_probe (dev , PTR_ERR (spifmc -> clk ), "Cannot get and enable AHB clock\n" );
445
443
446
444
spifmc -> dev = & pdev -> dev ;
447
445
spifmc -> ctrl = ctrl ;
@@ -457,28 +455,20 @@ static int sg2044_spifmc_probe(struct platform_device *pdev)
457
455
ctrl -> mem_ops = & sg2044_spifmc_mem_ops ;
458
456
ctrl -> mode_bits = SPI_RX_DUAL | SPI_TX_DUAL | SPI_RX_QUAD | SPI_TX_QUAD ;
459
457
460
- mutex_init (& spifmc -> lock );
458
+ ret = devm_mutex_init (dev , & spifmc -> lock );
459
+ if (ret )
460
+ return ret ;
461
461
462
462
sg2044_spifmc_init (spifmc );
463
463
sg2044_spifmc_init_reg (spifmc );
464
464
465
465
ret = devm_spi_register_controller (& pdev -> dev , ctrl );
466
- if (ret ) {
467
- mutex_destroy (& spifmc -> lock );
468
- dev_err (& pdev -> dev , "spi_register_controller failed\n" );
469
- return ret ;
470
- }
466
+ if (ret )
467
+ return dev_err_probe (dev , ret , "spi_register_controller failed\n" );
471
468
472
469
return 0 ;
473
470
}
474
471
475
- static void sg2044_spifmc_remove (struct platform_device * pdev )
476
- {
477
- struct sg2044_spifmc * spifmc = platform_get_drvdata (pdev );
478
-
479
- mutex_destroy (& spifmc -> lock );
480
- }
481
-
482
472
static const struct of_device_id sg2044_spifmc_match [] = {
483
473
{ .compatible = "sophgo,sg2044-spifmc-nor" },
484
474
{ /* sentinel */ }
@@ -491,7 +481,6 @@ static struct platform_driver sg2044_nor_driver = {
491
481
.of_match_table = sg2044_spifmc_match ,
492
482
},
493
483
.probe = sg2044_spifmc_probe ,
494
- .remove = sg2044_spifmc_remove ,
495
484
};
496
485
module_platform_driver (sg2044_nor_driver );
497
486
0 commit comments