devies: fix band manager dev type

The dev type was set too early, but the actual dev is only being
discovered during open, so update it.

Change-Id: I1dda6023ca6f15bc063c3dfbc704db2410ff7c98
This commit is contained in:
Eric Wild 2023-11-06 19:31:46 +01:00
parent b52650f157
commit 859e341b84
4 changed files with 9 additions and 1 deletions

View File

@ -279,6 +279,7 @@ int blade_device::open()
dev_type = blade_dev_type::BLADE2;
tx_window = TX_WINDOW_FIXED;
update_band_dev(dev_key(dev_type, tx_sps, rx_sps));
struct bladerf_devinfo info;
bladerf_get_devinfo(dev, &info);

View File

@ -34,7 +34,7 @@ class band_manager {
using powerkeyt = typename powermapt::key_type;
using powermappedt = typename powermapt::mapped_type;
using devkeyt = typename devmapt::key_type;
const devkeyt &m_dev_type;
devkeyt m_dev_type;
const powermapt &m_power_map;
const devmapt &m_dev_map;
powerkeyt m_fallback;
@ -102,6 +102,10 @@ class band_manager {
band_ass_curr_sess = false;
}
void update_band_dev(devkeyt dev_type) {
m_dev_type = dev_type;
}
void get_dev_band_desc(powermappedt &desc)
{
if (m_band == 0) {

View File

@ -245,6 +245,7 @@ int LMSDevice::open()
m_dev_type = parse_dev_type(m_lms_dev);
dev_desc = dev_param_map.at(m_dev_type);
update_band_dev(m_dev_type);
if ((cfg->clock_ref != REF_EXTERNAL) && (cfg->clock_ref != REF_INTERNAL)) {
LOGC(DDEV, ERROR) << "Invalid reference type";

View File

@ -530,6 +530,8 @@ int uhd_device::open()
if (!parse_dev_type())
return -1;
update_band_dev(dev_key(dev_type, tx_sps, rx_sps));
if ((dev_type == E3XX) && !uhd_e3xx_version_chk()) {
LOGC(DDEV, ALERT) << "E3XX requires UHD 003.009.000 or greater";
return -1;