Mercurial > mplayer.hg
comparison vidix/drivers/radeon_vid.c @ 8876:026ed72206ba
patch which removes the rage_ckey_model fix and updates
the card detection (which should fix ve card).
also replaces big if()'s by switch-case.
James Stembridge <jstembridge@gmx.net>
author | arpi |
---|---|
date | Fri, 10 Jan 2003 20:38:37 +0000 |
parents | fd13e4c4f323 |
children | f381dbfd277e |
comparison
equal
deleted
inserted
replaced
8875:c567d5fb23d7 | 8876:026ed72206ba |
---|---|
33 #endif | 33 #endif |
34 #endif | 34 #endif |
35 | 35 |
36 static int __verbose = 0; | 36 static int __verbose = 0; |
37 #ifdef RADEON | 37 #ifdef RADEON |
38 static int rage_ckey_model=0; | |
39 static int is_shift_required = 0; | 38 static int is_shift_required = 0; |
40 #endif | 39 #endif |
41 | 40 |
42 typedef struct bes_registers_s | 41 typedef struct bes_registers_s |
43 { | 42 { |
921 dname = dname ? dname : "Unknown chip"; | 920 dname = dname ? dname : "Unknown chip"; |
922 printf(RADEON_MSG" Found chip: %s\n",dname); | 921 printf(RADEON_MSG" Found chip: %s\n",dname); |
923 #ifndef RAGE128 | 922 #ifndef RAGE128 |
924 if(idx != -1) | 923 if(idx != -1) |
925 { | 924 { |
926 if(ati_card_ids[idx] == DEVICE_ATI_RADEON_R100_QD || | 925 switch(ati_card_ids[idx]) { |
927 ati_card_ids[idx] == DEVICE_ATI_RADEON_R100_QE || | 926 /* Original radeon */ |
928 ati_card_ids[idx] == DEVICE_ATI_RADEON_R100_QF || | 927 case DEVICE_ATI_RADEON_R100_QD: |
929 ati_card_ids[idx] == DEVICE_ATI_RADEON_R100_QG || | 928 case DEVICE_ATI_RADEON_R100_QE: |
930 ati_card_ids[idx] == DEVICE_ATI_RADEON_VE_QY || | 929 case DEVICE_ATI_RADEON_R100_QF: |
931 ati_card_ids[idx] == DEVICE_ATI_RADEON_VE_QZ || | 930 case DEVICE_ATI_RADEON_R100_QG: |
932 ati_card_ids[idx] == DEVICE_ATI_RADEON_MOBILITY_M7|| | 931 RadeonFamily = 100; |
933 ati_card_ids[idx] == DEVICE_ATI_RADEON_MOBILITY_M72|| | 932 break; |
934 ati_card_ids[idx] == DEVICE_ATI_RADEON_MOBILITY_M6|| | 933 |
935 ati_card_ids[idx] == DEVICE_ATI_RADEON_MOBILITY_M62) RadeonFamily = 100; | 934 /* Radeon VE / Radeon Mobility */ |
936 if(ati_card_ids[idx] == DEVICE_ATI_RADEON_RV200_QW || | 935 case DEVICE_ATI_RADEON_VE_QY: |
937 ati_card_ids[idx] == DEVICE_ATI_RADEON_RV200_QX) RadeonFamily = 150; | 936 case DEVICE_ATI_RADEON_VE_QZ: |
938 if(ati_card_ids[idx] == DEVICE_ATI_RADEON_R200_BB || | 937 case DEVICE_ATI_RADEON_MOBILITY_M6: |
939 ati_card_ids[idx] == DEVICE_ATI_RADEON_R200_QH || | 938 case DEVICE_ATI_RADEON_MOBILITY_M62: |
940 ati_card_ids[idx] == DEVICE_ATI_RADEON_R200_QI || | 939 RadeonFamily = 120; |
941 ati_card_ids[idx] == DEVICE_ATI_RADEON_R200_QJ || | 940 break; |
942 ati_card_ids[idx] == DEVICE_ATI_RADEON_R200_QK || | 941 |
943 ati_card_ids[idx] == DEVICE_ATI_RADEON_R200_QL || | 942 /* Radeon 7500 / Radeon Mobility 7500 */ |
944 ati_card_ids[idx] == DEVICE_ATI_RADEON_R200_QH2 || | 943 case DEVICE_ATI_RADEON_RV200_QW: |
945 ati_card_ids[idx] == DEVICE_ATI_RADEON_R200_QI2 || | 944 case DEVICE_ATI_RADEON_RV200_QX: |
946 ati_card_ids[idx] == DEVICE_ATI_RADEON_R200_QJ2 || | 945 case DEVICE_ATI_RADEON_MOBILITY_M7: |
947 ati_card_ids[idx] == DEVICE_ATI_RADEON_R200_QK2) RadeonFamily = 200; | 946 case DEVICE_ATI_RADEON_MOBILITY_M72: |
948 if(ati_card_ids[idx] == DEVICE_ATI_RADEON_R250_ID || | 947 RadeonFamily = 150; |
949 ati_card_ids[idx] == DEVICE_ATI_RADEON_R250_IE || | 948 break; |
950 ati_card_ids[idx] == DEVICE_ATI_RADEON_R250_IF || | 949 |
951 ati_card_ids[idx] == DEVICE_ATI_RADEON_R250_IG || | 950 /* Radeon 8500 */ |
952 ati_card_ids[idx] == DEVICE_ATI_RADEON_R250_LD || | 951 case DEVICE_ATI_RADEON_R200_BB: |
953 ati_card_ids[idx] == DEVICE_ATI_RADEON_R250_LE || | 952 case DEVICE_ATI_RADEON_R200_QH: |
954 ati_card_ids[idx] == DEVICE_ATI_RADEON_R250_LF || | 953 case DEVICE_ATI_RADEON_R200_QI: |
955 ati_card_ids[idx] == DEVICE_ATI_RADEON_R250_LG) RadeonFamily = 250; | 954 case DEVICE_ATI_RADEON_R200_QJ: |
956 if(ati_card_ids[idx] == DEVICE_ATI_RADEON_R300_ND || | 955 case DEVICE_ATI_RADEON_R200_QK: |
957 ati_card_ids[idx] == DEVICE_ATI_RADEON_R300_NE || | 956 case DEVICE_ATI_RADEON_R200_QL: |
958 ati_card_ids[idx] == DEVICE_ATI_RADEON_R300_NF || | 957 case DEVICE_ATI_RADEON_R200_QH2: |
959 ati_card_ids[idx] == DEVICE_ATI_RADEON_R300_NG) RadeonFamily = 300; | 958 case DEVICE_ATI_RADEON_R200_QI2: |
959 case DEVICE_ATI_RADEON_R200_QJ2: | |
960 case DEVICE_ATI_RADEON_R200_QK2: | |
961 RadeonFamily = 200; | |
962 break; | |
963 | |
964 /* Radeon 9000 */ | |
965 case DEVICE_ATI_RADEON_R250_ID: | |
966 case DEVICE_ATI_RADEON_R250_IE: | |
967 case DEVICE_ATI_RADEON_R250_IF: | |
968 case DEVICE_ATI_RADEON_R250_IG: | |
969 case DEVICE_ATI_RADEON_R250_LD: | |
970 case DEVICE_ATI_RADEON_R250_LE: | |
971 case DEVICE_ATI_RADEON_R250_LF: | |
972 case DEVICE_ATI_RADEON_R250_LG: | |
973 RadeonFamily = 250; | |
974 break; | |
975 | |
976 /* Radeon 9700 */ | |
977 case DEVICE_ATI_RADEON_R300_ND: | |
978 case DEVICE_ATI_RADEON_R300_NE: | |
979 case DEVICE_ATI_RADEON_R300_NF: | |
980 case DEVICE_ATI_RADEON_R300_NG: | |
981 RadeonFamily = 300; | |
982 break; | |
983 default: | |
984 break; | |
985 } | |
960 } | 986 } |
961 #endif | 987 #endif |
962 if(force > PROBE_NORMAL) | 988 if(force > PROBE_NORMAL) |
963 { | 989 { |
964 printf(RADEON_MSG" Driver was forced. Was found %sknown chip\n",idx == -1 ? "un" : ""); | 990 printf(RADEON_MSG" Driver was forced. Was found %sknown chip\n",idx == -1 ? "un" : ""); |
1012 | 1038 |
1013 #ifdef RADEON | 1039 #ifdef RADEON |
1014 switch(RadeonFamily) | 1040 switch(RadeonFamily) |
1015 { | 1041 { |
1016 case 100: | 1042 case 100: |
1043 case 120: | |
1017 case 150: | 1044 case 150: |
1018 case 250: | 1045 case 250: |
1019 is_shift_required=1; | 1046 is_shift_required=1; |
1020 break; | 1047 break; |
1021 default: | 1048 default: |
1022 break; | 1049 break; |
1023 } | |
1024 | |
1025 switch(def_cap.device_id) | |
1026 { | |
1027 case DEVICE_ATI_RADEON_MOBILITY_M7: | |
1028 case DEVICE_ATI_RADEON_MOBILITY_M72: | |
1029 case DEVICE_ATI_RADEON_MOBILITY_M62: | |
1030 rage_ckey_model=1; | |
1031 default: | |
1032 // printf(RADEON_MSG" Warning! Probably colorkeying isn't working correct!\n"); | |
1033 break; | |
1034 } | 1050 } |
1035 #endif | 1051 #endif |
1036 | 1052 |
1037 if(__verbose > 1) radeon_vid_dump_regs(); | 1053 if(__verbose > 1) radeon_vid_dump_regs(); |
1038 return 0; | 1054 return 0; |
1121 OUTREG(OV0_SCALE_CNTL, SCALER_SOFT_RESET); | 1137 OUTREG(OV0_SCALE_CNTL, SCALER_SOFT_RESET); |
1122 OUTREG(OV0_EXCLUSIVE_HORZ, 0); | 1138 OUTREG(OV0_EXCLUSIVE_HORZ, 0); |
1123 OUTREG(OV0_AUTO_FLIP_CNTL, 0); /* maybe */ | 1139 OUTREG(OV0_AUTO_FLIP_CNTL, 0); /* maybe */ |
1124 OUTREG(OV0_FILTER_CNTL, FILTER_HARDCODED_COEF); | 1140 OUTREG(OV0_FILTER_CNTL, FILTER_HARDCODED_COEF); |
1125 #ifdef RADEON | 1141 #ifdef RADEON |
1126 OUTREG(OV0_KEY_CNTL, rage_ckey_model ? GRAPHIC_KEY_FN_NE : GRAPHIC_KEY_FN_EQ); | 1142 OUTREG(OV0_KEY_CNTL, GRAPHIC_KEY_FN_EQ); |
1127 #else | 1143 #else |
1128 OUTREG(OV0_KEY_CNTL, GRAPHIC_KEY_FN_NE); | 1144 OUTREG(OV0_KEY_CNTL, GRAPHIC_KEY_FN_NE); |
1129 #endif | 1145 #endif |
1130 OUTREG(OV0_TEST, 0); | 1146 OUTREG(OV0_TEST, 0); |
1131 } | 1147 } |
1805 #ifdef RAGE128 | 1821 #ifdef RAGE128 |
1806 besr.graphics_key_msk=(1<<dbpp)-1; | 1822 besr.graphics_key_msk=(1<<dbpp)-1; |
1807 besr.ckey_cntl = VIDEO_KEY_FN_TRUE|GRAPHIC_KEY_FN_NE|CMP_MIX_AND; | 1823 besr.ckey_cntl = VIDEO_KEY_FN_TRUE|GRAPHIC_KEY_FN_NE|CMP_MIX_AND; |
1808 #else | 1824 #else |
1809 besr.graphics_key_msk=besr.graphics_key_clr; | 1825 besr.graphics_key_msk=besr.graphics_key_clr; |
1810 besr.ckey_cntl = VIDEO_KEY_FN_TRUE|CMP_MIX_AND; | 1826 besr.ckey_cntl = VIDEO_KEY_FN_TRUE|CMP_MIX_AND|GRAPHIC_KEY_FN_EQ; |
1811 if(rage_ckey_model) | |
1812 besr.ckey_cntl |= GRAPHIC_KEY_FN_NE; | |
1813 else | |
1814 besr.ckey_cntl |= GRAPHIC_KEY_FN_EQ; | |
1815 #endif | 1827 #endif |
1816 } | 1828 } |
1817 else | 1829 else |
1818 { | 1830 { |
1819 besr.ckey_on=0; | 1831 besr.ckey_on=0; |