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

Commit c10fac7

Browse files
committed
Merge remote-tracking branch 'drm-intel/topic/core-for-CI' into drm-tip
# Conflicts: # arch/x86/events/rapl.c # mm/slub.c
2 parents 69b4bfc + 5363e35 commit c10fac7

File tree

29 files changed

+193
-76
lines changed

29 files changed

+193
-76
lines changed

arch/x86/events/rapl.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -804,6 +804,8 @@ static const struct x86_cpu_id rapl_model_match[] __initconst = {
804804
X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE, &model_skl),
805805
X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE_L, &model_skl),
806806
X86_MATCH_INTEL_FAM6_MODEL(SAPPHIRERAPIDS_X, &model_spr),
807+
X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE_L, &model_skl),
808+
X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE, &model_skl),
807809
{},
808810
};
809811
MODULE_DEVICE_TABLE(x86cpu, rapl_model_match);

drivers/acpi/sleep.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,16 @@ static int acpi_sleep_prepare(u32 acpi_state)
8181
return 0;
8282
}
8383

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

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

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

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

drivers/ata/libata-core.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2048,7 +2048,7 @@ static bool ata_identify_page_supported(struct ata_device *dev, u8 page)
20482048
unsigned int err, i;
20492049

20502050
if (!ata_log_supported(dev, ATA_LOG_IDENTIFY_DEVICE)) {
2051-
ata_dev_warn(dev, "ATA Identify Device Log not supported\n");
2051+
ata_dev_notice(dev, "ATA Identify Device Log not supported\n");
20522052
return false;
20532053
}
20542054

@@ -2122,7 +2122,7 @@ static void ata_dev_config_ncq_send_recv(struct ata_device *dev)
21222122
unsigned int err_mask;
21232123

21242124
if (!ata_log_supported(dev, ATA_LOG_NCQ_SEND_RECV)) {
2125-
ata_dev_warn(dev, "NCQ Send/Recv Log not supported\n");
2125+
ata_dev_notice(dev, "NCQ Send/Recv Log not supported\n");
21262126
return;
21272127
}
21282128
err_mask = ata_read_log_page(dev, ATA_LOG_NCQ_SEND_RECV,
@@ -2151,8 +2151,8 @@ static void ata_dev_config_ncq_non_data(struct ata_device *dev)
21512151
unsigned int err_mask;
21522152

21532153
if (!ata_log_supported(dev, ATA_LOG_NCQ_NON_DATA)) {
2154-
ata_dev_warn(dev,
2155-
"NCQ Send/Recv Log not supported\n");
2154+
ata_dev_notice(dev,
2155+
"NCQ Send/Recv Log not supported\n");
21562156
return;
21572157
}
21582158
err_mask = ata_read_log_page(dev, ATA_LOG_NCQ_NON_DATA,
@@ -2484,14 +2484,14 @@ int ata_dev_configure(struct ata_device *dev)
24842484
if (ata_id_is_cfa(id)) {
24852485
/* CPRM may make this media unusable */
24862486
if (id[ATA_ID_CFA_KEY_MGMT] & 1)
2487-
ata_dev_warn(dev,
2487+
ata_dev_notice(dev,
24882488
"supports DRM functions and may not be fully accessible\n");
24892489
snprintf(revbuf, 7, "CFA");
24902490
} else {
24912491
snprintf(revbuf, 7, "ATA-%d", ata_id_major_version(id));
24922492
/* Warn the user if the device has TPM extensions */
24932493
if (ata_id_has_tpm(id))
2494-
ata_dev_warn(dev,
2494+
ata_dev_notice(dev,
24952495
"supports DRM functions and may not be fully accessible\n");
24962496
}
24972497

@@ -2707,8 +2707,8 @@ int ata_dev_configure(struct ata_device *dev)
27072707
}
27082708

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

27142714
return 0;

drivers/gpu/drm/i915/Kconfig.debug

Lines changed: 9 additions & 0 deletions
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

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -480,16 +480,27 @@ eb_unreserve_vma(struct eb_vma *ev)
480480
ev->flags &= ~__EXEC_OBJECT_RESERVED;
481481
}
482482

483+
static bool platform_has_relocs_enabled(const struct i915_execbuffer *eb)
484+
{
485+
/*
486+
* Relocations are disallowed starting from gen12 with Tigerlake
487+
* as an exception. To unblock CI, we are temporarily allowing it
488+
* for Rocketlake and Alderlake.
489+
*/
490+
if (GRAPHICS_VER(eb->i915) < 12 || IS_TIGERLAKE(eb->i915) ||
491+
IS_ROCKETLAKE(eb->i915) || IS_ALDERLAKE_S(eb->i915) ||
492+
IS_ALDERLAKE_P(eb->i915))
493+
return true;
494+
495+
return false;
496+
}
497+
483498
static int
484499
eb_validate_vma(struct i915_execbuffer *eb,
485500
struct drm_i915_gem_exec_object2 *entry,
486501
struct i915_vma *vma)
487502
{
488-
/* Relocations are disallowed for all platforms after TGL-LP. This
489-
* also covers all platforms with local memory.
490-
*/
491-
if (entry->relocation_count &&
492-
GRAPHICS_VER(eb->i915) >= 12 && !IS_TIGERLAKE(eb->i915))
503+
if (entry->relocation_count && !platform_has_relocs_enabled(eb))
493504
return -EINVAL;
494505

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

drivers/iommu/intel/iommu.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -448,8 +448,6 @@ static int __init intel_iommu_setup(char *str)
448448
no_platform_optin = 1;
449449
pr_info("IOMMU disabled\n");
450450
} else if (!strncmp(str, "igfx_off", 8)) {
451-
dmar_map_gfx = 0;
452-
pr_info("Disable GFX device mapping\n");
453451
} else if (!strncmp(str, "forcedac", 8)) {
454452
pr_warn("intel_iommu=forcedac deprecated; use iommu.forcedac instead\n");
455453
iommu_dma_forcedac = true;

drivers/net/phy/phy.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -912,7 +912,7 @@ void phy_stop_machine(struct phy_device *phydev)
912912
*/
913913
void phy_error(struct phy_device *phydev)
914914
{
915-
WARN_ON(1);
915+
pr_notice_once("%s\n", __func__);
916916

917917
mutex_lock(&phydev->lock);
918918
phydev->state = PHY_HALTED;
@@ -1007,11 +1007,8 @@ void phy_stop(struct phy_device *phydev)
10071007
{
10081008
struct net_device *dev = phydev->attached_dev;
10091009

1010-
if (!phy_is_started(phydev) && phydev->state != PHY_DOWN) {
1011-
WARN(1, "called from state %s\n",
1012-
phy_state_to_str(phydev->state));
1010+
if (!phy_is_started(phydev) && phydev->state != PHY_DOWN)
10131011
return;
1014-
}
10151012

10161013
mutex_lock(&phydev->lock);
10171014

drivers/pci/msi.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1104,8 +1104,10 @@ static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
11041104
if (maxvec < minvec)
11051105
return -ERANGE;
11061106

1107-
if (WARN_ON_ONCE(dev->msi_enabled))
1107+
if (dev->msi_enabled) {
1108+
pci_info(dev, "can't enable MSI, already enabled\n");
11081109
return -EINVAL;
1110+
}
11091111

11101112
nvec = pci_msi_vec_count(dev);
11111113
if (nvec < 0)

drivers/rtc/rtc-cmos.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,7 +1053,9 @@ static void cmos_check_wkalrm(struct device *dev)
10531053
* ACK the rtc irq here
10541054
*/
10551055
if (t_now >= cmos->alarm_expires && cmos_use_acpi_alarm()) {
1056+
local_irq_disable();
10561057
cmos_interrupt(0, (void *)cmos->rtc);
1058+
local_irq_enable();
10571059
return;
10581060
}
10591061

drivers/thermal/intel/therm_throt.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -284,10 +284,10 @@ static void __maybe_unused throttle_active_work(struct work_struct *work)
284284
avg /= ARRAY_SIZE(state->temp_samples);
285285

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

drivers/usb/core/usb-acpi.c

Lines changed: 24 additions & 0 deletions
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/linux/lockdep.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ struct held_lock {
138138
unsigned int read:2; /* see lock_acquire() comment */
139139
unsigned int check:1; /* see lock_acquire() comment */
140140
unsigned int hardirqs_off:1;
141-
unsigned int references:12; /* 32 bits */
142-
unsigned int pin_count;
141+
unsigned int pin_count:12; /* 32 bits */
142+
unsigned int references;
143143
};
144144

145145
/*

include/uapi/linux/perf_event.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,11 +164,12 @@ enum perf_event_sample_format {
164164
PERF_SAMPLE_WEIGHT_STRUCT = 1U << 24,
165165

166166
PERF_SAMPLE_MAX = 1U << 25, /* non-ABI */
167-
168-
__PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */
169167
};
170168

171169
#define PERF_SAMPLE_WEIGHT_TYPE (PERF_SAMPLE_WEIGHT | PERF_SAMPLE_WEIGHT_STRUCT)
170+
171+
#define __PERF_SAMPLE_CALLCHAIN_EARLY (1ULL << 63) /* non-ABI; internal use */
172+
172173
/*
173174
* values to program into branch_sample_type when PERF_SAMPLE_BRANCH is set
174175
*

0 commit comments

Comments
 (0)