From eadea0d08eff83301e8dadf3a46fe493aa7894aa Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Mon, 20 Feb 2006 10:29:37 +0000 Subject: handhelds-pxa: update to 2.6.15, include patches and new defconfigs --- .../handhelds-pxa-2.6/ide_not_removable-r0.patch | 114 +++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 packages/linux/handhelds-pxa-2.6/ide_not_removable-r0.patch (limited to 'packages/linux/handhelds-pxa-2.6/ide_not_removable-r0.patch') diff --git a/packages/linux/handhelds-pxa-2.6/ide_not_removable-r0.patch b/packages/linux/handhelds-pxa-2.6/ide_not_removable-r0.patch new file mode 100644 index 0000000000..1938f72829 --- /dev/null +++ b/packages/linux/handhelds-pxa-2.6/ide_not_removable-r0.patch @@ -0,0 +1,114 @@ +Index: linux-2.6.13/drivers/ide/ide-probe.c +=================================================================== +--- linux-2.6.13.orig/drivers/ide/ide-probe.c 2005-08-29 00:41:01.000000000 +0100 ++++ linux-2.6.13/drivers/ide/ide-probe.c 2005-09-21 20:57:34.000000000 +0100 +@@ -125,45 +125,6 @@ + } + + /** +- * drive_is_flashcard - check for compact flash +- * @drive: drive to check +- * +- * CompactFlash cards and their brethern pretend to be removable +- * hard disks, except: +- * (1) they never have a slave unit, and +- * (2) they don't have doorlock mechanisms. +- * This test catches them, and is invoked elsewhere when setting +- * appropriate config bits. +- * +- * FIXME: This treatment is probably applicable for *all* PCMCIA (PC CARD) +- * devices, so in linux 2.3.x we should change this to just treat all +- * PCMCIA drives this way, and get rid of the model-name tests below +- * (too big of an interface change for 2.4.x). +- * At that time, we might also consider parameterizing the timeouts and +- * retries, since these are MUCH faster than mechanical drives. -M.Lord +- */ +- +-static inline int drive_is_flashcard (ide_drive_t *drive) +-{ +- struct hd_driveid *id = drive->id; +- +- if (drive->removable) { +- if (id->config == 0x848a) return 1; /* CompactFlash */ +- if (!strncmp(id->model, "KODAK ATA_FLASH", 15) /* Kodak */ +- || !strncmp(id->model, "Hitachi CV", 10) /* Hitachi */ +- || !strncmp(id->model, "SunDisk SDCFB", 13) /* old SanDisk */ +- || !strncmp(id->model, "SanDisk SDCFB", 13) /* SanDisk */ +- || !strncmp(id->model, "HAGIWARA HPC", 12) /* Hagiwara */ +- || !strncmp(id->model, "LEXAR ATA_FLASH", 15) /* Lexar */ +- || !strncmp(id->model, "ATA_FLASH", 9)) /* Simple Tech */ +- { +- return 1; /* yes, it is a flash memory card */ +- } +- } +- return 0; /* no, it is not a flash memory card */ +-} +- +-/** + * do_identify - identify a drive + * @drive: drive to identify + * @cmd: command used +@@ -278,13 +239,17 @@ + /* + * Not an ATAPI device: looks like a "regular" hard disk + */ +- if (id->config & (1<<7)) +- drive->removable = 1; + +- if (drive_is_flashcard(drive)) +- drive->is_flash = 1; ++ /* ++ * 0x848a = CompactFlash device ++ * These are *not* removable in Linux definition of the term ++ */ ++ ++ if ((id->config != 0x848a) && (id->config & (1<<7))) ++ drive->removable = 1; ++ + drive->media = ide_disk; +- printk("%s DISK drive\n", (drive->is_flash) ? "CFA" : "ATA" ); ++ printk("%s DISK drive\n", (id->config == 0x848a) ? "CFA" : "ATA" ); + QUIRK_LIST(drive); + return; + +Index: linux-2.6.13/drivers/ide/ide.c +=================================================================== +--- linux-2.6.13.orig/drivers/ide/ide.c 2005-09-19 10:53:59.000000000 +0100 ++++ linux-2.6.13/drivers/ide/ide.c 2005-09-21 20:52:53.000000000 +0100 +@@ -242,7 +242,6 @@ + drive->name[2] = 'a' + (index * MAX_DRIVES) + unit; + drive->max_failures = IDE_DEFAULT_MAX_FAILURES; + drive->using_dma = 0; +- drive->is_flash = 0; + drive->vdma = 0; + INIT_LIST_HEAD(&drive->list); + sema_init(&drive->gendev_rel_sem, 0); +Index: linux-2.6.13/drivers/ide/ide-disk.c +=================================================================== +--- linux-2.6.13.orig/drivers/ide/ide-disk.c 2005-09-19 10:53:59.000000000 +0100 ++++ linux-2.6.13/drivers/ide/ide-disk.c 2005-09-21 20:51:31.000000000 +0100 +@@ -895,11 +895,7 @@ + if (drive->id_read == 0) + return; + +- /* +- * CompactFlash cards and their brethern look just like hard drives +- * to us, but they are removable and don't have a doorlock mechanism. +- */ +- if (drive->removable && !(drive->is_flash)) { ++ if (drive->removable) { + /* + * Removable disks (eg. SYQUEST); ignore 'WD' drives + */ +Index: linux-2.6.13/include/linux/ide.h +=================================================================== +--- linux-2.6.13.orig/include/linux/ide.h 2005-08-29 00:41:01.000000000 +0100 ++++ linux-2.6.13/include/linux/ide.h 2005-09-21 20:56:29.000000000 +0100 +@@ -697,7 +697,6 @@ + unsigned noprobe : 1; /* from: hdx=noprobe */ + unsigned removable : 1; /* 1 if need to do check_media_change */ + unsigned attach : 1; /* needed for removable devices */ +- unsigned is_flash : 1; /* 1 if probed as flash */ + unsigned forced_geom : 1; /* 1 if hdx=c,h,s was given at boot */ + unsigned no_unmask : 1; /* disallow setting unmask bit */ + unsigned no_io_32bit : 1; /* disallow enabling 32bit I/O */ -- cgit v1.2.3