[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120611142311.GA28682@mail.gnudd.com>
Date: Mon, 11 Jun 2012 16:23:11 +0200
From: Alessandro Rubini <rubini@...dd.com>
To: wg@...ndegger.com
Cc: alan@...rguk.ukuu.org.uk, federico.vaga@...il.com,
mkl@...gutronix.de, giancarlo.asnaghi@...com, alan@...ux.intel.com,
linux-can@...r.kernel.org, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH RFC] c_can_pci: generic module for c_can on PCI
>> In my opinion, it would be much better to have one less layer and no
>> exports at all. The core driver should be a platform driver, and the
>> pci driver would just build platform data and register the platform
>> device.
>
> Do you have examples for that approach? Not sure yet if it really saves
> code and makes it more readable.
Maybe the physmap mtd driver is a good example. Everybody's using it
(but not from PCI). I found drivers/pcmcia/bcm63xx_pcmcia.c that
registers a platform driver from a pci probe function, but I'm sure
there are other ones.
OTOH, I have another example of how not to do stuff, but I won't point
fingers now (it's not a CAN thing).
I just think the platform bus is there just for this reason: to provide
data to a generic driver, without module dependencies and such stuff.
> I would suggest to provide the c_can_pci driver using the *current* API,
> even if it's not optimal. Federicos patch then already looks quite good.
> It should use the new register access methods introduced by the D_CAN
> support patch, though.
Great. When it's in I'll show my proposal as an RFC patch, as time permits,
so we'll see if it's better or not.
> Any further improvements to the device abstraction and a more consistent
> handling of the platform data are welcome.
Good to know, thanks a lot
/alessandro
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists