FreeCalypso > hg > freecalypso-sw
comparison gsm-fw/g23m-gsm/rr/rr_csf.c @ 736:c64af13c976f
rr_csf.c compiles
| author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
|---|---|
| date | Sun, 05 Oct 2014 17:08:49 +0000 |
| parents | 2f7df7a314f8 |
| children | 1fa8ada742ff |
comparison
equal
deleted
inserted
replaced
| 735:458366ab2d6d | 736:c64af13c976f |
|---|---|
| 20 */ | 20 */ |
| 21 | 21 |
| 22 #ifndef RR_CSF_C | 22 #ifndef RR_CSF_C |
| 23 #define RR_CSF_C | 23 #define RR_CSF_C |
| 24 | 24 |
| 25 #include "config.h" | |
| 26 #include "fixedconf.h" | |
| 27 #include "condat-features.h" | |
| 28 | |
| 25 #define ENTITY_RR | 29 #define ENTITY_RR |
| 26 #define SAP_ACI | 30 #define SAP_ACI |
| 27 | 31 |
| 28 /*==== INCLUDES ===================================================*/ | 32 /*==== INCLUDES ===================================================*/ |
| 29 | 33 |
| 43 #include "cnf_rr.h" | 47 #include "cnf_rr.h" |
| 44 #include "tok.h" | 48 #include "tok.h" |
| 45 #include "rr.h" | 49 #include "rr.h" |
| 46 #include "cl_imei.h" /* IMEI common library */ | 50 #include "cl_imei.h" /* IMEI common library */ |
| 47 #if defined(_SIMULATION_FFS_) | 51 #if defined(_SIMULATION_FFS_) |
| 48 #include "ffs/ffs.h" | 52 #include "../../services/ffs/ffs.h" |
| 49 #include "ffs_coat.h" | 53 #include "ffs_coat.h" |
| 50 #endif /* _SIMULATION_FFS_ */ | 54 #endif /* _SIMULATION_FFS_ */ |
| 51 | 55 |
| 52 /*==== EXPORT =====================================================*/ | 56 /*==== EXPORT =====================================================*/ |
| 53 | 57 |
| 528 if (rr_data->ms_data.cmsp_configured) | 532 if (rr_data->ms_data.cmsp_configured) |
| 529 { | 533 { |
| 530 rr_data->ms_data.rf_cap.cmsp = cmsp; | 534 rr_data->ms_data.rf_cap.cmsp = cmsp; |
| 531 TRACE_EVENT_P1 ("'cmsp' configured to a value of %d (overwrite of rfcap)", cmsp); | 535 TRACE_EVENT_P1 ("'cmsp' configured to a value of %d (overwrite of rfcap)", cmsp); |
| 532 } | 536 } |
| 533 | |
| 534 | |
| 535 | 537 |
| 536 #if defined(RFCAP_TEST) | 538 #if defined(RFCAP_TEST) |
| 537 if (ccd_ret NEQ ccdOK) | 539 if (ccd_ret NEQ ccdOK) |
| 538 { | 540 { |
| 539 /* | 541 /* |
| 884 #endif /* !RAC_RELEASE97 */ | 886 #endif /* !RAC_RELEASE97 */ |
| 885 #endif | 887 #endif |
| 886 break; | 888 break; |
| 887 case STD_DUAL_EGSM: | 889 case STD_DUAL_EGSM: |
| 888 /* note: incase of 1800 band, the FC bit shall be set to 0 */ | 890 /* note: incase of 1800 band, the FC bit shall be set to 0 */ |
| 889 if((rr_data->ms_data.rr_service EQ FULL_SERVICE) AND | 891 if ((rr_data->ms_data.rr_service EQ FULL_SERVICE) AND |
| 890 (!INRANGE(LOW_CHANNEL_1800,rr_data->nc_data[SC_INDEX].arfcn,HIGH_CHANNEL_1800))) | 892 (!INRANGE(LOW_CHANNEL_1800, rr_data->nc_data[SC_INDEX].arfcn, |
| 891 cm2->egsm = SUPPORTED; | 893 HIGH_CHANNEL_1800))) |
| 894 cm2->egsm = SUPPORTED; | |
| 892 cm3->mb_value = MB_DUAL_EXT; | 895 cm3->mb_value = MB_DUAL_EXT; |
| 893 #ifdef GPRS | 896 #ifdef GPRS |
| 894 rac->acc_tech_typ = ACC_GSM_E; | 897 rac->acc_tech_typ = ACC_GSM_E; |
| 895 rac->flag_ra_cap2 = rac->v_ra_cap2 = YES; | 898 rac->flag_ra_cap2 = rac->v_ra_cap2 = YES; |
| 896 rac->ra_cap2.acc_tech_typ = ACC_GSM_1800; | 899 rac->ra_cap2.acc_tech_typ = ACC_GSM_1800; |
| 985 case STD_DUAL_US: | 988 case STD_DUAL_US: |
| 986 cm3->v_gsm850_cap = SUPPORTED; | 989 cm3->v_gsm850_cap = SUPPORTED; |
| 987 cm3->gsm850_cap = rfc->rf_power.pow_class4[IDX_PWRCLASS_850].pow_class; | 990 cm3->gsm850_cap = rfc->rf_power.pow_class4[IDX_PWRCLASS_850].pow_class; |
| 988 cm3->v_pcs1900_cap = SUPPORTED; | 991 cm3->v_pcs1900_cap = SUPPORTED; |
| 989 cm3->pcs1900_cap = rfc->rf_power.pow_class4[IDX_PWRCLASS_1900].pow_class; | 992 cm3->pcs1900_cap = rfc->rf_power.pow_class4[IDX_PWRCLASS_1900].pow_class; |
| 990 /* note: in case the sc isīnt set, it is out of range */ | 993 /* note: in case the sc isn't set, it is out of range */ |
| 991 if (INRANGE(LOW_CHANNEL_1900,serving_cell,HIGH_CHANNEL_1900)) | 994 if (INRANGE(LOW_CHANNEL_1900,serving_cell,HIGH_CHANNEL_1900)) |
| 992 cm2->rf_pow_cap = cm3->pcs1900_cap - 1; | 995 cm2->rf_pow_cap = cm3->pcs1900_cap - 1; |
| 993 else | 996 else |
| 994 cm2->rf_pow_cap = cm3->gsm850_cap - 1; | 997 cm2->rf_pow_cap = cm3->gsm850_cap - 1; |
| 995 #ifdef GPRS | 998 #ifdef GPRS |
| 1139 rac->acc_cap.v_ms_struct = SUPPORTED; | 1142 rac->acc_cap.v_ms_struct = SUPPORTED; |
| 1140 rac->acc_cap.ms_struct.v_hscsd_ms_class = SUPPORTED; | 1143 rac->acc_cap.ms_struct.v_hscsd_ms_class = SUPPORTED; |
| 1141 rac->acc_cap.ms_struct.hscsd_ms_class = rfc->rf_ms.hscsd_ms_class; | 1144 rac->acc_cap.ms_struct.hscsd_ms_class = rfc->rf_ms.hscsd_ms_class; |
| 1142 } | 1145 } |
| 1143 | 1146 |
| 1144 | |
| 1145 if (rfc->rf_ms.gprs_ms_class) | 1147 if (rfc->rf_ms.gprs_ms_class) |
| 1146 { | 1148 { |
| 1147 rac->acc_cap.v_ms_struct = SUPPORTED; | 1149 rac->acc_cap.v_ms_struct = SUPPORTED; |
| 1148 rac->acc_cap.ms_struct.v_gprs_struct = SUPPORTED; | 1150 rac->acc_cap.ms_struct.v_gprs_struct = SUPPORTED; |
| 1149 rac->acc_cap.ms_struct.gprs_struct.gprs_ms_class = rfc->rf_ms.gprs_ms_class; | 1151 rac->acc_cap.ms_struct.gprs_struct.gprs_ms_class = rfc->rf_ms.gprs_ms_class; |
| 1150 rac->acc_cap.ms_struct.gprs_struct.gprs_eda = rfc->gprs_eda; | 1152 rac->acc_cap.ms_struct.gprs_struct.gprs_eda = rfc->gprs_eda; |
| 1151 } | 1153 } |
| 1152 | |
| 1153 #endif | 1154 #endif |
| 1154 | 1155 |
| 1155 cm3->ext_meas = rfc->ext_meas; | 1156 cm3->ext_meas = rfc->ext_meas; |
| 1156 | 1157 |
| 1157 if (rfc->meas) | 1158 if (rfc->meas) |
| 1528 rac->v_ra_cap_r = YES; | 1529 rac->v_ra_cap_r = YES; |
| 1529 rac->c_ra_cap_r++; | 1530 rac->c_ra_cap_r++; |
| 1530 rac->ra_cap_r[0].ra_cap_values.v_acc_cap = YES; | 1531 rac->ra_cap_r[0].ra_cap_values.v_acc_cap = YES; |
| 1531 | 1532 |
| 1532 if (INRANGE(LOW_CHANNEL_1800,serving_cell,HIGH_CHANNEL_1800)) | 1533 if (INRANGE(LOW_CHANNEL_1800,serving_cell,HIGH_CHANNEL_1800)) |
| 1533 { | 1534 { |
| 1534 rac->ra_cap_values.acc_tech_typ = ACC_GSM_1800; | 1535 rac->ra_cap_values.acc_tech_typ = ACC_GSM_1800; |
| 1535 rac->ra_cap_r[0].ra_cap_values.acc_tech_typ = ACC_GSM_P; | 1536 rac->ra_cap_r[0].ra_cap_values.acc_tech_typ = ACC_GSM_P; |
| 1536 } | 1537 } |
| 1537 else | 1538 else |
| 1538 { | 1539 { |
| 1552 cm2->egsm = SUPPORTED; | 1553 cm2->egsm = SUPPORTED; |
| 1553 cm3->mb_value = MB_DUAL_EXT; | 1554 cm3->mb_value = MB_DUAL_EXT; |
| 1554 | 1555 |
| 1555 #ifdef GPRS | 1556 #ifdef GPRS |
| 1556 rac->v_ra_cap_r = YES; | 1557 rac->v_ra_cap_r = YES; |
| 1557 rac->c_ra_cap_r++; | 1558 rac->c_ra_cap_r++; |
| 1558 rac->ra_cap_r[0].ra_cap_values.v_acc_cap = YES; | 1559 rac->ra_cap_r[0].ra_cap_values.v_acc_cap = YES; |
| 1559 | 1560 |
| 1560 if (INRANGE(LOW_CHANNEL_1800,serving_cell,HIGH_CHANNEL_1800)) | 1561 if (INRANGE(LOW_CHANNEL_1800,serving_cell,HIGH_CHANNEL_1800)) |
| 1561 { | 1562 { |
| 1562 rac->ra_cap_values.acc_tech_typ = ACC_GSM_1800; | 1563 rac->ra_cap_values.acc_tech_typ = ACC_GSM_1800; |
| 1668 cm3->v_gsm850_cap = SUPPORTED; | 1669 cm3->v_gsm850_cap = SUPPORTED; |
| 1669 cm3->gsm850_cap = rfc->rf_power.pow_class4[IDX_PWRCLASS_850].pow_class; | 1670 cm3->gsm850_cap = rfc->rf_power.pow_class4[IDX_PWRCLASS_850].pow_class; |
| 1670 cm3->v_pcs1900_cap = SUPPORTED; | 1671 cm3->v_pcs1900_cap = SUPPORTED; |
| 1671 cm3->pcs1900_cap = rfc->rf_power.pow_class4[IDX_PWRCLASS_1900].pow_class; | 1672 cm3->pcs1900_cap = rfc->rf_power.pow_class4[IDX_PWRCLASS_1900].pow_class; |
| 1672 | 1673 |
| 1673 /* note: in case the sc isīnt set, it is out of range */ | 1674 /* note: in case the sc isn't set, it is out of range */ |
| 1674 if (INRANGE(LOW_CHANNEL_1900,serving_cell,HIGH_CHANNEL_1900)) | 1675 if (INRANGE(LOW_CHANNEL_1900,serving_cell,HIGH_CHANNEL_1900)) |
| 1675 cm2->rf_pow_cap = cm3->pcs1900_cap - 1; | 1676 cm2->rf_pow_cap = cm3->pcs1900_cap - 1; |
| 1676 else | 1677 else |
| 1677 cm2->rf_pow_cap = cm3->gsm850_cap - 1; | 1678 cm2->rf_pow_cap = cm3->gsm850_cap - 1; |
| 1678 | 1679 |
| 1691 rac->ra_cap_values.acc_tech_typ = ACC_GSM_850; | 1692 rac->ra_cap_values.acc_tech_typ = ACC_GSM_850; |
| 1692 rac->ra_cap_r[0].ra_cap_values.acc_tech_typ = ACC_GSM_1900; | 1693 rac->ra_cap_r[0].ra_cap_values.acc_tech_typ = ACC_GSM_1900; |
| 1693 rac->ra_cap_values.acc_cap.pow_class = cm3->gsm850_cap; | 1694 rac->ra_cap_values.acc_cap.pow_class = cm3->gsm850_cap; |
| 1694 rac->ra_cap_r[0].ra_cap_values.acc_cap.pow_class = cm3->pcs1900_cap; | 1695 rac->ra_cap_r[0].ra_cap_values.acc_cap.pow_class = cm3->pcs1900_cap; |
| 1695 } | 1696 } |
| 1696 rac->ra_cap_r[0].ra_cap_values.acc_cap.v_a5_bits = NOT_SUPPORTED; | 1697 rac->ra_cap_r[0].ra_cap_values.acc_cap.v_a5_bits = NOT_SUPPORTED; |
| 1697 rac->ra_cap_r[0].ra_cap_values.acc_cap.v_ms_struct = NOT_SUPPORTED; | 1698 rac->ra_cap_r[0].ra_cap_values.acc_cap.v_ms_struct = NOT_SUPPORTED; |
| 1698 rac->ra_cap_r[0].ra_cap_values.acc_cap.v_pow_8psk_cap = NOT_SUPPORTED; | 1699 rac->ra_cap_r[0].ra_cap_values.acc_cap.v_pow_8psk_cap = NOT_SUPPORTED; |
| 1699 #endif | 1700 #endif |
| 1700 break; | 1701 break; |
| 1701 | 1702 |
| 1858 cm1->rf_pow_cap = cm2->rf_pow_cap; | 1859 cm1->rf_pow_cap = cm2->rf_pow_cap; |
| 1859 | 1860 |
| 1860 #if defined(_SIMULATION_) && defined(RFCAP_TEST) | 1861 #if defined(_SIMULATION_) && defined(RFCAP_TEST) |
| 1861 rr_csf_trace_power (); | 1862 rr_csf_trace_power (); |
| 1862 #endif /* RFCAP_TEST*/ | 1863 #endif /* RFCAP_TEST*/ |
| 1863 | |
| 1864 | 1864 |
| 1865 /*Set 8psk capability in uplink for EGPRS*/ | 1865 /*Set 8psk capability in uplink for EGPRS*/ |
| 1866 #if defined(FF_EGPRS) | 1866 #if defined(FF_EGPRS) |
| 1867 | 1867 |
| 1868 /*Initialize with 8psk is not supported in uplink*/ | 1868 /*Initialize with 8psk is not supported in uplink*/ |
| 1951 rac->ra_cap_values.acc_cap.pow_8psk_cap = rfc->rf_power.egde_pow1; | 1951 rac->ra_cap_values.acc_cap.pow_8psk_cap = rfc->rf_power.egde_pow1; |
| 1952 TRACE_EVENT_P1 ("5: 8PSK SUPPORTED (EGPRS) POWER CLASS E1 = %d",rac->ra_cap_values.acc_cap.pow_8psk_cap); | 1952 TRACE_EVENT_P1 ("5: 8PSK SUPPORTED (EGPRS) POWER CLASS E1 = %d",rac->ra_cap_values.acc_cap.pow_8psk_cap); |
| 1953 } | 1953 } |
| 1954 if (rfc->rf_power.egde_pow2) | 1954 if (rfc->rf_power.egde_pow2) |
| 1955 { | 1955 { |
| 1956 /*Set 8psk capability for 850/900*/ | 1956 /*Set 8psk capability for 850/900*/ |
| 1957 cm3->v_egde_struct = TRUE; | 1957 cm3->v_egde_struct = TRUE; |
| 1958 cm3->egde_struct.mod = SUPPORTED; | 1958 cm3->egde_struct.mod = SUPPORTED; |
| 1959 cm3->egde_struct.v_egde_pow2 = TRUE; | 1959 cm3->egde_struct.v_egde_pow2 = TRUE; |
| 1960 cm3->egde_struct.egde_pow2 = rfc->rf_power.egde_pow2; | 1960 cm3->egde_struct.egde_pow2 = rfc->rf_power.egde_pow2; |
| 1961 rac->ra_cap_r[0].ra_cap_values.acc_cap.v_pow_8psk_cap = TRUE; | 1961 rac->ra_cap_r[0].ra_cap_values.acc_cap.v_pow_8psk_cap = TRUE; |
| 2011 rac->ra_cap_values.acc_cap.ms_struct.v_gprs_struct = SUPPORTED; | 2011 rac->ra_cap_values.acc_cap.ms_struct.v_gprs_struct = SUPPORTED; |
| 2012 rac->ra_cap_values.acc_cap.ms_struct.gprs_struct.gprs_ms_class = rfc->rf_ms.gprs_ms_class; | 2012 rac->ra_cap_values.acc_cap.ms_struct.gprs_struct.gprs_ms_class = rfc->rf_ms.gprs_ms_class; |
| 2013 rac->ra_cap_values.acc_cap.ms_struct.gprs_struct.gprs_eda = rfc->gprs_eda; | 2013 rac->ra_cap_values.acc_cap.ms_struct.gprs_struct.gprs_eda = rfc->gprs_eda; |
| 2014 } | 2014 } |
| 2015 | 2015 |
| 2016 | |
| 2017 if (rfc->meas) | 2016 if (rfc->meas) |
| 2018 { | 2017 { |
| 2019 rac->ra_cap_values.acc_cap.ms_struct.v_sms_sm_value = SUPPORTED; | 2018 rac->ra_cap_values.acc_cap.ms_struct.v_sms_sm_value = SUPPORTED; |
| 2020 rac->ra_cap_values.acc_cap.ms_struct.sms_sm_value.sms_val = rfc->sms_val; | 2019 rac->ra_cap_values.acc_cap.ms_struct.sms_sm_value.sms_val = rfc->sms_val; |
| 2021 rac->ra_cap_values.acc_cap.ms_struct.sms_sm_value.sm_val = rfc->sm_val; | 2020 rac->ra_cap_values.acc_cap.ms_struct.sms_sm_value.sm_val = rfc->sm_val; |
| 2043 | 2042 |
| 2044 if ((rac->c_ra_cap_r > 0) AND rac->ra_cap_values.acc_cap.v_ms_struct) | 2043 if ((rac->c_ra_cap_r > 0) AND rac->ra_cap_values.acc_cap.v_ms_struct) |
| 2045 { | 2044 { |
| 2046 rac->v_ra_cap_r = TRUE; | 2045 rac->v_ra_cap_r = TRUE; |
| 2047 rac->ra_cap_r[0].ra_cap_values.acc_cap.rev99 = RELEASE99; | 2046 rac->ra_cap_r[0].ra_cap_values.acc_cap.rev99 = RELEASE99; |
| 2048 | |
| 2049 | 2047 |
| 2050 rac->ra_cap_r[0].ra_cap_values.acc_cap.compact = rfc->compact; | 2048 rac->ra_cap_r[0].ra_cap_values.acc_cap.compact = rfc->compact; |
| 2051 rac->ra_cap_r[0].ra_cap_values.acc_cap.es_ind = rfc->es_ind; | 2049 rac->ra_cap_r[0].ra_cap_values.acc_cap.es_ind = rfc->es_ind; |
| 2052 rac->ra_cap_r[0].ra_cap_values.acc_cap.ps = rfc->ps; | 2050 rac->ra_cap_r[0].ra_cap_values.acc_cap.ps = rfc->ps; |
| 2053 rac->ra_cap_r[0].ra_cap_values.acc_cap.vbs = rfc->vbs; | 2051 rac->ra_cap_r[0].ra_cap_values.acc_cap.vbs = rfc->vbs; |
| 2195 #ifdef FF_PS_RSSI | 2193 #ifdef FF_PS_RSSI |
| 2196 OR (new_qual NEQ rx_act_qual) | 2194 OR (new_qual NEQ rx_act_qual) |
| 2197 #endif | 2195 #endif |
| 2198 ) | 2196 ) |
| 2199 { | 2197 { |
| 2200 | |
| 2201 if ( GET_STATE (STATE_ATT) NEQ ATT_DEDICATED ) | 2198 if ( GET_STATE (STATE_ATT) NEQ ATT_DEDICATED ) |
| 2202 { | 2199 { |
| 2203 rx_act_value = new_value; | 2200 rx_act_value = new_value; |
| 2204 #ifdef FF_PS_RSSI | 2201 #ifdef FF_PS_RSSI |
| 2205 rx_act_qual = new_qual; | 2202 rx_act_qual = new_qual; |
