From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Jun Lei <Jun.Lei@amd.com>,
Qingqing Zhuo <qingqing.zhuo@amd.com>,
Wenjing Liu <wenjing.liu@amd.com>,
Daniel Wheeler <daniel.wheeler@amd.com>,
Alex Deucher <alexander.deucher@amd.com>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.3 215/246] drm/amd/display: merge dc_link.h into dc.h and dc_types.h
Date: Mon, 15 May 2023 18:27:07 +0200 [thread overview]
Message-ID: <20230515161729.046886760@linuxfoundation.org> (raw)
In-Reply-To: <20230515161722.610123835@linuxfoundation.org>
From: Wenjing Liu <wenjing.liu@amd.com>
[ Upstream commit 7ae1dbe6547c39410d82156c96eaa9c8cf55e87a ]
[why]
Remove the need to include dc_link.h separately. dc.h should contain
everything needed on DM side.
[How]
Merge dc_link.h into dc.h and dc_types.h so DM only needs to include
dc.h to use all link public functions.
Reviewed-by: Jun Lei <Jun.Lei@amd.com>
Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
Signed-off-by: Wenjing Liu <wenjing.liu@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Stable-dep-of: eeefe7c4820b ("drm/amd/display: hpd rx irq not working with eDP interface")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
.../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 2 +-
.../gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 4 +-
drivers/gpu/drm/amd/display/dc/core/dc.c | 156 +----
.../drm/amd/display/dc/core/dc_link_exports.c | 87 +++
drivers/gpu/drm/amd/display/dc/dc.h | 553 +++++++++++++++++-
drivers/gpu/drm/amd/display/dc/dc_dp_types.h | 107 ++++
drivers/gpu/drm/amd/display/dc/dc_hw_types.h | 14 +
drivers/gpu/drm/amd/display/dc/dc_types.h | 104 ++++
drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c | 2 +-
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.h | 5 +-
.../display/dc/dce110/dce110_hw_sequencer.c | 2 +-
.../amd/display/dc/dcn10/dcn10_hw_sequencer.c | 2 +-
.../dc/dcn30/dcn30_dio_stream_encoder.c | 1 +
.../drm/amd/display/dc/dcn30/dcn30_hwseq.c | 2 +-
.../dc/dcn31/dcn31_hpo_dp_link_encoder.c | 1 -
.../dc/dcn31/dcn31_hpo_dp_stream_encoder.c | 2 +-
.../dc/dcn32/dcn32_hpo_dp_link_encoder.c | 1 -
.../drm/amd/display/dc/dcn32/dcn32_hwseq.c | 2 +-
.../dc/dml/dcn30/display_mode_vba_30.c | 1 -
.../dc/dml/dcn31/display_mode_vba_31.c | 1 -
.../dc/dml/dcn314/display_mode_vba_314.c | 1 -
.../dc/dml/dcn32/display_mode_vba_32.c | 1 -
.../gpu/drm/amd/display/dc/inc/hw/hw_shared.h | 14 -
.../drm/amd/display/dc/inc/hw/link_encoder.h | 52 --
.../amd/display/dc/inc/hw/stream_encoder.h | 1 -
drivers/gpu/drm/amd/display/dc/inc/link.h | 1 -
.../display/dc/link/accessories/link_dp_cts.c | 17 -
.../drm/amd/display/dc/link/link_detection.c | 99 ++++
.../display/dc/link/protocols/link_dp_dpia.c | 1 -
.../dc/link/protocols/link_dp_dpia_bw.c | 1 -
.../dc/link/protocols/link_dp_training_dpia.c | 1 -
.../amd/display/include/link_service_types.h | 26 -
33 files changed, 978 insertions(+), 288 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 9ed2854141621..cf5f7ec361b0e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -2274,7 +2274,7 @@ static int dm_late_init(void *handle)
struct dc_link *edp_links[MAX_NUM_EDP];
int edp_num;
- get_edp_links(adev->dm.dc, edp_links, &edp_num);
+ dc_get_edp_links(adev->dm.dc, edp_links, &edp_num);
for (i = 0; i < edp_num; i++) {
if (!dmub_init_abm_config(adev->dm.dc->res_pool, params, i))
return -EINVAL;
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 09a3efa517da9..4a5dae578d970 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
@@ -724,7 +724,7 @@ static ssize_t dp_phy_test_pattern_debugfs_write(struct file *f, const char __us
for (i = 0; i < (unsigned int)(link_training_settings.link_settings.lane_count); i++)
link_training_settings.hw_lane_settings[i] = link->cur_lane_setting[i];
- dc_link_set_test_pattern(
+ dc_link_dp_set_test_pattern(
link,
test_pattern,
DP_TEST_PATTERN_COLOR_SPACE_RGB,
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c
index 69691daf4dbbd..73a45ec27f90d 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c
@@ -104,7 +104,7 @@ void clk_mgr_exit_optimized_pwr_state(const struct dc *dc, struct clk_mgr *clk_m
int edp_num;
unsigned int panel_inst;
- get_edp_links(dc, edp_links, &edp_num);
+ dc_get_edp_links(dc, edp_links, &edp_num);
if (dc->hwss.exit_optimized_pwr_state)
dc->hwss.exit_optimized_pwr_state(dc, dc->current_state);
@@ -129,7 +129,7 @@ void clk_mgr_optimize_pwr_state(const struct dc *dc, struct clk_mgr *clk_mgr)
int edp_num;
unsigned int panel_inst;
- get_edp_links(dc, edp_links, &edp_num);
+ dc_get_edp_links(dc, edp_links, &edp_num);
if (edp_num) {
for (panel_inst = 0; panel_inst < edp_num; panel_inst++) {
edp_link = edp_links[panel_inst];
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
index 1c218c5266509..d406d7b74c6c3 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -53,7 +53,6 @@
#include "link_encoder.h"
#include "link_enc_cfg.h"
-#include "dc_link.h"
#include "link.h"
#include "dm_helpers.h"
#include "mem_input.h"
@@ -1298,7 +1297,7 @@ static void detect_edp_presence(struct dc *dc)
int i;
int edp_num;
- get_edp_links(dc, edp_links, &edp_num);
+ dc_get_edp_links(dc, edp_links, &edp_num);
if (!edp_num)
return;
@@ -4317,157 +4316,6 @@ bool dc_is_dmcu_initialized(struct dc *dc)
return false;
}
-bool dc_is_oem_i2c_device_present(
- struct dc *dc,
- size_t slave_address)
-{
- if (dc->res_pool->oem_device)
- return dce_i2c_oem_device_present(
- dc->res_pool,
- dc->res_pool->oem_device,
- slave_address);
-
- return false;
-}
-
-bool dc_submit_i2c(
- struct dc *dc,
- uint32_t link_index,
- struct i2c_command *cmd)
-{
-
- struct dc_link *link = dc->links[link_index];
- struct ddc_service *ddc = link->ddc;
- return dce_i2c_submit_command(
- dc->res_pool,
- ddc->ddc_pin,
- cmd);
-}
-
-bool dc_submit_i2c_oem(
- struct dc *dc,
- struct i2c_command *cmd)
-{
- struct ddc_service *ddc = dc->res_pool->oem_device;
- if (ddc)
- return dce_i2c_submit_command(
- dc->res_pool,
- ddc->ddc_pin,
- cmd);
-
- return false;
-}
-
-static bool link_add_remote_sink_helper(struct dc_link *dc_link, struct dc_sink *sink)
-{
- if (dc_link->sink_count >= MAX_SINKS_PER_LINK) {
- BREAK_TO_DEBUGGER();
- return false;
- }
-
- dc_sink_retain(sink);
-
- dc_link->remote_sinks[dc_link->sink_count] = sink;
- dc_link->sink_count++;
-
- return true;
-}
-
-/*
- * dc_link_add_remote_sink() - Create a sink and attach it to an existing link
- *
- * EDID length is in bytes
- */
-struct dc_sink *dc_link_add_remote_sink(
- struct dc_link *link,
- const uint8_t *edid,
- int len,
- struct dc_sink_init_data *init_data)
-{
- struct dc_sink *dc_sink;
- enum dc_edid_status edid_status;
-
- if (len > DC_MAX_EDID_BUFFER_SIZE) {
- dm_error("Max EDID buffer size breached!\n");
- return NULL;
- }
-
- if (!init_data) {
- BREAK_TO_DEBUGGER();
- return NULL;
- }
-
- if (!init_data->link) {
- BREAK_TO_DEBUGGER();
- return NULL;
- }
-
- dc_sink = dc_sink_create(init_data);
-
- if (!dc_sink)
- return NULL;
-
- memmove(dc_sink->dc_edid.raw_edid, edid, len);
- dc_sink->dc_edid.length = len;
-
- if (!link_add_remote_sink_helper(
- link,
- dc_sink))
- goto fail_add_sink;
-
- edid_status = dm_helpers_parse_edid_caps(
- link,
- &dc_sink->dc_edid,
- &dc_sink->edid_caps);
-
- /*
- * Treat device as no EDID device if EDID
- * parsing fails
- */
- if (edid_status != EDID_OK && edid_status != EDID_PARTIAL_VALID) {
- dc_sink->dc_edid.length = 0;
- dm_error("Bad EDID, status%d!\n", edid_status);
- }
-
- return dc_sink;
-
-fail_add_sink:
- dc_sink_release(dc_sink);
- return NULL;
-}
-
-/*
- * dc_link_remove_remote_sink() - Remove a remote sink from a dc_link
- *
- * Note that this just removes the struct dc_sink - it doesn't
- * program hardware or alter other members of dc_link
- */
-void dc_link_remove_remote_sink(struct dc_link *link, struct dc_sink *sink)
-{
- int i;
-
- if (!link->sink_count) {
- BREAK_TO_DEBUGGER();
- return;
- }
-
- for (i = 0; i < link->sink_count; i++) {
- if (link->remote_sinks[i] == sink) {
- dc_sink_release(sink);
- link->remote_sinks[i] = NULL;
-
- /* shrink array to remove empty place */
- while (i < link->sink_count - 1) {
- link->remote_sinks[i] = link->remote_sinks[i+1];
- i++;
- }
- link->remote_sinks[i] = NULL;
- link->sink_count--;
- return;
- }
- }
-}
-
void get_clock_requirements_for_state(struct dc_state *state, struct AsicStateEx *info)
{
info->displayClock = (unsigned int)state->bw_ctx.bw.dcn.clk.dispclk_khz;
@@ -4990,7 +4838,7 @@ void dc_notify_vsync_int_state(struct dc *dc, struct dc_stream_state *stream, bo
return;
}
- get_edp_links(dc, edp_links, &edp_num);
+ dc_get_edp_links(dc, edp_links, &edp_num);
/* Determine panel inst */
for (i = 0; i < edp_num; i++) {
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
index a951e10416ee6..862cb0f93b7d9 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_exports.c
@@ -34,6 +34,49 @@
* in this file which calls link functions.
*/
#include "link.h"
+#include "dce/dce_i2c.h"
+struct dc_link *dc_get_link_at_index(struct dc *dc, uint32_t link_index)
+{
+ return dc->links[link_index];
+}
+
+void dc_get_edp_links(const struct dc *dc,
+ struct dc_link **edp_links,
+ int *edp_num)
+{
+ int i;
+
+ *edp_num = 0;
+ for (i = 0; i < dc->link_count; i++) {
+ // report any eDP links, even unconnected DDI's
+ if (!dc->links[i])
+ continue;
+ if (dc->links[i]->connector_signal == SIGNAL_TYPE_EDP) {
+ edp_links[*edp_num] = dc->links[i];
+ if (++(*edp_num) == MAX_NUM_EDP)
+ return;
+ }
+ }
+}
+
+bool dc_get_edp_link_panel_inst(const struct dc *dc,
+ const struct dc_link *link,
+ unsigned int *inst_out)
+{
+ struct dc_link *edp_links[MAX_NUM_EDP];
+ int edp_num, i;
+
+ *inst_out = 0;
+ if (link->connector_signal != SIGNAL_TYPE_EDP)
+ return false;
+ dc_get_edp_links(dc, edp_links, &edp_num);
+ for (i = 0; i < edp_num; i++) {
+ if (link == edp_links[i])
+ break;
+ (*inst_out)++;
+ }
+ return true;
+}
bool dc_link_detect(struct dc_link *link, enum dc_detect_reason reason)
{
@@ -101,3 +144,47 @@ bool dc_link_update_dsc_config(struct pipe_ctx *pipe_ctx)
{
return link_update_dsc_config(pipe_ctx);
}
+
+bool dc_is_oem_i2c_device_present(
+ struct dc *dc,
+ size_t slave_address)
+{
+ if (dc->res_pool->oem_device)
+ return dce_i2c_oem_device_present(
+ dc->res_pool,
+ dc->res_pool->oem_device,
+ slave_address);
+
+ return false;
+}
+
+bool dc_submit_i2c(
+ struct dc *dc,
+ uint32_t link_index,
+ struct i2c_command *cmd)
+{
+
+ struct dc_link *link = dc->links[link_index];
+ struct ddc_service *ddc = link->ddc;
+
+ return dce_i2c_submit_command(
+ dc->res_pool,
+ ddc->ddc_pin,
+ cmd);
+}
+
+bool dc_submit_i2c_oem(
+ struct dc *dc,
+ struct i2c_command *cmd)
+{
+ struct ddc_service *ddc = dc->res_pool->oem_device;
+
+ if (ddc)
+ return dce_i2c_submit_command(
+ dc->res_pool,
+ ddc->ddc_pin,
+ cmd);
+
+ return false;
+}
+
diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
index 1fde433786894..84caf1f6b9e0e 100644
--- a/drivers/gpu/drm/amd/display/dc/dc.h
+++ b/drivers/gpu/drm/amd/display/dc/dc.h
@@ -1379,8 +1379,159 @@ struct dc_plane_state *dc_get_surface_for_mpcc(struct dc *dc,
uint32_t dc_get_opp_for_plane(struct dc *dc, struct dc_plane_state *plane);
/* Link Interfaces */
-/* TODO: remove this after resolving external dependencies */
-#include "dc_link.h"
+/*
+ * A link contains one or more sinks and their connected status.
+ * The currently active signal type (HDMI, DP-SST, DP-MST) is also reported.
+ */
+struct dc_link {
+ struct dc_sink *remote_sinks[MAX_SINKS_PER_LINK];
+ unsigned int sink_count;
+ struct dc_sink *local_sink;
+ unsigned int link_index;
+ enum dc_connection_type type;
+ enum signal_type connector_signal;
+ enum dc_irq_source irq_source_hpd;
+ enum dc_irq_source irq_source_hpd_rx;/* aka DP Short Pulse */
+
+ bool is_hpd_filter_disabled;
+ bool dp_ss_off;
+
+ /**
+ * @link_state_valid:
+ *
+ * If there is no link and local sink, this variable should be set to
+ * false. Otherwise, it should be set to true; usually, the function
+ * core_link_enable_stream sets this field to true.
+ */
+ bool link_state_valid;
+ bool aux_access_disabled;
+ bool sync_lt_in_progress;
+ bool skip_stream_reenable;
+ bool is_internal_display;
+ /** @todo Rename. Flag an endpoint as having a programmable mapping to a DIG encoder. */
+ bool is_dig_mapping_flexible;
+ bool hpd_status; /* HPD status of link without physical HPD pin. */
+ bool is_hpd_pending; /* Indicates a new received hpd */
+ bool is_automated; /* Indicates automated testing */
+
+ bool edp_sink_present;
+
+ struct dp_trace dp_trace;
+
+ /* caps is the same as reported_link_cap. link_traing use
+ * reported_link_cap. Will clean up. TODO
+ */
+ struct dc_link_settings reported_link_cap;
+ struct dc_link_settings verified_link_cap;
+ struct dc_link_settings cur_link_settings;
+ struct dc_lane_settings cur_lane_setting[LANE_COUNT_DP_MAX];
+ struct dc_link_settings preferred_link_setting;
+ /* preferred_training_settings are override values that
+ * come from DM. DM is responsible for the memory
+ * management of the override pointers.
+ */
+ struct dc_link_training_overrides preferred_training_settings;
+ struct dp_audio_test_data audio_test_data;
+
+ uint8_t ddc_hw_inst;
+
+ uint8_t hpd_src;
+
+ uint8_t link_enc_hw_inst;
+ /* DIG link encoder ID. Used as index in link encoder resource pool.
+ * For links with fixed mapping to DIG, this is not changed after dc_link
+ * object creation.
+ */
+ enum engine_id eng_id;
+
+ bool test_pattern_enabled;
+ union compliance_test_state compliance_test_state;
+
+ void *priv;
+
+ struct ddc_service *ddc;
+
+ bool aux_mode;
+
+ /* Private to DC core */
+
+ const struct dc *dc;
+
+ struct dc_context *ctx;
+
+ struct panel_cntl *panel_cntl;
+ struct link_encoder *link_enc;
+ struct graphics_object_id link_id;
+ /* Endpoint type distinguishes display endpoints which do not have entries
+ * in the BIOS connector table from those that do. Helps when tracking link
+ * encoder to display endpoint assignments.
+ */
+ enum display_endpoint_type ep_type;
+ union ddi_channel_mapping ddi_channel_mapping;
+ struct connector_device_tag_info device_tag;
+ struct dpcd_caps dpcd_caps;
+ uint32_t dongle_max_pix_clk;
+ unsigned short chip_caps;
+ unsigned int dpcd_sink_count;
+#if defined(CONFIG_DRM_AMD_DC_HDCP)
+ struct hdcp_caps hdcp_caps;
+#endif
+ enum edp_revision edp_revision;
+ union dpcd_sink_ext_caps dpcd_sink_ext_caps;
+
+ struct psr_settings psr_settings;
+
+ /* Drive settings read from integrated info table */
+ struct dc_lane_settings bios_forced_drive_settings;
+
+ /* Vendor specific LTTPR workaround variables */
+ uint8_t vendor_specific_lttpr_link_rate_wa;
+ bool apply_vendor_specific_lttpr_link_rate_wa;
+
+ /* MST record stream using this link */
+ struct link_flags {
+ bool dp_keep_receiver_powered;
+ bool dp_skip_DID2;
+ bool dp_skip_reset_segment;
+ bool dp_skip_fs_144hz;
+ bool dp_mot_reset_segment;
+ /* Some USB4 docks do not handle turning off MST DSC once it has been enabled. */
+ bool dpia_mst_dsc_always_on;
+ /* Forced DPIA into TBT3 compatibility mode. */
+ bool dpia_forced_tbt3_mode;
+ bool dongle_mode_timing_override;
+ } wa_flags;
+ struct link_mst_stream_allocation_table mst_stream_alloc_table;
+
+ struct dc_link_status link_status;
+ struct dprx_states dprx_states;
+
+ struct gpio *hpd_gpio;
+ enum dc_link_fec_state fec_state;
+ bool link_powered_externally; // Used to bypass hardware sequencing delays when panel is powered down forcibly
+
+ struct dc_panel_config panel_config;
+ struct phy_state phy_state;
+ // BW ALLOCATON USB4 ONLY
+ struct dc_dpia_bw_alloc dpia_bw_alloc_config;
+};
+
+/* Return an enumerated dc_link.
+ * dc_link order is constant and determined at
+ * boot time. They cannot be created or destroyed.
+ * Use dc_get_caps() to get number of links.
+ */
+struct dc_link *dc_get_link_at_index(struct dc *dc, uint32_t link_index);
+
+/* Return instance id of the edp link. Inst 0 is primary edp link. */
+bool dc_get_edp_link_panel_inst(const struct dc *dc,
+ const struct dc_link *link,
+ unsigned int *inst_out);
+
+/* Return an array of link pointers to edp links. */
+void dc_get_edp_links(const struct dc *dc,
+ struct dc_link **edp_links,
+ int *edp_num);
/* The function initiates detection handshake over the given link. It first
* determines if there are display connections over the link. If so it initiates
@@ -1404,6 +1555,38 @@ uint32_t dc_get_opp_for_plane(struct dc *dc, struct dc_plane_state *plane);
*/
bool dc_link_detect(struct dc_link *link, enum dc_detect_reason reason);
+struct dc_sink_init_data;
+
+/* When link connection type is dc_connection_mst_branch, remote sink can be
+ * added to the link. The interface creates a remote sink and associates it with
+ * current link. The sink will be retained by link until remove remote sink is
+ * called.
+ *
+ * @dc_link - link the remote sink will be added to.
+ * @edid - byte array of EDID raw data.
+ * @len - size of the edid in byte
+ * @init_data -
+ */
+struct dc_sink *dc_link_add_remote_sink(
+ struct dc_link *dc_link,
+ const uint8_t *edid,
+ int len,
+ struct dc_sink_init_data *init_data);
+
+/* Remove remote sink from a link with dc_connection_mst_branch connection type.
+ * @link - link the sink should be removed from
+ * @sink - sink to be removed.
+ */
+void dc_link_remove_remote_sink(
+ struct dc_link *link,
+ struct dc_sink *sink);
+
+/* Enable HPD interrupt handler for a given link */
+void dc_link_enable_hpd(const struct dc_link *link);
+
+/* Disable HPD interrupt handler for a given link */
+void dc_link_disable_hpd(const struct dc_link *link);
+
/* determine if there is a sink connected to the link
*
* @type - dc_connection_single if connected, dc_connection_none otherwise.
@@ -1417,15 +1600,119 @@ bool dc_link_detect(struct dc_link *link, enum dc_detect_reason reason);
bool dc_link_detect_connection_type(struct dc_link *link,
enum dc_connection_type *type);
+/* query current hpd pin value
+ * return - true HPD is asserted (HPD high), false otherwise (HPD low)
+ *
+ */
+bool dc_link_get_hpd_state(struct dc_link *dc_link);
+
/* Getter for cached link status from given link */
const struct dc_link_status *dc_link_get_status(const struct dc_link *link);
+/* enable/disable hardware HPD filter.
+ *
+ * @link - The link the HPD pin is associated with.
+ * @enable = true - enable hardware HPD filter. HPD event will only queued to irq
+ * handler once after no HPD change has been detected within dc default HPD
+ * filtering interval since last HPD event. i.e if display keeps toggling hpd
+ * pulses within default HPD interval, no HPD event will be received until HPD
+ * toggles have stopped. Then HPD event will be queued to irq handler once after
+ * dc default HPD filtering interval since last HPD event.
+ *
+ * @enable = false - disable hardware HPD filter. HPD event will be queued
+ * immediately to irq handler after no HPD change has been detected within
+ * IRQ_HPD (aka HPD short pulse) interval (i.e 2ms).
+ */
+void dc_link_enable_hpd_filter(struct dc_link *link, bool enable);
+
+/* submit i2c read/write payloads through ddc channel
+ * @link_index - index to a link with ddc in i2c mode
+ * @cmd - i2c command structure
+ * return - true if success, false otherwise.
+ */
+bool dc_submit_i2c(
+ struct dc *dc,
+ uint32_t link_index,
+ struct i2c_command *cmd);
+
+/* submit i2c read/write payloads through oem channel
+ * @link_index - index to a link with ddc in i2c mode
+ * @cmd - i2c command structure
+ * return - true if success, false otherwise.
+ */
+bool dc_submit_i2c_oem(
+ struct dc *dc,
+ struct i2c_command *cmd);
+
+enum aux_return_code_type;
+/* Attempt to transfer the given aux payload. This function does not perform
+ * retries or handle error states. The reply is returned in the payload->reply
+ * and the result through operation_result. Returns the number of bytes
+ * transferred,or -1 on a failure.
+ */
+int dc_link_aux_transfer_raw(struct ddc_service *ddc,
+ struct aux_payload *payload,
+ enum aux_return_code_type *operation_result);
+
+bool dc_is_oem_i2c_device_present(
+ struct dc *dc,
+ size_t slave_address
+);
+
#ifdef CONFIG_DRM_AMD_DC_HDCP
+
/* return true if the connected receiver supports the hdcp version */
bool dc_link_is_hdcp14(struct dc_link *link, enum signal_type signal);
bool dc_link_is_hdcp22(struct dc_link *link, enum signal_type signal);
#endif
+/* Notify DC about DP RX Interrupt (aka DP IRQ_HPD).
+ *
+ * TODO - When defer_handling is true the function will have a different purpose.
+ * It no longer does complete hpd rx irq handling. We should create a separate
+ * interface specifically for this case.
+ *
+ * Return:
+ * true - Downstream port status changed. DM should call DC to do the
+ * detection.
+ * false - no change in Downstream port status. No further action required
+ * from DM.
+ */
+bool dc_link_handle_hpd_rx_irq(struct dc_link *dc_link,
+ union hpd_irq_data *hpd_irq_dpcd_data, bool *out_link_loss,
+ bool defer_handling, bool *has_left_work);
+/* handle DP specs define test automation sequence*/
+void dc_link_dp_handle_automated_test(struct dc_link *link);
+
+/* handle DP Link loss sequence and try to recover RX link loss with best
+ * effort
+ */
+void dc_link_dp_handle_link_loss(struct dc_link *link);
+
+/* Determine if hpd rx irq should be handled or ignored
+ * return true - hpd rx irq should be handled.
+ * return false - it is safe to ignore hpd rx irq event
+ */
+bool dc_link_dp_allow_hpd_rx_irq(const struct dc_link *link);
+
+/* Determine if link loss is indicated with a given hpd_irq_dpcd_data.
+ * @link - link the hpd irq data associated with
+ * @hpd_irq_dpcd_data - input hpd irq data
+ * return - true if hpd irq data indicates a link lost
+ */
+bool dc_link_check_link_loss_status(struct dc_link *link,
+ union hpd_irq_data *hpd_irq_dpcd_data);
+
+/* Read hpd rx irq data from a given link
+ * @link - link where the hpd irq data should be read from
+ * @irq_data - output hpd irq data
+ * return - DC_OK if hpd irq data is read successfully, otherwise hpd irq data
+ * read has failed.
+ */
+enum dc_status dc_link_dp_read_hpd_rx_irq_data(
+ struct dc_link *link,
+ union hpd_irq_data *irq_data);
+
/* The function clears recorded DP RX states in the link. DM should call this
* function when it is resuming from S3 power state to previously connected links.
*
@@ -1493,6 +1780,268 @@ void dc_restore_link_res_map(const struct dc *dc, uint32_t *map);
* interface i.e stream_update->dsc_config
*/
bool dc_link_update_dsc_config(struct pipe_ctx *pipe_ctx);
+
+/* translate a raw link rate data to bandwidth in kbps */
+uint32_t dc_link_bw_kbps_from_raw_frl_link_rate_data(uint8_t bw);
+
+/* determine the optimal bandwidth given link and required bw.
+ * @link - current detected link
+ * @req_bw - requested bandwidth in kbps
+ * @link_settings - returned most optimal link settings that can fit the
+ * requested bandwidth
+ * return - false if link can't support requested bandwidth, true if link
+ * settings is found.
+ */
+bool dc_link_decide_edp_link_settings(struct dc_link *link,
+ struct dc_link_settings *link_settings,
+ uint32_t req_bw);
+
+/* return the max dp link settings can be driven by the link without considering
+ * connected RX device and its capability
+ */
+bool dc_link_dp_get_max_link_enc_cap(const struct dc_link *link,
+ struct dc_link_settings *max_link_enc_cap);
+
+/* determine when the link is driving MST mode, what DP link channel coding
+ * format will be used. The decision will remain unchanged until next HPD event.
+ *
+ * @link - a link with DP RX connection
+ * return - if stream is committed to this link with MST signal type, type of
+ * channel coding format dc will choose.
+ */
+enum dp_link_encoding dc_link_dp_mst_decide_link_encoding_format(
+ const struct dc_link *link);
+
+/* get max dp link settings the link can enable with all things considered. (i.e
+ * TX/RX/Cable capabilities and dp override policies.
+ *
+ * @link - a link with DP RX connection
+ * return - max dp link settings the link can enable.
+ *
+ */
+const struct dc_link_settings *dc_link_get_link_cap(const struct dc_link *link);
+
+/* Check if a RX (ex. DP sink, MST hub, passive or active dongle) is connected
+ * to a link with dp connector signal type.
+ * @link - a link with dp connector signal type
+ * return - true if connected, false otherwise
+ */
+bool dc_link_is_dp_sink_present(struct dc_link *link);
+
+/* Force DP lane settings update to main-link video signal and notify the change
+ * to DP RX via DPCD. This is a debug interface used for video signal integrity
+ * tuning purpose. The interface assumes link has already been enabled with DP
+ * signal.
+ *
+ * @lt_settings - a container structure with desired hw_lane_settings
+ */
+void dc_link_set_drive_settings(struct dc *dc,
+ struct link_training_settings *lt_settings,
+ const struct dc_link *link);
+
+/* Enable a test pattern in Link or PHY layer in an active link for compliance
+ * test or debugging purpose. The test pattern will remain until next un-plug.
+ *
+ * @link - active link with DP signal output enabled.
+ * @test_pattern - desired test pattern to output.
+ * NOTE: set to DP_TEST_PATTERN_VIDEO_MODE to disable previous test pattern.
+ * @test_pattern_color_space - for video test pattern choose a desired color
+ * space.
+ * @p_link_settings - For PHY pattern choose a desired link settings
+ * @p_custom_pattern - some test pattern will require a custom input to
+ * customize some pattern details. Otherwise keep it to NULL.
+ * @cust_pattern_size - size of the custom pattern input.
+ *
+ */
+bool dc_link_dp_set_test_pattern(
+ struct dc_link *link,
+ enum dp_test_pattern test_pattern,
+ enum dp_test_pattern_color_space test_pattern_color_space,
+ const struct link_training_settings *p_link_settings,
+ const unsigned char *p_custom_pattern,
+ unsigned int cust_pattern_size);
+
+/* Force DP link settings to always use a specific value until reboot to a
+ * specific link. If link has already been enabled, the interface will also
+ * switch to desired link settings immediately. This is a debug interface to
+ * generic dp issue trouble shooting.
+ */
+void dc_link_set_preferred_link_settings(struct dc *dc,
+ struct dc_link_settings *link_setting,
+ struct dc_link *link);
+
+/* Force DP link to customize a specific link training behavior by overriding to
+ * standard DP specs defined protocol. This is a debug interface to trouble shoot
+ * display specific link training issues or apply some display specific
+ * workaround in link training.
+ *
+ * @link_settings - if not NULL, force preferred link settings to the link.
+ * @lt_override - a set of override pointers. If any pointer is none NULL, dc
+ * will apply this particular override in future link training. If NULL is
+ * passed in, dc resets previous overrides.
+ * NOTE: DM must keep the memory from override pointers until DM resets preferred
+ * training settings.
+ */
+void dc_link_set_preferred_training_settings(struct dc *dc,
+ struct dc_link_settings *link_setting,
+ struct dc_link_training_overrides *lt_overrides,
+ struct dc_link *link,
+ bool skip_immediate_retrain);
+
+/* return - true if FEC is supported with connected DP RX, false otherwise */
+bool dc_link_is_fec_supported(const struct dc_link *link);
+
+/* query FEC enablement policy to determine if FEC will be enabled by dc during
+ * link enablement.
+ * return - true if FEC should be enabled, false otherwise.
+ */
+bool dc_link_should_enable_fec(const struct dc_link *link);
+
+/* determine lttpr mode the current link should be enabled with a specific link
+ * settings.
+ */
+enum lttpr_mode dc_link_decide_lttpr_mode(struct dc_link *link,
+ struct dc_link_settings *link_setting);
+
+/* Force DP RX to update its power state.
+ * NOTE: this interface doesn't update dp main-link. Calling this function will
+ * cause DP TX main-link and DP RX power states out of sync. DM has to restore
+ * RX power state back upon finish DM specific execution requiring DP RX in a
+ * specific power state.
+ * @on - true to set DP RX in D0 power state, false to set DP RX in D3 power
+ * state.
+ */
+void dc_link_dp_receiver_power_ctrl(struct dc_link *link, bool on);
+
+/* Force link to read base dp receiver caps from dpcd 000h - 00Fh and overwrite
+ * current value read from extended receiver cap from 02200h - 0220Fh.
+ * Some DP RX has problems of providing accurate DP receiver caps from extended
+ * field, this interface is a workaround to revert link back to use base caps.
+ */
+void dc_link_overwrite_extended_receiver_cap(
+ struct dc_link *link);
+
+void dc_link_edp_panel_backlight_power_on(struct dc_link *link,
+ bool wait_for_hpd);
+
+/* Set backlight level of an embedded panel (eDP, LVDS).
+ * backlight_pwm_u16_16 is unsigned 32 bit with 16 bit integer
+ * and 16 bit fractional, where 1.0 is max backlight value.
+ */
+bool dc_link_set_backlight_level(const struct dc_link *dc_link,
+ uint32_t backlight_pwm_u16_16,
+ uint32_t frame_ramp);
+
+/* Set/get nits-based backlight level of an embedded panel (eDP, LVDS). */
+bool dc_link_set_backlight_level_nits(struct dc_link *link,
+ bool isHDR,
+ uint32_t backlight_millinits,
+ uint32_t transition_time_in_ms);
+
+bool dc_link_get_backlight_level_nits(struct dc_link *link,
+ uint32_t *backlight_millinits,
+ uint32_t *backlight_millinits_peak);
+
+int dc_link_get_backlight_level(const struct dc_link *dc_link);
+
+int dc_link_get_target_backlight_pwm(const struct dc_link *link);
+
+bool dc_link_set_psr_allow_active(struct dc_link *dc_link, const bool *enable,
+ bool wait, bool force_static, const unsigned int *power_opts);
+
+bool dc_link_get_psr_state(const struct dc_link *dc_link, enum dc_psr_state *state);
+
+bool dc_link_setup_psr(struct dc_link *dc_link,
+ const struct dc_stream_state *stream, struct psr_config *psr_config,
+ struct psr_context *psr_context);
+
+/* On eDP links this function call will stall until T12 has elapsed.
+ * If the panel is not in power off state, this function will return
+ * immediately.
+ */
+bool dc_link_wait_for_t12(struct dc_link *link);
+
+/* Determine if dp trace has been initialized to reflect upto date result *
+ * return - true if trace is initialized and has valid data. False dp trace
+ * doesn't have valid result.
+ */
+bool dc_dp_trace_is_initialized(struct dc_link *link);
+
+/* Query a dp trace flag to indicate if the current dp trace data has been
+ * logged before
+ */
+bool dc_dp_trace_is_logged(struct dc_link *link,
+ bool in_detection);
+
+/* Set dp trace flag to indicate whether DM has already logged the current dp
+ * trace data. DM can set is_logged to true upon logging and check
+ * dc_dp_trace_is_logged before logging to avoid logging the same result twice.
+ */
+void dc_dp_trace_set_is_logged_flag(struct dc_link *link,
+ bool in_detection,
+ bool is_logged);
+
+/* Obtain driver time stamp for last dp link training end. The time stamp is
+ * formatted based on dm_get_timestamp DM function.
+ * @in_detection - true to get link training end time stamp of last link
+ * training in detection sequence. false to get link training end time stamp
+ * of last link training in commit (dpms) sequence
+ */
+unsigned long long dc_dp_trace_get_lt_end_timestamp(struct dc_link *link,
+ bool in_detection);
+
+/* Get how many link training attempts dc has done with latest sequence.
+ * @in_detection - true to get link training count of last link
+ * training in detection sequence. false to get link training count of last link
+ * training in commit (dpms) sequence
+ */
+struct dp_trace_lt_counts *dc_dp_trace_get_lt_counts(struct dc_link *link,
+ bool in_detection);
+
+/* Get how many link loss has happened since last link training attempts */
+unsigned int dc_dp_trace_get_link_loss_count(struct dc_link *link);
+
+/*
+ * USB4 DPIA BW ALLOCATION PUBLIC FUNCTIONS
+ */
+/*
+ * Send a request from DP-Tx requesting to allocate BW remotely after
+ * allocating it locally. This will get processed by CM and a CB function
+ * will be called.
+ *
+ * @link: pointer to the dc_link struct instance
+ * @req_bw: The requested bw in Kbyte to allocated
+ *
+ * return: none
+ */
+void dc_link_set_usb4_req_bw_req(struct dc_link *link, int req_bw);
+
+/*
+ * Handle function for when the status of the Request above is complete.
+ * We will find out the result of allocating on CM and update structs.
+ *
+ * @link: pointer to the dc_link struct instance
+ * @bw: Allocated or Estimated BW depending on the result
+ * @result: Response type
+ *
+ * return: none
+ */
+void dc_link_handle_usb4_bw_alloc_response(struct dc_link *link,
+ uint8_t bw, uint8_t result);
+
+/*
+ * Handle the USB4 BW Allocation related functionality here:
+ * Plug => Try to allocate max bw from timing parameters supported by the sink
+ * Unplug => de-allocate bw
+ *
+ * @link: pointer to the dc_link struct instance
+ * @peak_bw: Peak bw used by the link/sink
+ *
+ * return: allocated bw else return 0
+ */
+int dc_link_dp_dpia_handle_usb4_bandwidth_allocation_for_link(
+ struct dc_link *link, int peak_bw);
+
/* Sink Interfaces - A sink corresponds to a display output device */
struct dc_container_id {
diff --git a/drivers/gpu/drm/amd/display/dc/dc_dp_types.h b/drivers/gpu/drm/amd/display/dc/dc_dp_types.h
index 809a1851f1965..4bccce94d83bb 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_dp_types.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_dp_types.h
@@ -1261,4 +1261,111 @@ union dpcd_sink_ext_caps {
} bits;
uint8_t raw;
};
+
+enum dc_link_fec_state {
+ dc_link_fec_not_ready,
+ dc_link_fec_ready,
+ dc_link_fec_enabled
+};
+
+union dpcd_psr_configuration {
+ struct {
+ unsigned char ENABLE : 1;
+ unsigned char TRANSMITTER_ACTIVE_IN_PSR : 1;
+ unsigned char CRC_VERIFICATION : 1;
+ unsigned char FRAME_CAPTURE_INDICATION : 1;
+ /* For eDP 1.4, PSR v2*/
+ unsigned char LINE_CAPTURE_INDICATION : 1;
+ /* For eDP 1.4, PSR v2*/
+ unsigned char IRQ_HPD_WITH_CRC_ERROR : 1;
+ unsigned char ENABLE_PSR2 : 1;
+ unsigned char EARLY_TRANSPORT_ENABLE : 1;
+ } bits;
+ unsigned char raw;
+};
+
+union dpcd_alpm_configuration {
+ struct {
+ unsigned char ENABLE : 1;
+ unsigned char IRQ_HPD_ENABLE : 1;
+ unsigned char RESERVED : 6;
+ } bits;
+ unsigned char raw;
+};
+
+union dpcd_sink_active_vtotal_control_mode {
+ struct {
+ unsigned char ENABLE : 1;
+ unsigned char RESERVED : 7;
+ } bits;
+ unsigned char raw;
+};
+
+union psr_error_status {
+ struct {
+ unsigned char LINK_CRC_ERROR :1;
+ unsigned char RFB_STORAGE_ERROR :1;
+ unsigned char VSC_SDP_ERROR :1;
+ unsigned char RESERVED :5;
+ } bits;
+ unsigned char raw;
+};
+
+union psr_sink_psr_status {
+ struct {
+ unsigned char SINK_SELF_REFRESH_STATUS :3;
+ unsigned char RESERVED :5;
+ } bits;
+ unsigned char raw;
+};
+
+struct edp_trace_power_timestamps {
+ uint64_t poweroff;
+ uint64_t poweron;
+};
+
+struct dp_trace_lt_counts {
+ unsigned int total;
+ unsigned int fail;
+};
+
+enum link_training_result {
+ LINK_TRAINING_SUCCESS,
+ LINK_TRAINING_CR_FAIL_LANE0,
+ LINK_TRAINING_CR_FAIL_LANE1,
+ LINK_TRAINING_CR_FAIL_LANE23,
+ /* CR DONE bit is cleared during EQ step */
+ LINK_TRAINING_EQ_FAIL_CR,
+ /* CR DONE bit is cleared but LANE0_CR_DONE is set during EQ step */
+ LINK_TRAINING_EQ_FAIL_CR_PARTIAL,
+ /* other failure during EQ step */
+ LINK_TRAINING_EQ_FAIL_EQ,
+ LINK_TRAINING_LQA_FAIL,
+ /* one of the CR,EQ or symbol lock is dropped */
+ LINK_TRAINING_LINK_LOSS,
+ /* Abort link training (because sink unplugged) */
+ LINK_TRAINING_ABORT,
+ DP_128b_132b_LT_FAILED,
+ DP_128b_132b_MAX_LOOP_COUNT_REACHED,
+ DP_128b_132b_CHANNEL_EQ_DONE_TIMEOUT,
+ DP_128b_132b_CDS_DONE_TIMEOUT,
+};
+
+struct dp_trace_lt {
+ struct dp_trace_lt_counts counts;
+ struct dp_trace_timestamps {
+ unsigned long long start;
+ unsigned long long end;
+ } timestamps;
+ enum link_training_result result;
+ bool is_logged;
+};
+
+struct dp_trace {
+ struct dp_trace_lt detect_lt_trace;
+ struct dp_trace_lt commit_lt_trace;
+ unsigned int link_loss_count;
+ bool is_initialized;
+ struct edp_trace_power_timestamps edp_trace_power_timestamps;
+};
#endif /* DC_DP_TYPES_H */
diff --git a/drivers/gpu/drm/amd/display/dc/dc_hw_types.h b/drivers/gpu/drm/amd/display/dc/dc_hw_types.h
index cc3d6fb393640..a583a72845fe8 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_hw_types.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_hw_types.h
@@ -1085,5 +1085,19 @@ struct tg_color {
uint16_t color_b_cb;
};
+enum symclk_state {
+ SYMCLK_OFF_TX_OFF,
+ SYMCLK_ON_TX_ON,
+ SYMCLK_ON_TX_OFF,
+};
+
+struct phy_state {
+ struct {
+ uint8_t otg : 1;
+ uint8_t reserved : 7;
+ } symclk_ref_cnts;
+ enum symclk_state symclk_state;
+};
+
#endif /* DC_HW_TYPES_H */
diff --git a/drivers/gpu/drm/amd/display/dc/dc_types.h b/drivers/gpu/drm/amd/display/dc/dc_types.h
index 27d0242d6cbd4..f28b8597cc1e6 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_types.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_types.h
@@ -38,6 +38,7 @@
#include "dc_hw_types.h"
#include "dal_types.h"
#include "grph_object_defs.h"
+#include "grph_object_ctrl_defs.h"
#ifdef CONFIG_DRM_AMD_DC_HDCP
#include "dm_cp_psp.h"
@@ -982,4 +983,107 @@ struct hdcp_caps {
union hdcp_bcaps bcaps;
};
#endif
+
+/* DP MST stream allocation (payload bandwidth number) */
+struct link_mst_stream_allocation {
+ /* DIG front */
+ const struct stream_encoder *stream_enc;
+ /* HPO DP Stream Encoder */
+ const struct hpo_dp_stream_encoder *hpo_dp_stream_enc;
+ /* associate DRM payload table with DC stream encoder */
+ uint8_t vcp_id;
+ /* number of slots required for the DP stream in transport packet */
+ uint8_t slot_count;
+};
+
+#define MAX_CONTROLLER_NUM 6
+
+/* DP MST stream allocation table */
+struct link_mst_stream_allocation_table {
+ /* number of DP video streams */
+ int stream_count;
+ /* array of stream allocations */
+ struct link_mst_stream_allocation stream_allocations[MAX_CONTROLLER_NUM];
+};
+
+/* PSR feature flags */
+struct psr_settings {
+ bool psr_feature_enabled; // PSR is supported by sink
+ bool psr_allow_active; // PSR is currently active
+ enum dc_psr_version psr_version; // Internal PSR version, determined based on DPCD
+ bool psr_vtotal_control_support; // Vtotal control is supported by sink
+ unsigned long long psr_dirty_rects_change_timestamp_ns; // for delay of enabling PSR-SU
+
+ /* These parameters are calculated in Driver,
+ * based on display timing and Sink capabilities.
+ * If VBLANK region is too small and Sink takes a long time
+ * to set up RFB, it may take an extra frame to enter PSR state.
+ */
+ bool psr_frame_capture_indication_req;
+ unsigned int psr_sdp_transmit_line_num_deadline;
+ uint8_t force_ffu_mode;
+ unsigned int psr_power_opt;
+};
+
+/* To split out "global" and "per-panel" config settings.
+ * Add a struct dc_panel_config under dc_link
+ */
+struct dc_panel_config {
+ /* extra panel power sequence parameters */
+ struct pps {
+ unsigned int extra_t3_ms;
+ unsigned int extra_t7_ms;
+ unsigned int extra_delay_backlight_off;
+ unsigned int extra_post_t7_ms;
+ unsigned int extra_pre_t11_ms;
+ unsigned int extra_t12_ms;
+ unsigned int extra_post_OUI_ms;
+ } pps;
+ /* nit brightness */
+ struct nits_brightness {
+ unsigned int peak; /* nits */
+ unsigned int max_avg; /* nits */
+ unsigned int min; /* 1/10000 nits */
+ unsigned int max_nonboost_brightness_millinits;
+ unsigned int min_brightness_millinits;
+ } nits_brightness;
+ /* PSR */
+ struct psr {
+ bool disable_psr;
+ bool disallow_psrsu;
+ bool rc_disable;
+ bool rc_allow_static_screen;
+ bool rc_allow_fullscreen_VPB;
+ } psr;
+ /* ABM */
+ struct varib {
+ unsigned int varibright_feature_enable;
+ unsigned int def_varibright_level;
+ unsigned int abm_config_setting;
+ } varib;
+ /* edp DSC */
+ struct dsc {
+ bool disable_dsc_edp;
+ unsigned int force_dsc_edp_policy;
+ } dsc;
+ /* eDP ILR */
+ struct ilr {
+ bool optimize_edp_link_rate; /* eDP ILR */
+ } ilr;
+};
+
+/*
+ * USB4 DPIA BW ALLOCATION STRUCTS
+ */
+struct dc_dpia_bw_alloc {
+ int sink_verified_bw; // The Verified BW that sink can allocated and use that has been verified already
+ int sink_allocated_bw; // The Actual Allocated BW that sink currently allocated
+ int sink_max_bw; // The Max BW that sink can require/support
+ int estimated_bw; // The estimated available BW for this DPIA
+ int bw_granularity; // BW Granularity
+ bool bw_alloc_enabled; // The BW Alloc Mode Support is turned ON for all 3: DP-Tx & Dpia & CM
+ bool response_ready; // Response ready from the CM side
+};
+
+#define MAX_SINKS_PER_LINK 4
#endif /* DC_TYPES_H_ */
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c b/drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c
index fb0dec4ed3a6c..9fc48208c2e42 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c
@@ -148,7 +148,7 @@ static bool dmub_abm_set_level(struct abm *abm, uint32_t level)
int edp_num;
uint8_t panel_mask = 0;
- get_edp_links(dc->dc, edp_links, &edp_num);
+ dc_get_edp_links(dc->dc, edp_links, &edp_num);
for (i = 0; i < edp_num; i++) {
if (edp_links[i]->link_status.link_active)
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.h b/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.h
index 74005b9d352a2..289e42070ece9 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.h
+++ b/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.h
@@ -26,8 +26,9 @@
#ifndef _DMUB_PSR_H_
#define _DMUB_PSR_H_
-#include "os_types.h"
-#include "dc_link.h"
+#include "dc_types.h"
+struct dc_link;
+struct dmub_psr_funcs;
struct dmub_psr {
struct dc_context *ctx;
diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
index 0d4d3d586166d..cb3bb5402c52b 100644
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
@@ -1739,7 +1739,7 @@ void dce110_enable_accelerated_mode(struct dc *dc, struct dc_state *context)
get_edp_links_with_sink(dc, edp_links_with_sink, &edp_with_sink_num);
- get_edp_links(dc, edp_links, &edp_num);
+ dc_get_edp_links(dc, edp_links, &edp_num);
if (hws->funcs.init_pipes)
hws->funcs.init_pipes(dc, context);
diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
index 26c5c478fa355..e255519cb5ccc 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
@@ -1646,7 +1646,7 @@ void dcn10_power_down_on_boot(struct dc *dc)
int edp_num;
int i = 0;
- get_edp_links(dc, edp_links, &edp_num);
+ dc_get_edp_links(dc, edp_links, &edp_num);
if (edp_num)
edp_link = edp_links[0];
diff --git a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dio_stream_encoder.c b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dio_stream_encoder.c
index 5f9079d3943a6..9d08127d209b8 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dio_stream_encoder.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dio_stream_encoder.c
@@ -28,6 +28,7 @@
#include "dcn30_dio_stream_encoder.h"
#include "reg_helper.h"
#include "hw_shared.h"
+#include "dc.h"
#include "core_types.h"
#include <linux/delay.h>
diff --git a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c
index df787fcf8e86e..b4df540c0c61e 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c
@@ -567,7 +567,7 @@ void dcn30_init_hw(struct dc *dc)
struct dc_link *edp_links[MAX_NUM_EDP];
struct dc_link *edp_link = NULL;
- get_edp_links(dc, edp_links, &edp_num);
+ dc_get_edp_links(dc, edp_links, &edp_num);
if (edp_num)
edp_link = edp_links[0];
if (edp_link && edp_link->link_enc->funcs->is_dig_enabled &&
diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_link_encoder.c b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_link_encoder.c
index 0b317ed31f918..5b7ad38f85e08 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_link_encoder.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_link_encoder.c
@@ -26,7 +26,6 @@
#include "dc_bios_types.h"
#include "dcn31_hpo_dp_link_encoder.h"
#include "reg_helper.h"
-#include "dc_link.h"
#include "stream_encoder.h"
#define DC_LOGGER \
diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c
index d76f55a12eb41..0278bae50a9d6 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c
@@ -26,7 +26,7 @@
#include "dc_bios_types.h"
#include "dcn31_hpo_dp_stream_encoder.h"
#include "reg_helper.h"
-#include "dc_link.h"
+#include "dc.h"
#define DC_LOGGER \
enc3->base.ctx->logger
diff --git a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hpo_dp_link_encoder.c b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hpo_dp_link_encoder.c
index 4dbad8d4b4fc2..8af01f579690f 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hpo_dp_link_encoder.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hpo_dp_link_encoder.c
@@ -26,7 +26,6 @@
#include "dcn31/dcn31_hpo_dp_link_encoder.h"
#include "dcn32_hpo_dp_link_encoder.h"
#include "reg_helper.h"
-#include "dc_link.h"
#include "stream_encoder.h"
#define DC_LOGGER \
diff --git a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c
index eb51f5344436c..823f29c292d05 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c
@@ -828,7 +828,7 @@ void dcn32_init_hw(struct dc *dc)
struct dc_link *edp_links[MAX_NUM_EDP];
struct dc_link *edp_link;
- get_edp_links(dc, edp_links, &edp_num);
+ dc_get_edp_links(dc, edp_links, &edp_num);
if (edp_num) {
for (i = 0; i < edp_num; i++) {
edp_link = edp_links[i];
diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c b/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c
index c3d75e56410cc..899105da04335 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c
+++ b/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c
@@ -25,7 +25,6 @@
#ifdef CONFIG_DRM_AMD_DC_DCN
#include "dc.h"
-#include "dc_link.h"
#include "../display_mode_lib.h"
#include "display_mode_vba_30.h"
#include "../dml_inline_defs.h"
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 27f488405335f..2b57f5b2362a4 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
@@ -24,7 +24,6 @@
*/
#include "dc.h"
-#include "dc_link.h"
#include "../display_mode_lib.h"
#include "../dcn30/display_mode_vba_30.h"
#include "display_mode_vba_31.h"
diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c b/drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c
index c843b394aeb4a..461ab6d2030e2 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c
+++ b/drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c
@@ -27,7 +27,6 @@
#define UNIT_TEST 0
#if !UNIT_TEST
#include "dc.h"
-#include "dc_link.h"
#endif
#include "../display_mode_lib.h"
#include "display_mode_vba_314.h"
diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c b/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c
index fead104a31a66..02d99b6bfe5ec 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c
+++ b/drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c
@@ -24,7 +24,6 @@
*/
#include "dc.h"
-#include "dc_link.h"
#include "../display_mode_lib.h"
#include "display_mode_vba_32.h"
#include "../dml_inline_defs.h"
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h b/drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h
index a819f0f97c5f3..b95ae9596c3b1 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h
@@ -275,20 +275,6 @@ enum dc_lut_mode {
LUT_RAM_B
};
-enum symclk_state {
- SYMCLK_OFF_TX_OFF,
- SYMCLK_ON_TX_ON,
- SYMCLK_ON_TX_OFF,
-};
-
-struct phy_state {
- struct {
- uint8_t otg : 1;
- uint8_t reserved : 7;
- } symclk_ref_cnts;
- enum symclk_state symclk_state;
-};
-
/**
* speakersToChannels
*
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/link_encoder.h b/drivers/gpu/drm/amd/display/dc/inc/hw/link_encoder.h
index ec572a9e40547..dbe7afa9d3a22 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/link_encoder.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/link_encoder.h
@@ -75,58 +75,6 @@ struct encoder_feature_support {
bool fec_supported;
};
-union dpcd_psr_configuration {
- struct {
- unsigned char ENABLE : 1;
- unsigned char TRANSMITTER_ACTIVE_IN_PSR : 1;
- unsigned char CRC_VERIFICATION : 1;
- unsigned char FRAME_CAPTURE_INDICATION : 1;
- /* For eDP 1.4, PSR v2*/
- unsigned char LINE_CAPTURE_INDICATION : 1;
- /* For eDP 1.4, PSR v2*/
- unsigned char IRQ_HPD_WITH_CRC_ERROR : 1;
- unsigned char ENABLE_PSR2 : 1;
- /* For eDP 1.5, PSR v2 w/ early transport */
- unsigned char EARLY_TRANSPORT_ENABLE : 1;
- } bits;
- unsigned char raw;
-};
-
-union dpcd_alpm_configuration {
- struct {
- unsigned char ENABLE : 1;
- unsigned char IRQ_HPD_ENABLE : 1;
- unsigned char RESERVED : 6;
- } bits;
- unsigned char raw;
-};
-
-union dpcd_sink_active_vtotal_control_mode {
- struct {
- unsigned char ENABLE : 1;
- unsigned char RESERVED : 7;
- } bits;
- unsigned char raw;
-};
-
-union psr_error_status {
- struct {
- unsigned char LINK_CRC_ERROR :1;
- unsigned char RFB_STORAGE_ERROR :1;
- unsigned char VSC_SDP_ERROR :1;
- unsigned char RESERVED :5;
- } bits;
- unsigned char raw;
-};
-
-union psr_sink_psr_status {
- struct {
- unsigned char SINK_SELF_REFRESH_STATUS :3;
- unsigned char RESERVED :5;
- } bits;
- unsigned char raw;
-};
-
struct link_encoder {
const struct link_encoder_funcs *funcs;
int32_t aux_channel_offset;
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h b/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h
index bb5ad70d42662..c4fbbf08ef868 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h
@@ -30,7 +30,6 @@
#include "audio_types.h"
#include "hw_shared.h"
-#include "dc_link.h"
struct dc_bios;
struct dc_context;
diff --git a/drivers/gpu/drm/amd/display/dc/inc/link.h b/drivers/gpu/drm/amd/display/dc/inc/link.h
index e70fa00592236..6a346a41f07b2 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/link.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/link.h
@@ -38,7 +38,6 @@
* into this file and prefix it with "link_".
*/
#include "core_types.h"
-#include "dc_link.h"
struct link_init_data {
const struct dc *dc;
diff --git a/drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c b/drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
index 942300e0bd929..7f36d733bfcab 100644
--- a/drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
+++ b/drivers/gpu/drm/amd/display/dc/link/accessories/link_dp_cts.c
@@ -1027,20 +1027,3 @@ void dc_link_set_preferred_training_settings(struct dc *dc,
if (skip_immediate_retrain == false)
dc_link_set_preferred_link_settings(dc, &link->preferred_link_setting, link);
}
-
-void dc_link_set_test_pattern(struct dc_link *link,
- enum dp_test_pattern test_pattern,
- enum dp_test_pattern_color_space test_pattern_color_space,
- const struct link_training_settings *p_link_settings,
- const unsigned char *p_custom_pattern,
- unsigned int cust_pattern_size)
-{
- if (link != NULL)
- dc_link_dp_set_test_pattern(
- link,
- test_pattern,
- test_pattern_color_space,
- p_link_settings,
- p_custom_pattern,
- cust_pattern_size);
-}
diff --git a/drivers/gpu/drm/amd/display/dc/link/link_detection.c b/drivers/gpu/drm/amd/display/dc/link/link_detection.c
index f70025ef7b69e..9839ec222875a 100644
--- a/drivers/gpu/drm/amd/display/dc/link/link_detection.c
+++ b/drivers/gpu/drm/amd/display/dc/link/link_detection.c
@@ -1329,3 +1329,102 @@ const struct dc_link_status *link_get_status(const struct dc_link *link)
return &link->link_status;
}
+
+static bool link_add_remote_sink_helper(struct dc_link *dc_link, struct dc_sink *sink)
+{
+ if (dc_link->sink_count >= MAX_SINKS_PER_LINK) {
+ BREAK_TO_DEBUGGER();
+ return false;
+ }
+
+ dc_sink_retain(sink);
+
+ dc_link->remote_sinks[dc_link->sink_count] = sink;
+ dc_link->sink_count++;
+
+ return true;
+}
+
+struct dc_sink *dc_link_add_remote_sink(
+ struct dc_link *link,
+ const uint8_t *edid,
+ int len,
+ struct dc_sink_init_data *init_data)
+{
+ struct dc_sink *dc_sink;
+ enum dc_edid_status edid_status;
+
+ if (len > DC_MAX_EDID_BUFFER_SIZE) {
+ dm_error("Max EDID buffer size breached!\n");
+ return NULL;
+ }
+
+ if (!init_data) {
+ BREAK_TO_DEBUGGER();
+ return NULL;
+ }
+
+ if (!init_data->link) {
+ BREAK_TO_DEBUGGER();
+ return NULL;
+ }
+
+ dc_sink = dc_sink_create(init_data);
+
+ if (!dc_sink)
+ return NULL;
+
+ memmove(dc_sink->dc_edid.raw_edid, edid, len);
+ dc_sink->dc_edid.length = len;
+
+ if (!link_add_remote_sink_helper(
+ link,
+ dc_sink))
+ goto fail_add_sink;
+
+ edid_status = dm_helpers_parse_edid_caps(
+ link,
+ &dc_sink->dc_edid,
+ &dc_sink->edid_caps);
+
+ /*
+ * Treat device as no EDID device if EDID
+ * parsing fails
+ */
+ if (edid_status != EDID_OK && edid_status != EDID_PARTIAL_VALID) {
+ dc_sink->dc_edid.length = 0;
+ dm_error("Bad EDID, status%d!\n", edid_status);
+ }
+
+ return dc_sink;
+
+fail_add_sink:
+ dc_sink_release(dc_sink);
+ return NULL;
+}
+
+void dc_link_remove_remote_sink(struct dc_link *link, struct dc_sink *sink)
+{
+ int i;
+
+ if (!link->sink_count) {
+ BREAK_TO_DEBUGGER();
+ return;
+ }
+
+ for (i = 0; i < link->sink_count; i++) {
+ if (link->remote_sinks[i] == sink) {
+ dc_sink_release(sink);
+ link->remote_sinks[i] = NULL;
+
+ /* shrink array to remove empty place */
+ while (i < link->sink_count - 1) {
+ link->remote_sinks[i] = link->remote_sinks[i+1];
+ i++;
+ }
+ link->remote_sinks[i] = NULL;
+ link->sink_count--;
+ return;
+ }
+ }
+}
diff --git a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
index 32f48a48e9dde..cbfa9343ffaf9 100644
--- a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
+++ b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia.c
@@ -26,7 +26,6 @@
#include "dc.h"
#include "inc/core_status.h"
-#include "dc_link.h"
#include "dpcd_defs.h"
#include "link_dp_dpia.h"
diff --git a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
index f69e681b3b5bf..1ecf1d8573592 100644
--- a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
+++ b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
@@ -27,7 +27,6 @@
// USB4 DPIA BANDWIDTH ALLOCATION LOGIC
/*********************************************************************/
#include "dc.h"
-#include "dc_link.h"
#include "link_dp_dpia_bw.h"
#include "drm_dp_helper_dc.h"
#include "link_dpcd.h"
diff --git a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
index e60da0532c539..4ded5f9cdecc6 100644
--- a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
+++ b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_dpia.c
@@ -29,7 +29,6 @@
#include "link_dp_training_dpia.h"
#include "dc.h"
#include "inc/core_status.h"
-#include "dc_link.h"
#include "dpcd_defs.h"
#include "link_dp_dpia.h"
diff --git a/drivers/gpu/drm/amd/display/include/link_service_types.h b/drivers/gpu/drm/amd/display/include/link_service_types.h
index 18b9173d5a962..cd870af5fd250 100644
--- a/drivers/gpu/drm/amd/display/include/link_service_types.h
+++ b/drivers/gpu/drm/amd/display/include/link_service_types.h
@@ -34,10 +34,6 @@
struct ddc;
struct irq_manager;
-enum {
- MAX_CONTROLLER_NUM = 6
-};
-
enum dp_power_state {
DP_POWER_STATE_D0 = 1,
DP_POWER_STATE_D3
@@ -60,28 +56,6 @@ enum {
DATA_EFFICIENCY_128b_132b_x10000 = 9646, /* 96.71% data efficiency x 99.75% downspread factor */
};
-enum link_training_result {
- LINK_TRAINING_SUCCESS,
- LINK_TRAINING_CR_FAIL_LANE0,
- LINK_TRAINING_CR_FAIL_LANE1,
- LINK_TRAINING_CR_FAIL_LANE23,
- /* CR DONE bit is cleared during EQ step */
- LINK_TRAINING_EQ_FAIL_CR,
- /* CR DONE bit is cleared but LANE0_CR_DONE is set during EQ step */
- LINK_TRAINING_EQ_FAIL_CR_PARTIAL,
- /* other failure during EQ step */
- LINK_TRAINING_EQ_FAIL_EQ,
- LINK_TRAINING_LQA_FAIL,
- /* one of the CR,EQ or symbol lock is dropped */
- LINK_TRAINING_LINK_LOSS,
- /* Abort link training (because sink unplugged) */
- LINK_TRAINING_ABORT,
- DP_128b_132b_LT_FAILED,
- DP_128b_132b_MAX_LOOP_COUNT_REACHED,
- DP_128b_132b_CHANNEL_EQ_DONE_TIMEOUT,
- DP_128b_132b_CDS_DONE_TIMEOUT,
-};
-
enum lttpr_mode {
LTTPR_MODE_UNKNOWN,
LTTPR_MODE_NON_LTTPR,
--
2.39.2
next prev parent reply other threads:[~2023-05-15 16:59 UTC|newest]
Thread overview: 263+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-15 16:23 [PATCH 6.3 000/246] 6.3.3-rc1 review Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 001/246] USB: dwc3: gadget: drop dead hibernation code Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 002/246] usb: dwc3: gadget: Execute gadget stop after halting the controller Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 003/246] crypto: ccp - Clear PSP interrupt status register before calling handler Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 004/246] mtd: spi-nor: Add a RWW flag Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 005/246] mtd: spi-nor: spansion: Enable JFFS2 write buffer for Infineon s28hx SEMPER flash Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 006/246] qcom: llcc/edac: Support polling mode for ECC handling Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 007/246] soc: qcom: llcc: Do not create EDAC platform device on SDM845 Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 008/246] mtd: spi-nor: spansion: Enable JFFS2 write buffer for Infineon s25hx SEMPER flash Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 009/246] fs/ntfs3: Fix null-ptr-deref on inode->i_op in ntfs_lookup() Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 010/246] RDMA/rxe: Change rxe_dbg to rxe_dbg_dev Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 011/246] RDMA/rxe: Extend dbg log messages to err and info Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 012/246] ASoC: Intel: soc-acpi-byt: Fix "WM510205" match no longer working Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 013/246] scsi: ufs: core: mcq: Fix &hwq->cq_lock deadlock issue Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 014/246] scsi: qedi: Fix use after free bug in qedi_remove() Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 015/246] arm64: Fix label placement in record_mmu_state() Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 016/246] drm/amd/display: Add missing WA and MCLK validation Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 017/246] drm/amd/display: Return error code on DSC atomic check failure Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 018/246] drm/amd/display: Fixes for dcn32_clk_mgr implementation Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 019/246] drm/amd/display: Reset OUTBOX0 r/w pointer on DMUB reset Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 020/246] drm/amd/display: Do not clear GPINT register when releasing DMUB from reset Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 021/246] drm/amd/display: Update bounding box values for DCN321 Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 022/246] rxrpc: Fix potential data race in rxrpc_wait_to_be_connected() Greg Kroah-Hartman
2023-05-17 3:38 ` patchwork-bot+netdevbpf
2023-05-15 16:23 ` [PATCH 6.3 023/246] net/sched: flower: Fix wrong handle assignment during filter change Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 024/246] ixgbe: Fix panic during XDP_TX with > 64 CPUs Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 025/246] octeonxt2-af: mcs: Fix per port bypass config Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 026/246] octeontx2-af: mcs: Write TCAM_DATA and TCAM_MASK registers at once Greg Kroah-Hartman
2023-05-15 16:23 ` [PATCH 6.3 027/246] octeontx2-af: mcs: Config parser to skip 8B header Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 028/246] octeontx2-af: mcs: Fix MCS block interrupt Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 029/246] octeontx2-pf: mcs: Fix NULL pointer dereferences Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 030/246] octeontx2-pf: mcs: Match macsec ethertype along with DMAC Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 031/246] octeontx2-pf: mcs: Clear stats before freeing resource Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 032/246] octeontx2-pf: mcs: Fix shared counters logic Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 033/246] octeontx2-pf: mcs: Do not reset PN while updating secy Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 034/246] net/ncsi: clear Tx enable mode when handling a Config required AEN Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 035/246] tcp: fix skb_copy_ubufs() vs BIG TCP Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 036/246] net/sched: cls_api: remove block_cb from driver_list before freeing Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 037/246] sit: update dev->needed_headroom in ipip6_tunnel_bind_dev() Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 038/246] selftests: srv6: make srv6_end_dt46_l3vpn_test more robust Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 039/246] net: ipv6: fix skb hash for some RST packets Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 040/246] net: dsa: mv88e6xxx: add mv88e6321 rsvd2cpu Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 041/246] writeback: fix call of incorrect macro Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 042/246] block: Skip destroyed blkg when restart in blkg_destroy_all() Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 043/246] watchdog: dw_wdt: Fix the error handling path of dw_wdt_drv_probe() Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 044/246] RISC-V: mm: Enable huge page support to kernel_page_present() function Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 045/246] i2c: tegra: Fix PEC support for SMBUS block read Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 046/246] net/sched: act_mirred: Add carrier check Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 047/246] r8152: fix flow control issue of RTL8156A Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 048/246] r8152: fix the poor throughput for 2.5G devices Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 049/246] r8152: move setting r8153b_rx_agg_chg_indicate() Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 050/246] sfc: Fix module EEPROM reporting for QSFP modules Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 051/246] rxrpc: Fix hard call timeout units Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 052/246] rxrpc: Make it so that a waiting process can be aborted Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 053/246] rxrpc: Fix timeout of a call that hasnt yet been granted a channel Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 054/246] riscv: compat_syscall_table: Fixup compile warning Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 055/246] arm64: kernel: remove SHF_WRITE|SHF_EXECINSTR from .idmap.text Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 056/246] net: ethernet: mtk_eth_soc: drop generic vlan rx offload, only use DSA untagging Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 057/246] drm/i915/guc: More debug print updates - UC firmware Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 058/246] drm/i915/guc: Actually return an error if GuC version range check fails Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 059/246] drm/i915/mtl: Add the missing CPU transcoder mask in intel_device_info Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 060/246] netfilter: nf_tables: extended netlink error reporting for netdevice Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 061/246] netfilter: nf_tables: rename function to destroy hook list Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 062/246] netfilter: nf_tables: support for adding new devices to an existing netdev chain Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 063/246] netfilter: nf_tables: hit ENOENT on unexisting chain/flowtable update with missing attributes Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 064/246] selftests: netfilter: fix libmnl pkg-config usage Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 065/246] octeontx2-af: Secure APR table update with the lock Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 066/246] octeontx2-af: Fix start and end bit for scan config Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 067/246] octeontx2-af: Fix depth of cam and mem table Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 068/246] octeontx2-pf: Increase the size of dmac filter flows Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 069/246] octeontx2-af: Add validation for lmac type Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 070/246] octeontx2-af: Update correct mask to filter IPv4 fragments Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 071/246] octeontx2-af: Update/Fix NPC field hash extract feature Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 072/246] octeontx2-af: Fix issues with NPC field hash extract Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 073/246] octeontx2-af: Skip PFs if not enabled Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 074/246] octeontx2-pf: Disable packet I/O for graceful exit Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 075/246] octeontx2-vf: Detach LF resources on probe cleanup Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 076/246] ionic: remove noise from ethtool rxnfc error msg Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 077/246] r8152: fix the autosuspend doesnt work Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 078/246] ethtool: Fix uninitialized number of lanes Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 079/246] ionic: catch failure from devlink_alloc Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 080/246] af_packet: Dont send zero-byte data in packet_sendmsg_spkt() Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 081/246] netfilter: nf_tables: fix ct untracked match breakage Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 082/246] i2c: gxp: fix build failure without CONFIG_I2C_SLAVE Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 083/246] ublk: add timeout handler Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 084/246] drm/amdgpu: add a missing lock for AMDGPU_SCHED Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 085/246] ALSA: caiaq: input: Add error handling for unsupported input methods in `snd_usb_caiaq_input_init` Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 086/246] KVM: s390: pv: fix asynchronous teardown for small VMs Greg Kroah-Hartman
2023-05-15 16:24 ` [PATCH 6.3 087/246] KVM: s390: fix race in gmap_make_secure() Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 088/246] dt-bindings: perf: riscv,pmu: fix property dependencies Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 089/246] net: dsa: mt7530: fix corrupt frames using trgmii on 40 MHz XTAL MT7621 Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 090/246] net: dsa: mt7530: split-off common parts from mt7531_setup Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 091/246] net: dsa: mt7530: fix network connectivity with multiple CPU ports Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 092/246] ice: block LAN in case of VF to VF offload Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 093/246] virtio_net: suppress cpu stall when free_unused_bufs Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 094/246] net: enetc: check the index of the SFI rather than the handle Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 095/246] net: fec: correct the counting of XDP sent frames Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 096/246] net/sched: flower: fix filter idr initialization Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 097/246] net/sched: flower: fix error handler on replace Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 098/246] net: bcmgenet: Remove phy_stop() from bcmgenet_netif_stop() Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 099/246] perf record: Fix "read LOST count failed" msg with sample read Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 100/246] perf lock contention: Fix compiler builtin detection Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 101/246] perf build: Support python/perf.so testing Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 102/246] perf test: Fix "PMU event table sanity" for NO_JEVENTS=1 Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 103/246] perf scripts intel-pt-events.py: Fix IPC output for Python 2 Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 104/246] perf script: Fix Python support when no libtraceevent Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 105/246] perf test: Fix wrong size expectation for Setup struct perf_event_attr Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 106/246] perf hist: Improve srcfile sort key performance (really) Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 107/246] perf vendor events s390: Remove UTF-8 characters from JSON file Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 108/246] perf tests record_offcpu.sh: Fix redirection of stderr to stdin Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 109/246] perf ftrace: Make system wide the default target for latency subcommand Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 110/246] perf vendor events power9: Remove UTF-8 characters from JSON files Greg Kroah-Hartman
2023-05-15 16:25 ` Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 111/246] perf symbols: Fix use-after-free in get_plt_got_name() Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 112/246] perf symbols: Fix unaligned access in get_x86_64_plt_disp() Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 113/246] perf pmu: zfree() expects a pointer to a pointer to zero it after freeing its contents Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 114/246] perf map: Delete two variable initialisations before null pointer checks in sort__sym_from_cmp() Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 115/246] perf cs-etm: Fix timeless decode mode detection Greg Kroah-Hartman
2023-05-15 16:25 ` Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 116/246] crypto: sun8i-ss - Fix a test in sun8i_ss_setup_ivs() Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 117/246] crypto: engine - fix crypto_queue backlog handling Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 118/246] perf symbols: Fix return incorrect build_id size in elf_read_build_id() Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 119/246] perf tracepoint: Fix memory leak in is_valid_tracepoint() Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 120/246] perf stat: Separate bperf from bpf_profiler Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 121/246] KVM: x86/mmu: Avoid indirect call for get_cr3 Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 122/246] KVM: x86: Do not unload MMU roots when only toggling CR0.WP with TDP enabled Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 123/246] KVM: x86: Make use of kvm_read_cr*_bits() when testing bits Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 124/246] KVM: VMX: Make CR0.WP a guest owned bit Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 125/246] KVM: x86/mmu: Refresh CR0.WP prior to checking for emulated permission faults Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 126/246] x86/retbleed: Fix return thunk alignment Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 127/246] btrfs: fix btrfs_prev_leaf() to not return the same key twice Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 128/246] btrfs: zoned: fix wrong use of bitops API in btrfs_ensure_empty_zones Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 129/246] btrfs: properly reject clear_cache and v1 cache for block-group-tree Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 130/246] btrfs: fix assertion of exclop condition when starting balance Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 131/246] btrfs: fix encoded write i_size corruption with no-holes Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 132/246] btrfs: dont free qgroup space unless specified Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 133/246] btrfs: zero the buffer before marking it dirty in btrfs_redirty_list_add Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 134/246] btrfs: make clear_cache mount option to rebuild FST without disabling it Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 135/246] btrfs: print-tree: parent bytenr must be aligned to sector size Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 136/246] btrfs: fix space cache inconsistency after error loading it from disk Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 137/246] btrfs: zoned: zone finish data relocation BG with last IO Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 138/246] btrfs: zoned: fix full zone super block reading on ZNS Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 139/246] btrfs: fix backref walking not returning all inode refs Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 140/246] cifs: fix pcchunk length type in smb2_copychunk_range Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 141/246] cifs: release leases for deferred close handles when freezing Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 142/246] platform/x86/intel-uncore-freq: Return error on write frequency Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 143/246] platform/x86: touchscreen_dmi: Add upside-down quirk for GDIX1002 ts on the Juno Tablet Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 144/246] platform/x86: thinkpad_acpi: Fix platform profiles on T490 Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 145/246] platform/x86: hp-wmi: add micmute to hp_wmi_keymap struct Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 146/246] platform/x86: touchscreen_dmi: Add info for the Dexp Ursus KX210i Greg Kroah-Hartman
2023-05-15 16:25 ` [PATCH 6.3 147/246] platform/x86: thinkpad_acpi: Add profile force ability Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 148/246] inotify: Avoid reporting event with invalid wd Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 149/246] smb3: fix problem remounting a share after shutdown Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 150/246] SMB3: force unmount was failing to close deferred close files Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 151/246] sh: math-emu: fix macro redefined warning Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 152/246] sh: mcount.S: fix build error when PRINTK is not enabled Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 153/246] sh: init: use OF_EARLY_FLATTREE for early init Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 154/246] sh: nmi_debug: fix return value of __setup handler Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 155/246] proc_sysctl: update docs for __register_sysctl_table() Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 156/246] proc_sysctl: enhance documentation Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 157/246] remoteproc: stm32: Call of_node_put() on iteration error Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 158/246] remoteproc: st: " Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 159/246] remoteproc: imx_dsp_rproc: " Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 160/246] remoteproc: imx_rproc: " Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 161/246] remoteproc: rcar_rproc: " Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 162/246] sysctl: clarify register_sysctl_init() base directory order Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 163/246] ARM: dts: aspeed: asrock: Correct firmware flash SPI clocks Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 164/246] ARM: dts: exynos: fix WM8960 clock name in Itop Elite Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 165/246] ARM: dts: s5pv210: correct MIPI CSIS clock name Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 166/246] ARM: dts: aspeed: romed8hm3: Fix GPIO polarity of system-fault LED Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 167/246] drm/msm/adreno: fix runtime PM imbalance at gpu load Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 168/246] drm/bridge: lt8912b: Fix DSI Video Mode Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 169/246] drm/i915/color: Fix typo for Plane CSC indexes Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 170/246] drm/msm: fix NULL-deref on snapshot tear down Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 171/246] drm/msm: fix NULL-deref on irq uninstall Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 172/246] drm/msm: fix drm device leak on bind errors Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 173/246] drm/msm: fix vram " Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 174/246] drm/msm: fix missing wq allocation error handling Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 175/246] drm/msm: fix workqueue leak on bind errors Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 176/246] drm/i915: Check pipe source size when using skl+ scalers Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 177/246] drm/i915/dsi: Use unconditional msleep() instead of intel_dsi_msleep() Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 178/246] drm/dsc: fix drm_edp_dsc_sink_output_bpp() DPCD high byte usage Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 179/246] f2fs: factor out victim_entry usage from general rb_tree use Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 180/246] f2fs: factor out discard_cmd " Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 181/246] f2fs: remove entire rb_entry sharing Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 182/246] f2fs: fix null pointer panic in tracepoint in __replace_atomic_write_block Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 183/246] f2fs: fix potential corruption when moving a directory Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 184/246] irqchip/loongson-pch-pic: Fix pch_pic_acpi_init calling Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 185/246] irqchip/loongson-pch-pic: Fix registration of syscore_ops Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 186/246] irqchip/loongson-eiointc: Fix returned value on parsing MADT Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 187/246] irqchip/loongson-eiointc: Fix incorrect use of acpi_get_vec_parent Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 188/246] irqchip/loongson-eiointc: Fix registration of syscore_ops Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 189/246] drm/panel: otm8009a: Set backlight parent to panel device Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 190/246] drm/amd/display: Add NULL plane_state check for cursor disable logic Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 191/246] drm/amd/display: Fix 4to1 MPC black screen with DPP RCO Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 192/246] drm/amd/display: filter out invalid bits in pipe_fuses Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 193/246] drm/amd/display: fix access hdcp_workqueue assert Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 194/246] drm/amd/display: fix flickering caused by S/G mode Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 195/246] drm/amdgpu: drop redundant sched job cleanup when cs is aborted Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 196/246] drm/amd/display: Change default Z8 watermark values Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 197/246] drm/amdgpu: fix amdgpu_irq_put call trace in gmc_v10_0_hw_fini Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 198/246] drm/amdgpu: fix an amdgpu_irq_put() issue in gmc_v9_0_hw_fini() Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 199/246] drm/amdgpu: fix amdgpu_irq_put call trace in gmc_v11_0_hw_fini Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 200/246] drm/amdgpu/gfx: disable gfx9 cp_ecc_error_irq only when enabling legacy gfx ras Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 201/246] drm/amdgpu/jpeg: Remove harvest checking for JPEG3 Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 202/246] drm/amdgpu: change gfx 11.0.4 external_id range Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 203/246] drm/amdgpu: Fix vram recover doesnt work after whole GPU reset (v2) Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 204/246] drm/amd/display: Enforce 60us prefetch for 200Mhz DCFCLK modes Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 205/246] drm/amd/pm: parse pp_handle under appropriate conditions Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 206/246] drm/amdgpu: drop gfx_v11_0_cp_ecc_error_irq_funcs Greg Kroah-Hartman
2023-05-15 16:26 ` [PATCH 6.3 207/246] drm/amdgpu: disable sdma ecc irq only when sdma RAS is enabled in suspend Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 208/246] drm/amd/pm: avoid potential UBSAN issue on legacy asics Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 209/246] firewire: net: fix unexpected release of object for asynchronous request packet Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 210/246] HID: wacom: Set a default resolution for older tablets Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 211/246] HID: wacom: insert timestamp to packed Bluetooth (BT) events Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 212/246] fs/ntfs3: Refactoring of various minor issues Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 213/246] Revert "net/sched: flower: Fix wrong handle assignment during filter change" Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 214/246] drm/msm/adreno: adreno_gpu: Use suspend() instead of idle() on load error Greg Kroah-Hartman
2023-05-15 16:27 ` Greg Kroah-Hartman [this message]
2023-05-15 16:27 ` [PATCH 6.3 216/246] drm/amd/display: hpd rx irq not working with eDP interface Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 217/246] drm/i915: Add _PICK_EVEN_2RANGES() Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 218/246] drm/i915/mtl: Add workarounds Wa_14017066071 and Wa_14017654203 Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 219/246] drm/i915/mtl: Add Wa_14017856879 Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 220/246] drm/i915: disable sampler indirect state in bindless heap Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 221/246] drm/amd/display: Add minimum Z8 residency debug option Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 222/246] drm/amd/display: Update minimum stutter residency for DCN314 Z8 Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 223/246] drm/amd/display: Lowering min Z8 residency time Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 224/246] parisc: Fix encoding of swp_entry due to added SWP_EXCLUSIVE flag Greg Kroah-Hartman
2023-05-16 11:29 ` Christoph Biedl
2023-05-15 16:27 ` [PATCH 6.3 225/246] perf/x86: Fix missing sample size update on AMD BRS Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 226/246] locking/rwsem: Add __always_inline annotation to __down_read_common() and inlined callers Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 227/246] ext4: fix WARNING in mb_find_extent Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 228/246] ext4: avoid a potential slab-out-of-bounds in ext4_group_desc_csum Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 229/246] ext4: fix data races when using cached status extents Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 230/246] ext4: avoid deadlock in fs reclaim with page writeback Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 231/246] ext4: check iomap type only if ext4_iomap_begin() does not fail Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 232/246] ext4: improve error recovery code paths in __ext4_remount() Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 233/246] ext4: improve error handling from ext4_dirhash() Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 234/246] ext4: fix deadlock when converting an inline directory in nojournal mode Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 235/246] ext4: add bounds checking in get_max_inline_xattr_value_size() Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 236/246] ext4: bail out of ext4_xattr_ibody_get() fails for any reason Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 237/246] ext4: fix lockdep warning when enabling MMP Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 238/246] ext4: remove a BUG_ON in ext4_mb_release_group_pa() Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 239/246] ext4: fix invalid free tracking in ext4_xattr_move_to_block() Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 240/246] x86/amd_nb: Add PCI ID for family 19h model 78h Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 241/246] x86: fix clear_user_rep_good() exception handling annotation Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 242/246] spi: fsl-spi: Re-organise transfer bits_per_word adaptation Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 243/246] spi: fsl-cpm: Use 16 bit mode for large transfers with even size Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 244/246] s390/mm: rename POPULATE_ONE2ONE to POPULATE_DIRECT Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 245/246] s390/mm: fix direct map accounting Greg Kroah-Hartman
2023-05-15 16:27 ` [PATCH 6.3 246/246] drm/amd/display: Fix hang when skipping modeset Greg Kroah-Hartman
2023-05-15 20:14 ` [PATCH 6.3 000/246] 6.3.3-rc1 review Chris Paterson
2023-05-16 1:19 ` Shuah Khan
2023-05-16 3:33 ` Ron Economos
2023-05-16 9:03 ` Bagas Sanjaya
2023-05-16 9:20 ` Sudip Mukherjee (Codethink)
2023-05-16 9:51 ` Naresh Kamboju
2023-05-16 12:04 ` Justin Forbes
2023-05-16 12:26 ` Conor Dooley
2023-05-16 12:38 ` Rudi Heitbaum
2023-05-16 18:21 ` Markus Reichelt
2023-05-17 2:53 ` Guenter Roeck
2023-05-17 7:59 ` Jon Hunter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230515161729.046886760@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=Jun.Lei@amd.com \
--cc=alexander.deucher@amd.com \
--cc=daniel.wheeler@amd.com \
--cc=patches@lists.linux.dev \
--cc=qingqing.zhuo@amd.com \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=wenjing.liu@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.