ipmi_si: Consolidate scanning the platform bus
The same basic code was in two places. Signed-off-by: Corey Minyard <cminyard@mvista.com>hifive-unleashed-5.1
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);
|
int ipmi_si_hardcode_match(int addr_space, unsigned long addr);
|
||||||
void ipmi_si_platform_init(void);
|
void ipmi_si_platform_init(void);
|
||||||
void ipmi_si_platform_shutdown(void);
|
void ipmi_si_platform_shutdown(void);
|
||||||
|
void ipmi_remove_platform_device_by_name(char *name);
|
||||||
|
|
||||||
extern struct platform_driver ipmi_platform_driver;
|
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)
|
void ipmi_si_hardcode_exit(void)
|
||||||
{
|
{
|
||||||
struct device *dev;
|
ipmi_remove_platform_device_by_name("hardcode-ipmi-si");
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -239,21 +239,7 @@ out:
|
||||||
return rv;
|
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)
|
void ipmi_si_hotmod_exit(void)
|
||||||
{
|
{
|
||||||
struct device *dev;
|
ipmi_remove_platform_device_by_name("hotmod-ipmi-si");
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -428,6 +428,26 @@ static int ipmi_remove(struct platform_device *pdev)
|
||||||
return ipmi_si_remove_by_dev(&pdev->dev);
|
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[] = {
|
static const struct platform_device_id si_plat_ids[] = {
|
||||||
{ "dmi-ipmi-si", 0 },
|
{ "dmi-ipmi-si", 0 },
|
||||||
{ "hardcode-ipmi-si", 0 },
|
{ "hardcode-ipmi-si", 0 },
|
||||||
|
|
Loading…
Reference in New Issue