[DRIVER MODEL] Convert platform drivers to use struct platform_driver
This allows us to eliminate the casts in the drivers, and eventually remove the use of the device_driver function pointer methods for platform device drivers. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Russell King
parent
00d3dcdd96
commit
3ae5eaec1d
@@ -27,8 +27,8 @@
|
||||
|
||||
#define SKY_CPUSTATE_VERSION "1.1"
|
||||
|
||||
static int hdpu_cpustate_probe(struct device *ddev);
|
||||
static int hdpu_cpustate_remove(struct device *ddev);
|
||||
static int hdpu_cpustate_probe(struct platform_device *pdev);
|
||||
static int hdpu_cpustate_remove(struct platform_device *pdev);
|
||||
|
||||
struct cpustate_t cpustate;
|
||||
|
||||
@@ -159,11 +159,12 @@ static int cpustate_read_proc(char *page, char **start, off_t off,
|
||||
return len;
|
||||
}
|
||||
|
||||
static struct device_driver hdpu_cpustate_driver = {
|
||||
.name = HDPU_CPUSTATE_NAME,
|
||||
.bus = &platform_bus_type,
|
||||
static struct platform_driver hdpu_cpustate_driver = {
|
||||
.probe = hdpu_cpustate_probe,
|
||||
.remove = hdpu_cpustate_remove,
|
||||
.driver = {
|
||||
.name = HDPU_CPUSTATE_NAME,
|
||||
},
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -188,9 +189,8 @@ static struct miscdevice cpustate_dev = {
|
||||
&cpustate_fops
|
||||
};
|
||||
|
||||
static int hdpu_cpustate_probe(struct device *ddev)
|
||||
static int hdpu_cpustate_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct platform_device *pdev = to_platform_device(ddev);
|
||||
struct resource *res;
|
||||
struct proc_dir_entry *proc_de;
|
||||
int ret;
|
||||
@@ -218,7 +218,7 @@ static int hdpu_cpustate_probe(struct device *ddev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int hdpu_cpustate_remove(struct device *ddev)
|
||||
static int hdpu_cpustate_remove(struct platform_device *pdev)
|
||||
{
|
||||
|
||||
cpustate.set_addr = NULL;
|
||||
@@ -233,13 +233,13 @@ static int hdpu_cpustate_remove(struct device *ddev)
|
||||
static int __init cpustate_init(void)
|
||||
{
|
||||
int rc;
|
||||
rc = driver_register(&hdpu_cpustate_driver);
|
||||
rc = platform_driver_register(&hdpu_cpustate_driver);
|
||||
return rc;
|
||||
}
|
||||
|
||||
static void __exit cpustate_exit(void)
|
||||
{
|
||||
driver_unregister(&hdpu_cpustate_driver);
|
||||
platform_driver_unregister(&hdpu_cpustate_driver);
|
||||
}
|
||||
|
||||
module_init(cpustate_init);
|
||||
|
@@ -23,19 +23,20 @@
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
static int hdpu_nexus_probe(struct device *ddev);
|
||||
static int hdpu_nexus_remove(struct device *ddev);
|
||||
static int hdpu_nexus_probe(struct platform_device *pdev);
|
||||
static int hdpu_nexus_remove(struct platform_device *pdev);
|
||||
|
||||
static struct proc_dir_entry *hdpu_slot_id;
|
||||
static struct proc_dir_entry *hdpu_chassis_id;
|
||||
static int slot_id = -1;
|
||||
static int chassis_id = -1;
|
||||
|
||||
static struct device_driver hdpu_nexus_driver = {
|
||||
.name = HDPU_NEXUS_NAME,
|
||||
.bus = &platform_bus_type,
|
||||
static struct platform_driver hdpu_nexus_driver = {
|
||||
.probe = hdpu_nexus_probe,
|
||||
.remove = hdpu_nexus_remove,
|
||||
.driver = {
|
||||
.name = HDPU_NEXUS_NAME,
|
||||
},
|
||||
};
|
||||
|
||||
int hdpu_slot_id_read(char *buffer, char **buffer_location, off_t offset,
|
||||
@@ -56,9 +57,8 @@ int hdpu_chassis_id_read(char *buffer, char **buffer_location, off_t offset,
|
||||
return sprintf(buffer, "%d\n", chassis_id);
|
||||
}
|
||||
|
||||
static int hdpu_nexus_probe(struct device *ddev)
|
||||
static int hdpu_nexus_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct platform_device *pdev = to_platform_device(ddev);
|
||||
struct resource *res;
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
@@ -81,7 +81,7 @@ static int hdpu_nexus_probe(struct device *ddev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int hdpu_nexus_remove(struct device *ddev)
|
||||
static int hdpu_nexus_remove(struct platform_device *pdev)
|
||||
{
|
||||
slot_id = -1;
|
||||
chassis_id = -1;
|
||||
@@ -95,13 +95,13 @@ static int hdpu_nexus_remove(struct device *ddev)
|
||||
static int __init nexus_init(void)
|
||||
{
|
||||
int rc;
|
||||
rc = driver_register(&hdpu_nexus_driver);
|
||||
rc = platform_driver_register(&hdpu_nexus_driver);
|
||||
return rc;
|
||||
}
|
||||
|
||||
static void __exit nexus_exit(void)
|
||||
{
|
||||
driver_unregister(&hdpu_nexus_driver);
|
||||
platform_driver_unregister(&hdpu_nexus_driver);
|
||||
}
|
||||
|
||||
module_init(nexus_init);
|
||||
|
Reference in New Issue
Block a user