Skip to content

Commit bd528a9

Browse files
committed
[Intel][ARL] Declare PCI ids to probe the IMC as a MTL controller
1 parent 2f2e041 commit bd528a9

File tree

4 files changed

+41
-3
lines changed

4 files changed

+41
-3
lines changed

x86_64/corefreq-api.h

+5
Original file line numberDiff line numberDiff line change
@@ -1556,6 +1556,11 @@ typedef struct
15561556
#define DID_INTEL_METEORLAKE_UT4_PCH 0x7e07
15571557
/* Source: Arrow Lake Client Platform/MTL-S (0x6-0xc6, stepping: 0x0) */
15581558
#define DID_INTEL_ARL_MTL_PCH_S_SMBUS 0x7f23
1559+
/* Source: Intel Core Ultra 200S | ASRock Z890 Taichi OCF */
1560+
#define DID_INTEL_ARROWLAKE_S_8_16_HB 0x7d1a
1561+
#define DID_INTEL_ARROWLAKE_S_8_12_HB 0x7d1b
1562+
#define DID_INTEL_ARROWLAKE_S_6_8_HB 0x7d2a
1563+
#define DID_INTEL_ARROWLAKE_S_PCH 0xae0d
15591564
/* Source: /include/linux/pci_ids.h */
15601565
#define DID_AMD_K8_NB_MEMCTL 0x1102
15611566
#define DID_AMD_K8_NB 0x1100

x86_64/corefreq.h

+1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ enum CHIPSET {
8989
IC_MTL_H,
9090
IC_MTL_U,
9191
IC_MTL_UT4,
92+
IC_ARL_S,
9293
IC_K8,
9394
IC_ZEN,
9495
CHIPSETS

x86_64/corefreqd.c

+13
Original file line numberDiff line numberDiff line change
@@ -6376,6 +6376,9 @@ void MTL_IMC(RO(SHM_STRUCT) *RO(Shm), RO(PROC) *RO(Proc))
63766376
}
63776377
}
63786378

6379+
#define ARL_CAP MTL_CAP
6380+
#define ARL_IMC MTL_IMC
6381+
63796382
void AMD_0Fh_MCH(RO(SHM_STRUCT) *RO(Shm), RO(PROC) *RO(Proc))
63806383
{
63816384
struct {
@@ -7055,6 +7058,7 @@ static char *Chipset[CHIPSETS] = {
70557058
[IC_MTL_H] = "Intel MTL-H",
70567059
[IC_MTL_U] = "Intel MTL-U",
70577060
[IC_MTL_UT4] = "Intel MTL-U Type4",
7061+
[IC_ARL_S] = "Intel ARL-S",
70587062
[IC_K8] = "K8/HyperTransport",
70597063
[IC_ZEN] = "Zen UMC"
70607064
};
@@ -7625,6 +7629,15 @@ void PCI_Intel(RO(SHM_STRUCT) *RO(Shm), RO(PROC) *RO(Proc), RO(CORE) *RO(Core),
76257629
case DID_INTEL_METEORLAKE_UT4_PCH:
76267630
SET_CHIPSET(IC_MTL_UT4);
76277631
break;
7632+
case DID_INTEL_ARROWLAKE_S_8_16_HB:
7633+
case DID_INTEL_ARROWLAKE_S_8_12_HB:
7634+
case DID_INTEL_ARROWLAKE_S_6_8_HB:
7635+
ARL_CAP(RO(Shm), RO(Proc), RO(Core));
7636+
ARL_IMC(RO(Shm), RO(Proc));
7637+
break;
7638+
case DID_INTEL_ARROWLAKE_S_PCH:
7639+
SET_CHIPSET(IC_ARL_S);
7640+
break;
76287641
}
76297642
}
76307643

x86_64/corefreqk.h

+22-3
Original file line numberDiff line numberDiff line change
@@ -2165,6 +2165,8 @@ static PCI_CALLBACK GLK_IMC(struct pci_dev *dev) ;
21652165
#define RPL_PCH CML_PCH
21662166
static PCI_CALLBACK MTL_IMC(struct pci_dev *dev) ;
21672167
#define MTL_PCH CML_PCH
2168+
#define ARL_IMC MTL_IMC
2169+
#define ARL_PCH MTL_PCH
21682170
static PCI_CALLBACK AMD_0Fh_MCH(struct pci_dev *dev) ;
21692171
static PCI_CALLBACK AMD_0Fh_HTT(struct pci_dev *dev) ;
21702172
static PCI_CALLBACK AMD_Zen_IOMMU(struct pci_dev *dev) ;
@@ -3162,6 +3164,23 @@ static struct pci_device_id PCI_MTL_ids[] = {
31623164
PCI_VDEVICE(INTEL, DID_INTEL_METEORLAKE_UT4_PCH),
31633165
.driver_data = (kernel_ulong_t) MTL_PCH
31643166
},
3167+
/* Arrow Lake */
3168+
{
3169+
PCI_VDEVICE(INTEL, DID_INTEL_ARROWLAKE_S_8_16_HB),
3170+
.driver_data = (kernel_ulong_t) ARL_IMC
3171+
},
3172+
{
3173+
PCI_VDEVICE(INTEL, DID_INTEL_ARROWLAKE_S_8_12_HB),
3174+
.driver_data = (kernel_ulong_t) ARL_IMC
3175+
},
3176+
{
3177+
PCI_VDEVICE(INTEL, DID_INTEL_ARROWLAKE_S_6_8_HB),
3178+
.driver_data = (kernel_ulong_t) ARL_IMC
3179+
},
3180+
{
3181+
PCI_VDEVICE(INTEL, DID_INTEL_ARROWLAKE_S_PCH),
3182+
.driver_data = (kernel_ulong_t) ARL_PCH
3183+
},
31653184
{0, }
31663185
};
31673186

@@ -12014,7 +12033,7 @@ static ARCH Arch[ARCHITECTURES] = {
1201412033
.thermalFormula = THERMAL_FORMULA_INTEL,
1201512034
.voltageFormula = VOLTAGE_FORMULA_INTEL_SAV,
1201612035
.powerFormula = POWER_FORMULA_INTEL,
12017-
.PCI_ids = PCI_Void_ids,
12036+
.PCI_ids = PCI_MTL_ids,
1201812037
.Uncore = {
1201912038
.Start = Start_Uncore_Alderlake,
1202012039
.Stop = Stop_Uncore_Alderlake,
@@ -12038,7 +12057,7 @@ static ARCH Arch[ARCHITECTURES] = {
1203812057
.thermalFormula = THERMAL_FORMULA_INTEL,
1203912058
.voltageFormula = VOLTAGE_FORMULA_INTEL_SAV,
1204012059
.powerFormula = POWER_FORMULA_INTEL,
12041-
.PCI_ids = PCI_Void_ids,
12060+
.PCI_ids = PCI_MTL_ids,
1204212061
.Uncore = {
1204312062
.Start = Start_Uncore_Alderlake,
1204412063
.Stop = Stop_Uncore_Alderlake,
@@ -12062,7 +12081,7 @@ static ARCH Arch[ARCHITECTURES] = {
1206212081
.thermalFormula = THERMAL_FORMULA_INTEL,
1206312082
.voltageFormula = VOLTAGE_FORMULA_INTEL_SAV,
1206412083
.powerFormula = POWER_FORMULA_INTEL,
12065-
.PCI_ids = PCI_Void_ids,
12084+
.PCI_ids = PCI_MTL_ids,
1206612085
.Uncore = {
1206712086
.Start = Start_Uncore_Alderlake,
1206812087
.Stop = Stop_Uncore_Alderlake,

0 commit comments

Comments
 (0)