lkml.org 
[lkml]   [2006]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
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/
\
 
 \ /
  Last update: 2006-02-02 09:03    [W:0.053 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site