@@ -603,7 +603,6 @@ static void platform_device_release(struct device *dev)
603603 kfree (pa -> pdev .dev .platform_data );
604604 kfree (pa -> pdev .mfd_cell );
605605 kfree (pa -> pdev .resource );
606- kfree (pa -> pdev .driver_override );
607606 kfree (pa );
608607}
609608
@@ -1306,38 +1305,9 @@ static ssize_t numa_node_show(struct device *dev,
13061305}
13071306static DEVICE_ATTR_RO (numa_node );
13081307
1309- static ssize_t driver_override_show (struct device * dev ,
1310- struct device_attribute * attr , char * buf )
1311- {
1312- struct platform_device * pdev = to_platform_device (dev );
1313- ssize_t len ;
1314-
1315- device_lock (dev );
1316- len = sysfs_emit (buf , "%s\n" , pdev -> driver_override );
1317- device_unlock (dev );
1318-
1319- return len ;
1320- }
1321-
1322- static ssize_t driver_override_store (struct device * dev ,
1323- struct device_attribute * attr ,
1324- const char * buf , size_t count )
1325- {
1326- struct platform_device * pdev = to_platform_device (dev );
1327- int ret ;
1328-
1329- ret = driver_set_override (dev , & pdev -> driver_override , buf , count );
1330- if (ret )
1331- return ret ;
1332-
1333- return count ;
1334- }
1335- static DEVICE_ATTR_RW (driver_override );
1336-
13371308static struct attribute * platform_dev_attrs [] = {
13381309 & dev_attr_modalias .attr ,
13391310 & dev_attr_numa_node .attr ,
1340- & dev_attr_driver_override .attr ,
13411311 NULL ,
13421312};
13431313
@@ -1377,10 +1347,12 @@ static int platform_match(struct device *dev, const struct device_driver *drv)
13771347{
13781348 struct platform_device * pdev = to_platform_device (dev );
13791349 struct platform_driver * pdrv = to_platform_driver (drv );
1350+ int ret ;
13801351
13811352 /* When driver_override is set, only bind to the matching driver */
1382- if (pdev -> driver_override )
1383- return !strcmp (pdev -> driver_override , drv -> name );
1353+ ret = device_match_driver_override (dev , drv );
1354+ if (ret >= 0 )
1355+ return ret ;
13841356
13851357 /* Attempt an OF style match first */
13861358 if (of_driver_match_device (dev , drv ))
@@ -1516,6 +1488,7 @@ static const struct dev_pm_ops platform_dev_pm_ops = {
15161488const struct bus_type platform_bus_type = {
15171489 .name = "platform" ,
15181490 .dev_groups = platform_dev_groups ,
1491+ .driver_override = true,
15191492 .match = platform_match ,
15201493 .uevent = platform_uevent ,
15211494 .probe = platform_probe ,
0 commit comments