From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754333AbbIQIjD (ORCPT ); Thu, 17 Sep 2015 04:39:03 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:39740 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754199AbbIQIi6 (ORCPT ); Thu, 17 Sep 2015 04:38:58 -0400 X-AuditID: cbfee68f-f793b6d000005f66-cd-55fa7c1f36ea Message-id: <55FA7A1F.7050604@samsung.com> Date: Thu, 17 Sep 2015 14:00:23 +0530 From: Alim Akhtar User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-version: 1.0 To: amit daniel kachhap Cc: linux-scsi@vger.kernel.org, "linux-kernel@vger.kernel.org" , vinholikatti@gmail.com, JBottomley@odin.com, essuuj@gmail.com Subject: Re: [PATCH 04/10] scsi: ufs: add quirk not to allow reset of interrupt aggregation References: <1440149281-26336-1-git-send-email-alim.akhtar@samsung.com> <1440149281-26336-5-git-send-email-alim.akhtar@samsung.com> In-reply-to: Content-type: text/plain; charset=UTF-8; format=flowed Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprBIsWRmVeSWpSXmKPExsWyRsSkVle+5leowYQNqhYNV0Msll9YwmTx f/1tFovLu+awWXRf38FmsWNhlQObx85Zd9k9Dv/4wezRt2UVo8fnTXIBLFFcNimpOZllqUX6 dglcGSf3TWctmC5S0X6/maWB8Tp/FyMnh4SAicSaljvMELaYxIV769m6GLk4hARWMEpMPbuW HaZoz66TUIlZjBIvezYyQTgPGCVuNFwDq+IV0JI4s+4l2CgWAVWJ5Y3T2UBsNgFtibvTtwA1 cHCICkRIPL4gBFEuKPFj8j0WkLCIgKHErO/iICOZBRYwSnw/uY8JpEZYIFbibMt5FohdZxgl 3mxpZwVJcAoES8yd+RpsF7OAmcSjlnVQtrzE5jVvmUEaJAQOsUtsfPMO6iABiW+TD4FtkxCQ ldh0AOplSYmDK26wTGAUm4XkpllIxs5CMnYBI/MqRtHUguSC4qT0ImO94sTc4tK8dL3k/NxN jMAIO/3vWf8OxrsHrA8xCnAwKvHwKrj8ChViTSwrrsw9xGgKdMVEZinR5HxgHOeVxBsamxlZ mJqYGhuZW5opifMulPoZLCSQnliSmp2aWpBaFF9UmpNafIiRiYNTqoGR+T3Hhgy569FrDwQG nno2j3PGe42Iy3a2XeuydErXGax9EmS01+LpiRm+eUI7Cj+Viuq8rC4PLhX48+vLSevJAWd9 NnHenbf6lvO2IK2a1GSxHYUb6h7vOJbgvDv57ymbfRN+ltz5tNWB7TnzF9t5QSU+y7+25x1V UL83/cpFwYlvXzsr7NlyV4mlOCPRUIu5qDgRAMUlRgerAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrKIsWRmVeSWpSXmKPExsVy+t9jQV35ml+hBk/uyVk0XA2xWH5hCZPF //W3WSwu75rDZtF9fQebxY6FVQ5sHjtn3WX3OPzjB7NH35ZVjB6fN8kFsEQ1MNpkpCampBYp pOYl56dk5qXbKnkHxzvHm5oZGOoaWlqYKynkJeam2iq5+AToumXmAO1WUihLzCkFCgUkFhcr 6dthmhAa4qZrAdMYoesbEgTXY2SABhLWMGac3DedtWC6SEX7/WaWBsbr/F2MnBwSAiYSe3ad ZIOwxSQu3FsPZHNxCAnMYpR42bORCcJ5wChxo+EaO0gVr4CWxJl1L5lBbBYBVYnljdPButkE tCXuTt8C1MDBISoQIfH4ghBEuaDEj8n3WEDCIgKGErO+i4OMZBZYwCjx/eQ+JpAaYYFYibMt 51kgdp1hlHizpZ0VJMEpECwxd+ZrsF3MAmYSj1rWQdnyEpvXvGWewAh0JsKOWUjKZiEpW8DI vIpRIrUguaA4KT3XMC+1XK84Mbe4NC9dLzk/dxMjOIqfSe1gPLjL/RCjAAejEg+vgsuvUCHW xLLiytxDjBIczEoivCzZQCHelMTKqtSi/Pii0pzU4kOMpsBAmMgsJZqcD0wweSXxhsYm5qbG ppYmFiZmlkrivLIrn4UKCaQnlqRmp6YWpBbB9DFxcEo1MNZffL5v1jKvC1NMrC2mCcdtPHFV U3lZYe01Zu3zJd6mv25lNDzjuHGNeXdr2guJzisOvgttJ505M1vklZzMrCu6E4rLGjOUW/QN 5C9XhC0onfVrxT19/Zc+2ckST04W/Di79IyNlYGsvIL2EZb7jXtEKncEhHL9uDat83mg7+0o Ddu1S86vWKTEUpyRaKjFXFScCACtwrqO+AIAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Amit On 08/26/2015 11:46 AM, amit daniel kachhap wrote: > Few comments below, > > On Fri, Aug 21, 2015 at 2:57 PM, Alim Akhtar wrote: >> From: Seungwon Jeon >> >> Some host controller supports interrupt aggregation, but doesn't >> allow to reset counter and timer by s/w. >> >> Signed-off-by: Seungwon Jeon >> Signed-off-by: Alim Akhtar >> --- >> drivers/scsi/ufs/ufshcd.c | 3 ++- >> drivers/scsi/ufs/ufshcd.h | 6 ++++++ >> 2 files changed, 8 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c >> index b441a39..35380aa 100644 >> --- a/drivers/scsi/ufs/ufshcd.c >> +++ b/drivers/scsi/ufs/ufshcd.c >> @@ -3204,7 +3204,8 @@ static void ufshcd_transfer_req_compl(struct ufs_hba *hba) >> * false interrupt if device completes another request after resetting >> * aggregation and before reading the DB. >> */ >> - if (ufshcd_is_intr_aggr_allowed(hba)) >> + if (ufshcd_is_intr_aggr_allowed(hba) && >> + !(hba->quirks & UFSHCI_QUIRK_BROKEN_RESET_INTR_AGGR)) > How about to rename this quirk as UFSHCI_QUIRK_SKIP_RESET_INTR_AGGR as > there are some drawbacks about the existing method also as per the > comments above. Or this can be also put as opts instead as quirk. Ok will rename this. Thanks >> ufshcd_reset_intr_aggr(hba); >> >> tr_doorbell = ufshcd_readl(hba, REG_UTP_TRANSFER_REQ_DOOR_BELL); >> diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h >> index 24245c9..7986a54 100644 >> --- a/drivers/scsi/ufs/ufshcd.h >> +++ b/drivers/scsi/ufs/ufshcd.h >> @@ -471,6 +471,12 @@ struct ufs_hba { >> */ >> #define UFSHCI_QUIRK_BROKEN_REQ_LIST_CLR UFS_BIT(7) >> >> + /* >> + * This quirk needs to be enabled if host controller doesn't allow >> + * that the interrupt aggregation timer and counter are reset by s/w. >> + */ >> + #define UFSHCI_QUIRK_BROKEN_RESET_INTR_AGGR UFS_BIT(8) >> + >> unsigned int quirks; /* Deviations from standard UFSHCI spec. */ >> >> wait_queue_head_t tm_wq; >> -- >> 1.7.10.4 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> Please read the FAQ at http://www.tux.org/lkml/ >