Revision 5c0d3d30 host/lib/usrp/usrp1/dsp_impl.cpp

b/host/lib/usrp/usrp1/dsp_impl.cpp
29 29
/***********************************************************************
30 30
 * RX DDC Initialization
31 31
 **********************************************************************/
32
void usrp1_impl::rx_ddc_init(void)
32
void usrp1_impl::rx_dsp_init(void)
33 33
{
34
    _rx_ddc_proxy = wax_obj_proxy::make(
35
        boost::bind(&usrp1_impl::rx_ddc_get, this, _1, _2),
36
        boost::bind(&usrp1_impl::rx_ddc_set, this, _1, _2));
34
    _rx_dsp_proxy = wax_obj_proxy::make(
35
        boost::bind(&usrp1_impl::rx_dsp_get, this, _1, _2),
36
        boost::bind(&usrp1_impl::rx_dsp_set, this, _1, _2));
37 37

  
38
    rx_ddc_set(DSP_PROP_HOST_RATE, double(64e6/10));
38
    rx_dsp_set(DSP_PROP_HOST_RATE, double(64e6/10)); //FIXME magic number
39 39
}
40 40

  
41 41
/***********************************************************************
42 42
 * RX DDC Get
43 43
 **********************************************************************/
44
void usrp1_impl::rx_ddc_get(const wax::obj &key, wax::obj &val)
44
void usrp1_impl::rx_dsp_get(const wax::obj &key, wax::obj &val)
45 45
{
46 46
    switch(key.as<dsp_prop_t>()){
47 47
    case DSP_PROP_NAME:
......
53 53
        return;
54 54

  
55 55
    case DSP_PROP_FREQ_SHIFT:
56
        val = _ddc_freq;
56
        val = _rx_dsp_freq;
57 57
        return;
58 58

  
59 59
    case DSP_PROP_CODEC_RATE:
......
61 61
        return;
62 62

  
63 63
    case DSP_PROP_HOST_RATE:
64
        val = _clock_ctrl->get_master_clock_freq()/_ddc_decim;
64
        val = _clock_ctrl->get_master_clock_freq()/_rx_dsp_decim;
65 65
        return;
66 66

  
67 67
    default: UHD_THROW_PROP_GET_ERROR();
......
90 90
    return (unsigned int) v;
91 91
}
92 92

  
93
void usrp1_impl::rx_ddc_set(const wax::obj &key, const wax::obj &val)
93
void usrp1_impl::rx_dsp_set(const wax::obj &key, const wax::obj &val)
94 94
{
95 95
    switch(key.as<dsp_prop_t>()) {
96 96
    case DSP_PROP_FREQ_SHIFT: {
97 97
            double new_freq = val.as<double>();
98
            _iface->poke32(FR_RX_FREQ_0, compute_freq_word(64e6, new_freq));
99
            _ddc_freq = new_freq;
98
            _iface->poke32(FR_RX_FREQ_0, compute_freq_word(64e6, new_freq)); //FIXME magic rate
99
            _tx_dsp_freq = new_freq;
100 100
            return;
101 101
        }
102 102
    case DSP_PROP_HOST_RATE: {
......
110 110
                return;
111 111
            }
112 112

  
113
            _ddc_decim = rate;
114
            _iface->poke32(FR_DECIM_RATE, _ddc_decim/2 - 1);
113
            _rx_dsp_decim = rate;
114
            _iface->poke32(FR_DECIM_RATE, _rx_dsp_decim/2 - 1);
115 115
        }
116 116
        return;
117 117

  
......
123 123
/***********************************************************************
124 124
 * TX DUC Initialization
125 125
 **********************************************************************/
126
void usrp1_impl::tx_duc_init(void)
126
void usrp1_impl::tx_dsp_init(void)
127 127
{
128
    _tx_duc_proxy = wax_obj_proxy::make(
129
                          boost::bind(&usrp1_impl::tx_duc_get, this, _1, _2),
130
                          boost::bind(&usrp1_impl::tx_duc_set, this, _1, _2));
128
    _tx_dsp_proxy = wax_obj_proxy::make(
129
                          boost::bind(&usrp1_impl::tx_dsp_get, this, _1, _2),
130
                          boost::bind(&usrp1_impl::tx_dsp_set, this, _1, _2));
131 131

  
132 132
    //initial config and update
133
    tx_duc_set(DSP_PROP_HOST_RATE, double(64e6/10));
133
    tx_dsp_set(DSP_PROP_HOST_RATE, double(64e6/10)); //FIXME magic number
134 134
}
135 135

  
136 136
/***********************************************************************
137 137
 * TX DUC Get
138 138
 **********************************************************************/
139
void usrp1_impl::tx_duc_get(const wax::obj &key, wax::obj &val)
139
void usrp1_impl::tx_dsp_get(const wax::obj &key, wax::obj &val)
140 140
{
141 141
    switch(key.as<dsp_prop_t>()) {
142 142
    case DSP_PROP_NAME:
......
148 148
        return;
149 149

  
150 150
    case DSP_PROP_FREQ_SHIFT:
151
        val = _duc_freq;
151
        val = _tx_dsp_freq;
152 152
        return;
153 153

  
154 154
    case DSP_PROP_CODEC_RATE:
......
156 156
        return;
157 157

  
158 158
    case DSP_PROP_HOST_RATE:
159
        val = _clock_ctrl->get_master_clock_freq() * 2 / _duc_interp;
159
        val = _clock_ctrl->get_master_clock_freq() * 2 / _tx_dsp_interp;
160 160
        return;
161 161

  
162 162
    default: UHD_THROW_PROP_GET_ERROR();
......
167 167
/***********************************************************************
168 168
 * TX DUC Set
169 169
 **********************************************************************/
170
void usrp1_impl::tx_duc_set(const wax::obj &key, const wax::obj &val)
170
void usrp1_impl::tx_dsp_set(const wax::obj &key, const wax::obj &val)
171 171
{
172 172
    switch(key.as<dsp_prop_t>()) {
173 173

  
174 174
    case DSP_PROP_FREQ_SHIFT: {
175 175
            double new_freq = val.as<double>();
176
            _codec_ctrl->set_duc_freq(new_freq);
177
            _duc_freq = new_freq;
176
            _codec_ctrls[DBOARD_SLOT_A]->set_duc_freq(new_freq);
177
            _tx_dsp_freq = new_freq;
178 178
            return;
179 179
        }
180

  
181
    //TODO freq prop secondary: DBOARD_SLOT_B codec...
182

  
180 183
    case DSP_PROP_HOST_RATE: {
181 184
            unsigned int rate =
182 185
                    _clock_ctrl->get_master_clock_freq() * 2 / val.as<double>();
......
187 190
                return;
188 191
            }
189 192

  
190
            _duc_interp = rate;
191
            _iface->poke32(FR_INTERP_RATE, _duc_interp / 4 - 1);
193
            _tx_dsp_interp = rate;
194
            _iface->poke32(FR_INTERP_RATE, _tx_dsp_interp / 4 - 1);
192 195
            return;
193 196
        }
194 197
    default: UHD_THROW_PROP_SET_ERROR();

Also available in: Unified diff