netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* IC Plus Corp IC Plus IP1000
@ 2007-05-27 15:11 Peter Rasmussen
  2007-06-13  2:21 ` Jeff Garzik
  0 siblings, 1 reply; 6+ messages in thread
From: Peter Rasmussen @ 2007-05-27 15:11 UTC (permalink / raw)
  To: netdev

I am not on this list, but found this address on:   
http://linux-net.osdl.org/index.php/Mailing_Lists.

My question is regarding the ethernet controller (from lspci):

Sundance Technology Inc / IC Plus Corp IC Plus IP1000 Family Gigabit 
Ethernet (rev 41)

that seems to have a driver for it published on:

http://www.icplus.com.tw/driver-pp-IP1000A.html

Unfortunately I am not able to build it as described.

I wonder if it at some time will be included in the standard Linux kernel?
I am of course interested because my main board has it built in, so I 
would be willing to test it.

Thanks,
Peter

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: IC Plus Corp IC Plus IP1000
@ 2007-06-13  1:57 linux
  2007-06-13 18:24 ` linux
  0 siblings, 1 reply; 6+ messages in thread
From: linux @ 2007-06-13  1:57 UTC (permalink / raw)
  To: netdev; +Cc: linux

plr@udgaard.com wrote:
> I wonder if it at some time will be included in the standard Linux kernel?
> I am of course interested because my main board has it built in, so I 
> would be willing to test it.

"Me, too!"

This has been discussed sporadically for the last year, and I can confirm
that the driver source from the manufacturer's web page is starting
to suffer bit rot, but after patching the more egregious breakage
(references to <linux/config.h>, UTS_RELEASE and pci_module_init()
stop it from compiling), it works.

It doesn't even spew "eth0: excessive work at interrupt" when running
arp-scan, unlike certain in-tree drivers. :-)

I got a bit of a rude shock today after doing an emergency replacement
on a socket 939 motherboard and blandly assuring a Windows-experienced
co-worker that despite a change from nForce to VIA KT890 chipset, the
system should "just work".

One round of floppy shuffle and code-fixing later, my co-worker is
not impressed by the Linux version of "Have driver disk".  :-)


Is anyone able to push it to completion?  I have a vague idea that the
vendor lost interest.  (Should I write to Greg K-H and tell him
"Free Linux Driver Developed!"?)

I can play testing guinea-pig if needed.

Thanks!

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: IC Plus Corp IC Plus IP1000
  2007-05-27 15:11 IC Plus Corp IC Plus IP1000 Peter Rasmussen
@ 2007-06-13  2:21 ` Jeff Garzik
  2007-06-13 21:16   ` Peter Rasmussen
  0 siblings, 1 reply; 6+ messages in thread
From: Jeff Garzik @ 2007-06-13  2:21 UTC (permalink / raw)
  To: Peter Rasmussen; +Cc: netdev

Peter Rasmussen wrote:
> I am not on this list, but found this address on:   
> http://linux-net.osdl.org/index.php/Mailing_Lists.
> 
> My question is regarding the ethernet controller (from lspci):
> 
> Sundance Technology Inc / IC Plus Corp IC Plus IP1000 Family Gigabit 
> Ethernet (rev 41)
> 
> that seems to have a driver for it published on:
> 
> http://www.icplus.com.tw/driver-pp-IP1000A.html
> 
> Unfortunately I am not able to build it as described.
> 
> I wonder if it at some time will be included in the standard Linux kernel?
> I am of course interested because my main board has it built in, so I 
> would be willing to test it.

Use the 'sundance' driver that's been in the kernel for quite a while.

	Jeff




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: IC Plus Corp IC Plus IP1000
  2007-06-13  1:57 linux
@ 2007-06-13 18:24 ` linux
  0 siblings, 0 replies; 6+ messages in thread
From: linux @ 2007-06-13 18:24 UTC (permalink / raw)
  To: jeff, netdev; +Cc: linux

> Use the 'sundance' driver that's been in the kernel for quite a while.

Er... that driver specifically does not list the IP1000's PCI device ID
(13f0:1023), nor does it support anything over 100 Mbit/s.

Are you *quite* sure that adding 13f0:1023 to the sundance_pci_tbl is
all that's required?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: IC Plus Corp IC Plus IP1000
  2007-06-13  2:21 ` Jeff Garzik
@ 2007-06-13 21:16   ` Peter Rasmussen
  0 siblings, 0 replies; 6+ messages in thread
From: Peter Rasmussen @ 2007-06-13 21:16 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: netdev

Thank you for your suggestion.

I do however, have the following issues, which is also why I searched 
Google for help on it.

1.The Sundance driver is in the 100mbit section, implying that it won't 
work with 1gbit.
2.When I first started up the server I am using with the ethernet 
device, it didn't detect it, even with the Sundance driver compiled in 
to the kernel, so I gave up on it.
3.Now I would like to extend the server with another ethernet device, 
and I would prefer to use what is already installed instead of having to 
buy another additonal ethernet board.
4.While searching for the driver code with Google, it seemed that 
several people would like to see a IC Plus Corp IC Plus IP1000 driver in 
the kernel, and nowhere did I see that using the present Sundance driver 
was adequate.
5.I am not able to reboot this server too often (it is a live web 
server) so I would like to prepare as much as possible before rebooting it.

So, does your suggestion include:

1.The possibility to use the device in gigabit mode?
2.How to tweak the present Sundance driver to better detect a "IC Plus 
Corp IC Plus IP1000" board?
3.Or *is* the Sundance driver supposed to be a generic driver for all 
their boards, including >100mbit?

If you can tell me about that, or give me pointers to figure it out, I'd 
be much obliged!

Thanks,
Peter

Jeff Garzik wrote:
> Peter Rasmussen wrote:
>> I am not on this list, but found this address on:   
>> http://linux-net.osdl.org/index.php/Mailing_Lists.
>>
>> My question is regarding the ethernet controller (from lspci):
>>
>> Sundance Technology Inc / IC Plus Corp IC Plus IP1000 Family Gigabit 
>> Ethernet (rev 41)
>>
>> that seems to have a driver for it published on:
>>
>> http://www.icplus.com.tw/driver-pp-IP1000A.html
>>
>> Unfortunately I am not able to build it as described.
>>
>> I wonder if it at some time will be included in the standard Linux 
>> kernel?
>> I am of course interested because my main board has it built in, so I 
>> would be willing to test it.
>
> Use the 'sundance' driver that's been in the kernel for quite a while.
>
>     Jeff
>
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: IC Plus Corp IC Plus IP1000
@ 2007-06-14  2:43 linux
  0 siblings, 0 replies; 6+ messages in thread
From: linux @ 2007-06-14  2:43 UTC (permalink / raw)
  To: plr; +Cc: linux, netdev

The following hacks to bring it up to date got the vendor-supplied
driver working for me.  This is just fixing the things the compiler
complained about; there may be other issues, but they don't seem to
interfere with basic funtionality.


diff --git a/Makefile b/Makefile
index c91b384..31e4172 100644
--- a/Makefile
+++ b/Makefile
@@ -77,10 +77,10 @@ ifeq ($(kernelFlag26),kernel26x)
 EXTRA_CFLAGS+=$(MAPPING_MODE)
 
 all:
-	$(MAKE) -C $(KernelBuildDir) SUBDIRS=$(PWD) modules 
+	$(MAKE) -C $(KernelBuildDir) M=$(PWD)
 	
 install:
-	install -m 644 -c ipg.$(kernelExtension) $(kernelMisc)
+	$(MAKE) -C $(KernelBuildDir) M=$(PWD) modules_install
 
 ipg-objs:=$(OBJS)
 obj-m+=$(TARGET)
diff --git a/ipg.h b/ipg.h
index 2d184d4..cefe5c8 100644
--- a/ipg.h
+++ b/ipg.h
@@ -98,8 +98,8 @@
  */
 
 
-#include <linux/config.h>
 #include <linux/version.h>
+#include <linux/utsrelease.h>
 #include <linux/module.h>
 
 #if ((LINUX_VERSION_CODE < KERNEL_VERSION(2,3,0)) &&  defined(MODVERSIONS))
diff --git a/ipg_main.c b/ipg_main.c
index c39ff4a..3a0dfd4 100644
--- a/ipg_main.c
+++ b/ipg_main.c
@@ -172,9 +172,11 @@ int     ipg_io_config(IPG_DEVICE_TYPE *ipg_ethernet_device);
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
 void    ipg_interrupt_handler(int ipg_irq, void *device_instance,
                                 struct pt_regs *regs);
-#else
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
 static  irqreturn_t  ipg_interrupt_handler(int ipg_irq, void *device_instance,
                                 struct pt_regs *regs);
+#else
+static  irqreturn_t  ipg_interrupt_handler(int ipg_irq, void *device_instance);
 #endif
 
 void    ipg_nic_txcleanup(IPG_DEVICE_TYPE *ipg_ethernet_device);
@@ -1425,9 +1427,11 @@ int	ipg_io_config(IPG_DEVICE_TYPE *ipg_ethernet_device)
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
 void ipg_interrupt_handler(int ipg_irq, void *device_instance,
                                 struct pt_regs *regs)
-#else
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
 static  irqreturn_t  ipg_interrupt_handler(int ipg_irq, void *device_instance,
                                 struct pt_regs *regs)
+#else
+static  irqreturn_t  ipg_interrupt_handler(int ipg_irq, void *device_instance)
 #endif
 {
 	int				error;
@@ -1957,7 +1961,7 @@ int	ipg_nic_open(IPG_DEVICE_TYPE *ipg_ethernet_device)
 	 */
 	if ((error = request_irq(sp->ipg_pci_device->irq,
 	                         &ipg_interrupt_handler,
-	                         SA_SHIRQ,
+	                         IRQF_SHARED,
 	                         ipg_ethernet_device->name,
 	                         ipg_ethernet_device)) < 0)
 	{
@@ -4041,7 +4045,10 @@ int	init_module(void)
 #endif
 
 	IPG_DEBUG_MSG("init_module\n");
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)	
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)	
+	return pci_register_driver(&ipg_pci_driver);
+#elif LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)	
 	return pci_module_init(&ipg_pci_driver);
 #else
 	

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2007-06-14  2:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-27 15:11 IC Plus Corp IC Plus IP1000 Peter Rasmussen
2007-06-13  2:21 ` Jeff Garzik
2007-06-13 21:16   ` Peter Rasmussen
  -- strict thread matches above, loose matches on Subject: below --
2007-06-13  1:57 linux
2007-06-13 18:24 ` linux
2007-06-14  2:43 linux

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).