Re: [PATCH] advertise correct IDE mode on Pegasos2

2007-08-17 Thread Olaf Hering
On Fri, Aug 17, Matt Sealey wrote: > Setting them to ~0x5 will set them to 0 (legacy mode) and they will always > read > back as 0 (legacy mode.. sigh) even if in native mode. The pci_dev->class needs updating as well, see second version of the patch.

[PATCH] advertise correct IDE mode on Pegasos2

2007-08-17 Thread Olaf Hering
The built-in IDE controller is configured in legacy mode, but the PCI registers advertise native mode. Force the PCI class into legacy mode. This allows pata_via to access two drives. The Pegasos specific irq enforcement in the via82cxxx driver must stay because there is aparently no generic way to

Re: [PATCH] advertise correct IDE mode on Pegasos2

2007-08-17 Thread Matt Sealey
The programming interface register is definitely writable, but the VIA IDE docs state that certain bits will always read 0 - setting '0x5' in my original patch set those two bits so it was forced into native mode if it wasn't already. Setting them to ~0x5 will set them to 0 (legacy mode) and they

Re: [PATCH] advertise correct IDE mode on Pegasos2

2007-08-17 Thread Olaf Hering
On Fri, Aug 17, Olaf Hering wrote: Still not 100% perfect. > + prom_printf("Fixing up IDE class-code on Pegasos...\n"); > + rc = prom_getprop(ph, "class-code", prop, sizeof(u32)); > + if (rc == sizeof(u32)) { > + prop[0] &= ~0x5; > +

[PATCH] advertise correct IDE mode on Pegasos2

2007-08-17 Thread Olaf Hering
The built-in IDE controller is configured in legacy mode, but the PCI registers advertise native mode. Force the PCI class into legacy mode. This allows pata_via to access two drives. The Pegasos specific irq enforcement in the via82cxxx driver can be removed. Tested on Pegasos2 with firmware ver