[PATCH 1/5] drm/xe/mocs: Refactor mocs/l3cc loop

Matt Roper matthew.d.roper at intel.com
Thu Feb 29 21:19:15 UTC 2024


On Tue, Feb 27, 2024 at 10:10:44PM -0800, Lucas De Marchi wrote:
> There's no reason to keep the assignment an condition in the same
> statement, particularly making use of the comma operator. Improve
> readability by doing each step on its own statement. This will make
> supporting odd number of entries more easily.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>

Reviewed-by: Matt Roper <matthew.d.roper at intel.com>

> ---
>  drivers/gpu/drm/xe/tests/xe_mocs.c | 17 +++++++++--------
>  drivers/gpu/drm/xe/xe_mocs.c       | 19 +++++++++----------
>  2 files changed, 18 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/tests/xe_mocs.c b/drivers/gpu/drm/xe/tests/xe_mocs.c
> index df0cbb2ddcb50..7c91e01c47a3a 100644
> --- a/drivers/gpu/drm/xe/tests/xe_mocs.c
> +++ b/drivers/gpu/drm/xe/tests/xe_mocs.c
> @@ -49,11 +49,11 @@ static void read_l3cc_table(struct xe_gt *gt,
>  	ret = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
>  	KUNIT_ASSERT_EQ_MSG(test, ret, 0, "Forcewake Failed.\n");
>  	mocs_dbg(&gt_to_xe(gt)->drm, "L3CC entries:%d\n", info->n_entries);
> -	for (i = 0;
> -	     i < (info->n_entries + 1) / 2 ?
> -	     (l3cc = l3cc_combine(get_entry_l3cc(info, 2 * i),
> -				  get_entry_l3cc(info, 2 * i + 1))), 1 : 0;
> -	     i++) {
> +
> +	for (i = 0; i < (info->n_entries + 1) / 2; i++) {
> +		l3cc = l3cc_combine(get_entry_l3cc(info, 2 * i),
> +				    get_entry_l3cc(info, 2 * i + 1));
> +
>  		if (GRAPHICS_VERx100(gt_to_xe(gt)) >= 1250)
>  			reg_val = xe_gt_mcr_unicast_read_any(gt, XEHP_LNCFCMOCS(i));
>  		else
> @@ -84,9 +84,10 @@ static void read_mocs_table(struct xe_gt *gt,
>  	mocs_dbg(&gt_to_xe(gt)->drm, "Global MOCS entries:%d\n", info->n_entries);
>  	drm_WARN_ONCE(&xe->drm, !info->unused_entries_index,
>  		      "Unused entries index should have been defined\n");
> -	for (i = 0;
> -	     i < info->n_entries ? (mocs = get_entry_control(info, i)), 1 : 0;
> -	     i++) {
> +
> +	for (i = 0; i < info->n_entries; i++) {
> +		mocs = get_entry_control(info, i);
> +
>  		if (GRAPHICS_VERx100(gt_to_xe(gt)) >= 1250)
>  			reg_val = xe_gt_mcr_unicast_read_any(gt, XEHP_GLOBAL_MOCS(i));
>  		else
> diff --git a/drivers/gpu/drm/xe/xe_mocs.c b/drivers/gpu/drm/xe/xe_mocs.c
> index 609d997b3e9b0..001e4301c639d 100644
> --- a/drivers/gpu/drm/xe/xe_mocs.c
> +++ b/drivers/gpu/drm/xe/xe_mocs.c
> @@ -473,9 +473,9 @@ static void __init_mocs_table(struct xe_gt *gt,
>  	mocs_dbg(&gt_to_xe(gt)->drm, "entries:%d\n", info->n_entries);
>  	drm_WARN_ONCE(&xe->drm, !info->unused_entries_index,
>  		      "Unused entries index should have been defined\n");
> -	for (i = 0;
> -	     i < info->n_entries ? (mocs = get_entry_control(info, i)), 1 : 0;
> -	     i++) {
> +	for (i = 0; i < info->n_entries; i++) {
> +		mocs = get_entry_control(info, i);
> +
>  		mocs_dbg(&gt_to_xe(gt)->drm, "GLOB_MOCS[%d] 0x%x 0x%x\n", i,
>  			 XELP_GLOBAL_MOCS(i).addr, mocs);
>  
> @@ -511,13 +511,12 @@ static void init_l3cc_table(struct xe_gt *gt,
>  	u32 l3cc;
>  
>  	mocs_dbg(&gt_to_xe(gt)->drm, "entries:%d\n", info->n_entries);
> -	for (i = 0;
> -	     i < (info->n_entries + 1) / 2 ?
> -	     (l3cc = l3cc_combine(get_entry_l3cc(info, 2 * i),
> -				  get_entry_l3cc(info, 2 * i + 1))), 1 : 0;
> -	     i++) {
> -		mocs_dbg(&gt_to_xe(gt)->drm, "LNCFCMOCS[%d] 0x%x 0x%x\n", i, XELP_LNCFCMOCS(i).addr,
> -			 l3cc);
> +	for (i = 0; i < (info->n_entries + 1) / 2; i++) {
> +		l3cc = l3cc_combine(get_entry_l3cc(info, 2 * i),
> +				    get_entry_l3cc(info, 2 * i + 1));
> +
> +		mocs_dbg(&gt_to_xe(gt)->drm, "LNCFCMOCS[%d] 0x%x 0x%x\n", i,
> +			 XELP_LNCFCMOCS(i).addr, l3cc);
>  
>  		if (GRAPHICS_VERx100(gt_to_xe(gt)) >= 1250)
>  			xe_gt_mcr_multicast_write(gt, XEHP_LNCFCMOCS(i), l3cc);
> -- 
> 2.43.0
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-xe mailing list