@@ -61,7 +61,7 @@ struct sdhci_acpi_slot {
61
61
mmc_pm_flag_t pm_caps ;
62
62
unsigned int flags ;
63
63
size_t priv_size ;
64
- int (* probe_slot )(struct platform_device * , const char * , const char * );
64
+ int (* probe_slot )(struct platform_device * , struct acpi_device * );
65
65
int (* remove_slot )(struct platform_device * );
66
66
int (* free_slot )(struct platform_device * pdev );
67
67
int (* setup_host )(struct platform_device * pdev );
@@ -325,12 +325,10 @@ static bool sdhci_acpi_cht_pci_wifi(unsigned int vendor, unsigned int device,
325
325
* wifi card in the expected slot with an ACPI companion node, is used to
326
326
* indicate that acpi_device_fix_up_power() should be avoided.
327
327
*/
328
- static inline bool sdhci_acpi_no_fixup_child_power (const char * hid ,
329
- const char * uid )
328
+ static inline bool sdhci_acpi_no_fixup_child_power (struct acpi_device * adev )
330
329
{
331
330
return sdhci_acpi_cht () &&
332
- !strcmp (hid , "80860F14" ) &&
333
- !strcmp (uid , "2" ) &&
331
+ acpi_dev_hid_uid_match (adev , "80860F14" , "2" ) &&
334
332
sdhci_acpi_cht_pci_wifi (0x14e4 , 0x43ec , 0 , 28 );
335
333
}
336
334
@@ -345,8 +343,7 @@ static inline bool sdhci_acpi_byt_defer(struct device *dev)
345
343
return false;
346
344
}
347
345
348
- static inline bool sdhci_acpi_no_fixup_child_power (const char * hid ,
349
- const char * uid )
346
+ static inline bool sdhci_acpi_no_fixup_child_power (struct acpi_device * adev )
350
347
{
351
348
return false;
352
349
}
@@ -375,19 +372,18 @@ static int bxt_get_cd(struct mmc_host *mmc)
375
372
return ret ;
376
373
}
377
374
378
- static int intel_probe_slot (struct platform_device * pdev , const char * hid ,
379
- const char * uid )
375
+ static int intel_probe_slot (struct platform_device * pdev , struct acpi_device * adev )
380
376
{
381
377
struct sdhci_acpi_host * c = platform_get_drvdata (pdev );
382
378
struct intel_host * intel_host = sdhci_acpi_priv (c );
383
379
struct sdhci_host * host = c -> host ;
384
380
385
- if (hid && uid && ! strcmp ( hid , "80860F14" ) && ! strcmp ( uid , "1" ) &&
381
+ if (acpi_dev_hid_uid_match ( adev , "80860F14" , "1" ) &&
386
382
sdhci_readl (host , SDHCI_CAPABILITIES ) == 0x446cc8b2 &&
387
383
sdhci_readl (host , SDHCI_CAPABILITIES_1 ) == 0x00000807 )
388
384
host -> timeout_clk = 1000 ; /* 1000 kHz i.e. 1 MHz */
389
385
390
- if (hid && ! strcmp ( hid , "80865ACA" ))
386
+ if (acpi_dev_hid_uid_match ( adev , "80865ACA" , NULL ))
391
387
host -> mmc_host_ops .get_cd = bxt_get_cd ;
392
388
393
389
intel_dsm_init (intel_host , & pdev -> dev , host -> mmc );
@@ -473,16 +469,15 @@ static irqreturn_t sdhci_acpi_qcom_handler(int irq, void *ptr)
473
469
return IRQ_HANDLED ;
474
470
}
475
471
476
- static int qcom_probe_slot (struct platform_device * pdev , const char * hid ,
477
- const char * uid )
472
+ static int qcom_probe_slot (struct platform_device * pdev , struct acpi_device * adev )
478
473
{
479
474
struct sdhci_acpi_host * c = platform_get_drvdata (pdev );
480
475
struct sdhci_host * host = c -> host ;
481
476
int * irq = sdhci_acpi_priv (c );
482
477
483
478
* irq = - EINVAL ;
484
479
485
- if (strcmp ( hid , "QCOM8051" ))
480
+ if (! acpi_dev_hid_uid_match ( adev , "QCOM8051" , NULL ))
486
481
return 0 ;
487
482
488
483
* irq = platform_get_irq (pdev , 1 );
@@ -501,14 +496,12 @@ static int qcom_free_slot(struct platform_device *pdev)
501
496
struct sdhci_host * host = c -> host ;
502
497
struct acpi_device * adev ;
503
498
int * irq = sdhci_acpi_priv (c );
504
- const char * hid ;
505
499
506
500
adev = ACPI_COMPANION (dev );
507
501
if (!adev )
508
502
return - ENODEV ;
509
503
510
- hid = acpi_device_hid (adev );
511
- if (strcmp (hid , "QCOM8051" ))
504
+ if (!acpi_dev_hid_uid_match (adev , "QCOM8051" , NULL ))
512
505
return 0 ;
513
506
514
507
if (* irq < 0 )
@@ -583,7 +576,7 @@ static const struct sdhci_acpi_chip sdhci_acpi_chip_amd = {
583
576
};
584
577
585
578
static int sdhci_acpi_emmc_amd_probe_slot (struct platform_device * pdev ,
586
- const char * hid , const char * uid )
579
+ struct acpi_device * adev )
587
580
{
588
581
struct sdhci_acpi_host * c = platform_get_drvdata (pdev );
589
582
struct sdhci_host * host = c -> host ;
@@ -654,17 +647,12 @@ static const struct acpi_device_id sdhci_acpi_ids[] = {
654
647
};
655
648
MODULE_DEVICE_TABLE (acpi , sdhci_acpi_ids );
656
649
657
- static const struct sdhci_acpi_slot * sdhci_acpi_get_slot (const char * hid ,
658
- const char * uid )
650
+ static const struct sdhci_acpi_slot * sdhci_acpi_get_slot (struct acpi_device * adev )
659
651
{
660
652
const struct sdhci_acpi_uid_slot * u ;
661
653
662
654
for (u = sdhci_acpi_uids ; u -> hid ; u ++ ) {
663
- if (strcmp (u -> hid , hid ))
664
- continue ;
665
- if (!u -> uid )
666
- return u -> slot ;
667
- if (uid && !strcmp (u -> uid , uid ))
655
+ if (acpi_dev_hid_uid_match (adev , u -> hid , u -> uid ))
668
656
return u -> slot ;
669
657
}
670
658
return NULL ;
@@ -680,22 +668,17 @@ static int sdhci_acpi_probe(struct platform_device *pdev)
680
668
struct resource * iomem ;
681
669
resource_size_t len ;
682
670
size_t priv_size ;
683
- const char * hid ;
684
- const char * uid ;
685
671
int err ;
686
672
687
673
device = ACPI_COMPANION (dev );
688
674
if (!device )
689
675
return - ENODEV ;
690
676
691
- hid = acpi_device_hid (device );
692
- uid = acpi_device_uid (device );
693
-
694
- slot = sdhci_acpi_get_slot (hid , uid );
677
+ slot = sdhci_acpi_get_slot (device );
695
678
696
679
/* Power on the SDHCI controller and its children */
697
680
acpi_device_fix_up_power (device );
698
- if (!sdhci_acpi_no_fixup_child_power (hid , uid )) {
681
+ if (!sdhci_acpi_no_fixup_child_power (device )) {
699
682
list_for_each_entry (child , & device -> children , node )
700
683
if (child -> status .present && child -> status .enabled )
701
684
acpi_device_fix_up_power (child );
@@ -745,7 +728,7 @@ static int sdhci_acpi_probe(struct platform_device *pdev)
745
728
746
729
if (c -> slot ) {
747
730
if (c -> slot -> probe_slot ) {
748
- err = c -> slot -> probe_slot (pdev , hid , uid );
731
+ err = c -> slot -> probe_slot (pdev , device );
749
732
if (err )
750
733
goto err_free ;
751
734
}
0 commit comments