[PATCH] ide: core modifications for AU1200
bart: slightly modified by me Signed-off-by: Jordan Crouse <jordan.crouse@amd.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
38f9d412be
commit
65e5f2e3b4
@ -90,11 +90,6 @@
|
|||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/irq.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 [] = {
|
static const struct drive_list_entry drive_whitelist [] = {
|
||||||
|
|
||||||
{ "Micropolis 2112A" , "ALL" },
|
{ "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
|
* @id: drive identifier
|
||||||
* @drive_table: list to inspect
|
* @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.
|
* 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++)
|
for ( ; drive_table->id_model ; drive_table++)
|
||||||
if ((!strcmp(drive_table->id_model, id->model)) &&
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EXPORT_SYMBOL_GPL(ide_in_drive_list);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ide_dma_intr - IDE DMA interrupt handler
|
* ide_dma_intr - IDE DMA interrupt handler
|
||||||
* @drive: the drive the interrupt is for
|
* @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;
|
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) {
|
if (blacklist) {
|
||||||
printk(KERN_WARNING "%s: Disabling (U)DMA for %s (blacklisted)\n",
|
printk(KERN_WARNING "%s: Disabling (U)DMA for %s (blacklisted)\n",
|
||||||
drive->name, id->model);
|
drive->name, id->model);
|
||||||
@ -677,7 +674,7 @@ EXPORT_SYMBOL(__ide_dma_bad_drive);
|
|||||||
int __ide_dma_good_drive (ide_drive_t *drive)
|
int __ide_dma_good_drive (ide_drive_t *drive)
|
||||||
{
|
{
|
||||||
struct hd_driveid *id = drive->id;
|
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);
|
EXPORT_SYMBOL(__ide_dma_good_drive);
|
||||||
|
@ -87,11 +87,6 @@ typedef struct
|
|||||||
} _auide_hwif;
|
} _auide_hwif;
|
||||||
|
|
||||||
#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
|
#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
|
||||||
struct drive_list_entry {
|
|
||||||
const char * id_model;
|
|
||||||
const char * id_firmware;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* HD white list */
|
/* HD white list */
|
||||||
static const struct drive_list_entry dma_white_list [] = {
|
static const struct drive_list_entry dma_white_list [] = {
|
||||||
/*
|
/*
|
||||||
|
@ -1371,6 +1371,12 @@ void ide_init_sg_cmd(ide_drive_t *, struct request *);
|
|||||||
#define GOOD_DMA_DRIVE 1
|
#define GOOD_DMA_DRIVE 1
|
||||||
|
|
||||||
#ifdef CONFIG_BLK_DEV_IDEDMA
|
#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_bad_drive(ide_drive_t *);
|
||||||
int __ide_dma_good_drive(ide_drive_t *);
|
int __ide_dma_good_drive(ide_drive_t *);
|
||||||
int ide_use_dma(ide_drive_t *);
|
int ide_use_dma(ide_drive_t *);
|
||||||
|
Loading…
Reference in New Issue
Block a user