diff options
| author | Patrick McHardy <kaber@trash.net> | 2010-05-10 12:39:28 -0400 |
|---|---|---|
| committer | Patrick McHardy <kaber@trash.net> | 2010-05-10 12:39:28 -0400 |
| commit | 1e4b1057121bc756b91758a434b504d2010f6088 (patch) | |
| tree | b016cf2c728289c7e36d9e4e488f30ab0bd0ae6e /drivers/gpu/drm/radeon/atom.c | |
| parent | 3b254c54ec46eb022cb26ee6ab37fae23f5f7d6a (diff) | |
| parent | 3ee943728fff536edaf8f59faa58aaa1aa7366e3 (diff) | |
Merge branch 'master' of /repos/git/net-next-2.6
Conflicts:
net/bridge/br_device.c
net/bridge/br_forward.c
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'drivers/gpu/drm/radeon/atom.c')
| -rw-r--r-- | drivers/gpu/drm/radeon/atom.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c index bcec2d79636e..1d569830ed99 100644 --- a/drivers/gpu/drm/radeon/atom.c +++ b/drivers/gpu/drm/radeon/atom.c | |||
| @@ -908,11 +908,16 @@ static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg) | |||
| 908 | uint8_t attr = U8((*ptr)++), shift; | 908 | uint8_t attr = U8((*ptr)++), shift; |
| 909 | uint32_t saved, dst; | 909 | uint32_t saved, dst; |
| 910 | int dptr = *ptr; | 910 | int dptr = *ptr; |
| 911 | uint32_t dst_align = atom_dst_to_src[(attr >> 3) & 7][(attr >> 6) & 3]; | ||
| 911 | SDEBUG(" dst: "); | 912 | SDEBUG(" dst: "); |
| 912 | dst = atom_get_dst(ctx, arg, attr, ptr, &saved, 1); | 913 | dst = atom_get_dst(ctx, arg, attr, ptr, &saved, 1); |
| 914 | /* op needs to full dst value */ | ||
| 915 | dst = saved; | ||
| 913 | shift = atom_get_src(ctx, attr, ptr); | 916 | shift = atom_get_src(ctx, attr, ptr); |
| 914 | SDEBUG(" shift: %d\n", shift); | 917 | SDEBUG(" shift: %d\n", shift); |
| 915 | dst <<= shift; | 918 | dst <<= shift; |
| 919 | dst &= atom_arg_mask[dst_align]; | ||
| 920 | dst >>= atom_arg_shift[dst_align]; | ||
| 916 | SDEBUG(" dst: "); | 921 | SDEBUG(" dst: "); |
| 917 | atom_put_dst(ctx, arg, attr, &dptr, dst, saved); | 922 | atom_put_dst(ctx, arg, attr, &dptr, dst, saved); |
| 918 | } | 923 | } |
| @@ -922,11 +927,16 @@ static void atom_op_shr(atom_exec_context *ctx, int *ptr, int arg) | |||
| 922 | uint8_t attr = U8((*ptr)++), shift; | 927 | uint8_t attr = U8((*ptr)++), shift; |
| 923 | uint32_t saved, dst; | 928 | uint32_t saved, dst; |
| 924 | int dptr = *ptr; | 929 | int dptr = *ptr; |
| 930 | uint32_t dst_align = atom_dst_to_src[(attr >> 3) & 7][(attr >> 6) & 3]; | ||
| 925 | SDEBUG(" dst: "); | 931 | SDEBUG(" dst: "); |
| 926 | dst = atom_get_dst(ctx, arg, attr, ptr, &saved, 1); | 932 | dst = atom_get_dst(ctx, arg, attr, ptr, &saved, 1); |
| 933 | /* op needs to full dst value */ | ||
| 934 | dst = saved; | ||
| 927 | shift = atom_get_src(ctx, attr, ptr); | 935 | shift = atom_get_src(ctx, attr, ptr); |
| 928 | SDEBUG(" shift: %d\n", shift); | 936 | SDEBUG(" shift: %d\n", shift); |
| 929 | dst >>= shift; | 937 | dst >>= shift; |
| 938 | dst &= atom_arg_mask[dst_align]; | ||
| 939 | dst >>= atom_arg_shift[dst_align]; | ||
| 930 | SDEBUG(" dst: "); | 940 | SDEBUG(" dst: "); |
| 931 | atom_put_dst(ctx, arg, attr, &dptr, dst, saved); | 941 | atom_put_dst(ctx, arg, attr, &dptr, dst, saved); |
| 932 | } | 942 | } |
