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