I've been trying off and on over the past 4 years (more off than on) trying to get my Logitech Wingman Extreme Digital 3D joystick to run on my als4000 gameport and hardware. This hardware and joystick combination worked flawlessly under Win98 and Win2000, but has never worked under linux starting with 2.4.18 (I think) through just about every kernel including my current 2.6.15-ck2.

I started here a year or two ago but was referred to Vojtech Pavlik, maintainer of the adi, joydump, joydev, gameport modules. We tried switching io ports - we've tried 0x200, 0x201, 0x202 and 0x203, and we've switched out adi (the Logitech digital joystick module) for joydump.

What we get back from dmesg is:

gameport: ALS4000 Gameport is pci0000:00:0d.0/gameport0, io 0x201, speed 745kHz

The above was the last one, but we have got the io 0x20* part to increment with whatever we've assigned in options in modprobe.conf.

and from the joydump part of dmesg:


joydump: ,------------------ START ----------------.
joydump: | Dumping:      pci0000:00:0d.0/gameport0 |
joydump: | Speed:                          745 kHz |
joydump: >------------------ DATA -----------------<
joydump: | index:   0 delta:   0 us data: 11111111 |
joydump: `------------------- END -----------------'


My system is an Intel PIII 1Ghz, 440BX, 1 GB Ram machine with only PCI or AGP cards, no ISA cards or support in kernel. I don't have the parallel port inabled currently, though it has been enabled in previous testing (uses interupt 5 which I think the gameport may use).

My distribution, Source Mage, is source based. It uses udev, simpleinit, gcc3.4.4 and is kept completely up to date. The alsa version is 1.0.10rc3, but this has not worked on any alsa version going back to Mar 2002.

The reason I'm writing this list again is because of what Vojtech recommended in his last email which I quote here:

On Sun, Jan 22, 2006 at 06:00:10PM -0600, John Harding wrote:
  
> Vojtech Pavlik wrote:
> 
    
> >This patch:
> >
> >diff --git a/sound/pci/als4000.c b/sound/pci/als4000.c
> >--- a/sound/pci/als4000.c
> >+++ b/sound/pci/als4000.c
> >@@ -575,14 +575,8 @@ static int __devinit snd_als4000_create_
> > 	if (joystick_port[dev] == 0)
> > 		return -ENODEV;
> > 
> >-	if (joystick_port[dev] == 1) { /* auto-detect */
> >-		for (io_port = 0x200; io_port <= 0x218; io_port += 8) {
> >-			r = request_region(io_port, 8, "ALS4000 gameport");
> >-			if (r)
> >-				break;
> >-		}
> >-	} else {
> >-		io_port = joystick_port[dev];
> >+	if (joystick_port[dev] == 1) {
> >+		io_port = 0x200;
> > 		r = request_region(io_port, 8, "ALS4000 gameport");
> > 	}
> > 
> >@@ -602,7 +596,7 @@ static int __devinit snd_als4000_create_
> > 	gameport_set_name(gp, "ALS4000 Gameport");
> > 	gameport_set_phys(gp, "pci%s/gameport0", pci_name(acard->pci));
> > 	gameport_set_dev_parent(gp, &acard->pci->dev);
> >-	gp->io = io_port;
> >+	gp->io = 0x201;
> > 	gameport_set_port_data(gp, r);
> > 
> > 	/* Enable legacy joystick port */
> >  
> >
      
> Vojtech,
> 
> I patched the file, did the make, install and depmod. When the system
> rebooted it was forced to 0x201 but joydump still returns the same as it
> has, no data.
> 
> What now?
    

I'd suggest trying to connect an analog joystick, though I doubt it'll
help. It might, though, if the gameport is not completely to the spec.

You can also try loading 'ns558' instead of 'snd-als4000' to see if
classic ISA probing techniques find the port when it's not preconfigured
by the sound driver.

And then, you'll need to take it to the ALSA folks, because it seems
like the driver is not enabling the gameport correctly.  You may show
them the above patch, with the comment that selecting the first free
region and then not taking the offset into account is a bug.
-- Vojtech Pavlik SuSE Labs, SuSE CR
We tried most tests until the last day or so, without the above patch. I have tried the ns558, but am not sure if I did it right. I also tried the analog stuff, but that's been a year or so ago.

This rig was Win98, then Win2000 before it became a dedicated linux box. Everything worked in those two environments, aside from general stability ;-), but I want it to work here.

Any thoughts, ideas, things I should try? Keep explanations simple, though I've been around tech for twenty years, I'm not well versed in reading between lines or knowing how to do technical things without being told what to do.

I appreciate any help you may be able to give.

Thanks,

John

Reply via email to