mirror of
https://github.com/torvalds/linux.git
synced 2024-12-06 19:11:31 +00:00
ipmi_si: Consolidate scanning the platform bus
The same basic code was in two places. Signed-off-by: Corey Minyard <cminyard@mvista.com>
This commit is contained in:
parent
bdb57b7bc1
commit
e17c657100
@ -29,6 +29,7 @@ void ipmi_si_hotmod_exit(void);
|
||||
int ipmi_si_hardcode_match(int addr_space, unsigned long addr);
|
||||
void ipmi_si_platform_init(void);
|
||||
void ipmi_si_platform_shutdown(void);
|
||||
void ipmi_remove_platform_device_by_name(char *name);
|
||||
|
||||
extern struct platform_driver ipmi_platform_driver;
|
||||
|
||||
|
@ -144,23 +144,9 @@ void __init ipmi_hardcode_init(void)
|
||||
}
|
||||
|
||||
|
||||
static int pdev_match_name(struct device *dev, void *data)
|
||||
{
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
|
||||
return strcmp(pdev->name, "hardcode-ipmi-si") == 0;
|
||||
}
|
||||
|
||||
void ipmi_si_hardcode_exit(void)
|
||||
{
|
||||
struct device *dev;
|
||||
|
||||
while ((dev = bus_find_device(&platform_bus_type, NULL, NULL,
|
||||
pdev_match_name))) {
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
|
||||
platform_device_unregister(pdev);
|
||||
}
|
||||
ipmi_remove_platform_device_by_name("hardcode-ipmi-si");
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -239,21 +239,7 @@ out:
|
||||
return rv;
|
||||
}
|
||||
|
||||
static int pdev_match_name(struct device *dev, void *data)
|
||||
{
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
|
||||
return strcmp(pdev->name, "hotmod-ipmi-si") == 0;
|
||||
}
|
||||
|
||||
void ipmi_si_hotmod_exit(void)
|
||||
{
|
||||
struct device *dev;
|
||||
|
||||
while ((dev = bus_find_device(&platform_bus_type, NULL, NULL,
|
||||
pdev_match_name))) {
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
|
||||
platform_device_unregister(pdev);
|
||||
}
|
||||
ipmi_remove_platform_device_by_name("hotmod-ipmi-si");
|
||||
}
|
||||
|
@ -428,6 +428,26 @@ static int ipmi_remove(struct platform_device *pdev)
|
||||
return ipmi_si_remove_by_dev(&pdev->dev);
|
||||
}
|
||||
|
||||
static int pdev_match_name(struct device *dev, void *data)
|
||||
{
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
const char *name = data;
|
||||
|
||||
return strcmp(pdev->name, name) == 0;
|
||||
}
|
||||
|
||||
void ipmi_remove_platform_device_by_name(char *name)
|
||||
{
|
||||
struct device *dev;
|
||||
|
||||
while ((dev = bus_find_device(&platform_bus_type, NULL, name,
|
||||
pdev_match_name))) {
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
|
||||
platform_device_unregister(pdev);
|
||||
}
|
||||
}
|
||||
|
||||
static const struct platform_device_id si_plat_ids[] = {
|
||||
{ "dmi-ipmi-si", 0 },
|
||||
{ "hardcode-ipmi-si", 0 },
|
||||
|
Loading…
Reference in New Issue
Block a user