diff options
| -rw-r--r-- | MAINTAINERS | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/nv.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 20 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c | 29 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hwseq.c | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 13 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c | 6 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/include/dal_asic_id.h | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c | 6 | ||||
| -rw-r--r-- | drivers/gpu/drm/drm_panel_orientation_quirks.c | 12 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_dp.c | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/gt/intel_timeline.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 8 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_trace.h | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_dram.c | 30 | ||||
| -rw-r--r-- | drivers/gpu/drm/selftests/test-drm_damage_helper.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/ttm/ttm_bo_util.c | 1 | ||||
| -rw-r--r-- | drivers/nvdimm/pmem.c | 33 | 
18 files changed, 74 insertions, 113 deletions
| diff --git a/MAINTAINERS b/MAINTAINERS index c34486524d40..3b79fd441dde 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -6160,8 +6160,7 @@ T:	git git://anongit.freedesktop.org/drm/drm  F:	Documentation/devicetree/bindings/display/  F:	Documentation/devicetree/bindings/gpu/  F:	Documentation/gpu/ -F:	drivers/gpu/drm/ -F:	drivers/gpu/vga/ +F:	drivers/gpu/  F:	include/drm/  F:	include/linux/vga*  F:	include/uapi/drm/ diff --git a/drivers/gpu/drm/amd/amdgpu/nv.c b/drivers/gpu/drm/amd/amdgpu/nv.c index ff80786e3918..01efda4398e5 100644 --- a/drivers/gpu/drm/amd/amdgpu/nv.c +++ b/drivers/gpu/drm/amd/amdgpu/nv.c @@ -1257,7 +1257,7 @@ static int nv_common_early_init(void *handle)  			AMD_PG_SUPPORT_VCN_DPG |  			AMD_PG_SUPPORT_JPEG;  		if (adev->pdev->device == 0x1681) -			adev->external_rev_id = adev->rev_id + 0x19; +			adev->external_rev_id = 0x20;  		else  			adev->external_rev_id = adev->rev_id + 0x01;  		break; diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c index 87daa78a32b8..8080bba5b7a7 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c @@ -263,7 +263,7 @@ static ssize_t dp_link_settings_write(struct file *f, const char __user *buf,  	if (!wr_buf)  		return -ENOSPC; -	if (parse_write_buffer_into_params(wr_buf, size, +	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,  					   (long *)param, buf,  					   max_param_num,  					   ¶m_nums)) { @@ -487,7 +487,7 @@ static ssize_t dp_phy_settings_write(struct file *f, const char __user *buf,  	if (!wr_buf)  		return -ENOSPC; -	if (parse_write_buffer_into_params(wr_buf, size, +	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,  					   (long *)param, buf,  					   max_param_num,  					   ¶m_nums)) { @@ -639,7 +639,7 @@ static ssize_t dp_phy_test_pattern_debugfs_write(struct file *f, const char __us  	if (!wr_buf)  		return -ENOSPC; -	if (parse_write_buffer_into_params(wr_buf, size, +	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,  					   (long *)param, buf,  					   max_param_num,  					   ¶m_nums)) { @@ -914,7 +914,7 @@ static ssize_t dp_dsc_passthrough_set(struct file *f, const char __user *buf,  		return -ENOSPC;  	} -	if (parse_write_buffer_into_params(wr_buf, size, +	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,  					   ¶m, buf,  					   max_param_num,  					   ¶m_nums)) { @@ -1211,7 +1211,7 @@ static ssize_t trigger_hotplug(struct file *f, const char __user *buf,  		return -ENOSPC;  	} -	if (parse_write_buffer_into_params(wr_buf, size, +	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,  						(long *)param, buf,  						max_param_num,  						¶m_nums)) { @@ -1396,7 +1396,7 @@ static ssize_t dp_dsc_clock_en_write(struct file *f, const char __user *buf,  		return -ENOSPC;  	} -	if (parse_write_buffer_into_params(wr_buf, size, +	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,  					    (long *)param, buf,  					    max_param_num,  					    ¶m_nums)) { @@ -1581,7 +1581,7 @@ static ssize_t dp_dsc_slice_width_write(struct file *f, const char __user *buf,  		return -ENOSPC;  	} -	if (parse_write_buffer_into_params(wr_buf, size, +	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,  					    (long *)param, buf,  					    max_param_num,  					    ¶m_nums)) { @@ -1766,7 +1766,7 @@ static ssize_t dp_dsc_slice_height_write(struct file *f, const char __user *buf,  		return -ENOSPC;  	} -	if (parse_write_buffer_into_params(wr_buf, size, +	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,  					    (long *)param, buf,  					    max_param_num,  					    ¶m_nums)) { @@ -1944,7 +1944,7 @@ static ssize_t dp_dsc_bits_per_pixel_write(struct file *f, const char __user *bu  		return -ENOSPC;  	} -	if (parse_write_buffer_into_params(wr_buf, size, +	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,  					    (long *)param, buf,  					    max_param_num,  					    ¶m_nums)) { @@ -2382,7 +2382,7 @@ static ssize_t dp_max_bpc_write(struct file *f, const char __user *buf,  		return -ENOSPC;  	} -	if (parse_write_buffer_into_params(wr_buf, size, +	if (parse_write_buffer_into_params(wr_buf, wr_buf_size,  					   (long *)param, buf,  					   max_param_num,  					   ¶m_nums)) { diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c index 4a4894e9d9c9..377c4e53a2b3 100644 --- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c +++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c @@ -366,32 +366,32 @@ static struct wm_table lpddr5_wm_table = {  			.wm_inst = WM_A,  			.wm_type = WM_TYPE_PSTATE_CHG,  			.pstate_latency_us = 11.65333, -			.sr_exit_time_us = 5.32, -			.sr_enter_plus_exit_time_us = 6.38, +			.sr_exit_time_us = 11.5, +			.sr_enter_plus_exit_time_us = 14.5,  			.valid = true,  		},  		{  			.wm_inst = WM_B,  			.wm_type = WM_TYPE_PSTATE_CHG,  			.pstate_latency_us = 11.65333, -			.sr_exit_time_us = 9.82, -			.sr_enter_plus_exit_time_us = 11.196, +			.sr_exit_time_us = 11.5, +			.sr_enter_plus_exit_time_us = 14.5,  			.valid = true,  		},  		{  			.wm_inst = WM_C,  			.wm_type = WM_TYPE_PSTATE_CHG,  			.pstate_latency_us = 11.65333, -			.sr_exit_time_us = 9.89, -			.sr_enter_plus_exit_time_us = 11.24, +			.sr_exit_time_us = 11.5, +			.sr_enter_plus_exit_time_us = 14.5,  			.valid = true,  		},  		{  			.wm_inst = WM_D,  			.wm_type = WM_TYPE_PSTATE_CHG,  			.pstate_latency_us = 11.65333, -			.sr_exit_time_us = 9.748, -			.sr_enter_plus_exit_time_us = 11.102, +			.sr_exit_time_us = 11.5, +			.sr_enter_plus_exit_time_us = 14.5,  			.valid = true,  		},  	} @@ -518,14 +518,21 @@ static unsigned int find_clk_for_voltage(  		unsigned int voltage)  {  	int i; +	int max_voltage = 0; +	int clock = 0;  	for (i = 0; i < NUM_SOC_VOLTAGE_LEVELS; i++) { -		if (clock_table->SocVoltage[i] == voltage) +		if (clock_table->SocVoltage[i] == voltage) {  			return clocks[i]; +		} else if (clock_table->SocVoltage[i] >= max_voltage && +				clock_table->SocVoltage[i] < voltage) { +			max_voltage = clock_table->SocVoltage[i]; +			clock = clocks[i]; +		}  	} -	ASSERT(0); -	return 0; +	ASSERT(clock); +	return clock;  }  void dcn31_clk_mgr_helper_populate_bw_params( diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hwseq.c index 3f2333ec67e2..3afa1159a5f7 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hwseq.c +++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hwseq.c @@ -76,10 +76,6 @@ void dcn31_init_hw(struct dc *dc)  	if (dc->clk_mgr && dc->clk_mgr->funcs->init_clocks)  		dc->clk_mgr->funcs->init_clocks(dc->clk_mgr); -	// Initialize the dccg -	if (res_pool->dccg->funcs->dccg_init) -		res_pool->dccg->funcs->dccg_init(res_pool->dccg); -  	if (IS_FPGA_MAXIMUS_DC(dc->ctx->dce_environment)) {  		REG_WRITE(REFCLK_CNTL, 0); @@ -106,6 +102,9 @@ void dcn31_init_hw(struct dc *dc)  		hws->funcs.bios_golden_init(dc);  		hws->funcs.disable_vga(dc->hwseq);  	} +	// Initialize the dccg +	if (res_pool->dccg->funcs->dccg_init) +		res_pool->dccg->funcs->dccg_init(res_pool->dccg);  	if (dc->debug.enable_mem_low_power.bits.dmcu) {  		// Force ERAM to shutdown if DMCU is not enabled diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c index 0006bbac466c..79e92ecca96c 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c +++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c @@ -217,8 +217,8 @@ struct _vcs_dpi_soc_bounding_box_st dcn3_1_soc = {  	.num_states = 5,  	.sr_exit_time_us = 9.0,  	.sr_enter_plus_exit_time_us = 11.0, -	.sr_exit_z8_time_us = 402.0, -	.sr_enter_plus_exit_z8_time_us = 520.0, +	.sr_exit_z8_time_us = 442.0, +	.sr_enter_plus_exit_z8_time_us = 560.0,  	.writeback_latency_us = 12.0,  	.dram_channel_width_bytes = 4,  	.round_trip_ping_latency_dcfclk_cycles = 106, @@ -928,7 +928,7 @@ static const struct dc_debug_options debug_defaults_drv = {  	.disable_dcc = DCC_ENABLE,  	.vsr_support = true,  	.performance_trace = false, -	.max_downscale_src_width = 3840,/*upto 4K*/ +	.max_downscale_src_width = 4096,/*upto true 4K*/  	.disable_pplib_wm_range = false,  	.scl_reset_length10 = true,  	.sanity_checks = false, @@ -1590,6 +1590,13 @@ static int dcn31_populate_dml_pipes_from_context(  		pipe = &res_ctx->pipe_ctx[i];  		timing = &pipe->stream->timing; +		/* +		 * Immediate flip can be set dynamically after enabling the plane. +		 * We need to require support for immediate flip or underflow can be +		 * intermittently experienced depending on peak b/w requirements. +		 */ +		pipes[pipe_cnt].pipe.src.immediate_flip = true; +  		pipes[pipe_cnt].pipe.src.unbounded_req_mode = false;  		pipes[pipe_cnt].pipe.src.gpuvm = true;  		pipes[pipe_cnt].pipe.src.dcc_fraction_of_zs_req_luma = 0; diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c b/drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c index ce55c9caf9a2..d58925cff420 100644 --- a/drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c +++ b/drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c @@ -5398,9 +5398,9 @@ void dml31_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l  					v->MaximumReadBandwidthWithPrefetch =  							v->MaximumReadBandwidthWithPrefetch -									+ dml_max4( -											v->VActivePixelBandwidth[i][j][k], -											v->VActiveCursorBandwidth[i][j][k] +									+ dml_max3( +											v->VActivePixelBandwidth[i][j][k] +													+ v->VActiveCursorBandwidth[i][j][k]  													+ v->NoOfDPP[i][j][k]  															* (v->meta_row_bandwidth[i][j][k]  																	+ v->dpte_row_bandwidth[i][j][k]), diff --git a/drivers/gpu/drm/amd/display/include/dal_asic_id.h b/drivers/gpu/drm/amd/display/include/dal_asic_id.h index 5adc471bef57..3d2f0817e40a 100644 --- a/drivers/gpu/drm/amd/display/include/dal_asic_id.h +++ b/drivers/gpu/drm/amd/display/include/dal_asic_id.h @@ -227,7 +227,7 @@ enum {  #define FAMILY_YELLOW_CARP                     146  #define YELLOW_CARP_A0 0x01 -#define YELLOW_CARP_B0 0x1A +#define YELLOW_CARP_B0 0x20  #define YELLOW_CARP_UNKNOWN 0xFF  #ifndef ASICREV_IS_YELLOW_CARP diff --git a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c index e9bd84ec027d..be61975f1470 100644 --- a/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c +++ b/drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c @@ -105,6 +105,7 @@ static enum mod_hdcp_status remove_display_from_topology_v3(  	dtm_cmd->dtm_status = TA_DTM_STATUS__GENERIC_FAILURE;  	psp_dtm_invoke(psp, dtm_cmd->cmd_id); +	mutex_unlock(&psp->dtm_context.mutex);  	if (dtm_cmd->dtm_status != TA_DTM_STATUS__SUCCESS) {  		status = remove_display_from_topology_v2(hdcp, index); @@ -115,8 +116,6 @@ static enum mod_hdcp_status remove_display_from_topology_v3(  		HDCP_TOP_REMOVE_DISPLAY_TRACE(hdcp, display->index);  	} -	mutex_unlock(&psp->dtm_context.mutex); -  	return status;  } @@ -205,6 +204,7 @@ static enum mod_hdcp_status add_display_to_topology_v3(  	dtm_cmd->dtm_in_message.topology_update_v3.link_hdcp_cap = link->hdcp_supported_informational;  	psp_dtm_invoke(psp, dtm_cmd->cmd_id); +	mutex_unlock(&psp->dtm_context.mutex);  	if (dtm_cmd->dtm_status != TA_DTM_STATUS__SUCCESS) {  		status = add_display_to_topology_v2(hdcp, display); @@ -214,8 +214,6 @@ static enum mod_hdcp_status add_display_to_topology_v3(  		HDCP_TOP_ADD_DISPLAY_TRACE(hdcp, display->index);  	} -	mutex_unlock(&psp->dtm_context.mutex); -  	return status;  } diff --git a/drivers/gpu/drm/drm_panel_orientation_quirks.c b/drivers/gpu/drm/drm_panel_orientation_quirks.c index f6bdec7fa925..e1b2ce4921ae 100644 --- a/drivers/gpu/drm/drm_panel_orientation_quirks.c +++ b/drivers/gpu/drm/drm_panel_orientation_quirks.c @@ -134,6 +134,12 @@ static const struct dmi_system_id orientation_data[] = {  		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T103HAF"),  		},  		.driver_data = (void *)&lcd800x1280_rightside_up, +	}, {	/* AYA NEO 2021 */ +		.matches = { +		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYADEVICE"), +		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AYA NEO 2021"), +		}, +		.driver_data = (void *)&lcd800x1280_rightside_up,  	}, {	/* GPD MicroPC (generic strings, also match on bios date) */  		.matches = {  		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Default string"), @@ -185,6 +191,12 @@ static const struct dmi_system_id orientation_data[] = {  		  DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"),  		},  		.driver_data = (void *)&gpd_win2, +	}, {	/* GPD Win 3 */ +		.matches = { +		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "GPD"), +		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "G1618-03") +		}, +		.driver_data = (void *)&lcd720x1280_rightside_up,  	}, {	/* I.T.Works TW891 */  		.matches = {  		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "To be filled by O.E.M."), diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index abe3d61b6243..5cf152be4487 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -1916,6 +1916,9 @@ void intel_dp_sync_state(struct intel_encoder *encoder,  {  	struct intel_dp *intel_dp = enc_to_intel_dp(encoder); +	if (!crtc_state) +		return; +  	/*  	 * Don't clobber DPCD if it's been already read out during output  	 * setup (eDP) or detect. diff --git a/drivers/gpu/drm/i915/gt/intel_timeline.c b/drivers/gpu/drm/i915/gt/intel_timeline.c index 1257f4f11e66..438bbc7b8147 100644 --- a/drivers/gpu/drm/i915/gt/intel_timeline.c +++ b/drivers/gpu/drm/i915/gt/intel_timeline.c @@ -64,7 +64,7 @@ intel_timeline_pin_map(struct intel_timeline *timeline)  	timeline->hwsp_map = vaddr;  	timeline->hwsp_seqno = memset(vaddr + ofs, 0, TIMELINE_SEQNO_BYTES); -	clflush(vaddr + ofs); +	drm_clflush_virt_range(vaddr + ofs, TIMELINE_SEQNO_BYTES);  	return 0;  } @@ -225,7 +225,7 @@ void intel_timeline_reset_seqno(const struct intel_timeline *tl)  	memset(hwsp_seqno + 1, 0, TIMELINE_SEQNO_BYTES - sizeof(*hwsp_seqno));  	WRITE_ONCE(*hwsp_seqno, tl->seqno); -	clflush(hwsp_seqno); +	drm_clflush_virt_range(hwsp_seqno, TIMELINE_SEQNO_BYTES);  }  void intel_timeline_enter(struct intel_timeline *tl) diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 4037030f0984..9023d4ecf3b3 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -11048,12 +11048,6 @@ enum skl_power_gate {  #define  DC_STATE_DEBUG_MASK_CORES	(1 << 0)  #define  DC_STATE_DEBUG_MASK_MEMORY_UP	(1 << 1) -#define BXT_P_CR_MC_BIOS_REQ_0_0_0	_MMIO(MCHBAR_MIRROR_BASE_SNB + 0x7114) -#define  BXT_REQ_DATA_MASK			0x3F -#define  BXT_DRAM_CHANNEL_ACTIVE_SHIFT		12 -#define  BXT_DRAM_CHANNEL_ACTIVE_MASK		(0xF << 12) -#define  BXT_MEMORY_FREQ_MULTIPLIER_HZ		133333333 -  #define BXT_D_CR_DRP0_DUNIT8			0x1000  #define BXT_D_CR_DRP0_DUNIT9			0x1200  #define  BXT_D_CR_DRP0_DUNIT_START		8 @@ -11084,9 +11078,7 @@ enum skl_power_gate {  #define  BXT_DRAM_TYPE_LPDDR4			(0x2 << 22)  #define  BXT_DRAM_TYPE_DDR4			(0x4 << 22) -#define SKL_MEMORY_FREQ_MULTIPLIER_HZ		266666666  #define SKL_MC_BIOS_DATA_0_0_0_MCHBAR_PCU	_MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5E04) -#define  SKL_REQ_DATA_MASK			(0xF << 0)  #define  DG1_GEAR_TYPE				REG_BIT(16)  #define SKL_MAD_INTER_CHANNEL_0_0_0_MCHBAR_MCMAIN _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5000) diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h index 806ad688274b..63fec1c3c132 100644 --- a/drivers/gpu/drm/i915/i915_trace.h +++ b/drivers/gpu/drm/i915/i915_trace.h @@ -794,7 +794,6 @@ DECLARE_EVENT_CLASS(i915_request,  	    TP_STRUCT__entry(  			     __field(u32, dev)  			     __field(u64, ctx) -			     __field(u32, guc_id)  			     __field(u16, class)  			     __field(u16, instance)  			     __field(u32, seqno) @@ -805,16 +804,14 @@ DECLARE_EVENT_CLASS(i915_request,  			   __entry->dev = rq->engine->i915->drm.primary->index;  			   __entry->class = rq->engine->uabi_class;  			   __entry->instance = rq->engine->uabi_instance; -			   __entry->guc_id = rq->context->guc_id;  			   __entry->ctx = rq->fence.context;  			   __entry->seqno = rq->fence.seqno;  			   __entry->tail = rq->tail;  			   ), -	    TP_printk("dev=%u, engine=%u:%u, guc_id=%u, ctx=%llu, seqno=%u, tail=%u", +	    TP_printk("dev=%u, engine=%u:%u, ctx=%llu, seqno=%u, tail=%u",  		      __entry->dev, __entry->class, __entry->instance, -		      __entry->guc_id, __entry->ctx, __entry->seqno, -		      __entry->tail) +		      __entry->ctx, __entry->seqno, __entry->tail)  );  DEFINE_EVENT(i915_request, i915_request_add, diff --git a/drivers/gpu/drm/i915/intel_dram.c b/drivers/gpu/drm/i915/intel_dram.c index 91866520c173..7acce64b0941 100644 --- a/drivers/gpu/drm/i915/intel_dram.c +++ b/drivers/gpu/drm/i915/intel_dram.c @@ -244,7 +244,6 @@ static int  skl_get_dram_info(struct drm_i915_private *i915)  {  	struct dram_info *dram_info = &i915->dram_info; -	u32 mem_freq_khz, val;  	int ret;  	dram_info->type = skl_get_dram_type(i915); @@ -255,17 +254,6 @@ skl_get_dram_info(struct drm_i915_private *i915)  	if (ret)  		return ret; -	val = intel_uncore_read(&i915->uncore, -				SKL_MC_BIOS_DATA_0_0_0_MCHBAR_PCU); -	mem_freq_khz = DIV_ROUND_UP((val & SKL_REQ_DATA_MASK) * -				    SKL_MEMORY_FREQ_MULTIPLIER_HZ, 1000); - -	if (dram_info->num_channels * mem_freq_khz == 0) { -		drm_info(&i915->drm, -			 "Couldn't get system memory bandwidth\n"); -		return -EINVAL; -	} -  	return 0;  } @@ -350,24 +338,10 @@ static void bxt_get_dimm_info(struct dram_dimm_info *dimm, u32 val)  static int bxt_get_dram_info(struct drm_i915_private *i915)  {  	struct dram_info *dram_info = &i915->dram_info; -	u32 dram_channels; -	u32 mem_freq_khz, val; -	u8 num_active_channels, valid_ranks = 0; +	u32 val; +	u8 valid_ranks = 0;  	int i; -	val = intel_uncore_read(&i915->uncore, BXT_P_CR_MC_BIOS_REQ_0_0_0); -	mem_freq_khz = DIV_ROUND_UP((val & BXT_REQ_DATA_MASK) * -				    BXT_MEMORY_FREQ_MULTIPLIER_HZ, 1000); - -	dram_channels = val & BXT_DRAM_CHANNEL_ACTIVE_MASK; -	num_active_channels = hweight32(dram_channels); - -	if (mem_freq_khz * num_active_channels == 0) { -		drm_info(&i915->drm, -			 "Couldn't get system memory bandwidth\n"); -		return -EINVAL; -	} -  	/*  	 * Now read each DUNIT8/9/10/11 to check the rank of each dimms.  	 */ diff --git a/drivers/gpu/drm/selftests/test-drm_damage_helper.c b/drivers/gpu/drm/selftests/test-drm_damage_helper.c index 1c19a5d3eefb..8d8d8e214c28 100644 --- a/drivers/gpu/drm/selftests/test-drm_damage_helper.c +++ b/drivers/gpu/drm/selftests/test-drm_damage_helper.c @@ -30,6 +30,7 @@ static void mock_setup(struct drm_plane_state *state)  	mock_device.driver = &mock_driver;  	mock_device.mode_config.prop_fb_damage_clips = &mock_prop;  	mock_plane.dev = &mock_device; +	mock_obj_props.count = 0;  	mock_plane.base.properties = &mock_obj_props;  	mock_prop.base.id = 1; /* 0 is an invalid id */  	mock_prop.dev = &mock_device; diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c index 1c5ffe2935af..abf2d7a4fdf1 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_util.c +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c @@ -190,6 +190,7 @@ static void ttm_transfered_destroy(struct ttm_buffer_object *bo)  	struct ttm_transfer_obj *fbo;  	fbo = container_of(bo, struct ttm_transfer_obj, base); +	dma_resv_fini(&fbo->base.base._resv);  	ttm_bo_put(fbo->bo);  	kfree(fbo);  } diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c index ef4950f80832..054154c22899 100644 --- a/drivers/nvdimm/pmem.c +++ b/drivers/nvdimm/pmem.c @@ -333,26 +333,6 @@ static const struct attribute_group *pmem_attribute_groups[] = {  	NULL,  }; -static void pmem_pagemap_cleanup(struct dev_pagemap *pgmap) -{ -	struct pmem_device *pmem = pgmap->owner; - -	blk_cleanup_disk(pmem->disk); -} - -static void pmem_release_queue(void *pgmap) -{ -	pmem_pagemap_cleanup(pgmap); -} - -static void pmem_pagemap_kill(struct dev_pagemap *pgmap) -{ -	struct request_queue *q = -		container_of(pgmap->ref, struct request_queue, q_usage_counter); - -	blk_freeze_queue_start(q); -} -  static void pmem_release_disk(void *__pmem)  {  	struct pmem_device *pmem = __pmem; @@ -360,12 +340,9 @@ static void pmem_release_disk(void *__pmem)  	kill_dax(pmem->dax_dev);  	put_dax(pmem->dax_dev);  	del_gendisk(pmem->disk); -} -static const struct dev_pagemap_ops fsdax_pagemap_ops = { -	.kill			= pmem_pagemap_kill, -	.cleanup		= pmem_pagemap_cleanup, -}; +	blk_cleanup_disk(pmem->disk); +}  static int pmem_attach_disk(struct device *dev,  		struct nd_namespace_common *ndns) @@ -427,10 +404,8 @@ static int pmem_attach_disk(struct device *dev,  	pmem->disk = disk;  	pmem->pgmap.owner = pmem;  	pmem->pfn_flags = PFN_DEV; -	pmem->pgmap.ref = &q->q_usage_counter;  	if (is_nd_pfn(dev)) {  		pmem->pgmap.type = MEMORY_DEVICE_FS_DAX; -		pmem->pgmap.ops = &fsdax_pagemap_ops;  		addr = devm_memremap_pages(dev, &pmem->pgmap);  		pfn_sb = nd_pfn->pfn_sb;  		pmem->data_offset = le64_to_cpu(pfn_sb->dataoff); @@ -444,16 +419,12 @@ static int pmem_attach_disk(struct device *dev,  		pmem->pgmap.range.end = res->end;  		pmem->pgmap.nr_range = 1;  		pmem->pgmap.type = MEMORY_DEVICE_FS_DAX; -		pmem->pgmap.ops = &fsdax_pagemap_ops;  		addr = devm_memremap_pages(dev, &pmem->pgmap);  		pmem->pfn_flags |= PFN_MAP;  		bb_range = pmem->pgmap.range;  	} else {  		addr = devm_memremap(dev, pmem->phys_addr,  				pmem->size, ARCH_MEMREMAP_PMEM); -		if (devm_add_action_or_reset(dev, pmem_release_queue, -					&pmem->pgmap)) -			return -ENOMEM;  		bb_range.start =  res->start;  		bb_range.end = res->end;  	} |