RE: [PATCH RFC] c_can_pci: generic module for c_can on PCI
From: Bhupesh SHARMA <hidden>
Date: 2012-06-05 13:23:12
Also in:
linux-can, lkml
-----Original Message----- From: rubini@gnudd.com [mailto:rubini@gnudd.com] Sent: Tuesday, June 05, 2012 6:44 PM To: Bhupesh SHARMA Cc: federico.vaga@gmail.com; alan@lxorguk.ukuu.org.uk; wg@grandegger.com; mkl@pengutronix.de; Giancarlo ASNAGHI; alan@linux.intel.com; linux-can@vger.kernel.org; netdev@vger.kernel.org; linux-kernel@vger.kernel.org Subject: Re: [PATCH RFC] c_can_pci: generic module for c_can on PCIquoted
quoted
My implementation is align to 32, but I'm trying to make a genericPCIquoted
quoted
wrapper (some other could be aligned to 16)quoted
So it means your implementation is also flaky and you are probably wasting HW memory space while integrating the Bosch C_CAN module in your SoC :)Then I may say _your_ implementation is flaky because it wastes one bit in the address decoder and a lot of logic gates in the data bus. It's normal to align registers at 32 bits, as it's simpler and faster. Most SoCs have only 32-bit aligned registers, for a reason.
You missed my original point. I mentioned in my first mail itself, that I studied a few SoCs integrating the C_CAN module from Bosch before writing the driver. Not all have aligned their register space to a 32-bit boundary. My platform driver still supports them. This _does_ not imply that our SoC has/may have the same problem :) Each SoC designer can have his/her own different view on this sort of implementation. The platform driver was written to support both the implementations (SW is supposed to support all sort of HW design constraints :) ).
quoted
I am not a big fan of adding platform specific flakes in any core file, that why we keep the platform file separate from the core ones.A number of other drivers have a shift parameter, because it's very common for the hardware integrator to feel free to choose the easiest wiring for the device. The choice to keep the platform driver separate from the core driver only adds complication in my opinion: you need to export 4 symbols and yhen every user must duplicate code (like federico is replicating theplatform driver in the pci driver). I'd really prefer to have the core driver be a platform driver, and the others just add platform data to describe how it is wired. That's actually the reason why the platform bus exists.quoted
But I will left Marc and Wolfgang to further comment on the same.I agree: let them decide.
Sure.. Regards, Bhupesh