[v2,04/10] powerpc/8xx: Use a larger CPM1 command check mask

Message ID 20230106163746.439717-5-herve.codina@bootlin.com
State New
Headers
Series Add the PowerQUICC audio support using the QMC |

Commit Message

Herve Codina Jan. 6, 2023, 4:37 p.m. UTC
  The CPM1 command mask is defined for use with the standard
CPM1 command register as described in the user's manual:
  0  |1        3|4    7|8   11|12      14| 15|
  RST|    -     |OPCODE|CH_NUM|     -    |FLG|

In the QMC extension the CPM1 command register is redefined
(QMC supplement user's manuel) with the following mapping:
  0  |1        3|4    7|8           13|14| 15|
  RST|QMC OPCODE|  1110|CHANNEL_NUMBER| -|FLG|

Extend the check command mask in order to support both the
standard CH_NUM field and the QMC extension CHANNEL_NUMBER
field.

Signed-off-by: Herve Codina <herve.codina@bootlin.com>
---
 arch/powerpc/platforms/8xx/cpm1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Christophe Leroy Jan. 10, 2023, 8:23 a.m. UTC | #1
Le 06/01/2023 à 17:37, Herve Codina a écrit :
> The CPM1 command mask is defined for use with the standard
> CPM1 command register as described in the user's manual:
>    0  |1        3|4    7|8   11|12      14| 15|
>    RST|    -     |OPCODE|CH_NUM|     -    |FLG|
> 
> In the QMC extension the CPM1 command register is redefined
> (QMC supplement user's manuel) with the following mapping:
>    0  |1        3|4    7|8           13|14| 15|
>    RST|QMC OPCODE|  1110|CHANNEL_NUMBER| -|FLG|
> 
> Extend the check command mask in order to support both the
> standard CH_NUM field and the QMC extension CHANNEL_NUMBER
> field.
> 
> Signed-off-by: Herve Codina <herve.codina@bootlin.com>

Acked-by: Christophe Leroy <christophe.leroy@csgroup.eu> (As maintainer 
of LINUX FOR POWERPC EMBEDDED PPC8XX)

> ---
>   arch/powerpc/platforms/8xx/cpm1.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/platforms/8xx/cpm1.c b/arch/powerpc/platforms/8xx/cpm1.c
> index 8ef1f4392086..6b828b9f90d9 100644
> --- a/arch/powerpc/platforms/8xx/cpm1.c
> +++ b/arch/powerpc/platforms/8xx/cpm1.c
> @@ -100,7 +100,7 @@ int cpm_command(u32 command, u8 opcode)
>   	int i, ret;
>   	unsigned long flags;
>   
> -	if (command & 0xffffff0f)
> +	if (command & 0xffffff03)
>   		return -EINVAL;
>   
>   	spin_lock_irqsave(&cmd_lock, flags);
  

Patch

diff --git a/arch/powerpc/platforms/8xx/cpm1.c b/arch/powerpc/platforms/8xx/cpm1.c
index 8ef1f4392086..6b828b9f90d9 100644
--- a/arch/powerpc/platforms/8xx/cpm1.c
+++ b/arch/powerpc/platforms/8xx/cpm1.c
@@ -100,7 +100,7 @@  int cpm_command(u32 command, u8 opcode)
 	int i, ret;
 	unsigned long flags;
 
-	if (command & 0xffffff0f)
+	if (command & 0xffffff03)
 		return -EINVAL;
 
 	spin_lock_irqsave(&cmd_lock, flags);