2013-09-25 03:39:21

by Feng Kan

[permalink] [raw]
Subject: General placement of platform drivers and header files

Hi all:

I have some drivers like Queue Manager and co-processor driver that
are used by other
drivers like Ethernet. Would it be appropriate to locate these drivers
under one folder under
drivers/misc/arch_name/xxx.

My other question is on common header files (belonging to Queue
Manager) but is sourced
by Ethernet, where should those reside. Should they go under
linux/include/misc/arch_name
or directly sourced using the ../../../misc/arch_name/headerfile method.

--
Feng Kan | Engineer
Ph: 408.543.8382
Em: [email protected]


2013-09-25 04:37:56

by Olof Johansson

[permalink] [raw]
Subject: Re: General placement of platform drivers and header files

Hi,

On Tue, Sep 24, 2013 at 8:33 PM, Feng Kan <[email protected]> wrote:
> Hi all:
>
> I have some drivers like Queue Manager and co-processor driver that
> are used by other
> drivers like Ethernet. Would it be appropriate to locate these drivers
> under one folder under
> drivers/misc/arch_name/xxx.

drivers/misc is almost always the wrong answer to where to add a driver.

It would help to also know how the devices interact to answer the
question of best location. Are the drivers for the coprocessor and for
the queue manager mostly a pass-through for some operations (and some
shared allocation of resources), i.e. more of a library, or is it a
full-fledged driver that will service interrupts, etc?

> My other question is on common header files (belonging to Queue
> Manager) but is sourced
> by Ethernet, where should those reside. Should they go under
> linux/include/misc/arch_name
> or directly sourced using the ../../../misc/arch_name/headerfile method.

This depends somewhat on where the driver ends up, but somewhere under
include/linux is likely the right place for the in-kernel interface
header files.


-Olof

2013-09-25 15:58:42

by Feng Kan

[permalink] [raw]
Subject: Re: General placement of platform drivers and header files

On Tue, Sep 24, 2013 at 9:37 PM, Olof Johansson <[email protected]> wrote:
> Hi,
>
> On Tue, Sep 24, 2013 at 8:33 PM, Feng Kan <[email protected]> wrote:
>> Hi all:
>>
>> I have some drivers like Queue Manager and co-processor driver that
>> are used by other
>> drivers like Ethernet. Would it be appropriate to locate these drivers
>> under one folder under
>> drivers/misc/arch_name/xxx.
>
> drivers/misc is almost always the wrong answer to where to add a driver.
>
> It would help to also know how the devices interact to answer the
> question of best location. Are the drivers for the coprocessor and for
> the queue manager mostly a pass-through for some operations (and some
> shared allocation of resources), i.e. more of a library, or is it a
> full-fledged driver that will service interrupts, etc?

Lets take QM for an example, the driver is used to allocate queues for
the Ethernet driver and there are ISRs for QM to take care of
errors and change in status.

>
>> My other question is on common header files (belonging to Queue
>> Manager) but is sourced
>> by Ethernet, where should those reside. Should they go under
>> linux/include/misc/arch_name
>> or directly sourced using the ../../../misc/arch_name/headerfile method.
>
> This depends somewhat on where the driver ends up, but somewhere under
> include/linux is likely the right place for the in-kernel interface
> header files.

Given the above, how should the header file be handled?

>
>
> -Olof