From patchwork Tue Jun 19 06:50:19 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [V2,11/16] ata: Use 32-bit DMA in AHCI for Loongson-3. X-Patchwork-Submitter: Huacai Chen X-Patchwork-Id: 165673 X-Patchwork-Delegate: davem@davemloft.net Message-Id: <1340088624-25550-12-git-send-email-chenhc@lemote.com> To: Ralf Baechle Cc: linux-mips@linux-mips.org, Fuxin Zhang , Zhangjin Wu , Huacai Chen , Hongliang Tao , Hua Yan , linux-ide@vger.kernel.org Date: Tue, 19 Jun 2012 14:50:19 +0800 From: Huacai Chen List-Id: This is a workaround because Loongson-3 has a hardware bug that it doesn't support DMA address above 4GB. Signed-off-by: Huacai Chen Signed-off-by: Hongliang Tao Signed-off-by: Hua Yan Cc: linux-ide@vger.kernel.org --- drivers/ata/ahci.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index ebaf67e..3e3cfd8 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -183,7 +183,12 @@ static const struct ata_port_info ahci_port_info[] = { }, [board_ahci_sb700] = /* for SB700 and SB800 */ { +#ifndef CONFIG_CPU_LOONGSON3 AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL), +#else + AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL | + AHCI_HFLAG_32BIT_ONLY), +#endif .flags = AHCI_FLAG_COMMON, .pio_mask = ATA_PIO4, .udma_mask = ATA_UDMA6,