diff --git a/libcpuid/recog_amd.c b/libcpuid/recog_amd.c index b735c40..1562bca 100644 --- a/libcpuid/recog_amd.c +++ b/libcpuid/recog_amd.c @@ -61,6 +61,7 @@ enum _amd_bits_t { _X4 = LBIT( 13 ), _X6 = LBIT( 14 ), _FX = LBIT( 15 ), + _APU_ = LBIT( 16 ), }; typedef enum _amd_bits_t amd_bits_t; @@ -469,11 +470,12 @@ static struct amd_code_and_bits_t decode_amd_codename_part1(const char *bs) if (strstr(bs, "XP")) bits |= _XP_; if (strstr(bs, "XP-M")) bits |= _M_; if (strstr(bs, "(LV)")) bits |= _LV_; + if (strstr(bs, " APU ")) bits |= _APU_; if (match_pattern(bs, "C-##")) code = FUSION_C; if (match_pattern(bs, "E-###")) code = FUSION_E; if (match_pattern(bs, "Z-##")) code = FUSION_Z; - if (match_pattern(bs, "E#-####") || match_pattern(bs, "A#-####")) code = FUSION_EA; + if (match_pattern(bs, "[EA]#-####")) code = FUSION_EA; result.code = code; result.bits = bits;