am7xxx_get_device_info() was not covering the case of a non-NULL output
parameter on the very first invocation, this case would not usually
happen in normal operation, but the problem was there: in that case the
output device_info structure would have contained garbage, as spotted by
the static analyzer:
.../src/am7xxx.c:1279:21: warning: The right operand of '<=' is a garbage value
original_width <= device_info.native_width &&
^ ~~~~~~~~~~~~~~~~~~~~~~~~
.../src/am7xxx.c:1288:39: warning: The right operand of '/' is a garbage value
width_ratio = (float)original_width / device_info.native_width;
^ ~~~~~~~~~~~~~~~~~~~~~~~~
While at it also fix the symmetric case of a NULL output parameter on
subsequent invocation: check that the output argument is non-NULL before
memcpy-ing to it.