Skip to content

Commit

Permalink
trm290: do hook dma_host_{on,off} methods (take 2)
Browse files Browse the repository at this point in the history
Using default methods caused the chip's DMA PRD count registers, inadvertently
starting DMA!  While fixing it, also do:

- get rid of the 'ide_' prefixes in several functions for which the prefix in
  the method's name has been 'ide_' ectomized already;

- align the code hooking the IDE DMA methods in init_hwif_trm290()...

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
  • Loading branch information
Sergei Shtylyov authored and Bartlomiej Zolnierkiewicz committed Jan 10, 2008
1 parent b98f880 commit 93c0b56
Showing 1 changed file with 20 additions and 9 deletions.
29 changes: 20 additions & 9 deletions drivers/ide/pci/trm290.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
/*
* linux/drivers/ide/pci/trm290.c Version 1.02 Mar. 18, 2000
* linux/drivers/ide/pci/trm290.c Version 1.05 Dec. 26, 2007
*
* Copyright (c) 1997-1998 Mark Lord
* Copyright (c) 2007 MontaVista Software, Inc. <source@mvista.com>
* May be copied or modified under the terms of the GNU General Public License
*
* June 22, 2004 - get rid of check_region
Expand Down Expand Up @@ -177,15 +178,15 @@ static void trm290_selectproc (ide_drive_t *drive)
trm290_prepare_drive(drive, drive->using_dma);
}

static void trm290_ide_dma_exec_cmd(ide_drive_t *drive, u8 command)
static void trm290_dma_exec_cmd(ide_drive_t *drive, u8 command)
{
BUG_ON(HWGROUP(drive)->handler != NULL); /* paranoia check */
ide_set_handler(drive, &ide_dma_intr, WAIT_CMD, NULL);
/* issue cmd to drive */
outb(command, IDE_COMMAND_REG);
}

static int trm290_ide_dma_setup(ide_drive_t *drive)
static int trm290_dma_setup(ide_drive_t *drive)
{
ide_hwif_t *hwif = drive->hwif;
struct request *rq = hwif->hwgroup->rq;
Expand Down Expand Up @@ -215,7 +216,7 @@ static int trm290_ide_dma_setup(ide_drive_t *drive)
return 0;
}

static void trm290_ide_dma_start(ide_drive_t *drive)
static void trm290_dma_start(ide_drive_t *drive)
{
}

Expand All @@ -240,6 +241,14 @@ static int trm290_ide_dma_test_irq (ide_drive_t *drive)
return (status == 0x00ff);
}

static void trm290_dma_host_on(ide_drive_t *drive)
{
}

static void trm290_dma_host_off(ide_drive_t *drive)
{
}

static void __devinit init_hwif_trm290(ide_hwif_t *hwif)
{
unsigned int cfgbase = 0;
Expand Down Expand Up @@ -280,11 +289,13 @@ static void __devinit init_hwif_trm290(ide_hwif_t *hwif)

ide_setup_dma(hwif, (hwif->config_data + 4) ^ (hwif->channel ? 0x0080 : 0x0000), 3);

hwif->dma_setup = &trm290_ide_dma_setup;
hwif->dma_exec_cmd = &trm290_ide_dma_exec_cmd;
hwif->dma_start = &trm290_ide_dma_start;
hwif->ide_dma_end = &trm290_ide_dma_end;
hwif->ide_dma_test_irq = &trm290_ide_dma_test_irq;
hwif->dma_host_off = &trm290_dma_host_off;
hwif->dma_host_on = &trm290_dma_host_on;
hwif->dma_setup = &trm290_dma_setup;
hwif->dma_exec_cmd = &trm290_dma_exec_cmd;
hwif->dma_start = &trm290_dma_start;
hwif->ide_dma_end = &trm290_ide_dma_end;
hwif->ide_dma_test_irq = &trm290_ide_dma_test_irq;

hwif->selectproc = &trm290_selectproc;
#if 1
Expand Down

0 comments on commit 93c0b56

Please sign in to comment.