2006-08-25 13:08:53

by Jan Bernatik

[permalink] [raw]
Subject: platform device / driver question

hi, I am newbie to linux kernel development, but I couldn't get my
question answered on #kernelnewbies, and I am not able to get it right
from code.

I studied smc91x driver to understand how platform driver / device
subsystem works. On #kernelnewbies channel I was told this driver is
"hopelessly broken". How should one create and register the
platform_device/driver ? Is the implementation in smc91x correct ?

If someone could clarify this, I will appreciate that, and certainly
write some newbie-understandable documentation. It is not covered by
LDD AFAIK.

thanks, have a nice day
please CC me, I am not on the list

J.


2006-08-25 13:39:44

by Russell King

[permalink] [raw]
Subject: Re: platform device / driver question

On Fri, Aug 25, 2006 at 03:08:51PM +0200, Jan Bernatik wrote:
> I studied smc91x driver to understand how platform driver / device
> subsystem works. On #kernelnewbies channel I was told this driver is
> "hopelessly broken". How should one create and register the
> platform_device/driver ? Is the implementation in smc91x correct ?

That's probably from some ill-informed person. As far as I'm aware,
the driver works perfectly and uses the driver model correctly.

There are some aspects of the driver which are less good (such as all
the machine specific configuration gunk in smc91x.h) but apart from
that, it's fine.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core

2006-08-25 17:07:08

by Marc Singer

[permalink] [raw]
Subject: Re: platform device / driver question

On Fri, Aug 25, 2006 at 03:08:51PM +0200, Jan Bernatik wrote:
> hi, I am newbie to linux kernel development, but I couldn't get my
> question answered on #kernelnewbies, and I am not able to get it right
> from code.
>
> I studied smc91x driver to understand how platform driver / device
> subsystem works. On #kernelnewbies channel I was told this driver is
> "hopelessly broken". How should one create and register the
> platform_device/driver ? Is the implementation in smc91x correct ?

Whoever told you that the driver is broken is mistaken. The driver
works well. The *chip*, on the other hand, isn't the best of show.

The trouble with the SMC chip is that it has only 4 packet buffers.
When it is used in a design with either a relatively slow CPU or in a
design with other IO performance bottlenecks, it will tend to drop
packets as it is very easy for the buffers to fill with incoming data
before the CPU can unload them. Nico reported excellent throughput on
one board.

> If someone could clarify this, I will appreciate that, and certainly
> write some newbie-understandable documentation. It is not covered by
> LDD AFAIK.
>
> thanks, have a nice day
> please CC me, I am not on the list
>
> J.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/