From nobody@FreeBSD.org  Thu May  5 12:43:56 2005
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 5F1B916A4CF
	for <freebsd-gnats-submit@FreeBSD.org>; Thu,  5 May 2005 12:43:56 +0000 (GMT)
Received: from www.freebsd.org (www.freebsd.org [216.136.204.117])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 2D6E443DB6
	for <freebsd-gnats-submit@FreeBSD.org>; Thu,  5 May 2005 12:43:56 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.13.1/8.13.1) with ESMTP id j45Chuo6090109
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 5 May 2005 12:43:56 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.13.1/8.13.1/Submit) id j45ChuEg090108;
	Thu, 5 May 2005 12:43:56 GMT
	(envelope-from nobody)
Message-Id: <200505051243.j45ChuEg090108@www.freebsd.org>
Date: Thu, 5 May 2005 12:43:56 GMT
From: Vlad GALU <vladgalu@gmail.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: Non-supported ICH6 controller on Dell Latitude D610
X-Send-Pr-Version: www-2.3

>Number:         80656
>Category:       kern
>Synopsis:       [patch] Non-supported ICH6 controller on Dell Latitude D610
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu May 05 12:50:02 GMT 2005
>Closed-Date:    Wed Jun 01 14:39:50 GMT 2005
>Last-Modified:  Wed Jun 01 14:39:50 GMT 2005
>Originator:     Vlad GALU
>Release:        5.4-STABLE
>Organization:
CC Media Network
>Environment:
FreeBSD durandal.afraid.org 5.4-STABLE FreeBSD 5.4-STABLE #0: Thu May 5 15:04:31 EEST 2005     root@durandal.afraid.org:/usr/src/sys/i386/compile/DURANDAL  i386
>Description:
The ICH6 SATA controller found on Dell Latitude d610 laptops is not supported by the ata driver. After patching with the diff below, the kernel sets the speed of the device to UDMA100. I'm not sure if this is the right thing, but since I'm not familiar with the ata code, I leave this for your appreciation.
>How-To-Repeat:

>Fix:
diff -Nrau /usr/src/sys/dev/ata/ata-chipset.c ./ata/ata-chipset.c
--- /usr/src/sys/dev/ata/ata-chipset.c  Wed Mar 23 07:14:11 2005
+++ ./ata/ata-chipset.c Thu May  5 15:36:31 2005
@@ -838,6 +838,7 @@
      { ATA_I82801FB,   0, 0, 0x00, ATA_UDMA5, "Intel ICH6" },
      { ATA_I82801FB_S1,0, 0, 0x00, ATA_SA150, "Intel ICH6" },
      { ATA_I82801FB_R1,0, 0, 0x00, ATA_SA150, "Intel ICH6" },
+     { ATA_I82801FBM,  0, 0, 0x00, ATA_SA150, "Intel ICH6 Mobile" },
      { 0, 0, 0, 0, 0, 0}};
     char buffer[64];

@@ -924,7 +925,8 @@

     /* ICH6 has 4 SATA ports as master/slave on 2 channels so deal with pairs */
     if (ctlr->chip->chipid == ATA_I82801FB_S1 ||
-       ctlr->chip->chipid == ATA_I82801FB_R1) {
+       ctlr->chip->chipid == ATA_I82801FB_R1 ||
+       ctlr->chip->chipid == ATA_I82801FBM ) {
        mask = (0x0005 << ch->unit);
     }
     else {
diff -Nrau /usr/src/sys/dev/ata/ata-pci.h ./ata/ata-pci.h
--- /usr/src/sys/dev/ata/ata-pci.h      Wed Mar 23 07:14:11 2005
+++ ./ata/ata-pci.h     Thu May  5 15:36:38 2005
@@ -127,6 +127,7 @@
 #define ATA_I82801FB           0x266f8086
 #define ATA_I82801FB_S1                0x26518086
 #define ATA_I82801FB_R1                0x26528086
+#define ATA_I82801FBM          0x26538086

 #define ATA_ITE_ID             0x1283
 #define ATA_IT8212F            0x82121283
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: jhb 
State-Changed-When: Wed Jun 1 14:39:32 GMT 2005 
State-Changed-Why:  
I've committed this to 5-stable.  Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=80656 
>Unformatted:
