The "always load ide-generic at the end" workaround turned out to be
only needed together with a Debian-specific modular-ide kernel patch,
and then was needed always - not only with specific drivers.

The modular-ide patch was dropped before yaird became part of an
official Debian release, so no need for yaird to support it.

diff -ruN yaird-0.0.12.orig/perl/Hardware.pm yaird-0.0.12/perl/Hardware.pm
--- yaird-0.0.12.orig/perl/Hardware.pm	2006-03-11 10:45:39.000000000 +0100
+++ yaird-0.0.12/perl/Hardware.pm	2006-03-11 10:51:26.000000000 +0100
@@ -227,30 +227,6 @@
 		}
 	}
 
-	#
-	# Hmm, via82cxxx (2.6.8) also needs ide-generic
-	# to load it seems.  That could be because ide-generic
-	# contains a call to ide_probe_init() which is in
-	# the ide-core module.  After loading ide-generic
-	# it's still the via82cxxx module that manages the device;
-	# see /sys/bus/pci/drivers/VIA_IDE/.  
-	# The above error persists in 2.6.12, and is solved
-	# in 2.6.14.
-	#
-	# Similar error seems to exist in 2.6.14 for piix.
-	# And for amd74xx.
-	#
-	# Should we always demand ide-generic?  No, because there are
-	# machines that have proper driver which does not need ide-generic,
-	# so ide-generic need not be part of the driver.
-	# Making ide-generic optional (as it was in earlier versions) is also
-	# far from ideal, since that would end up with silently non-booting
-	# kernels on piix machine without ide-generic in the kernel.
-	#
-	$result = [ map { $_ eq "via82cxxx" ?  ($_, "ide-generic") : $_ } @{$result} ];
-	$result = [ map { $_ eq "piix" ?  ($_, "ide-generic") : $_ } @{$result} ];
-	$result = [ map { $_ eq "amd74xx" ?  ($_, "ide-generic") : $_ } @{$result} ];
-
 	return $result;
 }
 
