Date: | 2010-02-21 21:24:15 (14 years 1 month ago) |
---|---|
Author: | Marek Olšák |
Commit: | cae94b0ad9d147152af77b971a7234faf20027a9 |
Message: | drm/radeon/kms: allow R500 regs VAP_ALT_NUM_VERTICES and
VAP_INDEX_OFFSET [airlied: fix V_A_N_V to not be safe and fix check to make sure only r500 - bump userspace version] Signed-off-by: Marek Olšák <maraeo@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com> |
Files: |
drivers/gpu/drm/radeon/r100.c (1 diff) drivers/gpu/drm/radeon/r100_track.h (1 diff) drivers/gpu/drm/radeon/r300.c (3 diffs) drivers/gpu/drm/radeon/radeon_drv.c (1 diff) drivers/gpu/drm/radeon/reg_srcs/rv515 (1 diff) |
Change Details
drivers/gpu/drm/radeon/r100.c | ||
---|---|---|
3011 | 3011 | } |
3012 | 3012 | } |
3013 | 3013 | prim_walk = (track->vap_vf_cntl >> 4) & 0x3; |
3014 | nverts = (track->vap_vf_cntl >> 16) & 0xFFFF; | |
3014 | if (track->vap_vf_cntl & (1 << 14)) { | |
3015 | nverts = track->vap_alt_nverts; | |
3016 | } else { | |
3017 | nverts = (track->vap_vf_cntl >> 16) & 0xFFFF; | |
3018 | } | |
3015 | 3019 | switch (prim_walk) { |
3016 | 3020 | case 1: |
3017 | 3021 | for (i = 0; i < track->num_arrays; i++) { |
drivers/gpu/drm/radeon/r100_track.h | ||
---|---|---|
64 | 64 | unsigned maxy; |
65 | 65 | unsigned vtx_size; |
66 | 66 | unsigned vap_vf_cntl; |
67 | unsigned vap_alt_nverts; | |
67 | 68 | unsigned immd_dwords; |
68 | 69 | unsigned num_arrays; |
69 | 70 | unsigned max_indx; |
drivers/gpu/drm/radeon/r300.c | ||
---|---|---|
729 | 729 | /* VAP_VF_MAX_VTX_INDX */ |
730 | 730 | track->max_indx = idx_value & 0x00FFFFFFUL; |
731 | 731 | break; |
732 | case 0x2088: | |
733 | /* VAP_ALT_NUM_VERTICES - only valid on r500 */ | |
734 | if (p->rdev->family < CHIP_RV515) | |
735 | goto fail; | |
736 | track->vap_alt_nverts = idx_value & 0xFFFFFF; | |
737 | break; | |
732 | 738 | case 0x43E4: |
733 | 739 | /* SC_SCISSOR1 */ |
734 | 740 | track->maxy = ((idx_value >> 13) & 0x1FFF) + 1; |
... | ... | |
766 | 772 | tmp = idx_value & ~(0x7 << 16); |
767 | 773 | tmp |= tile_flags; |
768 | 774 | ib[idx] = tmp; |
769 | ||
770 | 775 | i = (reg - 0x4E38) >> 2; |
771 | 776 | track->cb[i].pitch = idx_value & 0x3FFE; |
772 | 777 | switch (((idx_value >> 21) & 0xF)) { |
... | ... | |
1051 | 1056 | break; |
1052 | 1057 | /* fallthrough do not move */ |
1053 | 1058 | default: |
1054 | printk(KERN_ERR "Forbidden register 0x%04X in cs at %d\n", | |
1055 | reg, idx); | |
1056 | return -EINVAL; | |
1059 | goto fail; | |
1057 | 1060 | } |
1058 | 1061 | return 0; |
1062 | fail: | |
1063 | printk(KERN_ERR "Forbidden register 0x%04X in cs at %d\n", | |
1064 | reg, idx); | |
1065 | return -EINVAL; | |
1059 | 1066 | } |
1060 | 1067 | |
1061 | 1068 | static int r300_packet3_check(struct radeon_cs_parser *p, |
drivers/gpu/drm/radeon/radeon_drv.c | ||
---|---|---|
43 | 43 | * - 2.0.0 - initial interface |
44 | 44 | * - 2.1.0 - add square tiling interface |
45 | 45 | * - 2.2.0 - add r6xx/r7xx const buffer support |
46 | * - 2.3.0 - add MSPOS + 3D texture + r500 VAP regs | |
46 | 47 | */ |
47 | 48 | #define KMS_DRIVER_MAJOR 2 |
48 | #define KMS_DRIVER_MINOR 2 | |
49 | #define KMS_DRIVER_MINOR 3 | |
49 | 50 | #define KMS_DRIVER_PATCHLEVEL 0 |
50 | 51 | int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags); |
51 | 52 | int radeon_driver_unload_kms(struct drm_device *dev); |
drivers/gpu/drm/radeon/reg_srcs/rv515 | ||
---|---|---|
35 | 35 | 0x1DA8 VAP_VPORT_ZSCALE |
36 | 36 | 0x1DAC VAP_VPORT_ZOFFSET |
37 | 37 | 0x2080 VAP_CNTL |
38 | 0x208C VAP_INDEX_OFFSET | |
38 | 39 | 0x2090 VAP_OUT_VTX_FMT_0 |
39 | 40 | 0x2094 VAP_OUT_VTX_FMT_1 |
40 | 41 | 0x20B0 VAP_VTE_CNTL |
Branches:
ben-wpan
ben-wpan-stefan
5396a9238205f20f811ea57898980d3ca82df0b6
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9