scsi: ufshcd: use an enum for quirks
Use an enum to specify the various quirks instead of #defines inside the structure definition. [mkp: fix typo] Link: https://lore.kernel.org/r/20200221140812.476338-3-hch@lst.de Reviewed-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Родитель
492001990f
Коммит
c3f7d1fcb4
|
@ -470,6 +470,48 @@ struct ufs_stats {
|
|||
struct ufs_err_reg_hist task_abort;
|
||||
};
|
||||
|
||||
enum ufshcd_quirks {
|
||||
/* Interrupt aggregation support is broken */
|
||||
UFSHCD_QUIRK_BROKEN_INTR_AGGR = 1 << 0,
|
||||
|
||||
/*
|
||||
* delay before each dme command is required as the unipro
|
||||
* layer has shown instabilities
|
||||
*/
|
||||
UFSHCD_QUIRK_DELAY_BEFORE_DME_CMDS = 1 << 1,
|
||||
|
||||
/*
|
||||
* If UFS host controller is having issue in processing LCC (Line
|
||||
* Control Command) coming from device then enable this quirk.
|
||||
* When this quirk is enabled, host controller driver should disable
|
||||
* the LCC transmission on UFS device (by clearing TX_LCC_ENABLE
|
||||
* attribute of device to 0).
|
||||
*/
|
||||
UFSHCD_QUIRK_BROKEN_LCC = 1 << 2,
|
||||
|
||||
/*
|
||||
* The attribute PA_RXHSUNTERMCAP specifies whether or not the
|
||||
* inbound Link supports unterminated line in HS mode. Setting this
|
||||
* attribute to 1 fixes moving to HS gear.
|
||||
*/
|
||||
UFSHCD_QUIRK_BROKEN_PA_RXHSUNTERMCAP = 1 << 3,
|
||||
|
||||
/*
|
||||
* This quirk needs to be enabled if the host controller only allows
|
||||
* accessing the peer dme attributes in AUTO mode (FAST AUTO or
|
||||
* SLOW AUTO).
|
||||
*/
|
||||
UFSHCD_QUIRK_DME_PEER_ACCESS_AUTO_MODE = 1 << 4,
|
||||
|
||||
/*
|
||||
* This quirk needs to be enabled if the host controller doesn't
|
||||
* advertise the correct version in UFS_VER register. If this quirk
|
||||
* is enabled, standard UFS host driver will call the vendor specific
|
||||
* ops (get_ufs_hci_version) to get the correct version.
|
||||
*/
|
||||
UFSHCD_QUIRK_BROKEN_UFS_HCI_VERSION = 1 << 5,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ufs_hba - per adapter private structure
|
||||
* @mmio_base: UFSHCI base register address
|
||||
|
@ -573,46 +615,6 @@ struct ufs_hba {
|
|||
bool is_irq_enabled;
|
||||
enum ufs_ref_clk_freq dev_ref_clk_freq;
|
||||
|
||||
/* Interrupt aggregation support is broken */
|
||||
#define UFSHCD_QUIRK_BROKEN_INTR_AGGR 0x1
|
||||
|
||||
/*
|
||||
* delay before each dme command is required as the unipro
|
||||
* layer has shown instabilities
|
||||
*/
|
||||
#define UFSHCD_QUIRK_DELAY_BEFORE_DME_CMDS 0x2
|
||||
|
||||
/*
|
||||
* If UFS host controller is having issue in processing LCC (Line
|
||||
* Control Command) coming from device then enable this quirk.
|
||||
* When this quirk is enabled, host controller driver should disable
|
||||
* the LCC transmission on UFS device (by clearing TX_LCC_ENABLE
|
||||
* attribute of device to 0).
|
||||
*/
|
||||
#define UFSHCD_QUIRK_BROKEN_LCC 0x4
|
||||
|
||||
/*
|
||||
* The attribute PA_RXHSUNTERMCAP specifies whether or not the
|
||||
* inbound Link supports unterminated line in HS mode. Setting this
|
||||
* attribute to 1 fixes moving to HS gear.
|
||||
*/
|
||||
#define UFSHCD_QUIRK_BROKEN_PA_RXHSUNTERMCAP 0x8
|
||||
|
||||
/*
|
||||
* This quirk needs to be enabled if the host contoller only allows
|
||||
* accessing the peer dme attributes in AUTO mode (FAST AUTO or
|
||||
* SLOW AUTO).
|
||||
*/
|
||||
#define UFSHCD_QUIRK_DME_PEER_ACCESS_AUTO_MODE 0x10
|
||||
|
||||
/*
|
||||
* This quirk needs to be enabled if the host contoller doesn't
|
||||
* advertise the correct version in UFS_VER register. If this quirk
|
||||
* is enabled, standard UFS host driver will call the vendor specific
|
||||
* ops (get_ufs_hci_version) to get the correct version.
|
||||
*/
|
||||
#define UFSHCD_QUIRK_BROKEN_UFS_HCI_VERSION 0x20
|
||||
|
||||
unsigned int quirks; /* Deviations from standard UFSHCI spec. */
|
||||
|
||||
/* Device deviations from standard UFS device spec. */
|
||||
|
|
Загрузка…
Ссылка в новой задаче