lkml.org 
[lkml]   [1998]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subjectcdu31a in 2.1.106
Date
From

The behavior of the standard cdu31a driver was to fail oftentimes
on a mount (but mount would come back) after a short amount
of time (10s of seconds).

Now its hanging i mount forever...

What I've been doing is patching cdu31a to print some debug stuff
(and it changes the timing...)

Here's the patches I've been using:
: leisner@compaq;rcsdiff -u -w cdu31a.c
===================================================================
RCS file: cdu31a.c,v
retrieving revision 1.1
diff -u -w -r1.1 cdu31a.c
--- cdu31a.c 1998/06/14 20:54:13 1.1
+++ cdu31a.c 1998/06/14 20:55:21
@@ -864,7 +864,7 @@
}
if (is_busy() || (!(is_result_ready())))
{
-#if DEBUG
+#if 1
printk("CDU31A timeout out %d\n", __LINE__);
#endif
result_buffer[0] = 0x20;
@@ -923,7 +923,7 @@
}
if (!is_result_ready())
{
-#if DEBUG
+#if 1
printk("CDU31A timeout out %d\n", __LINE__);
#endif
result_buffer[0] = 0x20;
@@ -952,7 +952,7 @@
}
if (!is_result_ready())
{
-#if DEBUG
+#if 1
printk("CDU31A timeout out %d\n", __LINE__);
#endif
result_buffer[0] = 0x20;
@@ -1034,7 +1034,7 @@
}
if (is_busy())
{
-#if DEBUG
+#if 1
printk("CDU31A timeout out %d\n", __LINE__);
#endif
result_buffer[0] = 0x20;
@@ -1090,7 +1090,7 @@
volatile int val;


-#if 0*DEBUG
+#if DEBUG
printk("Entering handle_sony_cd_attention\n");
#endif
if (is_attention())
@@ -1171,7 +1171,7 @@
}

num_consecutive_attentions = 0;
-#if 0*DEBUG
+#if DEBUG
printk("Leaving handle_sony_cd_attention at %d\n", __LINE__);
#endif
return(0);
@@ -1328,7 +1328,7 @@
#endif
return(0);
}
-#if DEBUG
+#if DEBUG || 1
printk("Leaving start_request at %d\n", __LINE__);
#endif
}
@@ -1586,7 +1586,7 @@
}
else
{
-#if DEBUG
+#if DEBUG || 1
printk("CDU31A timeout out %d\n", __LINE__);
#endif
res_reg[0] = 0x20;
@@ -1611,7 +1611,7 @@

if (!is_result_ready())
{
-#if DEBUG
+#if DEBUG || 1
printk("CDU31A timeout out %d\n", __LINE__);
#endif
res_reg[0] = 0x20;
@@ -1840,7 +1840,7 @@
new one. */
else if (block != sony_next_block)
{
-#if DEBUG
+#if DEBUG || 1
printk("CDU31A Warning: Read for block %d, expected %d\n",
block,
sony_next_block);
@@ -1977,14 +1977,14 @@
No need to check session 0, since session 0 is the same as session
1; the command returns different information if you give it 0.
*/
-#if DEBUG
+#if DEBUG || 1
memset(&sony_toc, 0x0e, sizeof(sony_toc));
memset(&single_toc, 0x0f, sizeof(single_toc));
#endif
session = 1;
while (1)
{
-#if DEBUG
+#if DEBUG || 1
printk("Trying session %d\n", session);
#endif
parms[0] = session;
@@ -1994,7 +1994,7 @@
res_reg,
&res_size);

-#if DEBUG
+#if DEBUG || 1
printk("%2.2x %2.2x\n", res_reg[0], res_reg[1]);
#endif

@@ -2003,7 +2003,7 @@
/* An error reading the TOC, this must be past the last session. */
break;
}
-#if DEBUG
+#if DEBUG || 1
printk("Reading session %d\n", session);
#endif

@@ -2097,8 +2097,6 @@
single_toc.dummyc0[5],
single_toc.dummyc0[6]);
#endif
-#undef DEBUG
-#define DEBUG 0

sony_toc.lead_out_start_msf[0] = bcd_to_int(single_toc.lead_out_start_msf[0]);
sony_toc.lead_out_start_msf[1] = bcd_to_int(single_toc.lead_out_start_msf[1]);

And a mount gives me:
Uniform CD-ROM driver Revision: 2.12
Trying session 1
00 00
Reading session 1
Trying session 2
20 11
VFS: Disk change detected on device 0f:00
CDU31A Warning: Read for block 68, expected 66
CDU31A Warning: Read for block 72, expected 70
CDU31A Warning: Read for block 96, expected 74
ISO9660 Extensions: RRIP_1991A

A log that doesn't mount (nad hangs mount) is:
Jun 14 16:12:25 compaq kernel: Uniform CD-ROM driver Revision: 2.12
Jun 14 16:12:38 compaq kernel: CDU31A: Invalid block status: 0x0
Jun 14 16:12:38 compaq kernel: cdu31a: Resetting drive on error
Jun 14 16:12:45 compaq kernel: CDU31A: unknown 0x03 error for block 72, nblock 2

marty leisner@sdsp.mc.xerox.com
Don't confuse education with schooling.
Milton Friedman to Yogi Berra

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu

\
 
 \ /
  Last update: 2005-03-22 13:43    [W:0.046 / U:0.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site