Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 65e5f2e3 authored by Jordan Crouse's avatar Jordan Crouse Committed by Bartlomiej Zolnierkiewicz
Browse files

[PATCH] ide: core modifications for AU1200



bart: slightly modified by me

Signed-off-by: default avatarJordan Crouse <jordan.crouse@amd.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 38f9d412
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -90,11 +90,6 @@
#include <asm/io.h>
#include <asm/irq.h>

struct drive_list_entry {
	const char *id_model;
	const char *id_firmware;
};

static const struct drive_list_entry drive_whitelist [] = {

	{ "Micropolis 2112A"	,       "ALL"		},
@@ -139,7 +134,7 @@ static const struct drive_list_entry drive_blacklist [] = {
};

/**
 *	in_drive_list	-	look for drive in black/white list
 *	ide_in_drive_list	-	look for drive in black/white list
 *	@id: drive identifier
 *	@drive_table: list to inspect
 *
@@ -147,7 +142,7 @@ static const struct drive_list_entry drive_blacklist [] = {
 *	Returns 1 if the drive is found in the table.
 */

static int in_drive_list(struct hd_driveid *id, const struct drive_list_entry *drive_table)
int ide_in_drive_list(struct hd_driveid *id, const struct drive_list_entry *drive_table)
{
	for ( ; drive_table->id_model ; drive_table++)
		if ((!strcmp(drive_table->id_model, id->model)) &&
@@ -157,6 +152,8 @@ static int in_drive_list(struct hd_driveid *id, const struct drive_list_entry *d
	return 0;
}

EXPORT_SYMBOL_GPL(ide_in_drive_list);

/**
 *	ide_dma_intr	-	IDE DMA interrupt handler
 *	@drive: the drive the interrupt is for
@@ -663,7 +660,7 @@ int __ide_dma_bad_drive (ide_drive_t *drive)
{
	struct hd_driveid *id = drive->id;

	int blacklist = in_drive_list(id, drive_blacklist);
	int blacklist = ide_in_drive_list(id, drive_blacklist);
	if (blacklist) {
		printk(KERN_WARNING "%s: Disabling (U)DMA for %s (blacklisted)\n",
				    drive->name, id->model);
@@ -677,7 +674,7 @@ EXPORT_SYMBOL(__ide_dma_bad_drive);
int __ide_dma_good_drive (ide_drive_t *drive)
{
	struct hd_driveid *id = drive->id;
	return in_drive_list(id, drive_whitelist);
	return ide_in_drive_list(id, drive_whitelist);
}

EXPORT_SYMBOL(__ide_dma_good_drive);
+0 −5
Original line number Diff line number Diff line
@@ -87,11 +87,6 @@ typedef struct
} _auide_hwif;

#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
struct drive_list_entry {
        const char * id_model;
        const char * id_firmware;
};

/* HD white list */
static const struct drive_list_entry dma_white_list [] = {
/*
+6 −0
Original line number Diff line number Diff line
@@ -1371,6 +1371,12 @@ void ide_init_sg_cmd(ide_drive_t *, struct request *);
#define GOOD_DMA_DRIVE		1

#ifdef CONFIG_BLK_DEV_IDEDMA
struct drive_list_entry {
	const char *id_model;
	const char *id_firmware;
};

int ide_in_drive_list(struct hd_driveid *, const struct drive_list_entry *);
int __ide_dma_bad_drive(ide_drive_t *);
int __ide_dma_good_drive(ide_drive_t *);
int ide_use_dma(ide_drive_t *);