diff mbox

ppc: Fix macio ESCC legacy mapping

Message ID 1470129763.12584.26.camel@kernel.crashing.org
State New
Headers show

Commit Message

Benjamin Herrenschmidt Aug. 2, 2016, 9:22 a.m. UTC
The current mapping, while correct for the base ports (which is all the
driver uses these days), is wrong for the extended registers. 

I suspect the bugs come from incorrect tables in the CHRP IO Ref document,
I have verified the new values here match Apple's MacTech.pdf.

Note: Nothing that I know of actually uses these registers so it's not a
huge deal, but this patch has the added advantage of adding comments to
document what the registers are.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---

Comments

David Gibson Aug. 2, 2016, 11:10 p.m. UTC | #1
On Tue, Aug 02, 2016 at 07:22:43PM +1000, Benjamin Herrenschmidt wrote:
> The current mapping, while correct for the base ports (which is all the
> driver uses these days), is wrong for the extended registers. 
> 
> I suspect the bugs come from incorrect tables in the CHRP IO Ref document,
> I have verified the new values here match Apple's MacTech.pdf.
> 
> Note: Nothing that I know of actually uses these registers so it's not a
> huge deal, but this patch has the added advantage of adding comments to
> document what the registers are.
> 
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

Applied to ppc-for-2.8, thanks.

> ---
> 
> diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c
> index be03926..5d57f45 100644
> --- a/hw/misc/macio/macio.c
> +++ b/hw/misc/macio/macio.c
> @@ -89,22 +89,16 @@ static void macio_escc_legacy_setup(MacIOState *macio_state)
>      MemoryRegion *bar = &macio_state->bar;
>      int i;
>      static const int maps[] = {
> -        0x00, 0x00,
> -        0x02, 0x20,
> -        0x04, 0x10,
> -        0x06, 0x30,
> -        0x08, 0x40,
> -        0x0A, 0x50,
> -        0x60, 0x60,
> -        0x70, 0x70,
> -        0x80, 0x70,
> -        0x90, 0x80,
> -        0xA0, 0x90,
> -        0xB0, 0xA0,
> -        0xC0, 0xB0,
> -        0xD0, 0xC0,
> -        0xE0, 0xD0,
> -        0xF0, 0xE0,
> +        0x00, 0x00, /* Command B */
> +        0x02, 0x20, /* Command A */
> +        0x04, 0x10, /* Data B */
> +        0x06, 0x30, /* Data A */
> +        0x08, 0x40, /* Enhancement B */
> +        0x0A, 0x50, /* Enhancement A */
> +        0x80, 0x80, /* Recovery count */
> +        0x90, 0x90, /* Start A */
> +        0xa0, 0xa0, /* Start B */
> +        0xb0, 0xb0, /* Detect AB */
>      };
>  
>      memory_region_init(escc_legacy, OBJECT(macio_state), "escc-legacy", 256);
>
diff mbox

Patch

diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c
index be03926..5d57f45 100644
--- a/hw/misc/macio/macio.c
+++ b/hw/misc/macio/macio.c
@@ -89,22 +89,16 @@  static void macio_escc_legacy_setup(MacIOState *macio_state)
     MemoryRegion *bar = &macio_state->bar;
     int i;
     static const int maps[] = {
-        0x00, 0x00,
-        0x02, 0x20,
-        0x04, 0x10,
-        0x06, 0x30,
-        0x08, 0x40,
-        0x0A, 0x50,
-        0x60, 0x60,
-        0x70, 0x70,
-        0x80, 0x70,
-        0x90, 0x80,
-        0xA0, 0x90,
-        0xB0, 0xA0,
-        0xC0, 0xB0,
-        0xD0, 0xC0,
-        0xE0, 0xD0,
-        0xF0, 0xE0,
+        0x00, 0x00, /* Command B */
+        0x02, 0x20, /* Command A */
+        0x04, 0x10, /* Data B */
+        0x06, 0x30, /* Data A */
+        0x08, 0x40, /* Enhancement B */
+        0x0A, 0x50, /* Enhancement A */
+        0x80, 0x80, /* Recovery count */
+        0x90, 0x90, /* Start A */
+        0xa0, 0xa0, /* Start B */
+        0xb0, 0xb0, /* Detect AB */
     };
 
     memory_region_init(escc_legacy, OBJECT(macio_state), "escc-legacy", 256);