From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750927AbcEHVbi (ORCPT ); Sun, 8 May 2016 17:31:38 -0400 Received: from unicorn.mansr.com ([81.2.72.234]:49354 "EHLO unicorn.mansr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750781AbcEHVbg convert rfc822-to-8bit (ORCPT ); Sun, 8 May 2016 17:31:36 -0400 X-Greylist: delayed 351 seconds by postgrey-1.27 at vger.kernel.org; Sun, 08 May 2016 17:31:36 EDT From: =?iso-8859-1?Q?M=E5ns_Rullg=E5rd?= To: Tejun Heo Cc: Andy Shevchenko , linux-ide@vger.kernel.org, Rob Herring , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, Christian Lamparter , Julian Margetson Subject: Re: [PATCH v2 03/23] ata: sata_dwc_460ex: set dma_boundary to 0x1fff References: <1461661404-1952-1-git-send-email-andriy.shevchenko@linux.intel.com> <1461661404-1952-4-git-send-email-andriy.shevchenko@linux.intel.com> <20160508194112.GL4775@htj.duckdns.org> Date: Sun, 08 May 2016 22:25:39 +0100 In-Reply-To: <20160508194112.GL4775@htj.duckdns.org> (Tejun Heo's message of "Sun, 8 May 2016 15:41:12 -0400") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Tejun Heo writes: > On Tue, Apr 26, 2016 at 12:03:04PM +0300, Andy Shevchenko wrote: >> diff --git a/drivers/ata/sata_dwc_460ex.c b/drivers/ata/sata_dwc_460ex.c >> index 7f95389..aee8873 100644 >> --- a/drivers/ata/sata_dwc_460ex.c >> +++ b/drivers/ata/sata_dwc_460ex.c >> @@ -1151,7 +1151,13 @@ static struct scsi_host_template sata_dwc_sht = { >> */ >> .sg_tablesize = LIBATA_MAX_PRD, >> /* .can_queue = ATA_MAX_QUEUE, */ >> - .dma_boundary = ATA_DMA_BOUNDARY, >> + /* >> + * Make sure a LLI block is not created that will span 8K max FIS >> + * boundary. If the block spans such a FIS boundary, there is a chance >> + * that a DMA burst will cross that boundary -- this results in an >> + * error in the host controller. >> + */ >> + .dma_boundary = 0x1fff /* ATA_DMA_BOUNDARY */, > > The host controller can't cross 8k boundary? Is this for real? >>From the manual: DMA block and burst transaction sizes are critical for DMA operation. (Also see the definition of "DMA transfer".) These sizes should be selected properly to ensure error-free bus transfers. It is required that the DMA write burst transfer does not cross the 8192-byte Data FIS boundary, because the Transport Layer maintains the DMA state for the duration of the Data FIS transmission. -- Måns Rullgård