scsi: ufshcd: use an enum for quirks
authorChristoph Hellwig <hch@lst.de>
Fri, 21 Feb 2020 14:08:12 +0000 (06:08 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 29 Feb 2020 01:37:00 +0000 (20:37 -0500)
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>
drivers/scsi/ufs/ufshcd.h

index 6f22f466668f709464d1d98dbf844b62d87bf4ee..d45a04444191e82ab406bd56286cd654bd339576 100644 (file)
@@ -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. */