All of lore.kernel.org
 help / color / mirror / Atom feed
From: thomas.petazzoni@free-electrons.com (Thomas Petazzoni)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/4] ARM: mvebu: returns ll_get_cpuid() to ll_get_coherency_cpumask()
Date: Mon, 26 May 2014 15:26:18 +0200	[thread overview]
Message-ID: <20140526152618.39c088ae@free-electrons.com> (raw)
In-Reply-To: <1400762882-10116-5-git-send-email-thomas.petazzoni@free-electrons.com>

Hello Jason,

There is a typo in the title of this commit: s/returns/rename/.

Should I respin this patch, or can you fix directly in mvebu/soc ?

Thanks, and sorry for the mess :/

Thomas

On Thu, 22 May 2014 14:48:02 +0200, Thomas Petazzoni wrote:
> In the refactoring of the coherency fabric assembly code, a function
> called ll_get_cpuid() was created to factorize common logic between
> functions adding CPU to the SMP coherency group, enabling and
> disabling the coherency.
> 
> However, the name of the function is highly misleading: ll_get_cpuid()
> makes one think tat it returns the ID of the CPU, i.e 0 for CPU0, 1
> for CPU1, etc. In fact, this is not at all what this function returns:
> it returns a CPU mask for the current CPU, usable for the coherency
> fabric configuration and control registers.
> 
> Therefore this commit renames this function to
> ll_get_coherency_cpumask(), and adds additional comments on top of the
> function to explain in more details what it does, and also how the
> endianess issue is handled.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>  arch/arm/mach-mvebu/coherency_ll.S | 43 ++++++++++++++++++++++----------------
>  1 file changed, 25 insertions(+), 18 deletions(-)
> 
> diff --git a/arch/arm/mach-mvebu/coherency_ll.S b/arch/arm/mach-mvebu/coherency_ll.S
> index 311442a..510c29e 100644
> --- a/arch/arm/mach-mvebu/coherency_ll.S
> +++ b/arch/arm/mach-mvebu/coherency_ll.S
> @@ -49,15 +49,22 @@ ENTRY(ll_get_coherency_base)
>  	mov	pc, lr
>  ENDPROC(ll_get_coherency_base)
>  
> -/* Returns the CPU ID in r3 (r0 is untouched) */
> -ENTRY(ll_get_cpuid)
> +/*
> + * Returns the coherency CPU mask in r3 (r0 is untouched). This
> + * coherency CPU mask can be used with the coherency fabric
> + * configuration and control registers. Note that the mask is already
> + * endian-swapped as appropriate so that the calling functions do not
> + * have to care about endianness issues while accessing the coherency
> + * fabric registers
> + */
> +ENTRY(ll_get_coherency_cpumask)
>  	mrc	15, 0, r3, cr0, cr0, 5
>  	and	r3, r3, #15
>  	mov	r2, #(1 << 24)
>  	lsl	r3, r2, r3
>  ARM_BE8(rev	r3, r3)
>  	mov	pc, lr
> -ENDPROC(ll_get_cpuid)
> +ENDPROC(ll_get_coherency_cpumask)
>  
>  /*
>   * ll_add_cpu_to_smp_group(), ll_enable_coherency() and
> @@ -71,14 +78,14 @@ ENDPROC(ll_get_cpuid)
>  ENTRY(ll_add_cpu_to_smp_group)
>  	/*
>  	 * As r0 is not modified by ll_get_coherency_base() and
> -	 * ll_get_cpuid(), we use it to temporarly save lr and avoid
> -	 * it being modified by the branch and link calls. This
> -	 * function is used very early in the secondary CPU boot, and
> -	 * no stack is available at this point.
> +	 * ll_get_coherency_cpumask(), we use it to temporarly save lr
> +	 * and avoid it being modified by the branch and link
> +	 * calls. This function is used very early in the secondary
> +	 * CPU boot, and no stack is available at this point.
>  	 */
>  	mov 	r0, lr
>  	bl	ll_get_coherency_base
> -	bl	ll_get_cpuid
> +	bl	ll_get_coherency_cpumask
>  	mov 	lr, r0
>  	add	r0, r1, #ARMADA_XP_CFB_CFG_REG_OFFSET
>  1:
> @@ -93,14 +100,14 @@ ENDPROC(ll_add_cpu_to_smp_group)
>  ENTRY(ll_enable_coherency)
>  	/*
>  	 * As r0 is not modified by ll_get_coherency_base() and
> -	 * ll_get_cpuid(), we use it to temporarly save lr and avoid
> -	 * it being modified by the branch and link calls. This
> -	 * function is used very early in the secondary CPU boot, and
> -	 * no stack is available at this point.
> +	 * ll_get_coherency_cpumask(), we use it to temporarly save lr
> +	 * and avoid it being modified by the branch and link
> +	 * calls. This function is used very early in the secondary
> +	 * CPU boot, and no stack is available at this point.
>  	 */
>  	mov r0, lr
>  	bl	ll_get_coherency_base
> -	bl	ll_get_cpuid
> +	bl	ll_get_coherency_cpumask
>  	mov lr, r0
>  	add	r0, r1, #ARMADA_XP_CFB_CTL_REG_OFFSET
>  1:
> @@ -117,14 +124,14 @@ ENDPROC(ll_enable_coherency)
>  ENTRY(ll_disable_coherency)
>  	/*
>  	 * As r0 is not modified by ll_get_coherency_base() and
> -	 * ll_get_cpuid(), we use it to temporarly save lr and avoid
> -	 * it being modified by the branch and link calls. This
> -	 * function is used very early in the secondary CPU boot, and
> -	 * no stack is available at this point.
> +	 * ll_get_coherency_cpumask(), we use it to temporarly save lr
> +	 * and avoid it being modified by the branch and link
> +	 * calls. This function is used very early in the secondary
> +	 * CPU boot, and no stack is available at this point.
>  	 */
>  	mov 	r0, lr
>  	bl	ll_get_coherency_base
> -	bl	ll_get_cpuid
> +	bl	ll_get_coherency_cpumask
>  	mov 	lr, r0
>  	add	r0, r1, #ARMADA_XP_CFB_CTL_REG_OFFSET
>  1:



-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

  reply	other threads:[~2014-05-26 13:26 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-22 12:47 [PATCH 0/4] ARM: mvebu: Minor fixes and improvements to coherency_ll.S Thomas Petazzoni
2014-05-22 12:47 ` [PATCH 1/4] ARM: mvebu: fix big endian booting after coherency code rework Thomas Petazzoni
2014-05-22 12:48 ` [PATCH 2/4] ARM: mvebu: fix indentation of assembly instructions in coherency_ll.S Thomas Petazzoni
2014-05-22 12:48 ` [PATCH 3/4] ARM: mvebu: improve comments " Thomas Petazzoni
2014-05-22 12:48 ` [PATCH 4/4] ARM: mvebu: returns ll_get_cpuid() to ll_get_coherency_cpumask() Thomas Petazzoni
2014-05-26 13:26   ` Thomas Petazzoni [this message]
2014-05-27 15:51     ` Jason Cooper
2014-05-28  6:18       ` Thomas Petazzoni
2014-05-22 14:17 ` [PATCH 0/4] ARM: mvebu: Minor fixes and improvements to coherency_ll.S Gregory CLEMENT
2014-05-22 14:33 ` Jason Cooper

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140526152618.39c088ae@free-electrons.com \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.