Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 19688
b: refs/heads/master
c: 9810933
h: refs/heads/master
v: v3
  • Loading branch information
Richard Purdie authored and Linus Torvalds committed Feb 3, 2006
1 parent 4220aeb commit 31c37cc
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 51 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3b6ce2497f091620dd4c172fc11d867a9b072dc5
refs/heads/master: 9810933701a09f9c4dd0ad963d5ec2efb7df07b7
6 changes: 1 addition & 5 deletions trunk/drivers/ide/ide-disk.c
Original file line number Diff line number Diff line change
Expand Up @@ -889,11 +889,7 @@ static void idedisk_setup (ide_drive_t *drive)
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
*/
Expand Down
51 changes: 8 additions & 43 deletions trunk/drivers/ide/ide-probe.c
Original file line number Diff line number Diff line change
Expand Up @@ -124,45 +124,6 @@ static void ide_disk_init_mult_count(ide_drive_t *drive)
}
}

/**
* 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
Expand Down Expand Up @@ -278,13 +239,17 @@ static inline void do_identify (ide_drive_t *drive, u8 cmd)
/*
* Not an ATAPI device: looks like a "regular" hard disk
*/
if (id->config & (1<<7))

/*
* 0x848a = CompactFlash device
* These are *not* removable in Linux definition of the term
*/

if ((id->config != 0x848a) && (id->config & (1<<7)))
drive->removable = 1;

if (drive_is_flashcard(drive))
drive->is_flash = 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;

Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/ide/ide.c
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,6 @@ static void init_hwif_data(ide_hwif_t *hwif, unsigned int index)
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);
init_completion(&drive->gendev_rel_comp);
Expand Down
1 change: 0 additions & 1 deletion trunk/include/linux/ide.h
Original file line number Diff line number Diff line change
Expand Up @@ -582,7 +582,6 @@ typedef struct ide_drive_s {
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 */
Expand Down

0 comments on commit 31c37cc

Please sign in to comment.