Messages in this thread Patch in this message | | | Date | Thu, 2 Feb 2006 00:00:46 -0800 | From | Jeremy Higdon <> | Subject | [patch] Fix DMA timeouts with sgiioc4 |
| |
On Wed, Feb 01, 2006 at 01:44:01PM +0100, Bartlomiej Zolnierkiewicz wrote: > On 2/1/06, Jeremy Higdon <jeremy@sgi.com> wrote: > > > > Here's one that removes xcount. It seems to work too. > > Should we set hwif->rqsize to 256, or are we pretty safe in > > expecting that the default won't rise? The driver should be > > able to handle more, but this ioc4 hardware is weird, and it > > probably wouldn't get tested if a general change were made :-) > > The current maximum request size is: > * 256 for LBA28 and ATAPI devices > * 1024 for LBA48 devices > > The maximum request size allowed by IDE driver for > LBA48 devices will change to 65536 but block layer will > continue to use 1024 as a default maximum request size, > also IIRC sgiioc4 IDE is used only for ATAPI devices. > So I think that there is no need to worry about ->rqsize.
Thanks Bartlomiej. You're correct in that it is ATAPI only (and read-only also).
In this case, this is the final patch (last night's with a copyright update and removing spurious whitespace at end of line).
thanks
jeremy
Signed-off-by: Jeremy Higdon <jeremy@sgi.com>
Fix sgiioc4 DMA timeout problem with 64KiB s/g elements.
--- a/linux/drivers/ide/pci/sgiioc4.c 2006-02-01 23:57:08.000000000 -0800 +++ b/linux/drivers/ide/pci/sgiioc4.c 2006-02-01 23:56:47.169588392 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003 Silicon Graphics, Inc. All Rights Reserved. + * Copyright (c) 2003-2006 Silicon Graphics, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License @@ -510,7 +510,7 @@ drive->name); goto use_pio_instead; } else { - u32 xcount, bcount = + u32 bcount = 0x10000 - (cur_addr & 0xffff); if (bcount > cur_len) @@ -525,8 +525,7 @@ *table = 0x0; table++; - xcount = bcount & 0xffff; - *table = cpu_to_be32(xcount); + *table = cpu_to_be32(bcount); table++; cur_addr += bcount; @@ -680,7 +679,7 @@ return -EIO; /* Create /proc/ide entries */ - create_proc_ide_interfaces(); + create_proc_ide_interfaces(); return 0; } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |