diff -cr linux-2.6.6/drivers/ide/pci/generic.c linux-2.6.6-new/drivers/ide/pci/generic.c
*** linux-2.6.6/drivers/ide/pci/generic.c	2004-07-11 14:25:44.000000000 -0500
--- linux-2.6.6-new/drivers/ide/pci/generic.c	2004-07-08 20:08:56.000000000 -0500
***************
*** 66,71 ****
--- 66,73 ----
  	hwif->mwdma_mask = 0x07;
  	hwif->swdma_mask = 0x07;
  
+     if (hwif->pci_dev->device == PCI_DEVICE_ID_VIA_610) 
+        hwif->udma_four = 1; /* mj */
  	if (!noautodma)
  		hwif->autodma = 1;
  	hwif->drives[0].autodma = hwif->autodma;
***************
*** 131,136 ****
--- 133,139 ----
  	{ PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO,     PCI_ANY_ID, PCI_ANY_ID, 0, 0, 10},
  	{ PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_1,   PCI_ANY_ID, PCI_ANY_ID, 0, 0, 11},
  	{ PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_2,   PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12},
+  	{ PCI_VENDOR_ID_VIA,    PCI_DEVICE_ID_VIA_610,             PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13},
  	{ 0, },
  };
  MODULE_DEVICE_TABLE(pci, generic_pci_tbl);
diff -cr linux-2.6.6/drivers/ide/pci/generic.h linux-2.6.6-new/drivers/ide/pci/generic.h
*** linux-2.6.6/drivers/ide/pci/generic.h	2004-07-11 14:25:44.000000000 -0500
--- linux-2.6.6-new/drivers/ide/pci/generic.h	2004-07-08 20:27:36.000000000 -0500
***************
*** 101,120 ****
  		.channels	= 2,
  		.autodma	= NOAUTODMA,
  		.bootable	= ON_BOARD,
! 	}
! };
! 
! #if 0
! static ide_pci_device_t unknown_chipset[] __devinitdata = {
! 	{	/* 0 */
! 		.name		= "PCI_IDE",
  		.init_chipset	= init_chipset_generic,
  		.init_hwif	= init_hwif_generic,
  		.channels	= 2,
  		.autodma	= AUTODMA,
  		.bootable	= ON_BOARD,
! 	}
  };
  #endif
  
  #endif /* IDE_GENERIC_H */
--- 101,128 ----
  		.channels	= 2,
  		.autodma	= NOAUTODMA,
  		.bootable	= ON_BOARD,
! 	},{	/* 13 */
! 		.name		= "VIA_610",
  		.init_chipset	= init_chipset_generic,
  		.init_hwif	= init_hwif_generic,
+ /*		.init_dma	= init_dma_generic, */
  		.channels	= 2,
  		.autodma	= AUTODMA,
  		.bootable	= ON_BOARD,
!     	}
  };
+ 
+ #if 0
+   static ide_pci_device_t unknown_chipset[] __devinitdata = {
+   	{	/* 0 */
+   		.name		= "PCI_IDE",
+   		.init_chipset	= init_chipset_generic,
+   		.init_hwif	= init_hwif_generic,
+   		.channels	= 2,
+   		.autodma	= AUTODMA,
+   		.bootable	= ON_BOARD,
+   	}
+   };
  #endif
  
  #endif /* IDE_GENERIC_H */
Only in linux-2.6.6-new/fs/xfs: linux
diff -cr linux-2.6.6/include/linux/pci_ids.h linux-2.6.6-new/include/linux/pci_ids.h
*** linux-2.6.6/include/linux/pci_ids.h	2004-07-11 14:25:49.000000000 -0500
--- linux-2.6.6-new/include/linux/pci_ids.h	2004-07-08 20:08:57.000000000 -0500
***************
*** 1221,1226 ****
--- 1221,1227 ----
  #define PCI_DEVICE_ID_VIA_8703_51_0	0x3148
  #define PCI_DEVICE_ID_VIA_8237_SATA	0x3149
  #define PCI_DEVICE_ID_VIA_XN266		0x3156
+ #define PCI_DEVICE_ID_VIA_610		0x3164
  #define PCI_DEVICE_ID_VIA_8754C_0	0x3168
  #define PCI_DEVICE_ID_VIA_8235		0x3177
  #define PCI_DEVICE_ID_VIA_P4N333	0x3178
