Skip to content
This repository was archived by the owner on Oct 3, 2024. It is now read-only.

Commit 13dc61f

Browse files
Merge remote-tracking branch 'drm-intel/topic/core-for-CI' into drm-tip
# Conflicts: # drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c # drivers/gpu/drm/i915/i915_pci.c # kernel/panic.c # sound/hda/hdac_i915.c
2 parents 0e2d398 + 837f596 commit 13dc61f

File tree

31 files changed

+256
-81
lines changed

31 files changed

+256
-81
lines changed

arch/x86/events/rapl.c

+2
Original file line numberDiff line numberDiff line change
@@ -807,6 +807,8 @@ static const struct x86_cpu_id rapl_model_match[] __initconst = {
807807
X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE, &model_skl),
808808
X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE_L, &model_skl),
809809
X86_MATCH_INTEL_FAM6_MODEL(SAPPHIRERAPIDS_X, &model_spr),
810+
X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE_L, &model_skl),
811+
X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE, &model_skl),
810812
{},
811813
};
812814
MODULE_DEVICE_TABLE(x86cpu, rapl_model_match);

drivers/acpi/sleep.c

+21
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,16 @@ static int acpi_sleep_prepare(u32 acpi_state)
8080
return 0;
8181
}
8282

83+
static u8 max_sleep_state = -1;
84+
8385
bool acpi_sleep_state_supported(u8 sleep_state)
8486
{
8587
acpi_status status;
8688
u8 type_a, type_b;
8789

90+
if (sleep_state > max_sleep_state)
91+
return false;
92+
8893
status = acpi_get_sleep_type_data(sleep_state, &type_a, &type_b);
8994
return ACPI_SUCCESS(status) && (!acpi_gbl_reduced_hardware
9095
|| (acpi_gbl_FADT.sleep_control.address
@@ -161,6 +166,13 @@ static int __init init_nvs_nosave(const struct dmi_system_id *d)
161166
return 0;
162167
}
163168

169+
static int __init init_nosleep(const struct dmi_system_id *d)
170+
{
171+
pr_info("Disabling ACPI suspend\n");
172+
max_sleep_state = 0;
173+
return 0;
174+
}
175+
164176
bool acpi_sleep_default_s3;
165177

166178
static int __init init_default_s3(const struct dmi_system_id *d)
@@ -373,6 +385,15 @@ static const struct dmi_system_id acpisleep_dmi_table[] __initconst = {
373385
DMI_MATCH(DMI_PRODUCT_NAME, "20GGA00L00"),
374386
},
375387
},
388+
389+
{
390+
.callback = init_nosleep,
391+
.ident = "samus",
392+
.matches = {
393+
DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"),
394+
DMI_MATCH(DMI_PRODUCT_NAME, "Samus"),
395+
},
396+
},
376397
{},
377398
};
378399

drivers/ata/libata-core.c

+8-8
Original file line numberDiff line numberDiff line change
@@ -2030,7 +2030,7 @@ static bool ata_identify_page_supported(struct ata_device *dev, u8 page)
20302030
* for drives which implement this ATA level or above.
20312031
*/
20322032
if (ata_id_major_version(dev->id) >= 10)
2033-
ata_dev_warn(dev,
2033+
ata_dev_notice(dev,
20342034
"ATA Identify Device Log not supported\n");
20352035
dev->horkage |= ATA_HORKAGE_NO_ID_DEV_LOG;
20362036
return false;
@@ -2102,7 +2102,7 @@ static void ata_dev_config_ncq_send_recv(struct ata_device *dev)
21022102
unsigned int err_mask;
21032103

21042104
if (!ata_log_supported(dev, ATA_LOG_NCQ_SEND_RECV)) {
2105-
ata_dev_warn(dev, "NCQ Send/Recv Log not supported\n");
2105+
ata_dev_notice(dev, "NCQ Send/Recv Log not supported\n");
21062106
return;
21072107
}
21082108
err_mask = ata_read_log_page(dev, ATA_LOG_NCQ_SEND_RECV,
@@ -2127,8 +2127,8 @@ static void ata_dev_config_ncq_non_data(struct ata_device *dev)
21272127
unsigned int err_mask;
21282128

21292129
if (!ata_log_supported(dev, ATA_LOG_NCQ_NON_DATA)) {
2130-
ata_dev_warn(dev,
2131-
"NCQ Send/Recv Log not supported\n");
2130+
ata_dev_notice(dev,
2131+
"NCQ Send/Recv Log not supported\n");
21322132
return;
21332133
}
21342134
err_mask = ata_read_log_page(dev, ATA_LOG_NCQ_NON_DATA,
@@ -2619,14 +2619,14 @@ int ata_dev_configure(struct ata_device *dev)
26192619
if (ata_id_is_cfa(id)) {
26202620
/* CPRM may make this media unusable */
26212621
if (id[ATA_ID_CFA_KEY_MGMT] & 1)
2622-
ata_dev_warn(dev,
2622+
ata_dev_notice(dev,
26232623
"supports DRM functions and may not be fully accessible\n");
26242624
snprintf(revbuf, 7, "CFA");
26252625
} else {
26262626
snprintf(revbuf, 7, "ATA-%d", ata_id_major_version(id));
26272627
/* Warn the user if the device has TPM extensions */
26282628
if (ata_id_has_tpm(id))
2629-
ata_dev_warn(dev,
2629+
ata_dev_notice(dev,
26302630
"supports DRM functions and may not be fully accessible\n");
26312631
}
26322632

@@ -2779,8 +2779,8 @@ int ata_dev_configure(struct ata_device *dev)
27792779
}
27802780

27812781
if ((dev->horkage & ATA_HORKAGE_FIRMWARE_WARN) && print_info) {
2782-
ata_dev_warn(dev, "WARNING: device requires firmware update to be fully functional\n");
2783-
ata_dev_warn(dev, " contact the vendor or visit http://ata.wiki.kernel.org\n");
2782+
ata_dev_notice(dev, "WARNING: device requires firmware update to be fully functional\n");
2783+
ata_dev_notice(dev, " contact the vendor or visit http://ata.wiki.kernel.org\n");
27842784
}
27852785

27862786
return 0;

drivers/gpu/drm/i915/Kconfig.debug

+9
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,14 @@ config DRM_I915_DEBUG
2121
depends on DRM_I915
2222
depends on EXPERT # only for developers
2323
depends on !COMPILE_TEST # never built by robots
24+
select PCI_MSI # ... for iommu enabled by default
25+
select IOMMU_API
26+
select IOMMU_IOVA
27+
select IOMMU_SUPPORT
28+
select NEED_DMA_MAP_STATE
29+
select DMAR_TABLE
30+
select INTEL_IOMMU
31+
select INTEL_IOMMU_DEFAULT_ON
2432
select DEBUG_FS
2533
select PREEMPT_COUNT
2634
select I2C_CHARDEV
@@ -40,6 +48,7 @@ config DRM_I915_DEBUG
4048
select DRM_I915_DEBUG_RUNTIME_PM
4149
select DRM_I915_SW_FENCE_DEBUG_OBJECTS
4250
select DRM_I915_SELFTEST
51+
select BROKEN # for prototype uAPI
4352
default n
4453
help
4554
Choose this option to turn on extra driver debugging that may affect

drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c

+16-5
Original file line numberDiff line numberDiff line change
@@ -492,16 +492,27 @@ eb_unreserve_vma(struct eb_vma *ev)
492492
ev->flags &= ~__EXEC_OBJECT_RESERVED;
493493
}
494494

495+
static bool platform_has_relocs_enabled(const struct i915_execbuffer *eb)
496+
{
497+
/*
498+
* Relocations are disallowed starting from gen12 with Tigerlake
499+
* as an exception. To unblock CI, we are temporarily allowing it
500+
* for Rocketlake and Alderlake.
501+
*/
502+
if (GRAPHICS_VER(eb->i915) < 12 || IS_TIGERLAKE(eb->i915) ||
503+
IS_ROCKETLAKE(eb->i915) || IS_ALDERLAKE_S(eb->i915) ||
504+
IS_ALDERLAKE_P(eb->i915))
505+
return true;
506+
507+
return false;
508+
}
509+
495510
static int
496511
eb_validate_vma(struct i915_execbuffer *eb,
497512
struct drm_i915_gem_exec_object2 *entry,
498513
struct i915_vma *vma)
499514
{
500-
/* Relocations are disallowed for all platforms after TGL-LP. This
501-
* also covers all platforms with local memory.
502-
*/
503-
if (entry->relocation_count &&
504-
GRAPHICS_VER(eb->i915) >= 12 && !IS_TIGERLAKE(eb->i915))
515+
if (entry->relocation_count && !platform_has_relocs_enabled(eb))
505516
return -EINVAL;
506517

507518
if (unlikely(entry->flags & eb->invalid_flags))

drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ void intel_uc_fw_change_status(struct intel_uc_fw *uc_fw,
5353
* firmware as TGL.
5454
*/
5555
#define INTEL_GUC_FIRMWARE_DEFS(fw_def, guc_def) \
56+
fw_def(DG2, 0, guc_def(dg2, 70, 1, 1)) \
5657
fw_def(ALDERLAKE_P, 0, guc_def(adlp, 70, 1, 1)) \
5758
fw_def(ALDERLAKE_S, 0, guc_def(tgl, 70, 1, 1)) \
5859
fw_def(DG1, 0, guc_def(dg1, 70, 1, 1)) \

drivers/gpu/drm/i915/i915_pci.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -1056,7 +1056,6 @@ static const struct intel_device_info xehpsdv_info = {
10561056
BIT(VECS0) | BIT(VECS1) | \
10571057
BIT(VCS0) | BIT(VCS2)
10581058

1059-
__maybe_unused
10601059
static const struct intel_device_info dg2_info = {
10611060
DG2_FEATURES,
10621061
XE_LPD_FEATURES,
@@ -1065,7 +1064,6 @@ static const struct intel_device_info dg2_info = {
10651064
.require_force_probe = 1,
10661065
};
10671066

1068-
__maybe_unused
10691067
static const struct intel_device_info ats_m_info = {
10701068
DG2_FEATURES,
10711069
.display = { 0 },
@@ -1151,6 +1149,8 @@ static const struct pci_device_id pciidlist[] = {
11511149
INTEL_ADLN_IDS(&adl_p_info),
11521150
INTEL_DG1_IDS(&dg1_info),
11531151
INTEL_RPLS_IDS(&adl_s_info),
1152+
INTEL_DG2_IDS(&dg2_info),
1153+
INTEL_ATS_M_IDS(&ats_m_info),
11541154
{0, 0, 0}
11551155
};
11561156
MODULE_DEVICE_TABLE(pci, pciidlist);

drivers/gpu/drm/i915/intel_device_info.c

+23
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,20 @@ static const u16 subplatform_rpls_ids[] = {
185185
INTEL_RPLS_IDS(0),
186186
};
187187

188+
static const u16 subplatform_g10_ids[] = {
189+
INTEL_DG2_G10_IDS(0),
190+
INTEL_ATS_M150_IDS(0),
191+
};
192+
193+
static const u16 subplatform_g11_ids[] = {
194+
INTEL_DG2_G11_IDS(0),
195+
INTEL_ATS_M75_IDS(0),
196+
};
197+
198+
static const u16 subplatform_g12_ids[] = {
199+
INTEL_DG2_G12_IDS(0),
200+
};
201+
188202
static bool find_devid(u16 id, const u16 *p, unsigned int num)
189203
{
190204
for (; num; num--, p++) {
@@ -230,6 +244,15 @@ void intel_device_info_subplatform_init(struct drm_i915_private *i915)
230244
} else if (find_devid(devid, subplatform_rpls_ids,
231245
ARRAY_SIZE(subplatform_rpls_ids))) {
232246
mask = BIT(INTEL_SUBPLATFORM_RPL_S);
247+
} else if (find_devid(devid, subplatform_g10_ids,
248+
ARRAY_SIZE(subplatform_g10_ids))) {
249+
mask = BIT(INTEL_SUBPLATFORM_G10);
250+
} else if (find_devid(devid, subplatform_g11_ids,
251+
ARRAY_SIZE(subplatform_g11_ids))) {
252+
mask = BIT(INTEL_SUBPLATFORM_G11);
253+
} else if (find_devid(devid, subplatform_g12_ids,
254+
ARRAY_SIZE(subplatform_g12_ids))) {
255+
mask = BIT(INTEL_SUBPLATFORM_G12);
233256
}
234257

235258
GEM_BUG_ON(mask & ~INTEL_SUBPLATFORM_MASK);

drivers/iommu/intel/iommu.c

-2
Original file line numberDiff line numberDiff line change
@@ -379,8 +379,6 @@ static int __init intel_iommu_setup(char *str)
379379
no_platform_optin = 1;
380380
pr_info("IOMMU disabled\n");
381381
} else if (!strncmp(str, "igfx_off", 8)) {
382-
dmar_map_gfx = 0;
383-
pr_info("Disable GFX device mapping\n");
384382
} else if (!strncmp(str, "forcedac", 8)) {
385383
pr_warn("intel_iommu=forcedac deprecated; use iommu.forcedac instead\n");
386384
iommu_dma_forcedac = true;

drivers/net/phy/phy.c

+2-5
Original file line numberDiff line numberDiff line change
@@ -939,7 +939,7 @@ void phy_stop_machine(struct phy_device *phydev)
939939
*/
940940
void phy_error(struct phy_device *phydev)
941941
{
942-
WARN_ON(1);
942+
pr_notice_once("%s\n", __func__);
943943

944944
mutex_lock(&phydev->lock);
945945
phydev->state = PHY_HALTED;
@@ -1034,11 +1034,8 @@ void phy_stop(struct phy_device *phydev)
10341034
{
10351035
struct net_device *dev = phydev->attached_dev;
10361036

1037-
if (!phy_is_started(phydev) && phydev->state != PHY_DOWN) {
1038-
WARN(1, "called from state %s\n",
1039-
phy_state_to_str(phydev->state));
1037+
if (!phy_is_started(phydev) && phydev->state != PHY_DOWN)
10401038
return;
1041-
}
10421039

10431040
mutex_lock(&phydev->lock);
10441041

drivers/pci/msi/msi.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -879,8 +879,10 @@ static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
879879
if (maxvec < minvec)
880880
return -ERANGE;
881881

882-
if (WARN_ON_ONCE(dev->msi_enabled))
882+
if (dev->msi_enabled) {
883+
pci_info(dev, "can't enable MSI, already enabled\n");
883884
return -EINVAL;
885+
}
884886

885887
nvec = pci_msi_vec_count(dev);
886888
if (nvec < 0)

drivers/thermal/intel/therm_throt.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -285,10 +285,10 @@ static void __maybe_unused throttle_active_work(struct work_struct *work)
285285
avg /= ARRAY_SIZE(state->temp_samples);
286286

287287
if (state->average > avg) {
288-
pr_warn("CPU%d: %s temperature is above threshold, cpu clock is throttled (total events = %lu)\n",
289-
this_cpu,
290-
state->level == CORE_LEVEL ? "Core" : "Package",
291-
state->count);
288+
pr_notice("CPU%d: %s temperature is above threshold, cpu clock is throttled (total events = %lu)\n",
289+
this_cpu,
290+
state->level == CORE_LEVEL ? "Core" : "Package",
291+
state->count);
292292
state->rate_control_active = true;
293293
}
294294

drivers/usb/core/usb-acpi.c

+24
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include <linux/acpi.h>
1313
#include <linux/pci.h>
1414
#include <linux/usb/hcd.h>
15+
#include <linux/dmi.h>
1516

1617
#include "hub.h"
1718

@@ -81,6 +82,20 @@ int usb_acpi_set_power_state(struct usb_device *hdev, int index, bool enable)
8182
}
8283
EXPORT_SYMBOL_GPL(usb_acpi_set_power_state);
8384

85+
static const struct dmi_system_id intel_icl_broken_acpi[] = {
86+
{
87+
.ident = "ICL RVP",
88+
.matches = {
89+
DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
90+
DMI_MATCH(DMI_PRODUCT_NAME, "Ice Lake Client Platform"),
91+
},
92+
},
93+
94+
{ }
95+
};
96+
97+
static bool acpi_connection_type_broken;
98+
8499
static enum usb_port_connect_type usb_acpi_get_connect_type(acpi_handle handle,
85100
struct acpi_pld_info *pld)
86101
{
@@ -89,6 +104,10 @@ static enum usb_port_connect_type usb_acpi_get_connect_type(acpi_handle handle,
89104
union acpi_object *upc = NULL;
90105
acpi_status status;
91106

107+
/* Work around unknown ACPI instruction error on ICL RVP BIOSes. */
108+
if (acpi_connection_type_broken)
109+
return USB_PORT_CONNECT_TYPE_UNKNOWN;
110+
92111
/*
93112
* According to 9.14 in ACPI Spec 6.2. _PLD indicates whether usb port
94113
* is user visible and _UPC indicates whether it is connectable. If
@@ -273,6 +292,11 @@ static struct acpi_bus_type usb_acpi_bus = {
273292

274293
int usb_acpi_register(void)
275294
{
295+
if (dmi_check_system(intel_icl_broken_acpi)) {
296+
pr_info("USB ACPI connection type broken.\n");
297+
acpi_connection_type_broken = true;
298+
}
299+
276300
return register_acpi_bus_type(&usb_acpi_bus);
277301
}
278302

include/drm/i915_pciids.h

+37
Original file line numberDiff line numberDiff line change
@@ -683,4 +683,41 @@
683683
INTEL_VGA_DEVICE(0xA78A, info), \
684684
INTEL_VGA_DEVICE(0xA78B, info)
685685

686+
/* DG2 */
687+
#define INTEL_DG2_G10_IDS(info) \
688+
INTEL_VGA_DEVICE(0x5690, info), \
689+
INTEL_VGA_DEVICE(0x5691, info), \
690+
INTEL_VGA_DEVICE(0x5692, info), \
691+
INTEL_VGA_DEVICE(0x56A0, info), \
692+
INTEL_VGA_DEVICE(0x56A1, info), \
693+
INTEL_VGA_DEVICE(0x56A2, info)
694+
695+
#define INTEL_DG2_G11_IDS(info) \
696+
INTEL_VGA_DEVICE(0x5693, info), \
697+
INTEL_VGA_DEVICE(0x5694, info), \
698+
INTEL_VGA_DEVICE(0x5695, info), \
699+
INTEL_VGA_DEVICE(0x56A5, info), \
700+
INTEL_VGA_DEVICE(0x56A6, info), \
701+
INTEL_VGA_DEVICE(0x56B0, info), \
702+
INTEL_VGA_DEVICE(0x56B1, info)
703+
704+
#define INTEL_DG2_G12_IDS(info) \
705+
INTEL_VGA_DEVICE(0x56A3, info), \
706+
INTEL_VGA_DEVICE(0x56A4, info)
707+
708+
#define INTEL_DG2_IDS(info) \
709+
INTEL_DG2_G10_IDS(info), \
710+
INTEL_DG2_G11_IDS(info), \
711+
INTEL_DG2_G12_IDS(info)
712+
713+
#define INTEL_ATS_M150_IDS(info) \
714+
INTEL_VGA_DEVICE(0x56C0, info)
715+
716+
#define INTEL_ATS_M75_IDS(info) \
717+
INTEL_VGA_DEVICE(0x56C1, info)
718+
719+
#define INTEL_ATS_M_IDS(info) \
720+
INTEL_ATS_M150_IDS(info), \
721+
INTEL_ATS_M75_IDS(info)
722+
686723
#endif /* _I915_PCIIDS_H */

0 commit comments

Comments
 (0)