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 10 : unsigned int x86_family(unsigned int sig) 7 : { 8 10 : unsigned int x86; 9 : 10 10 : x86 = (sig >> 8) & 0xf; 11 : 12 5 : if (x86 == 0xf) 13 0 : x86 += (sig >> 20) & 0xff; 14 : 15 10 : return x86; 16 : } 17 : EXPORT_SYMBOL_GPL(x86_family); 18 : 19 5 : unsigned int x86_model(unsigned int sig) 20 : { 21 5 : unsigned int fam, model; 22 : 23 5 : fam = x86_family(sig); 24 : 25 5 : model = (sig >> 4) & 0xf; 26 : 27 5 : if (fam >= 0x6) 28 5 : model += ((sig >> 16) & 0xf) << 4; 29 : 30 5 : return model; 31 : } 32 : EXPORT_SYMBOL_GPL(x86_model); 33 : 34 5 : unsigned int x86_stepping(unsigned int sig) 35 : { 36 5 : return sig & 0xf; 37 : } 38 : EXPORT_SYMBOL_GPL(x86_stepping);