Re: [PATCH 1/8] arch/sh: add sh7786_mm_sel() function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/12/2017 16:09, Thomas Petazzoni wrote:

> The SH7786 has different physical memory layout configurations,
> configurable through the MMSELR register. The configuration is
> typically defined by the bootloader, so Linux generally doesn't care.
> 
> Except that depending on the configuration, some PCI MEM areas may or
> may not be available. This commit adds a helper function that allows
> to retrieve the current physical memory layout configuration. It will
> be used in a following patch to exclude unusable PCI MEM areas during
> the PCI initialization.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx>
> ---
>  arch/sh/include/cpu-sh4/cpu/sh7786.h | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/arch/sh/include/cpu-sh4/cpu/sh7786.h b/arch/sh/include/cpu-sh4/cpu/sh7786.h
> index 0df09e638f09..96b8cb1f754a 100644
> --- a/arch/sh/include/cpu-sh4/cpu/sh7786.h
> +++ b/arch/sh/include/cpu-sh4/cpu/sh7786.h
> @@ -14,6 +14,8 @@
>  #ifndef __CPU_SH7786_H__
>  #define __CPU_SH7786_H__
>  
> +#include <linux/io.h>
> +
>  enum {
>  	/* PA */
>  	GPIO_PA7, GPIO_PA6, GPIO_PA5, GPIO_PA4,
> @@ -131,4 +133,9 @@ enum {
>  	GPIO_FN_IRL7, GPIO_FN_IRL6, GPIO_FN_IRL5, GPIO_FN_IRL4,
>  };
>  
> +static inline u32 sh7786_mm_sel(void)
> +{
> +	return __raw_readl(0xFC400020) & 0x7;

I thought we were never supposed to use __raw_readl(), rather use readl_relaxed() instead?

The difference is that readl_relaxed() takes care of endianness, which would seem relevant
since you have both endianness. Am I missing something?

Regards.



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux