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>
[subhashj@codeaurora.org: resolved trivial merge conflicts]
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
This commit is contained in:
Subhash Jadavani 2013-08-28 20:20:27 +05:30 committed by David Keitel
parent 2a239fdc64
commit e5b8f6757e

View file

@ -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;