static tdm_error
_tdm_display_check_module(tdm_backend_module *module)
{
- int major, minor;
+ int tdm_backend_major, tdm_backend_minor;
+ int backend_module_major, backend_module_minor;
- TDM_INFO("TDM ABI version : %d.%d",
- TDM_MAJOR_VERSION, TDM_MINOR_VERSION);
+ tdm_backend_major = TDM_BACKEND_GET_ABI_MAJOR(TDM_BACKEND_ABI_LATEST_VERSION);
+ tdm_backend_minor = TDM_BACKEND_GET_ABI_MINOR(TDM_BACKEND_ABI_LATEST_VERSION);
+
+ TDM_INFO("TDM Backend ABI version : %d.%d",
+ tdm_backend_major, tdm_backend_minor);
if (!module->name) {
TDM_ERR("TDM backend doesn't have name");
return TDM_ERROR_BAD_MODULE;
}
- major = TDM_BACKEND_GET_ABI_MAJOR(module->abi_version);
- minor = TDM_BACKEND_GET_ABI_MINOR(module->abi_version);
+ backend_module_major = TDM_BACKEND_GET_ABI_MAJOR(module->abi_version);
+ backend_module_minor = TDM_BACKEND_GET_ABI_MINOR(module->abi_version);
TDM_INFO("TDM module name: %s", module->name);
TDM_INFO("'%s' vendor: %s", module->name, module->vendor);
- TDM_INFO("'%s' version: %d.%d", module->name, major, minor);
+ TDM_INFO("'%s' backend ABI version: %d.%d", module->name, backend_module_major, backend_module_minor);
- if (major != TDM_MAJOR_VERSION) {
- TDM_ERR("'%s' major version mismatch, %d != %d",
- module->name, major, TDM_MAJOR_VERSION);
+ if (backend_module_major > tdm_backend_major) {
+ TDM_ERR("'%s' major version(%d) is newer than %d",
+ module->name, backend_module_major, tdm_backend_major);
return TDM_ERROR_BAD_MODULE;
}
- if (minor > TDM_MINOR_VERSION) {
+ if (tdm_backend_major == backend_module_major &&
+ backend_module_minor > tdm_backend_minor) {
TDM_ERR("'%s' minor version(%d) is newer than %d",
- module->name, minor, TDM_MINOR_VERSION);
+ module->name, backend_module_minor, tdm_backend_minor);
return TDM_ERROR_BAD_MODULE;
}