On 6/16/25 15:11, Ilias Apalodimas wrote:
> Hi Jerome,
>
> [...]
>
>>
>> If I'm not mistaken, this patch is doing two things that are unrelated:
>> (1) fix the KVM issue and
>> (2) get rid of the __arch_*() macros in favor of the __raw_*() macros
>
> I can split it, but I don't see much point since we redefine the raw_macros.
Just to make it easier to review.
>
>>
>> IMO this should be two separate patches.
>>
>>>
>>> /*
>>> * The compiler seems to be incapable of optimising constants
>>> diff --git a/drivers/spi/fsl_dspi.c b/drivers/spi/fsl_dspi.c
>>> index f2393c041f44..545561ad1169 100644
>>> --- a/drivers/spi/fsl_dspi.c
>>> +++ b/drivers/spi/fsl_dspi.c
>>> @@ -123,8 +123,10 @@ static uint dspi_read32(uint flags, uint *addr)
>>>
>>> static void dspi_write32(uint flags, uint *addr, uint val)
>>> {
>>> - flags & DSPI_FLAG_REGMAP_ENDIAN_BIG ?
>>> - out_be32(addr, val) : out_le32(addr, val);
>>> + if (flags & DSPI_FLAG_REGMAP_ENDIAN_BIG)
>>> + out_be32(addr, val);
>>> + else
>>> + out_le32(addr, val);
>>> }
>>
>> Unrelated change
>
> Due to the the new do {} while(0) macro this doesn't compile, so it
> needs to go together.
If you make all the __raw_*() macros compound litterals, i.e., ({ ... })
it should not be necessary I think.
>
>>
>>>
>>> static void dspi_halt(struct fsl_dspi_priv *priv, u8 halt)
>>> diff --git a/include/fsl_ifc.h b/include/fsl_ifc.h
>>> index 3ac226879303..1c363115beb2 100644
>>> --- a/include/fsl_ifc.h
>>> +++ b/include/fsl_ifc.h
>>> @@ -803,29 +803,29 @@ void init_final_memctl_regs(void);
>>> ((struct fsl_ifc_fcm *)CFG_SYS_IFC_ADDR)
>>>
>>> #define get_ifc_cspr_ext(i) \
>>> - (ifc_in32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr_ext))
>>> + ifc_in32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr_ext)
>>> #define get_ifc_cspr(i) \
>>> - (ifc_in32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr))
>>> + ifc_in32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr)
>>> #define get_ifc_csor_ext(i) \
>>> - (ifc_in32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor_ext))
>>> + ifc_in32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor_ext)
>>> #define get_ifc_csor(i) \
>>> - (ifc_in32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor))
>>> + ifc_in32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor)
>>> #define get_ifc_amask(i) \
>>> - (ifc_in32(&(IFC_FCM_BASE_ADDR)->amask_cs[i].amask))
>>> + ifc_in32(&(IFC_FCM_BASE_ADDR)->amask_cs[i].amask)
>>> #define get_ifc_ftim(i, j) \
>>> - (ifc_in32(&(IFC_FCM_BASE_ADDR)->ftim_cs[i].ftim[j]))
>>> + ifc_in32(&(IFC_FCM_BASE_ADDR)->ftim_cs[i].ftim[j])
>>> #define set_ifc_cspr_ext(i, v) \
>>> - (ifc_out32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr_ext, v))
>>> + ifc_out32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr_ext, v)
>>> #define set_ifc_cspr(i, v) \
>>> - (ifc_out32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr, v))
>>> + ifc_out32(&(IFC_FCM_BASE_ADDR)->cspr_cs[i].cspr, v)
>>> #define set_ifc_csor_ext(i, v) \
>>> - (ifc_out32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor_ext, v))
>>> + ifc_out32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor_ext, v)
>>> #define set_ifc_csor(i, v) \
>>> - (ifc_out32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor, v))
>>> + ifc_out32(&(IFC_FCM_BASE_ADDR)->csor_cs[i].csor, v)
>>> #define set_ifc_amask(i, v) \
>>> - (ifc_out32(&(IFC_FCM_BASE_ADDR)->amask_cs[i].amask, v))
>>> + ifc_out32(&(IFC_FCM_BASE_ADDR)->amask_cs[i].amask, v)
>>> #define set_ifc_ftim(i, j, v) \
>>> - (ifc_out32(&(IFC_FCM_BASE_ADDR)->ftim_cs[i].ftim[j], v))
>>> + ifc_out32(&(IFC_FCM_BASE_ADDR)->ftim_cs[i].ftim[j], v)
>>
>> Same.
>
> Same here, both of the changes are needed
>
> Thanks
> /Ilias
>>
>>>
>>> enum ifc_chip_sel {
>>> IFC_CS0,
>>> --
>>> 2.43.0
>>>
>>
>> Thanks,
>> --
>> Jerome