drm/radeon/kms/atom: upstream parser updates
authorAlex Deucher <alexdeucher@gmail.com>
Tue, 19 Jan 2010 17:45:29 +0000 (12:45 -0500)
committerDave Airlie <airlied@linux.ie>
Wed, 20 Jan 2010 22:20:28 +0000 (08:20 +1000)
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
drivers/gpu/drm/radeon/atom.c
drivers/gpu/drm/radeon/atom.h

index 9a3378184e1b5594b4410b4f900256eea886d666..cf3126108a486086f1532bbbc5d0c160f6b0e048 100644 (file)
@@ -246,6 +246,9 @@ static uint32_t atom_get_src_int(atom_exec_context *ctx, uint8_t attr,
                case ATOM_WS_ATTRIBUTES:
                        val = gctx->io_attr;
                        break;
+               case ATOM_WS_REGPTR:
+                       val = gctx->reg_block;
+                       break;
                default:
                        val = ctx->ws[idx];
                }
@@ -508,6 +511,9 @@ static void atom_put_dst(atom_exec_context *ctx, int arg, uint8_t attr,
                case ATOM_WS_ATTRIBUTES:
                        gctx->io_attr = val;
                        break;
+               case ATOM_WS_REGPTR:
+                       gctx->reg_block = val;
+                       break;
                default:
                        ctx->ws[idx] = val;
                }
@@ -705,7 +711,7 @@ static void atom_op_mask(atom_exec_context *ctx, int *ptr, int arg)
        SDEBUG("   src1: ");
        src1 = atom_get_src_direct(ctx, ((attr >> 3) & 7), ptr);
        SDEBUG("   src2: ");
-       src2 = atom_get_src_direct(ctx, ((attr >> 3) & 7), ptr);
+       src2 = atom_get_src(ctx, attr, ptr);
        dst &= src1;
        dst |= src2;
        SDEBUG("   dst: ");
index 47fd943f6d1422afa6bab7561127450a3285756c..bc73781423a17599fadf9e2bfa1bca556b5504ca 100644 (file)
@@ -91,6 +91,7 @@
 #define ATOM_WS_AND_MASK       0x45
 #define ATOM_WS_FB_WINDOW      0x46
 #define ATOM_WS_ATTRIBUTES     0x47
+#define ATOM_WS_REGPTR         0x48
 
 #define ATOM_IIO_NOP           0
 #define ATOM_IIO_START         1