powerpc/8xx: Use a larger CPM1 command check mask
authorHerve Codina <herve.codina@bootlin.com>
Fri, 17 Feb 2023 14:56:39 +0000 (15:56 +0100)
committerMark Brown <broonie@kernel.org>
Sun, 5 Mar 2023 23:37:01 +0000 (23:37 +0000)
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>
Acked-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20230217145645.1768659-5-herve.codina@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
arch/powerpc/platforms/8xx/cpm1.c

index bb38c8d8f8deac6f8a41f140fd75ace04add824a..c57fcda7a4bbecd3cfa5229a77f546528b2f4180 100644 (file)
@@ -94,7 +94,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);