Re: [PATCH RFC] c_can_pci: generic module for c_can on PCI

From: Wolfgang Grandegger
Date: Mon Jun 11 2012 - 09:52:08 EST


On 06/04/2012 06:45 PM, Alessandro Rubini wrote:
>> Anythign wrong with
>>
>> bool aligned32;
>
> I personally think booleans are evil. But both this and the other
> thing:
>
>>> +static u16 c_can_pci_read_reg_aligned_to_16bit(struct c_can_priv *priv,
>>> + void *reg)
>>
>> I'm a bit worried this function name might be too short ;)
>
> come from the platform driver this is based on (I already blamed
> federico offlist for not preserving authorship of the original file).
>
> So, this file is mostly copied from the platform driver, which is a
> duplication of code. A mandated duplication, given how the thing
> is currently laid out: the c_can core driver exports functions that
> the other two files are using (the platform and the new pci driver).
>
> 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.

> Sure this isn't up to federico, who has the pci device but cannot
> access any boards where the previous driver is used. What do the
> maintainers think? I (or federico :) may propose a reshaping, if
> the idea makes sense.

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.

Any further improvements to the device abstraction and a more consistent
handling of the platform data are welcome.

Wolfgang.



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/