From owner-p4-projects@FreeBSD.ORG Wed Jun 10 13:35:38 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C44B41065678; Wed, 10 Jun 2009 13:35:37 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 842E4106564A for ; Wed, 10 Jun 2009 13:35:37 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 729658FC15 for ; Wed, 10 Jun 2009 13:35:37 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5ADZbSU065689 for ; Wed, 10 Jun 2009 13:35:37 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5ADZbxP065687 for perforce@freebsd.org; Wed, 10 Jun 2009 13:35:37 GMT (envelope-from mav@freebsd.org) Date: Wed, 10 Jun 2009 13:35:37 GMT Message-Id: <200906101335.n5ADZbxP065687@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 163988 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 13:35:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=163988 Change 163988 by mav@mav_mavbook on 2009/06/10 13:35:18 Disable NCQ when device supports less then 32 tags. It allows to avoid tag collision on controller level when PM isused. Limit maximum transaction size if device does not have 48bit command support. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#8 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#8 (text+ko) ==== @@ -599,7 +599,8 @@ softc->flags |= DA_FLAG_CAN_48BIT; if (cgd->ident_data.support.command2 & ATA_SUPPORT_FLUSHCACHE) softc->flags |= DA_FLAG_CAN_FLUSHCACHE; - if (cgd->ident_data.satacapabilities & ATA_SUPPORT_NCQ) + if (cgd->ident_data.satacapabilities & ATA_SUPPORT_NCQ && + cgd->ident_data.queue >= 31) softc->flags |= DA_FLAG_CAN_NCQ; // if ((cgd->inq_data.flags & SID_CmdQue) != 0) // softc->flags |= DA_FLAG_TAGGED_QUEUING; @@ -641,7 +642,10 @@ // softc->disk->d_dump = dadump; softc->disk->d_name = "ada"; softc->disk->d_drv1 = periph; - softc->disk->d_maxsize = 256*1024; + if (cgd->ident_data.support.command2 & ATA_SUPPORT_ADDRESS48) + softc->disk->d_maxsize = MAXPHYS; /* ahci driver limit */ + else + softc->disk->d_maxsize = 255 * 512; /* 28bit ATA command limit */ softc->disk->d_unit = periph->unit_number; softc->disk->d_flags = 0; if (softc->flags & DA_FLAG_CAN_FLUSHCACHE)