Replacement to of_register_platform_driver ?

3 messages, 3 authors, 2012-06-14 · open the first message on its own page

Replacement to of_register_platform_driver ?

From: Guillaume Dargaud <hidden>
Date: 2012-06-13 16:20:57

Hello all,
I just updated to the most recent kernel and a driver I wrote last year won't compile:
xad.c:534:2: error: implicit declaration of function 'of_register_platform_driver'

I see references to this function as 'obsolete' but could not find what's the new recommended way to do things. Here's a bit of the offending code:

static struct of_platform_driver xad_driver = {
	.probe  = xad_driver_probe,
	.remove = xad_driver_remove,
	.driver = {
		.owner = THIS_MODULE,
		.name = "xad-driver",
		.of_match_table = xad_device_id,
	},
};

...

static int __init xad_init(void) {
...	
	first = MKDEV (my_major, my_minor);
	register_chrdev_region(first, count, DEVNAME);
	my_cdev = cdev_alloc ();
	if (NULL==my_cdev) goto Err;
	
	cdev_init(my_cdev, &fops);
	rc=cdev_add (my_cdev, first, count);
...	
	rc = of_register_platform_driver(&xad_driver);
...
}


-- 
Guillaume Dargaud
http://www.gdargaud.net/

Re: Replacement to of_register_platform_driver ?

From: Ira W. Snyder <hidden>
Date: 2012-06-13 17:53:45

On Wed, Jun 13, 2012 at 05:21:22PM +0200, Guillaume Dargaud wrote:
Hello all,
I just updated to the most recent kernel and a driver I wrote last year 
won't compile:
xad.c:534:2: error: implicit declaration of function 
'of_register_platform_driver'

I see references to this function as 'obsolete' but could not find 
what's the new recommended way to do things. Here's a bit of the 
offending code:

static struct of_platform_driver xad_driver = {
	.probe  = xad_driver_probe,
	.remove = xad_driver_remove,
	.driver = {
		.owner = THIS_MODULE,
		.name = "xad-driver",
		.of_match_table = xad_device_id,
	},
};

...

static int __init xad_init(void) {
...	
	first = MKDEV (my_major, my_minor);
	register_chrdev_region(first, count, DEVNAME);
	my_cdev = cdev_alloc ();
	if (NULL==my_cdev) goto Err;
	
	cdev_init(my_cdev, &fops);
	rc=cdev_add (my_cdev, first, count);
...	
	rc = of_register_platform_driver(&xad_driver);
...
}


-- 
Guillaume Dargaud
http://www.gdargaud.net/
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev
The history of drivers/misc/carma/carma-fpga.c will show you the code
changes necessary. Specifically, these two commits perform the
conversion:

493340207 carma-fpga: Missed switch from of_register_platform_driver()
b00e126ff MISC: convert drivers/misc/* to use module_platform_driver()

Hope it helps,
Ira

Re: Replacement to of_register_platform_driver ?

From: Michael Ellerman <hidden>
Date: 2012-06-14 00:28:21

On Wed, 2012-06-13 at 17:21 +0200, Guillaume Dargaud wrote:
Hello all,
I just updated to the most recent kernel and a driver I wrote last year 
won't compile:
xad.c:534:2: error: implicit declaration of function 
'of_register_platform_driver'

I see references to this function as 'obsolete' but could not find 
what's the new recommended way to do things.
The "of" bits were merged with the regular platform driver. So you
should use a platform_driver, which basically means remove "of_"
everywhere.

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help