Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
66d938e
netfs: Prevent duplicate unlocking
Sep 5, 2025
c7c31f8
drm/ast: Use msleep instead of mdelay for edid read
nirmoy Sep 17, 2025
352e669
drm/gma500: Fix null dereference in hdmi teardown
Sep 18, 2025
b549113
futex: Prevent use-after-free during requeue-PI
Sep 10, 2025
1cf9f2a
smb: client: handle unlink(2) of files open by different clients
pcacjr Sep 19, 2025
1a194e6
fbcon: fix integer overflow in fbcon_do_set_font
samasth-norway Sep 12, 2025
c6ccc4d
gpiolib: Extend software-node support to support secondary software-n…
Sep 20, 2025
3bd44ed
gpio: regmap: fix memory leak of gpio_regmap structure
IoanaCiornei Sep 22, 2025
ab073ab
block: fix EOD return for device with nr_sectors == 0
axboe Sep 22, 2025
500dad4
drm/xe/vf: Don't expose sysfs attributes not applicable for VFs
mwajdecz Sep 16, 2025
b67e742
drm/xe: Fix build with CONFIG_MODULES=n
Sep 12, 2025
77c8ede
drm/xe: Don't copy pinned kernel bos twice on suspend
Sep 18, 2025
c1e7254
drm/i915: set O_LARGEFILE in __create_shmem()
Aug 22, 2025
7f97a0a
drm/i915/ddi: Guard reg_val against a INVALID_TRANSCODER
surajk8 Sep 8, 2025
12a3dd4
platform/x86/amd/pmc: Add Stellaris Slim Gen6 AMD to spurious 8042 qu…
tuxedoxt Sep 16, 2025
2c61c45
platform/x86/dell: Set USTT mode according to BIOS after reboot
Sep 16, 2025
a15b5ae
platform/x86: dell-lis3lv02d: Add Latitude E6530
setotau Sep 17, 2025
9b2f5ef
fbcon: Fix OOB access in font allocation
tdz Sep 22, 2025
285213a
MAINTAINERS: update io_uring and block tree git trees
axboe Sep 23, 2025
5fc4ab3
pmdomain: mediatek: set default off flag for MT8195 AUDIO power domain
laeyraud Sep 23, 2025
44b0fed
drm/amd/display: Only restore backlight after amdgpu_dm_init or dm_re…
matte-schwartz Sep 11, 2025
1c3217d
drm/amd/display: Use mpc.preblend flag to indicate preblend
Sep 9, 2025
361ee85
drm/amd/display: Init DCN35 clocks from pre-os HW values
leo-sunli1 Sep 12, 2025
41b1f9f
drm/amd/display: remove output_tf_change flag
melissawen Sep 1, 2025
4ec3c15
futex: Use correct exit on failure from futex_hash_allocate_default()
Sep 18, 2025
e2ffa15
kbuild: Disable CC_HAS_ASM_GOTO_OUTPUT on clang < 17
KAGA-KOKO Sep 16, 2025
9158c6b
afs: Fix potential null pointer dereference in afs_put_server
nizhen-t Sep 23, 2025
4ae8d9a
sched/deadline: Fix dl_server getting stuck
Sep 16, 2025
a3a70ca
sched/deadline: Fix dl_server behaviour
Sep 17, 2025
7d9c344
drm/panthor: Defer scheduler entitiy destruction to queue release
larunbe Sep 19, 2025
3ed1734
platform/x86: lg-laptop: Fix WMAB call in fan_mode_store()
Sep 24, 2025
29ecd47
Merge tag 'amd-drm-fixes-6.17-2025-09-24' of https://gitlab.freedeskt…
airlied Sep 26, 2025
4d486a5
Merge tag 'drm-intel-fixes-2025-09-25' of https://gitlab.freedesktop.…
airlied Sep 26, 2025
366a929
Merge tag 'drm-misc-fixes-2025-09-25' of https://gitlab.freedesktop.o…
airlied Sep 26, 2025
ec73e59
Merge tag 'drm-xe-fixes-2025-09-25' of https://gitlab.freedesktop.org…
airlied Sep 26, 2025
4d428dc
netfs: fix reference leak
MaxKellermann Sep 25, 2025
fbe2dc6
smb: client: fix wrong index reference in smb2_compound_op()
hqsz Sep 23, 2025
3170244
Merge tag 'drm-fixes-2025-09-26' of https://gitlab.freedesktop.org/dr…
torvalds Sep 26, 2025
3a654ee
Merge tag 'block-6.17-20250925' of git://git.kernel.org/pub/scm/linux…
torvalds Sep 26, 2025
df28370
Merge tag 'gpio-fixes-for-v6.17' of git://git.kernel.org/pub/scm/linu…
torvalds Sep 26, 2025
bb97142
Merge tag 'platform-drivers-x86-v6.17-5' of git://git.kernel.org/pub/…
torvalds Sep 26, 2025
0d97ef7
Merge tag 'pmdomain-v6.17-rc2-2' of git://git.kernel.org/pub/scm/linu…
torvalds Sep 26, 2025
d874367
Merge tag 'vfs-6.17-rc8.fixes' of git://git.kernel.org/pub/scm/linux/…
torvalds Sep 26, 2025
f26a246
Merge tag 'v6.17rc7-smb3-client-fixes' of git://git.samba.org/sfrench…
torvalds Sep 26, 2025
8b07f74
Merge tag 'core-urgent-2025-09-26' of git://git.kernel.org/pub/scm/li…
torvalds Sep 26, 2025
2cea0ed
Merge tag 'locking-urgent-2025-09-26' of git://git.kernel.org/pub/scm…
torvalds Sep 26, 2025
083fc6d
Merge tag 'sched-urgent-2025-09-26' of git://git.kernel.org/pub/scm/l…
torvalds Sep 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Documentation/admin-guide/laptops/lg-laptop.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ This value is reset to 100 when the kernel boots.
Fan mode
--------

Writing 1/0 to /sys/devices/platform/lg-laptop/fan_mode disables/enables
the fan silent mode.
Writing 0/1/2 to /sys/devices/platform/lg-laptop/fan_mode sets fan mode to
Optimal/Silent/Performance respectively.


USB charge
Expand Down
6 changes: 3 additions & 3 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -6221,7 +6221,7 @@ M: Josef Bacik <josef@toxicpanda.com>
M: Jens Axboe <axboe@kernel.dk>
L: cgroups@vger.kernel.org
L: linux-block@vger.kernel.org
T: git git://git.kernel.dk/linux-block
T: git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux.git
F: Documentation/admin-guide/cgroup-v1/blkio-controller.rst
F: block/bfq-cgroup.c
F: block/blk-cgroup.c
Expand Down Expand Up @@ -12876,8 +12876,8 @@ IO_URING
M: Jens Axboe <axboe@kernel.dk>
L: io-uring@vger.kernel.org
S: Maintained
T: git git://git.kernel.dk/linux-block
T: git git://git.kernel.dk/liburing
T: git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/liburing.git
F: include/linux/io_uring/
F: include/linux/io_uring.h
F: include/linux/io_uring_types.h
Expand Down
4 changes: 3 additions & 1 deletion block/blk-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -557,9 +557,11 @@ static inline int bio_check_eod(struct bio *bio)
sector_t maxsector = bdev_nr_sectors(bio->bi_bdev);
unsigned int nr_sectors = bio_sectors(bio);

if (nr_sectors && maxsector &&
if (nr_sectors &&
(nr_sectors > maxsector ||
bio->bi_iter.bi_sector > maxsector - nr_sectors)) {
if (!maxsector)
return -EIO;
pr_info_ratelimited("%s: attempt to access beyond end of device\n"
"%pg: rw=%d, sector=%llu, nr_sectors = %u limit=%llu\n",
current->comm, bio->bi_bdev, bio->bi_opf,
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpio/gpio-regmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ struct gpio_regmap *gpio_regmap_register(const struct gpio_regmap_config *config
if (!chip->ngpio) {
ret = gpiochip_get_ngpios(chip, chip->parent);
if (ret)
return ERR_PTR(ret);
goto err_free_gpio;
}

/* if not set, assume there is only one register */
Expand Down
21 changes: 19 additions & 2 deletions drivers/gpio/gpiolib.c
Original file line number Diff line number Diff line change
Expand Up @@ -4604,6 +4604,23 @@ static struct gpio_desc *gpiod_find_by_fwnode(struct fwnode_handle *fwnode,
return desc;
}

static struct gpio_desc *gpiod_fwnode_lookup(struct fwnode_handle *fwnode,
struct device *consumer,
const char *con_id,
unsigned int idx,
enum gpiod_flags *flags,
unsigned long *lookupflags)
{
struct gpio_desc *desc;

desc = gpiod_find_by_fwnode(fwnode, consumer, con_id, idx, flags, lookupflags);
if (gpiod_not_found(desc) && !IS_ERR_OR_NULL(fwnode))
desc = gpiod_find_by_fwnode(fwnode->secondary, consumer, con_id,
idx, flags, lookupflags);

return desc;
}

struct gpio_desc *gpiod_find_and_request(struct device *consumer,
struct fwnode_handle *fwnode,
const char *con_id,
Expand All @@ -4622,8 +4639,8 @@ struct gpio_desc *gpiod_find_and_request(struct device *consumer,
int ret = 0;

scoped_guard(srcu, &gpio_devices_srcu) {
desc = gpiod_find_by_fwnode(fwnode, consumer, con_id, idx,
&flags, &lookupflags);
desc = gpiod_fwnode_lookup(fwnode, consumer, con_id, idx,
&flags, &lookupflags);
if (gpiod_not_found(desc) && platform_lookup_allowed) {
/*
* Either we are not using DT or ACPI, or their lookup
Expand Down
12 changes: 8 additions & 4 deletions drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
Original file line number Diff line number Diff line change
Expand Up @@ -2037,6 +2037,8 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)

dc_hardware_init(adev->dm.dc);

adev->dm.restore_backlight = true;

adev->dm.hpd_rx_offload_wq = hpd_rx_irq_create_workqueue(adev);
if (!adev->dm.hpd_rx_offload_wq) {
drm_err(adev_to_drm(adev), "failed to create hpd rx offload workqueue.\n");
Expand Down Expand Up @@ -3399,6 +3401,7 @@ static int dm_resume(struct amdgpu_ip_block *ip_block)
dc_set_power_state(dm->dc, DC_ACPI_CM_POWER_STATE_D0);

dc_resume(dm->dc);
adev->dm.restore_backlight = true;

amdgpu_dm_irq_resume_early(adev);

Expand Down Expand Up @@ -9829,7 +9832,6 @@ static void amdgpu_dm_commit_streams(struct drm_atomic_state *state,
bool mode_set_reset_required = false;
u32 i;
struct dc_commit_streams_params params = {dc_state->streams, dc_state->stream_count};
bool set_backlight_level = false;

/* Disable writeback */
for_each_old_connector_in_state(state, connector, old_con_state, i) {
Expand Down Expand Up @@ -9949,7 +9951,6 @@ static void amdgpu_dm_commit_streams(struct drm_atomic_state *state,
acrtc->hw_mode = new_crtc_state->mode;
crtc->hwmode = new_crtc_state->mode;
mode_set_reset_required = true;
set_backlight_level = true;
} else if (modereset_required(new_crtc_state)) {
drm_dbg_atomic(dev,
"Atomic commit: RESET. crtc id %d:[%p]\n",
Expand Down Expand Up @@ -10006,13 +10007,16 @@ static void amdgpu_dm_commit_streams(struct drm_atomic_state *state,
* to fix a flicker issue.
* It will cause the dm->actual_brightness is not the current panel brightness
* level. (the dm->brightness is the correct panel level)
* So we set the backlight level with dm->brightness value after set mode
* So we set the backlight level with dm->brightness value after initial
* set mode. Use restore_backlight flag to avoid setting backlight level
* for every subsequent mode set.
*/
if (set_backlight_level) {
if (dm->restore_backlight) {
for (i = 0; i < dm->num_of_edps; i++) {
if (dm->backlight_dev[i])
amdgpu_dm_backlight_set_level(dm, i, dm->brightness[i]);
}
dm->restore_backlight = false;
}
}

Expand Down
7 changes: 7 additions & 0 deletions drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
Original file line number Diff line number Diff line change
Expand Up @@ -610,6 +610,13 @@ struct amdgpu_display_manager {
*/
u32 actual_brightness[AMDGPU_DM_MAX_NUM_EDP];

/**
* @restore_backlight:
*
* Flag to indicate whether to restore backlight after modeset.
*/
bool restore_backlight;

/**
* @aux_hpd_discon_quirk:
*
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
Original file line number Diff line number Diff line change
Expand Up @@ -821,7 +821,7 @@ int amdgpu_dm_verify_lut3d_size(struct amdgpu_device *adev,
struct dm_plane_state *dm_plane_state = to_dm_plane_state(plane_state);
const struct drm_color_lut *shaper = NULL, *lut3d = NULL;
uint32_t exp_size, size, dim_size = MAX_COLOR_3DLUT_SIZE;
bool has_3dlut = adev->dm.dc->caps.color.dpp.hw_3d_lut;
bool has_3dlut = adev->dm.dc->caps.color.dpp.hw_3d_lut || adev->dm.dc->caps.color.mpc.preblend;

/* shaper LUT is only available if 3D LUT color caps */
exp_size = has_3dlut ? MAX_COLOR_LUT_ENTRIES : 0;
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
Original file line number Diff line number Diff line change
Expand Up @@ -1633,7 +1633,7 @@ dm_atomic_plane_attach_color_mgmt_properties(struct amdgpu_display_manager *dm,
drm_object_attach_property(&plane->base,
dm->adev->mode_info.plane_ctm_property, 0);

if (dpp_color_caps.hw_3d_lut) {
if (dpp_color_caps.hw_3d_lut || dm->dc->caps.color.mpc.preblend) {
drm_object_attach_property(&plane->base,
mode_info.plane_shaper_lut_property, 0);
drm_object_attach_property(&plane->base,
Expand Down
121 changes: 119 additions & 2 deletions drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
Original file line number Diff line number Diff line change
Expand Up @@ -587,9 +587,118 @@ bool dcn35_are_clock_states_equal(struct dc_clocks *a,
return true;
}

static void dcn35_dump_clk_registers(struct clk_state_registers_and_bypass *regs_and_bypass,
static void dcn35_save_clk_registers_internal(struct dcn35_clk_internal *internal, struct clk_mgr *clk_mgr_base)
{
struct clk_mgr_internal *clk_mgr = TO_CLK_MGR_INTERNAL(clk_mgr_base);

// read dtbclk
internal->CLK1_CLK4_CURRENT_CNT = REG_READ(CLK1_CLK4_CURRENT_CNT);
internal->CLK1_CLK4_BYPASS_CNTL = REG_READ(CLK1_CLK4_BYPASS_CNTL);

// read dcfclk
internal->CLK1_CLK3_CURRENT_CNT = REG_READ(CLK1_CLK3_CURRENT_CNT);
internal->CLK1_CLK3_BYPASS_CNTL = REG_READ(CLK1_CLK3_BYPASS_CNTL);

// read dcf deep sleep divider
internal->CLK1_CLK3_DS_CNTL = REG_READ(CLK1_CLK3_DS_CNTL);
internal->CLK1_CLK3_ALLOW_DS = REG_READ(CLK1_CLK3_ALLOW_DS);

// read dppclk
internal->CLK1_CLK1_CURRENT_CNT = REG_READ(CLK1_CLK1_CURRENT_CNT);
internal->CLK1_CLK1_BYPASS_CNTL = REG_READ(CLK1_CLK1_BYPASS_CNTL);

// read dprefclk
internal->CLK1_CLK2_CURRENT_CNT = REG_READ(CLK1_CLK2_CURRENT_CNT);
internal->CLK1_CLK2_BYPASS_CNTL = REG_READ(CLK1_CLK2_BYPASS_CNTL);

// read dispclk
internal->CLK1_CLK0_CURRENT_CNT = REG_READ(CLK1_CLK0_CURRENT_CNT);
internal->CLK1_CLK0_BYPASS_CNTL = REG_READ(CLK1_CLK0_BYPASS_CNTL);
}

static void dcn35_save_clk_registers(struct clk_state_registers_and_bypass *regs_and_bypass,
struct clk_mgr_dcn35 *clk_mgr)
{
struct dcn35_clk_internal internal = {0};
char *bypass_clks[5] = {"0x0 DFS", "0x1 REFCLK", "0x2 ERROR", "0x3 400 FCH", "0x4 600 FCH"};

dcn35_save_clk_registers_internal(&internal, &clk_mgr->base.base);

regs_and_bypass->dcfclk = internal.CLK1_CLK3_CURRENT_CNT / 10;
regs_and_bypass->dcf_deep_sleep_divider = internal.CLK1_CLK3_DS_CNTL / 10;
regs_and_bypass->dcf_deep_sleep_allow = internal.CLK1_CLK3_ALLOW_DS;
regs_and_bypass->dprefclk = internal.CLK1_CLK2_CURRENT_CNT / 10;
regs_and_bypass->dispclk = internal.CLK1_CLK0_CURRENT_CNT / 10;
regs_and_bypass->dppclk = internal.CLK1_CLK1_CURRENT_CNT / 10;
regs_and_bypass->dtbclk = internal.CLK1_CLK4_CURRENT_CNT / 10;

regs_and_bypass->dppclk_bypass = internal.CLK1_CLK1_BYPASS_CNTL & 0x0007;
if (regs_and_bypass->dppclk_bypass < 0 || regs_and_bypass->dppclk_bypass > 4)
regs_and_bypass->dppclk_bypass = 0;
regs_and_bypass->dcfclk_bypass = internal.CLK1_CLK3_BYPASS_CNTL & 0x0007;
if (regs_and_bypass->dcfclk_bypass < 0 || regs_and_bypass->dcfclk_bypass > 4)
regs_and_bypass->dcfclk_bypass = 0;
regs_and_bypass->dispclk_bypass = internal.CLK1_CLK0_BYPASS_CNTL & 0x0007;
if (regs_and_bypass->dispclk_bypass < 0 || regs_and_bypass->dispclk_bypass > 4)
regs_and_bypass->dispclk_bypass = 0;
regs_and_bypass->dprefclk_bypass = internal.CLK1_CLK2_BYPASS_CNTL & 0x0007;
if (regs_and_bypass->dprefclk_bypass < 0 || regs_and_bypass->dprefclk_bypass > 4)
regs_and_bypass->dprefclk_bypass = 0;

if (clk_mgr->base.base.ctx->dc->debug.pstate_enabled) {
DC_LOG_SMU("clk_type,clk_value,deepsleep_cntl,deepsleep_allow,bypass\n");

DC_LOG_SMU("dcfclk,%d,%d,%d,%s\n",
regs_and_bypass->dcfclk,
regs_and_bypass->dcf_deep_sleep_divider,
regs_and_bypass->dcf_deep_sleep_allow,
bypass_clks[(int) regs_and_bypass->dcfclk_bypass]);

DC_LOG_SMU("dprefclk,%d,N/A,N/A,%s\n",
regs_and_bypass->dprefclk,
bypass_clks[(int) regs_and_bypass->dprefclk_bypass]);

DC_LOG_SMU("dispclk,%d,N/A,N/A,%s\n",
regs_and_bypass->dispclk,
bypass_clks[(int) regs_and_bypass->dispclk_bypass]);

// REGISTER VALUES
DC_LOG_SMU("reg_name,value,clk_type");

DC_LOG_SMU("CLK1_CLK3_CURRENT_CNT,%d,dcfclk",
internal.CLK1_CLK3_CURRENT_CNT);

DC_LOG_SMU("CLK1_CLK4_CURRENT_CNT,%d,dtbclk",
internal.CLK1_CLK4_CURRENT_CNT);

DC_LOG_SMU("CLK1_CLK3_DS_CNTL,%d,dcf_deep_sleep_divider",
internal.CLK1_CLK3_DS_CNTL);

DC_LOG_SMU("CLK1_CLK3_ALLOW_DS,%d,dcf_deep_sleep_allow",
internal.CLK1_CLK3_ALLOW_DS);

DC_LOG_SMU("CLK1_CLK2_CURRENT_CNT,%d,dprefclk",
internal.CLK1_CLK2_CURRENT_CNT);

DC_LOG_SMU("CLK1_CLK0_CURRENT_CNT,%d,dispclk",
internal.CLK1_CLK0_CURRENT_CNT);

DC_LOG_SMU("CLK1_CLK1_CURRENT_CNT,%d,dppclk",
internal.CLK1_CLK1_CURRENT_CNT);

DC_LOG_SMU("CLK1_CLK3_BYPASS_CNTL,%d,dcfclk_bypass",
internal.CLK1_CLK3_BYPASS_CNTL);

DC_LOG_SMU("CLK1_CLK2_BYPASS_CNTL,%d,dprefclk_bypass",
internal.CLK1_CLK2_BYPASS_CNTL);

DC_LOG_SMU("CLK1_CLK0_BYPASS_CNTL,%d,dispclk_bypass",
internal.CLK1_CLK0_BYPASS_CNTL);

DC_LOG_SMU("CLK1_CLK1_BYPASS_CNTL,%d,dppclk_bypass",
internal.CLK1_CLK1_BYPASS_CNTL);

}
}

static bool dcn35_is_spll_ssc_enabled(struct clk_mgr *clk_mgr_base)
Expand Down Expand Up @@ -623,6 +732,7 @@ static void init_clk_states(struct clk_mgr *clk_mgr)
void dcn35_init_clocks(struct clk_mgr *clk_mgr)
{
struct clk_mgr_internal *clk_mgr_int = TO_CLK_MGR_INTERNAL(clk_mgr);
struct clk_mgr_dcn35 *clk_mgr_dcn35 = TO_CLK_MGR_DCN35(clk_mgr_int);

init_clk_states(clk_mgr);

Expand All @@ -633,6 +743,13 @@ void dcn35_init_clocks(struct clk_mgr *clk_mgr)
else
clk_mgr->dp_dto_source_clock_in_khz = clk_mgr->dprefclk_khz;

dcn35_save_clk_registers(&clk_mgr->boot_snapshot, clk_mgr_dcn35);

clk_mgr->clks.ref_dtbclk_khz = clk_mgr->boot_snapshot.dtbclk * 10;
if (clk_mgr->boot_snapshot.dtbclk > 59000) {
/*dtbclk enabled based on */
clk_mgr->clks.dtbclk_en = true;
}
}
static struct clk_bw_params dcn35_bw_params = {
.vram_type = Ddr4MemType,
Expand Down Expand Up @@ -1323,7 +1440,7 @@ void dcn35_clk_mgr_construct(
dcn35_bw_params.wm_table = ddr5_wm_table;
}
/* Saved clocks configured at boot for debug purposes */
dcn35_dump_clk_registers(&clk_mgr->base.base.boot_snapshot, clk_mgr);
dcn35_save_clk_registers(&clk_mgr->base.base.boot_snapshot, clk_mgr);

clk_mgr->base.base.dprefclk_khz = dcn35_smu_get_dprefclk(&clk_mgr->base);
clk_mgr->base.base.clks.ref_dtbclk_khz = 600000;
Expand Down
1 change: 0 additions & 1 deletion drivers/gpu/drm/amd/display/dc/dc.h
Original file line number Diff line number Diff line change
Expand Up @@ -1348,7 +1348,6 @@ union surface_update_flags {
uint32_t in_transfer_func_change:1;
uint32_t input_csc_change:1;
uint32_t coeff_reduction_change:1;
uint32_t output_tf_change:1;
uint32_t pixel_format_change:1;
uint32_t plane_size_change:1;
uint32_t gamut_remap_change:1;
Expand Down
6 changes: 2 additions & 4 deletions drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c
Original file line number Diff line number Diff line change
Expand Up @@ -1982,10 +1982,8 @@ static void dcn20_program_pipe(
* updating on slave planes
*/
if (pipe_ctx->update_flags.bits.enable ||
pipe_ctx->update_flags.bits.plane_changed ||
pipe_ctx->stream->update_flags.bits.out_tf ||
(pipe_ctx->plane_state &&
pipe_ctx->plane_state->update_flags.bits.output_tf_change))
pipe_ctx->update_flags.bits.plane_changed ||
pipe_ctx->stream->update_flags.bits.out_tf)
hws->funcs.set_output_transfer_func(dc, pipe_ctx, pipe_ctx->stream);

/* If the pipe has been enabled or has a different opp, we
Expand Down
6 changes: 2 additions & 4 deletions drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c
Original file line number Diff line number Diff line change
Expand Up @@ -2019,10 +2019,8 @@ void dcn401_program_pipe(
* updating on slave planes
*/
if (pipe_ctx->update_flags.bits.enable ||
pipe_ctx->update_flags.bits.plane_changed ||
pipe_ctx->stream->update_flags.bits.out_tf ||
(pipe_ctx->plane_state &&
pipe_ctx->plane_state->update_flags.bits.output_tf_change))
pipe_ctx->update_flags.bits.plane_changed ||
pipe_ctx->stream->update_flags.bits.out_tf)
hws->funcs.set_output_transfer_func(dc, pipe_ctx, pipe_ctx->stream);

/* If the pipe has been enabled or has a different opp, we
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/ast/ast_dp.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ static int ast_astdp_read_edid_block(void *data, u8 *buf, unsigned int block, si
* 3. The Delays are often longer a lot when system resume from S3/S4.
*/
if (j)
mdelay(j + 1);
msleep(j + 1);

/* Wait for EDID offset to show up in mirror register */
vgacrd7 = ast_get_index_reg(ast, AST_IO_VGACRI, 0xd7);
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/gma500/oaktrail_hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -726,8 +726,8 @@ void oaktrail_hdmi_teardown(struct drm_device *dev)

if (hdmi_dev) {
pdev = hdmi_dev->dev;
pci_set_drvdata(pdev, NULL);
oaktrail_hdmi_i2c_exit(pdev);
pci_set_drvdata(pdev, NULL);
iounmap(hdmi_dev->regs);
kfree(hdmi_dev);
pci_dev_put(pdev);
Expand Down
5 changes: 3 additions & 2 deletions drivers/gpu/drm/i915/display/intel_ddi.c
Original file line number Diff line number Diff line change
Expand Up @@ -596,8 +596,9 @@ intel_ddi_transcoder_func_reg_val_get(struct intel_encoder *encoder,
enum transcoder master;

master = crtc_state->mst_master_transcoder;
drm_WARN_ON(display->drm,
master == INVALID_TRANSCODER);
if (drm_WARN_ON(display->drm,
master == INVALID_TRANSCODER))
master = TRANSCODER_A;
temp |= TRANS_DDI_MST_TRANSPORT_SELECT(master);
}
} else {
Expand Down
Loading