Subject: Re: [RFC] Add clause 45 ioctl

From: Ben Hutchings <[email-masked]>
Date: Thu, 30 Apr 2009 16:49:01 +0100

On Thu, 2009-04-30 at 18:05 +0300, Eilon Greenstein wrote:
> On Tue, 2009-04-28 at 06:22 -0700, Ben Hutchings wrote:
> > > I'm sending this as RFC - if anyone has alternative suggestions on how
> > > user space application can access the PHY, I would appreciate it.
> > [...]
> > 
> > I was working on an alternate interface that would use the existing
> > structure and ioctls.  There are at least two drivers (cxgb3 and sfc)
> > that already do this, though they currently pack PRTAD and DEVAD
> > differently in the phy_id field.
> 
> I can use the same approach and overload the CL22 definitions, but don't
> you think it is cleaner to add the CL45 definition?

I don't know that it's cleaner, but it's certainly more compatible.
This interface can also be implemented in out-of-tree drivers for older
kernels whereas new generic ioctls cannot.

> I think that the
> fact that two drivers are already overloading the CL22 for CL45 usage is
> showing that CL45 is needed, and the fact that they are doing that
> differently shows that there is a need for a clean definition. I'm just
> thinking about someone trying to write an application for all CL45
> supporting drivers - it is easier if there is a clean interface.
> 
> What do you say?

I defined a generic format:

clause 45 generic: 100000pppppddddd

which is distinguishable from the existing:

clause 22:         00000000000ppppp
clause 45 sfc:     000001pppppddddd
clause 45 cxgb3:   000ppppp000ddddd (prtad != 0)

The drivers that already had their own formats will convert them to the
generic format before calling the generic handler.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.