Topic: Wired ethernet driver on chumby classic

Hi to all.
I use chumby with a wired ethernet card. It is supported and it works fine with the driver pegasus.ko that is in the distribution.
I'm developing an application that needs to know if the cable is plugged or not. The file /sys/class/net/eth0/carrier contains always the value 1. I
tried to plug the same usb device on my computer with kernel 2.6.23 and all worked fine. So I decided to patch the driver. I downloaded the linux kernel 2.6.16 from chumby.com. First of all I tried to compile the driver without any change. I compared my new driver and the old one and...they differ. When I do insmod /mnt/usb/pegasus.ko all is ok. I do ifconfig eth0 up with cable unplugged and all is still ok, but when I plug the cable I have a kernel panic!
In serial console I can read

[  132.450000] Unable to handle kernel NULL pointer dereference at virtual address 00000013
[  132.450000] pgd = c2698000
[  132.450000] [00000013] *pgd=c2f0b031, *pte=00000000, *ppte=00000000
[  132.450000] Internal error: Oops: 817 [#1]
[  132.450000] Modules linked in: pegasus iptable_filter ip_tables ipt_REJECT x_tables rt73 asix usbnet chumby_timer fuse ppp_async ppp_generic slhc ftdi_sio usbserial usbhid snd_usb_audio snd_hwdep snd_usb_lib snd_seq_midi snd_rawmidi chumby_udma sense1 chumby_tsc2100
[  132.450000] CPU: 0
[  132.450000] PC is at memcpy+0xfc/0x330
[  132.450000] LR is at 0xff
[  132.450000] pc : [<c011537c>]    lr : [<000000ff>]    Not tainted
[  132.450000] sp : c20bbec4  ip : 00000001  fp : c20bbf24
[  132.450000] r10: c03bd4e4  r9 : c03bd0d0  r8 : c3c8b1e0
[  132.450000] r7 : e00243d0  r6 : 20000000  r5 : 00000000  r4 : 00000180
[  132.450000] r3 : 00000000  r2 : 0000017b  r1 : c1a44801  r0 : 00000013
[  132.450000] Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  Segment user
[  132.450000] Control: 5317F  Table: C2698000  DAC: 00000015
[  132.450000] Process chumbyflashplay (pid: 2720, stack limit = 0xc20ba1a0)
[  132.450000] Stack: (0xc20bbec4 to 0xc20bc000)
[  132.450000] bec0:          00000013 00000180 c0183d6c c2c6eb00 c36f8de0 c20bbfb0 c03bd000 
[  132.450000] bee0: 00000006 0000001d 00004000 00000000 01c00180 000243d0 00000000 c03bd000 
[  132.450000] bf00: 00000000 00000000 00000037 c20bbfb0 c20ba000 40585a80 c20bbf3c c20bbf28 
[  132.450000] bf20: c0177f80 c0183a88 c3d6fa60 00000000 c20bbf64 c20bbf40 c00234fc c0177f54 
[  132.450000] bf40: c02da6ac 00000037 c20bbfb0 00000000 4058e0a0 c20ba000 c20bbf84 c20bbf68 
[  132.450000] bf60: c00237a0 c00234c0 ffffffff 0000ffff c20bbfb0 00000000 c20bbfac c20bbf88 
[  132.450000] bf80: c00233d8 c0023748 001d49e0 00000004 00000003 ffffffff 0000ffff 00000001 
[  132.450000] bfa0: 00000000 c20bbfb0 c0021b80 c0023398 00000000 40585a80 700f1456 001a7320 
[  132.450000] bfc0: 00000000 00000000 40585044 00000000 4058e0a0 701414f8 40585a80 700ef528 
[  132.450000] bfe0: 00000000 beef7660 0005d5f8 00075b5c 60000010 ffffffff 00000000 00000000 
[  132.450000] Backtrace: 
[  132.450000] [<c0183a78>] (imx21_irq+0x0/0x554) from [<c0177f80>] (usb_hcd_irq+0x3c/0x84)
[  132.450000] [<c0177f44>] (usb_hcd_irq+0x0/0x84) from [<c00234fc>] (__do_irq+0x4c/0x8c)
[  132.450000]  r5 = 00000000  r4 = C3D6FA60 
[  132.450000] [<c00234b0>] (__do_irq+0x0/0x8c) from [<c00237a0>] (do_level_IRQ+0x68/0xc0)
[  132.450000]  r9 = C20BA000  r8 = 4058E0A0  r7 = 00000000  r6 = C20BBFB0
[  132.450000]  r5 = 00000037  r4 = C02DA6AC 
[  132.450000] [<c0023738>] (do_level_IRQ+0x0/0xc0) from [<c00233d8>] (asm_do_IRQ+0x50/0x128)
[  132.450000]  r7 = 00000000  r6 = C20BBFB0  r5 = 0000FFFF  r4 = FFFFFFFF
[  132.450000] [<c0023388>] (asm_do_IRQ+0x0/0x128) from [<c0021b80>] (__irq_usr+0x40/0x80)
[  132.450000]  r6 = 00000001  r5 = 0000FFFF  r4 = FFFFFFFF 
[  132.450000] Code: e4d1e001 c4c03001 a4c04001 e052200c (e4c0e001) 
[  132.450000]  Corrected 80 missed timer ticks
[  132.490000] drivers/mfd/chumby-tsc2100.c/tsc2100_dma_play_isr(): timed-out wating for DMA to start.
[  132.510000] Kernel panic - not syncing: Aiee, killing interrupt handler!

and then the system reboots itself.
Is there a different source for this driver? If yes where can I find it? Or how can I know if the cable is plugged or not whithout pinging.
Thank you to all.