osmo-trx-lms: improve runtime gain setting (missing calibration)
currently the gain is calibrated to a board specific maximum value.
all attenuation changes happening after that do not start a new filter/gain calibration which means that lower levels/runtime settings max not have the same rf performance.
gain calibration is important for linearity and also takes care of things like i/q balance/dc offset.
since calibration can not happen while a stream is running on limesuite this would require doing a 'calibration table' on startup and caching the resulting register values to be set on runtime.
It can be done using functions from LimeSuite.h . You can save and load LMS chip registers using LMS_ReadLMSReg() and LMS_WriteLMSReg() functions. We can make you a list of registers that need to be saved/loaded if you are going to implement calibration value cache for various Tx gain level values. As far as I know, there is no difference between boards as calibration values are configured in LMS7 chip and all LimeSDR boards have the same chip.