Re: [PATCH 12/28] usb: musb: same musb_readb/musb_writeb in single image to support multiple machines

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2010/12/13 Felipe Balbi <balbi@xxxxxx>:
> Hi,
>
> On Mon, Dec 13, 2010 at 01:01:57AM +0800, tom.leiming@xxxxxxxxx wrote:
>>
>> From: Ming Lei <tom.leiming@xxxxxxxxx>
>>
>> This patch introduces musb_readb/musb_writeb function pointer,
>> so that we can use same musb_readb/musb_writeb in one single
>> binary image to help to support multiple machines.
>>
>> Signed-off-by: Ming Lei <tom.leiming@xxxxxxxxx>
>> ---
>> drivers/usb/musb/musb_core.c |   55
>> ++++++++++++++++++++++++++++++++++++++++++
>> drivers/usb/musb/musb_core.h |    3 ++
>> drivers/usb/musb/musb_io.h   |   49 -------------------------------------
>> 3 files changed, 58 insertions(+), 49 deletions(-)
>>
>> diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
>> index dba20f8..ca3ae8b 100644
>> --- a/drivers/usb/musb/musb_core.c
>> +++ b/drivers/usb/musb/musb_core.c
>> @@ -135,6 +135,10 @@ MODULE_AUTHOR(DRIVER_AUTHOR);
>> MODULE_LICENSE("GPL");
>> MODULE_ALIAS("platform:" MUSB_DRIVER_NAME);
>>
>> +u8 (*musb_readb)(const void __iomem *addr, unsigned offset);
>> +EXPORT_SYMBOL(musb_readb);
>> +void (*musb_writeb)(void __iomem *addr, unsigned offset, u8 data);
>> +EXPORT_SYMBOL(musb_writeb);
>
> my idea for this was to have struct musb_io_ops. something like:
>
> struct musb_io_ops {
>        u8      (*readb)(const void __iomem *addr, unsigned offset);
>        void    (*writeb)(const void __iomem *addr, unsigned offset, u8
> data);
>
>        u16     (*readw)(....);
>        void    (*writew)(;...);
>
>        u32     (*readl)();
>        void    (writel)();
> }
>
> then you have a pointer for that inside the struct musb_platform_ops, or
> maybe somewhere else. And you initialize the same way platform_ops, and
> if you don't have a field, you fallback to default implementation.

In fact, I think inline helper has a good performance, so it is better.

But no way to reach this if config option is not used, so I suggest using
inline helpers as far as possible.

-- 
Lei Ming
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux