Re: [PATCH] qmi: radio-settings: Do not unconditionally try to enable unsupported modes
Ivaylo Dimitrov <[email protected]> Wed, 11 Dec 2024 15:54:54 +0200
| Newsgroups | dev.linux.lists.ofono |
|---|---|
| Message-ID | <[email protected]> |
Hi Denis,
On 11.12.24 г. 7:13 ч., Denis Kenzior wrote:
>
> This looks like copy-paste of get_caps_cb. Lets avoid that by invoking
> QMI_DMS_GET_CAPS during probe(). See below.
>
I was looking into doing it during probe, somehow missed
OFONO_ATOM_DRIVER_FLAG_REGISTER_ON_PROBE flag. Now I see.
...
+ if (rsd->rat_mode_any || !get_rat_mode_any(rs, mode, cb, user_data))
>
> So your intent here is to query the radio capabilities first if they
> haven't been queried before? If so, then the typical pattern is to do
> this during probe(), before calling ofono_radio_settings_register().
> See qmimodem/lte.c for an example.
>
Exactly(the intent), but will do it like in lte.c
...
>> available_rats = 0;
>> +
>> for (i = 0; i < caps->radio_if_count; i++) {
>> switch (caps->radio_if[i]) {
>> case QMI_DMS_RADIO_IF_GSM:
>> available_rats |= OFONO_RADIO_ACCESS_MODE_GSM;
>> + rsd->rat_mode_any |= QMI_NAS_RAT_MODE_PREF_GSM;
>> break;
>> case QMI_DMS_RADIO_IF_UMTS:
>> available_rats |= OFONO_RADIO_ACCESS_MODE_UMTS;
>> + rsd->rat_mode_any |= QMI_NAS_RAT_MODE_PREF_UMTS;
>> break;
>> case QMI_DMS_RADIO_IF_LTE:
>> available_rats |= OFONO_RADIO_ACCESS_MODE_LTE;
>> + rsd->rat_mode_any |= QMI_NAS_RAT_MODE_PREF_LTE;
>> break;
>> }
>> }
>
> Wouldn't it be easier to simply do
> rsd->rat_mode_any = available_rats?
>
No, because available_rats are of type OFONO_RADIO_ACCESS_TYPE_XXX,
while rat_mode_any is of type QMI_NAS_RAT_MODE_PREF_XXX
Will send v2 with the above issues fixed.
Regards,
Ivo