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;