For Krackan Point, model-specific matching would not work because
amdsmu_match() browses amdsmu_products[] in order and returns the first
match, and the Krackan Point's 'struct amdsmu_product' object variant
with a 'model' field of 0, indicating that any model matches, is listed
before the variant with model 0x70 in amdsmu_products[].
In practice, this means that reporting of IP blocks for Krackan Point
model 0x70 only was broken. Specifically, not all the existing blocks
were reported and most statistics were not attributed to the right
blocks.
Fix this by making amdsmu_match() parse amdsmu_products[] in reverse, so
model-generic entries can continue to appear first.
While here, since the CPU model is between 0 and 255, change the type
used for CPU models to an 'int' and use the special value -1 to skip
model match, as there exist CPUs reporting 0 as the model (even if, to
our knowledge, only old CPUs seem to be doing that).
While here, fix alignement and whitespace in amdsmu_products[]'s
initializers.
Fixes: 9c77fb6aaa36 ("amdsmu: Add Krackan Point support")