Don't compile the standard IDE disk driver, all we need is the TiVo-specific one. If you really want it, make it a module. Saves 8KB in the kernel. You will need to reconfig your kernel after applying this patch. --- ./arch/ppc/defconfig.DIST Wed Mar 13 16:11:16 2002 +++ ./arch/ppc/defconfig Sun Nov 17 22:54:23 2002 @@ -48,7 +48,8 @@ # Please see Documentation/ide.txt for help/info on IDE drives # # CONFIG_BLK_DEV_HD_IDE is not set -CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_BLK_DEV_IDEDISK is not set +CONFIG_BLK_DEV_IDETIVO=y # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set --- ./drivers/block/ide.c.DIST Fri May 31 16:28:13 2002 +++ ./drivers/block/ide.c Sun Nov 17 12:48:21 2002 @@ -3121,8 +3121,10 @@ */ #ifdef CONFIG_BLK_DEV_IDEDISK (void) idedisk_init(); - (void) idetivo_init(); #endif /* CONFIG_BLK_DEV_IDEDISK */ +#ifdef CONFIG_BLK_DEV_IDETIVO + (void) idetivo_init(); +#endif /* CONFIG_BLK_DEV_IDETIVO */ #ifdef CONFIG_BLK_DEV_IDECD (void) ide_cdrom_init(); #endif /* CONFIG_BLK_DEV_IDECD */ --- ./drivers/block/Config.in.DIST Fri May 31 16:28:13 2002 +++ ./drivers/block/Config.in Sun Nov 17 12:53:30 2002 @@ -15,6 +15,7 @@ bool 'Old harddisk (MFM/RLL/IDE) driver' CONFIG_BLK_DEV_HD_ONLY else bool ' Use old disk-only driver on primary interface' CONFIG_BLK_DEV_HD_IDE + dep_tristate ' Include TiVo IDE/ATA-2 DISK support' CONFIG_BLK_DEV_IDETIVO $CONFIG_BLK_DEV_IDE dep_tristate ' Include IDE/ATA-2 DISK support' CONFIG_BLK_DEV_IDEDISK $CONFIG_BLK_DEV_IDE dep_tristate ' Include IDE/ATAPI CDROM support' CONFIG_BLK_DEV_IDECD $CONFIG_BLK_DEV_IDE dep_tristate ' Include IDE/ATAPI TAPE support' CONFIG_BLK_DEV_IDETAPE $CONFIG_BLK_DEV_IDE --- ./drivers/block/Makefile.DIST Sat Nov 9 13:29:51 2002 +++ ./drivers/block/Makefile Sun Nov 17 12:50:43 2002 @@ -88,6 +88,10 @@ L_OBJS += ide-tivodma.o endif +ifeq ($(CONFIG_BLK_DEV_IDETIVO),y) +L_OBJS += ide-tivo.o +endif + ifeq ($(CONFIG_BLK_DEV_PS2),y) L_OBJS += ps2esdi.o endif @@ -122,18 +126,10 @@ endif ifeq ($(CONFIG_BLK_DEV_IDEDISK),y) -L_OBJS += ide-disk.o ide-tivo.o -else - ifeq ($(CONFIG_BLK_DEV_IDEDISK),m) - M_OBJS += ide-disk.o ide-tivo.o - endif -endif - -ifeq ($(CONFIG_BLK_DEV_IDEDISK),y) -L_OBJS += ide-disk.o ide-tivo.o +L_OBJS += ide-disk.o else ifeq ($(CONFIG_BLK_DEV_IDEDISK),m) - M_OBJS += ide-disk.o ide-tivo.o + M_OBJS += ide-disk.o endif endif --- ./include/linux/ide.h.DIST Fri May 31 16:28:18 2002 +++ ./include/linux/ide.h Sun Nov 17 12:57:23 2002 @@ -631,8 +632,10 @@ #ifdef CONFIG_BLK_DEV_IDEDISK int idedisk_init (void); -int idetivo_init (void); #endif /* CONFIG_BLK_DEV_IDEDISK */ +#ifdef CONFIG_BLK_DEV_IDETIVO +int idetivo_init (void); +#endif /* CONFIG_BLK_DEV_IDETIVO */ #ifdef CONFIG_BLK_DEV_IDECD int ide_cdrom_init (void); #endif /* CONFIG_BLK_DEV_IDECD */