FreeCalypso > hg > fc-magnetite
comparison src/g23m-aci/aci/ati_bas.c @ 216:557041e392a9
src/g23m-aci/aci/ati_bas.c: handle +CGxx like the aci2 version
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 15 Oct 2016 06:16:40 +0000 |
parents | 53929b40109c |
children | a33da2d26a31 |
comparison
equal
deleted
inserted
replaced
215:1181c9733e08 | 216:557041e392a9 |
---|---|
70 #include "bat.h" | 70 #include "bat.h" |
71 | 71 |
72 #include "ati_bat.h" | 72 #include "ati_bat.h" |
73 | 73 |
74 #endif /*FF_ATI_BAT*/ | 74 #endif /*FF_ATI_BAT*/ |
75 | |
76 #include "fc-target.cfg" | |
75 | 77 |
76 LOCAL T_ATI_RSLT aciPrcsPlusCG (UBYTE srcId, CHAR* cl, CHAR* ef); | 78 LOCAL T_ATI_RSLT aciPrcsPlusCG (UBYTE srcId, CHAR* cl, CHAR* ef); |
77 LOCAL T_ATI_RSLT setaciPrcsVolLevel ( CHAR* cl, UBYTE device ); | 79 LOCAL T_ATI_RSLT setaciPrcsVolLevel ( CHAR* cl, UBYTE device ); |
78 LOCAL T_ATI_RSLT tesaciPrcsVolLevel ( UBYTE srcId, CHAR* cl, UBYTE device ); | 80 LOCAL T_ATI_RSLT tesaciPrcsVolLevel ( UBYTE srcId, CHAR* cl, UBYTE device ); |
79 LOCAL T_ATI_RSLT queaciPrcsVolLevel ( UBYTE srcId, CHAR* cl, UBYTE device ); | 81 LOCAL T_ATI_RSLT queaciPrcsVolLevel ( UBYTE srcId, CHAR* cl, UBYTE device ); |
2209 */ | 2211 */ |
2210 LOCAL T_ATI_RSLT aciPrcsPlusCG (UBYTE srcId, CHAR* cl, CHAR* ef) | 2212 LOCAL T_ATI_RSLT aciPrcsPlusCG (UBYTE srcId, CHAR* cl, CHAR* ef) |
2211 { | 2213 { |
2212 pcm_FileInfo_Type fileInfo; | 2214 pcm_FileInfo_Type fileInfo; |
2213 USHORT i; | 2215 USHORT i; |
2216 char *cp; | |
2214 | 2217 |
2215 TRACE_FUNCTION("aciPrcsPlusCG()"); | 2218 TRACE_FUNCTION("aciPrcsPlusCG()"); |
2216 | 2219 |
2217 if (pcm_GetFileInfo ((UBYTE* )ef, &fileInfo) NEQ DRV_OK) | 2220 if (pcm_GetFileInfo ((UBYTE* )ef, &fileInfo) NEQ DRV_OK) |
2218 { | 2221 { |
2219 cmdCmeError (CME_ERR_MemFail); | 2222 cmdCmeError (CME_ERR_MemFail); |
2220 return ATI_FAIL; | 2223 return ATI_FAIL; |
2221 } | 2224 } |
2222 | |
2223 | 2225 |
2224 if (pcm_ReadFile ((UBYTE*)ef, fileInfo.FileSize, | 2226 if (pcm_ReadFile ((UBYTE*)ef, fileInfo.FileSize, |
2225 (UBYTE*)g_sa, &fileInfo.Version) NEQ DRV_OK) | 2227 (UBYTE*)g_sa, &fileInfo.Version) NEQ DRV_OK) |
2226 { | 2228 { |
2227 cmdCmeError (CME_ERR_MemFail); | 2229 cmdCmeError (CME_ERR_MemFail); |
2228 return ATI_FAIL; | 2230 return ATI_FAIL; |
2229 } | 2231 } |
2230 | 2232 |
2231 i = 0; | 2233 i = 0; |
2232 while ((UBYTE)g_sa[i] NEQ 0xFF) | 2234 while ((UBYTE)g_sa[i] NEQ 0xFF AND i < fileInfo.FileSize) |
2233 { | |
2234 i++; | 2235 i++; |
2235 } | |
2236 g_sa[i] = '\0'; | 2236 g_sa[i] = '\0'; |
2237 | |
2238 #ifdef CONFIG_MOKOFFS | |
2239 /* | |
2240 * Openmoko's FFS has a /pcm/CGMR file programmed like this: | |
2241 * | |
2242 * GTA02BV4/Moko5 | |
2243 * | |
2244 * When queried for +CGMR, we would like to report the hardware revision | |
2245 * from FFS, but also tell the user that we are FreeCalypso and not Moko5. | |
2246 * Hence the following hack. | |
2247 */ | |
2248 if ((cp = strchr(g_sa, '/')) && !strncmp(cp + 1, "Moko", 4)) | |
2249 strcpy(cp + 1, "FreeCalypso"); | |
2250 #endif | |
2251 | |
2237 io_sendMessage (srcId, g_sa, ATI_NORMAL_OUTPUT ); | 2252 io_sendMessage (srcId, g_sa, ATI_NORMAL_OUTPUT ); |
2238 | 2253 |
2239 return ATI_CMPL; | 2254 return ATI_CMPL; |
2240 } | 2255 } |
2241 | 2256 |