Bug 226705

Summary: Constantly must reset IDE CD/DVD drives with ICH8&JMicron 361 (GA-965P-S3)
Product: [Fedora] Fedora Reporter: Stewart Adam <s.adam>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED RAWHIDE QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 6CC: mail, wtogami
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-02-11 20:10:40 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Stewart Adam 2007-02-01 01:16:38 UTC
Description of problem:
I recently bought a new computer and I now have a Gigabyte GA-965P-S3
motherboard. I am using the same IDE CD and DVD drives as my old computer did,
and this only started occurring with then new mobo. The drives randomly stop
responding, checking the logs shows:
---
hdf: status error: status=0x58 { DriveReady SeekComplete DataRequest }
ide: failed opcode was: unknown
hdf: drive not ready for command
---
Over and over and over. I'm not sure if it helps, but on boot ever since 2.6.19
I get this message two times: "JMB361.c: dma_base is invalid"

Version-Release number of selected component (if applicable):
kernel-2.6.19-1.2895.fc6

How reproducible:
Always

Steps to Reproduce:
1. Work normally
2. Use gnome-system-monitor until regular writes are noticed (from writing to
/var/log/messages - If the reset isn't caught, it gets to 15MB pretty fast)
2. Check logs for messages
  
Actual results:
The drives does not respond and must be reset with "hdparm -w /dev/hdx'

Expected results:
The drives don't get lock up

Additional info:
relevant lspci information:
00:1f.2 IDE interface: Intel Corporation 82801H (ICH8 Family) 4 port SATA IDE
Controller (rev 02)
00:1f.5 IDE interface: Intel Corporation 82801H (ICH8 Family) 2 port SATA IDE
Controller (rev 02)
03:00.1 IDE interface: JMicron Technologies, Inc. JMicron 20360/20363 AHCI
Controller (rev 02)

Comment 1 Chuck Ebbert 2007-02-01 14:45:52 UTC
The latest change (in 2.6.20-rc) to the jmicron IDE driver might fix this.
I got this from my hg repository:

# HG changeset patch
# User ethanhsiao <ethanhsiao>
# Date 1170201695 28800
# Node ID e9a1562c6e72a682e04f0ba458fd9235aacbb524
# Parent bf6e8e37e9f0e3f9b84df70269a21df7bf34076a
[PATCH] jmicron: 40/80pin primary detection

jmicron module detects all JMB36x as JMB361 and PATA0 has wrong pin status
of XICBLID.

Cc: Jeff Garzik <jeff>
Cc: Alan Cox <alan.org.uk>
Cc: Bartlomiej Zolnierkiewicz <bzolnier>
Cc: Sergei Shtylyov <sshtylyov.com>
Signed-off-by: Andrew Morton <akpm>
Signed-off-by: Linus Torvalds <torvalds>

committer: Linus Torvalds <torvalds.org> 1170201695 -0800

--- a/drivers/ide/pci/jmicron.c	Tue Jan 30 16:01:35 2007 -0800
+++ b/drivers/ide/pci/jmicron.c	Tue Jan 30 16:01:35 2007 -0800
@@ -86,8 +86,8 @@ static int __devinit ata66_jmicron(ide_h
 	{
 	case PORT_PATA0:
 		if (control & (1 << 3))	/* 40/80 pin primary */
-			return 1;
-		return 0;
+			return 0;
+		return 1;
 	case PORT_PATA1:
 		if (control5 & (1 << 19))	/* 40/80 pin secondary */
 			return 0;
@@ -241,11 +241,11 @@ static int __devinit jmicron_init_one(st
 }
 
 static struct pci_device_id jmicron_pci_tbl[] = {
-	{ PCI_DEVICE(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361), 0},
-	{ PCI_DEVICE(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363), 1},
-	{ PCI_DEVICE(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB365), 2},
-	{ PCI_DEVICE(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB366), 3},
-	{ PCI_DEVICE(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB368), 4},
+	{ PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361, PCI_ANY_ID, PCI_ANY_ID,
0, 0, 0},
+	{ PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363, PCI_ANY_ID, PCI_ANY_ID,
0, 0, 1},
+	{ PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB365, PCI_ANY_ID, PCI_ANY_ID,
0, 0, 2},
+	{ PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB366, PCI_ANY_ID, PCI_ANY_ID,
0, 0, 3},
+	{ PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB368, PCI_ANY_ID, PCI_ANY_ID,
0, 0, 4},
 	{ 0, },
 };
 

Comment 2 Stewart Adam 2007-02-11 20:10:40 UTC
I've been using the 2.6.20 kernel from development, it's working perfectly.