From e5b8f6757e3fbebaec3a07b81d176dabe25b34c3 Mon Sep 17 00:00:00 2001 From: Subhash Jadavani Date: Wed, 28 Aug 2013 20:20:27 +0530 Subject: [PATCH] scsi: ufs: add support to allow non standard behaviours (quirks) Some implementation of UFS host controller HW might have some non-standard behaviours (quirks) when compared to behaviour specified by UFSHCI specification. This patch add support to allow specifying all such quirks to standard UFS host controller driver so standard driver takes them into account. Currently only couple of quirks (UFSHCD_QUIRK_BROKEN_HIBERN8 & UFSHCD_QUIRK_BROKEN_INTR_AGGR) are added but new quirks can be added as and when other non standard behaviours are found. Change-Id: Ie8e686bb59e7933a281a4ff189a35c71036b1e92 Signed-off-by: Subhash Jadavani [subhashj@codeaurora.org: resolved trivial merge conflicts] Signed-off-by: Subhash Jadavani --- drivers/scsi/ufs/ufshcd.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index c74f8c4a69f1..d3b6b37a8dd6 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -489,6 +489,14 @@ struct ufs_hba { unsigned long tm_condition; unsigned long tm_slots_in_use; + unsigned int quirks; /* Deviations from standard UFSHCI spec. */ + + /* Interrupt aggregation support is broken */ + #define UFSHCD_QUIRK_BROKEN_INTR_AGGR (1<<0) + + /* HIBERN8 support is broken */ + #define UFSHCD_QUIRK_BROKEN_HIBERN8 (1<<1) + struct uic_command *active_uic_cmd; struct mutex uic_cmd_mutex; struct completion *uic_async_done;