Branch data Line data Source code
1 : : // SPDX-License-Identifier: GPL-2.0-only 2 : : #include <linux/types.h> 3 : : #include <linux/export.h> 4 : : #include <asm/cpu.h> 5 : : 6 : 15 : unsigned int x86_family(unsigned int sig) 7 : : { 8 : 15 : unsigned int x86; 9 : : 10 : 15 : x86 = (sig >> 8) & 0xf; 11 : : 12 [ - + ]: 9 : if (x86 == 0xf) 13 : 0 : x86 += (sig >> 20) & 0xff; 14 : : 15 : 15 : return x86; 16 : : } 17 : : EXPORT_SYMBOL_GPL(x86_family); 18 : : 19 : 6 : unsigned int x86_model(unsigned int sig) 20 : : { 21 : 6 : unsigned int fam, model; 22 : : 23 [ - + ]: 6 : fam = x86_family(sig); 24 : : 25 : 6 : model = (sig >> 4) & 0xf; 26 : : 27 [ + - ]: 6 : if (fam >= 0x6) 28 : 6 : model += ((sig >> 16) & 0xf) << 4; 29 : : 30 : 6 : return model; 31 : : } 32 : : EXPORT_SYMBOL_GPL(x86_model); 33 : : 34 : 6 : unsigned int x86_stepping(unsigned int sig) 35 : : { 36 : 6 : return sig & 0xf; 37 : : } 38 : : EXPORT_SYMBOL_GPL(x86_stepping);