It appears that the RIL-modem-software has no implementation of setting fast dormancy.
The FP4 has five plugins installed in folder /usr/lib/aarch64-linux-gnu/ofono-sailfish/plugins:
-rw-r--r-- 1 root root 19176 Aug 23 2023 apndbplugin.so
-rw-r--r-- 1 root root 367264 Oct 7 2024 binderplugin.so
-rw-r--r-- 1 root root 70592 Sep 25 2024 mtkbinderpluginext.so
-rw-r--r-- 1 root root 6096 Nov 19 2023 rilbinderplugin.so
-rw-r--r-- 1 root root 320424 Aug 23 2023 rilplugin.so
The packaging information in gitlab/ubports/development/core/packaging says that sources of binderplugin, rilbinderplugin and rilplugin are available at mer-hybris at github. (I suppose the other two plugins are not related to setting fast dormancy.)
An ofono plugin initializes driver methods when it is registered. Radio settings are initialized in this struct (defined in sailfishos/ofono/.../ofono/include/radio-settings.h):
struct ofono_radio_settings_driver {
(...)
void (*query_fast_dormancy)(...)
void (*set_fast_dormancy)(...)
(...)
}
In the mer-hybris binderplugin this structure is initialized (ofono-binder-plugin/src/binder_radio_settings.c line 234):
binder_radio_settings_init() {
ofono_radio_settings_driver_register(&binder_radio_settings_driver);
}
but binder_radio_settings_driver does not provide fast dormancy methods (line 224). It only sets:
static const struct ofono_radio_settings_driver binder_radio_settings_driver = {
.name = BINDER_DRIVER,
.probe = binder_radio_settings_probe,
.remove = binder_radio_settings_remove,
.query_rat_mode = binder_radio_settings_query_rat_mode,
.set_rat_mode = binder_radio_settings_set_rat_mode,
.query_available_rats = binder_radio_settings_query_available_rats
};
As a result, radio_set_property_handler() in ofono/src/radio-settings.c (line 658) returns "Not implemented":
if (rs->driver->set_fast_dormancy == NULL)
return __ofono_error_not_implemented(msg);
There are other repositories on github with the same code, but none of them provide fast dormancy methods.
Now what could be next? Of course I could be overlooking things. Is my conclusion right (RIL modem software does not implement fast dormancy)? If so, is it worth fixing? I'd say yes, as the difference in battery usage is large and 2G/3G are being phased out. And if it is worth fixing, then where? The ofono-binder-plugin repository is active. Would this be the place to ask? @lduboeuf can I have your advice once more?