[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2f7c30cab1abf458930ac4253ff17ee1@codeaurora.org>
Date: Thu, 05 Mar 2020 13:44:39 +0800
From: Can Guo <cang@...eaurora.org>
To: Stanley Chu <stanley.chu@...iatek.com>
Cc: linux-scsi@...r.kernel.org, martin.petersen@...cle.com,
avri.altman@....com, alim.akhtar@...sung.com, jejb@...ux.ibm.com,
beanhuo@...ron.com, asutoshd@...eaurora.org,
matthias.bgg@...il.com, bvanassche@....org,
linux-mediatek@...ts.infradead.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
kuohong.wang@...iatek.com, peter.wang@...iatek.com,
chun-hung.wu@...iatek.com, andy.teng@...iatek.com
Subject: Re: [PATCH v1 2/4] scsi: ufs: use an enum for host capabilities
Hi Stanley,
On 2020-03-05 12:07, Stanley Chu wrote:
> Use an enum to specify the host capabilities instead of #defines inside
> the
> structure definition.
>
> Signed-off-by: Stanley Chu <stanley.chu@...iatek.com>
Reviewed-by: Can Guo <cang@...eaurora.org>
> ---
> drivers/scsi/ufs/ufshcd.h | 65 ++++++++++++++++++++++-----------------
> 1 file changed, 37 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
> index 4e235cef99bc..49ade1bfd085 100644
> --- a/drivers/scsi/ufs/ufshcd.h
> +++ b/drivers/scsi/ufs/ufshcd.h
> @@ -510,6 +510,43 @@ enum ufshcd_quirks {
> UFSHCD_QUIRK_BROKEN_UFS_HCI_VERSION = 1 << 5,
> };
>
> +enum ufshcd_caps {
> + /* Allow dynamic clk gating */
> + UFSHCD_CAP_CLK_GATING = 1 << 0,
> +
> + /* Allow hiberb8 with clk gating */
> + UFSHCD_CAP_HIBERN8_WITH_CLK_GATING = 1 << 1,
> +
> + /* Allow dynamic clk scaling */
> + UFSHCD_CAP_CLK_SCALING = 1 << 2,
> +
> + /* Allow auto bkops to enabled during runtime suspend */
> + UFSHCD_CAP_AUTO_BKOPS_SUSPEND = 1 << 3,
> +
> + /*
> + * This capability allows host controller driver to use the UFS HCI's
> + * interrupt aggregation capability.
> + * CAUTION: Enabling this might reduce overall UFS throughput.
> + */
> + UFSHCD_CAP_INTR_AGGR = 1 << 4,
> +
> + /*
> + * This capability allows the device auto-bkops to be always enabled
> + * except during suspend (both runtime and suspend).
> + * Enabling this capability means that device will always be allowed
> + * to do background operation when it's active but it might degrade
> + * the performance of ongoing read/write operations.
> + */
> + UFSHCD_CAP_KEEP_AUTO_BKOPS_ENABLED_EXCEPT_SUSPEND = 1 << 5,
> +
> + /*
> + * This capability allows host controller driver to automatically
> + * enable runtime power management by itself instead of waiting
> + * for userspace to control the power management.
> + */
> + UFSHCD_CAP_RPM_AUTOSUSPEND = 1 << 6,
> +};
> +
> /**
> * struct ufs_hba - per adapter private structure
> * @mmio_base: UFSHCI base register address
> @@ -662,34 +699,6 @@ struct ufs_hba {
> struct ufs_clk_gating clk_gating;
> /* Control to enable/disable host capabilities */
> u32 caps;
> - /* Allow dynamic clk gating */
> -#define UFSHCD_CAP_CLK_GATING (1 << 0)
> - /* Allow hiberb8 with clk gating */
> -#define UFSHCD_CAP_HIBERN8_WITH_CLK_GATING (1 << 1)
> - /* Allow dynamic clk scaling */
> -#define UFSHCD_CAP_CLK_SCALING (1 << 2)
> - /* Allow auto bkops to enabled during runtime suspend */
> -#define UFSHCD_CAP_AUTO_BKOPS_SUSPEND (1 << 3)
> - /*
> - * This capability allows host controller driver to use the UFS HCI's
> - * interrupt aggregation capability.
> - * CAUTION: Enabling this might reduce overall UFS throughput.
> - */
> -#define UFSHCD_CAP_INTR_AGGR (1 << 4)
> - /*
> - * This capability allows the device auto-bkops to be always enabled
> - * except during suspend (both runtime and suspend).
> - * Enabling this capability means that device will always be allowed
> - * to do background operation when it's active but it might degrade
> - * the performance of ongoing read/write operations.
> - */
> -#define UFSHCD_CAP_KEEP_AUTO_BKOPS_ENABLED_EXCEPT_SUSPEND (1 << 5)
> - /*
> - * This capability allows host controller driver to automatically
> - * enable runtime power management by itself instead of waiting
> - * for userspace to control the power management.
> - */
> -#define UFSHCD_CAP_RPM_AUTOSUSPEND (1 << 6)
>
> struct devfreq *devfreq;
> struct ufs_clk_scaling clk_scaling;
Powered by blists - more mailing lists