From patchwork Tue Mar 10 15:48:10 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 5978711 Return-Path: X-Original-To: patchwork-linux-mmc@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 4170CBF440 for ; Tue, 10 Mar 2015 15:48:25 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 6D5D22017D for ; Tue, 10 Mar 2015 15:48:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5CDC220148 for ; Tue, 10 Mar 2015 15:48:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751939AbbCJPsW (ORCPT ); Tue, 10 Mar 2015 11:48:22 -0400 Received: from mail-ie0-f170.google.com ([209.85.223.170]:33564 "EHLO mail-ie0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750937AbbCJPsV (ORCPT ); Tue, 10 Mar 2015 11:48:21 -0400 Received: by iecvj10 with SMTP id vj10so19739924iec.0 for ; Tue, 10 Mar 2015 08:48:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id; bh=rO+bAN3K9GkQEQLh2rqPuM3rQxMHWUtchVi3b60+x2c=; b=kq+u1wUg6wCP+aUxXrCFFDy5dLMd431T+OMZlHcNUToxiHsdfCQWF6VPHCJVe+niX/ STSFDc60tLaG4WlHYPJNtKXbeQInyfm1q/B6uPjvKgUR1zqKJYRKVs516loH85cxeXTj v/+o5r0sImykaQGWwqDyEaii6Uqq+SyfTWOuU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=rO+bAN3K9GkQEQLh2rqPuM3rQxMHWUtchVi3b60+x2c=; b=fBsL/7UOQKJy5zutFHKp31Vwkxk/OH2bKZIoiIanNBpqn20eqthKZ7x1soBD29DYwC TfPvx2PJJkZ+zmQ+In1tICxDTGj6XdBIrdmOckY+N5H+Gfg4RZaf1Lvlmhd1AVX83J9i 50rBXkdNhr2IGFywmGA1teP7+8eaRwq/plPWU8OoNmrrfC2uxMaq0CPQEN67tM9p0mU+ JRBQ05anfxpbQRNQGoGIGqJm5tjX6F9S4WZHlbMZWWYcLTTXqWAfihOBxnBF5C+YaJzl 63/bw9TLW8hCNNCul79WVH3547PMoYOVVSyVRN8EFXEuRjaj1NVaFDeV984oXQSurrFN qpKg== X-Gm-Message-State: ALoCoQnt5dBT4egDPpiTgqyoAh9Qxmn8BarfxApVFooleYmNKksOUejzuH3LuK58E+r13siFRlaU X-Received: by 10.50.79.166 with SMTP id k6mr58580797igx.27.1426002500771; Tue, 10 Mar 2015 08:48:20 -0700 (PDT) Received: from tictac.mtv.corp.google.com ([172.22.65.76]) by mx.google.com with ESMTPSA id x10sm669864igl.13.2015.03.10.08.48.19 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 10 Mar 2015 08:48:20 -0700 (PDT) From: Doug Anderson To: Jaehoon Chung , Seungwon Jeon , Ulf Hansson Cc: Alim Akhtar , Sonny Rao , Andrew Bresticker , Heiko Stuebner , Addy Ke , Alexandru Stan , javier.martinez@collabora.co.uk, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Doug Anderson , chris@printf.net, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] mmc: dw_mmc: Consider HLE errors to be data and command errors Date: Tue, 10 Mar 2015 08:48:10 -0700 Message-Id: <1426002490-2014-1-git-send-email-dianders@chromium.org> X-Mailer: git-send-email 2.2.0.rc0.207.ga3a616c Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The dw_mmc driver enables HLE errors as part of DW_MCI_ERROR_FLAGS but nothing in the interrupt handler actually handles them and ACKs them. That means that if we ever get an HLE error we'll just keep getting interrupts and we'll wedge things. We really don't expect HLE errors but if we ever get them we shouldn't silently ignore them. Note that I have seen HLE errors while constantly ejecting and inserting cards (ejecting while inserting, etc). Signed-off-by: Doug Anderson --- Note that this works together with the patch I sent up yesterday (the CMD 11 timer). I would have sent the two together except that I had local printouts (and ACKing of HLE) and didn't realize that this was also required for a full solution. drivers/mmc/host/dw_mmc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c index 47dfd0e..294edc9c 100644 --- a/drivers/mmc/host/dw_mmc.c +++ b/drivers/mmc/host/dw_mmc.c @@ -44,11 +44,11 @@ /* Common flag combinations */ #define DW_MCI_DATA_ERROR_FLAGS (SDMMC_INT_DRTO | SDMMC_INT_DCRC | \ SDMMC_INT_HTO | SDMMC_INT_SBE | \ - SDMMC_INT_EBE) + SDMMC_INT_EBE | SDMMC_INT_HLE) #define DW_MCI_CMD_ERROR_FLAGS (SDMMC_INT_RTO | SDMMC_INT_RCRC | \ - SDMMC_INT_RESP_ERR) + SDMMC_INT_RESP_ERR | SDMMC_INT_HLE) #define DW_MCI_ERROR_FLAGS (DW_MCI_DATA_ERROR_FLAGS | \ - DW_MCI_CMD_ERROR_FLAGS | SDMMC_INT_HLE) + DW_MCI_CMD_ERROR_FLAGS) #define DW_MCI_SEND_STATUS 1 #define DW_MCI_RECV_STATUS 2 #define DW_MCI_DMA_THRESHOLD 16