From patchwork Tue May 25 19:34:26 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejun Heo X-Patchwork-Id: 53575 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 72CD6B6EFF for ; Wed, 26 May 2010 05:34:33 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758734Ab0EYTeb (ORCPT ); Tue, 25 May 2010 15:34:31 -0400 Received: from hera.kernel.org ([140.211.167.34]:49306 "EHLO hera.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758533Ab0EYTea (ORCPT ); Tue, 25 May 2010 15:34:30 -0400 Received: from htj.dyndns.org (localhost [127.0.0.1]) by hera.kernel.org (8.14.3/8.14.3) with ESMTP id o4PJYQk2008567; Tue, 25 May 2010 19:34:27 GMT X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.95.2 at hera.kernel.org Received: from [127.0.0.2] (htj.dyndns.org [127.0.0.2]) by htj.dyndns.org (Postfix) with ESMTPSA id 46E0F100C923F; Tue, 25 May 2010 21:34:26 +0200 (CEST) Message-ID: <4BFC2642.1050600@kernel.org> Date: Tue, 25 May 2010 21:34:26 +0200 From: Tejun Heo User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4 MIME-Version: 1.0 To: =?UTF-8?B?Q2VuZ2l6IEfDvG5heQ==?= CC: Robert Hancock , "linux-kernel@vger.kernel.org" , "linux-ide@vger.kernel.org" Subject: Re: sata_nv times out for BD-ROM iHOS104-08 References: <4B7C9CEE.4080902@kernel.org> <4B8085E7.5000501@kernel.org> <4B833FA1.8030207@kernel.org> <4B8CFAF4.7030303@kernel.org> <4B95A27E.9010302@kernel.org> In-Reply-To: X-Enigmail-Version: 1.0.1 X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on hera.kernel.org X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.3 (hera.kernel.org [127.0.0.1]); Tue, 25 May 2010 19:34:28 +0000 (UTC) Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Hello, Alright, I don't have access to mcp51 but tested with mcp55 and could reproduce similar problem. It seems nIEN on mcp55 is stuck once set and iHOS104 doesn't set I on D2H FIS if nIEN is set on command H2D FIS, which the SATA standard specifically mandates not to do. So, the combination of buggy mcp55 ctl handling + buggy iHOS104 nIEN handling leads to nobody raising interrupt. The problem is that the problem I'm seeing is not completely identical to the one you're seeing. The difference could be coming from different firmware version on the drives or different controllers. Anyways, can you please give a shot at the attached patch? Thanks. diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c index baa8f0d..69d23c2 100644 --- a/drivers/ata/sata_nv.c +++ b/drivers/ata/sata_nv.c @@ -1669,7 +1669,6 @@ static void nv_mcp55_freeze(struct ata_port *ap) mask = readl(mmio_base + NV_INT_ENABLE_MCP55); mask &= ~(NV_INT_ALL_MCP55 << shift); writel(mask, mmio_base + NV_INT_ENABLE_MCP55); - ata_sff_freeze(ap); } static void nv_mcp55_thaw(struct ata_port *ap) @@ -1683,7 +1682,6 @@ static void nv_mcp55_thaw(struct ata_port *ap) mask = readl(mmio_base + NV_INT_ENABLE_MCP55); mask |= (NV_INT_MASK_MCP55 << shift); writel(mask, mmio_base + NV_INT_ENABLE_MCP55); - ata_sff_thaw(ap); } static void nv_adma_error_handler(struct ata_port *ap)