@@ -522,48 +522,36 @@ static struct resource telemetry_res[] = {
522
522
static int ipc_create_punit_device (void )
523
523
{
524
524
struct platform_device * pdev ;
525
- int ret ;
526
-
527
- pdev = platform_device_alloc (PUNIT_DEVICE_NAME , -1 );
528
- if (!pdev ) {
529
- dev_err (ipcdev .dev , "Failed to alloc punit platform device\n" );
530
- return - ENOMEM ;
531
- }
532
-
533
- pdev -> dev .parent = ipcdev .dev ;
534
- ret = platform_device_add_resources (pdev , punit_res_array ,
535
- ARRAY_SIZE (punit_res_array ));
536
- if (ret ) {
537
- dev_err (ipcdev .dev , "Failed to add platform punit resources\n" );
538
- goto err ;
539
- }
525
+ const struct platform_device_info pdevinfo = {
526
+ .parent = ipcdev .dev ,
527
+ .name = PUNIT_DEVICE_NAME ,
528
+ .id = -1 ,
529
+ .res = punit_res_array ,
530
+ .num_res = ARRAY_SIZE (punit_res_array ),
531
+ };
532
+
533
+ pdev = platform_device_register_full (& pdevinfo );
534
+ if (IS_ERR (pdev ))
535
+ return PTR_ERR (pdev );
540
536
541
- ret = platform_device_add (pdev );
542
- if (ret ) {
543
- dev_err (ipcdev .dev , "Failed to add punit platform device\n" );
544
- goto err ;
545
- }
546
537
ipcdev .punit_dev = pdev ;
547
538
548
539
return 0 ;
549
- err :
550
- platform_device_put (pdev );
551
- return ret ;
552
540
}
553
541
554
542
static int ipc_create_tco_device (void )
555
543
{
556
544
struct platform_device * pdev ;
557
545
struct resource * res ;
558
- int ret ;
559
-
560
- pdev = platform_device_alloc ( TCO_DEVICE_NAME , -1 );
561
- if (! pdev ) {
562
- dev_err ( ipcdev . dev , "Failed to alloc tco platform device\n" );
563
- return - ENOMEM ;
564
- }
565
-
566
- pdev -> dev . parent = ipcdev . dev ;
546
+ const struct platform_device_info pdevinfo = {
547
+ . parent = ipcdev . dev ,
548
+ . name = TCO_DEVICE_NAME ,
549
+ . id = -1 ,
550
+ . res = tco_res ,
551
+ . num_res = ARRAY_SIZE ( tco_res ),
552
+ . data = & tco_info ,
553
+ . size_data = sizeof ( tco_info ),
554
+ } ;
567
555
568
556
res = tco_res + TCO_RESOURCE_ACPI_IO ;
569
557
res -> start = ipcdev .acpi_io_base + TCO_BASE_OFFSET ;
@@ -577,45 +565,26 @@ static int ipc_create_tco_device(void)
577
565
res -> start = ipcdev .gcr_base + TCO_PMC_OFFSET ;
578
566
res -> end = res -> start + TCO_PMC_SIZE - 1 ;
579
567
580
- ret = platform_device_add_resources (pdev , tco_res , ARRAY_SIZE (tco_res ));
581
- if (ret ) {
582
- dev_err (ipcdev .dev , "Failed to add tco platform resources\n" );
583
- goto err ;
584
- }
585
-
586
- ret = platform_device_add_data (pdev , & tco_info , sizeof (tco_info ));
587
- if (ret ) {
588
- dev_err (ipcdev .dev , "Failed to add tco platform data\n" );
589
- goto err ;
590
- }
568
+ pdev = platform_device_register_full (& pdevinfo );
569
+ if (IS_ERR (pdev ))
570
+ return PTR_ERR (pdev );
591
571
592
- ret = platform_device_add (pdev );
593
- if (ret ) {
594
- dev_err (ipcdev .dev , "Failed to add tco platform device\n" );
595
- goto err ;
596
- }
597
572
ipcdev .tco_dev = pdev ;
598
573
599
574
return 0 ;
600
- err :
601
- platform_device_put (pdev );
602
- return ret ;
603
575
}
604
576
605
577
static int ipc_create_telemetry_device (void )
606
578
{
607
579
struct platform_device * pdev ;
608
580
struct resource * res ;
609
- int ret ;
610
-
611
- pdev = platform_device_alloc (TELEMETRY_DEVICE_NAME , -1 );
612
- if (!pdev ) {
613
- dev_err (ipcdev .dev ,
614
- "Failed to allocate telemetry platform device\n" );
615
- return - ENOMEM ;
616
- }
617
-
618
- pdev -> dev .parent = ipcdev .dev ;
581
+ const struct platform_device_info pdevinfo = {
582
+ .parent = ipcdev .dev ,
583
+ .name = TELEMETRY_DEVICE_NAME ,
584
+ .id = -1 ,
585
+ .res = telemetry_res ,
586
+ .num_res = ARRAY_SIZE (telemetry_res ),
587
+ };
619
588
620
589
res = telemetry_res + TELEMETRY_RESOURCE_PUNIT_SSRAM ;
621
590
res -> start = ipcdev .telem_punit_ssram_base ;
@@ -625,26 +594,13 @@ static int ipc_create_telemetry_device(void)
625
594
res -> start = ipcdev .telem_pmc_ssram_base ;
626
595
res -> end = res -> start + ipcdev .telem_pmc_ssram_size - 1 ;
627
596
628
- ret = platform_device_add_resources (pdev , telemetry_res ,
629
- ARRAY_SIZE (telemetry_res ));
630
- if (ret ) {
631
- dev_err (ipcdev .dev ,
632
- "Failed to add telemetry platform resources\n" );
633
- goto err ;
634
- }
597
+ pdev = platform_device_register_full (& pdevinfo );
598
+ if (IS_ERR (pdev ))
599
+ return PTR_ERR (pdev );
635
600
636
- ret = platform_device_add (pdev );
637
- if (ret ) {
638
- dev_err (ipcdev .dev ,
639
- "Failed to add telemetry platform device\n" );
640
- goto err ;
641
- }
642
601
ipcdev .telemetry_dev = pdev ;
643
602
644
603
return 0 ;
645
- err :
646
- platform_device_put (pdev );
647
- return ret ;
648
604
}
649
605
650
606
static int ipc_create_pmc_devices (void )
0 commit comments