@@ -410,29 +410,21 @@ static int spi_probe(struct device *dev)
410
410
{
411
411
const struct spi_driver * sdrv = to_spi_driver (dev -> driver );
412
412
struct spi_device * spi = to_spi_device (dev );
413
+ struct fwnode_handle * fwnode = dev_fwnode (dev );
413
414
int ret ;
414
415
415
416
ret = of_clk_set_defaults (dev -> of_node , false);
416
417
if (ret )
417
418
return ret ;
418
419
419
- if (dev -> of_node ) {
420
+ if (is_of_node ( fwnode ))
420
421
spi -> irq = of_irq_get (dev -> of_node , 0 );
421
- if (spi -> irq == - EPROBE_DEFER )
422
- return dev_err_probe (dev , - EPROBE_DEFER , "Failed to get irq\n" );
423
- if (spi -> irq < 0 )
424
- spi -> irq = 0 ;
425
- }
426
-
427
- if (has_acpi_companion (dev ) && spi -> irq < 0 ) {
428
- struct acpi_device * adev = to_acpi_device_node (dev -> fwnode );
429
-
430
- spi -> irq = acpi_dev_gpio_irq_get (adev , 0 );
431
- if (spi -> irq == - EPROBE_DEFER )
432
- return - EPROBE_DEFER ;
433
- if (spi -> irq < 0 )
434
- spi -> irq = 0 ;
435
- }
422
+ else if (is_acpi_device_node (fwnode ) && spi -> irq < 0 )
423
+ spi -> irq = acpi_dev_gpio_irq_get (to_acpi_device_node (fwnode ), 0 );
424
+ if (spi -> irq == - EPROBE_DEFER )
425
+ return dev_err_probe (dev , spi -> irq , "Failed to get irq\n" );
426
+ if (spi -> irq < 0 )
427
+ spi -> irq = 0 ;
436
428
437
429
ret = dev_pm_domain_attach (dev , true);
438
430
if (ret )
@@ -874,15 +866,18 @@ EXPORT_SYMBOL_GPL(spi_new_device);
874
866
*/
875
867
void spi_unregister_device (struct spi_device * spi )
876
868
{
869
+ struct fwnode_handle * fwnode ;
870
+
877
871
if (!spi )
878
872
return ;
879
873
880
- if (spi -> dev .of_node ) {
881
- of_node_clear_flag (spi -> dev .of_node , OF_POPULATED );
882
- of_node_put (spi -> dev .of_node );
874
+ fwnode = dev_fwnode (& spi -> dev );
875
+ if (is_of_node (fwnode )) {
876
+ of_node_clear_flag (to_of_node (fwnode ), OF_POPULATED );
877
+ of_node_put (to_of_node (fwnode ));
878
+ } else if (is_acpi_device_node (fwnode )) {
879
+ acpi_device_clear_enumerated (to_acpi_device_node (fwnode ));
883
880
}
884
- if (ACPI_COMPANION (& spi -> dev ))
885
- acpi_device_clear_enumerated (ACPI_COMPANION (& spi -> dev ));
886
881
device_remove_software_node (& spi -> dev );
887
882
device_del (& spi -> dev );
888
883
spi_cleanup (spi );
@@ -1059,7 +1054,7 @@ static void spi_toggle_csgpiod(struct spi_device *spi, u8 idx, bool enable, bool
1059
1054
* ambiguity. That's why we use enable, that takes SPI_CS_HIGH
1060
1055
* into account.
1061
1056
*/
1062
- if (has_acpi_companion ( & spi -> dev ))
1057
+ if (is_acpi_device_node ( dev_fwnode ( & spi -> dev ) ))
1063
1058
gpiod_set_value_cansleep (spi_get_csgpiod (spi , idx ), !enable );
1064
1059
else
1065
1060
/* Polarity handled by GPIO library */
@@ -4841,7 +4836,7 @@ extern struct notifier_block spi_of_notifier;
4841
4836
#if IS_ENABLED (CONFIG_ACPI )
4842
4837
static int spi_acpi_controller_match (struct device * dev , const void * data )
4843
4838
{
4844
- return ACPI_COMPANION (dev -> parent ) == data ;
4839
+ return device_match_acpi_dev (dev -> parent , data ) ;
4845
4840
}
4846
4841
4847
4842
struct spi_controller * acpi_spi_find_controller_by_adev (struct acpi_device * adev )
0 commit comments