mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-19 10:44:14 +08:00
scsi: ufs: add quirk to disallow reset of interrupt aggregation
Some host controllers support interrupt aggregation but don't allow resetting counter and timer in software. Signed-off-by: Seungwon Jeon <essuuj@gmail.com> Signed-off-by: Alim Akhtar <alim.akhtar@samsung.com> Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
1399c5b02c
commit
5ac6abc941
@ -4659,7 +4659,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_SKIP_RESET_INTR_AGGR))
|
||||
ufshcd_reset_intr_aggr(hba);
|
||||
|
||||
tr_doorbell = ufshcd_readl(hba, REG_UTP_TRANSFER_REQ_DOOR_BELL);
|
||||
|
@ -600,6 +600,12 @@ struct ufs_hba {
|
||||
*/
|
||||
#define UFSHCI_QUIRK_BROKEN_REQ_LIST_CLR 0x100
|
||||
|
||||
/*
|
||||
* 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_SKIP_RESET_INTR_AGGR 0x200
|
||||
|
||||
unsigned int quirks; /* Deviations from standard UFSHCI spec. */
|
||||
|
||||
/* Device deviations from standard UFS device spec. */
|
||||
|
Loading…
Reference in New Issue
Block a user