All, I have gotten my HDLC driver up to the point where it can register itself with the Linux kernel. However now I am faced with a dilemma and style question, that is probably best answered by you driver developers that have more experience.
I am putting support for multiple PHY's into the HDLC driver, but after converting it to use the of_device tree, and inserting a [EMAIL PROTECTED] for a single UCC HDLC driver, it occurred to me that if I insert more devices ([EMAIL PROTECTED], [EMAIL PROTECTED], [EMAIL PROTECTED]) that the driver will attempt to load multiple times. So here is the question. Solution 1: Should I develop the system to have a single [EMAIL PROTECTED] entry in the platform.dts file and have a field(s) like phy-count=<4>, to support multiple devices? And have each instance of the module contain private data for one UCC, interrupt handling, etc... OR Solution 2: Is there a way to have a module know if it has already been loaded, so it doesn't insert multiple times and then play the rest like Solution 3? OR Solution 3: Have phy-count=4; defined in the driver header, or a module parameter, and have a single module instance of the driver itself responsible for creating a single private data structure and setting up multiple UCC's and PHY's? This also feeds into a question on SET_NETDEV_DEV. How does it react to multiple net devices attached to a single base driver? -Russ > -----Original Message----- > From: Andy Fleming [mailto:[EMAIL PROTECTED] > Sent: Tuesday, January 29, 2008 2:33 PM > To: [EMAIL PROTECTED] > Cc: [email protected] > Subject: Re: SET_NETDEV_DEV -> 83xx HDLC Driver?? > > > On Jan 25, 2008, at 20:43, Russell McGuire wrote: > > > All, > > > > I am partly done porting a combination of the 83xx ATM driver and > > dscc4 HDLC > > driver into a 83xx HDLC driver. > > > > However, encounter a call I don't truly understand. > > > > SET_NETDEV_DEV(dev, pointer_to_some_handle); > > > > I can see plenty of examples of this registering some kind of PCI > > device > > handle, however in this case I am not using a PCI device. So what > > should the > > pointer be? Or can this call be ignored, and if so what are the > > consequences? > > > > I see the some of the Freescale Ethernet devices don't use this call. > > > > Anyway, can somebody shed some light on if I am going to need this, > > or a way > > to get it to work, without creating a PCI device? > > > Look at gianfar.c (which uses a platform_device) or ucc_geth (which > uses an of_device). Which freescale devices don't use that call? > We'll fix them. > > Andy _______________________________________________ Linuxppc-embedded mailing list [email protected] https://ozlabs.org/mailman/listinfo/linuxppc-embedded
