From 3256dcb620f0b7e4e1c231c093ca3ca5b35f3433 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 9 Mar 2020 17:26:45 +0100 Subject: [PATCH 001/191] Fix only 1 monitor working on DP-MST docking stations (rhbz 1809681) Fix backtraces on various buggy BIOS-es (rhbz 1564895, 1808874) Add /etc/modprobe.d/floppy-blacklist.conf to fix auto-loading of the legacy floppy driver (rhbz 1789155) --- drm-dp-mst-error-handling-improvements.patch | 471 +++++++++++++++ drm-dp-mst-fixes.patch | 578 +++++++++++++++++++ iommu-WARN_TAINT-fixes.patch | 164 ++++++ kernel.spec | 17 + mod-extra-blacklist.sh | 8 + 5 files changed, 1238 insertions(+) create mode 100644 drm-dp-mst-error-handling-improvements.patch create mode 100644 drm-dp-mst-fixes.patch create mode 100644 iommu-WARN_TAINT-fixes.patch diff --git a/drm-dp-mst-error-handling-improvements.patch b/drm-dp-mst-error-handling-improvements.patch new file mode 100644 index 000000000..91e396940 --- /dev/null +++ b/drm-dp-mst-error-handling-improvements.patch @@ -0,0 +1,471 @@ +From 52bd42038880354565bd5ca0bcc1d24b15136b0d Mon Sep 17 00:00:00 2001 +From: Benjamin Gaignard +Date: Wed, 5 Feb 2020 09:48:42 +0100 +Subject: [PATCH 1/3] drm/dp_mst: Fix W=1 warnings + +Fix the warnings that show up with W=1. +They are all about unused but set variables. +If functions returns are not used anymore make them void. + +Signed-off-by: Benjamin Gaignard +Reviewed-by: Lyude Paul +Link: https://patchwork.freedesktop.org/patch/msgid/20200205084842.5642-1-benjamin.gaignard@st.com +--- + drivers/gpu/drm/drm_dp_mst_topology.c | 114 +++++++++++++++----------- + 1 file changed, 65 insertions(+), 49 deletions(-) + +diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c +index 415bd0770eab..95e08d908dd2 100644 +--- a/drivers/gpu/drm/drm_dp_mst_topology.c ++++ b/drivers/gpu/drm/drm_dp_mst_topology.c +@@ -1035,7 +1035,8 @@ static bool drm_dp_sideband_parse_req(struct drm_dp_sideband_msg_rx *raw, + } + } + +-static int build_dpcd_write(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 offset, u8 num_bytes, u8 *bytes) ++static void build_dpcd_write(struct drm_dp_sideband_msg_tx *msg, ++ u8 port_num, u32 offset, u8 num_bytes, u8 *bytes) + { + struct drm_dp_sideband_msg_req_body req; + +@@ -1045,17 +1046,14 @@ static int build_dpcd_write(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 + req.u.dpcd_write.num_bytes = num_bytes; + req.u.dpcd_write.bytes = bytes; + drm_dp_encode_sideband_req(&req, msg); +- +- return 0; + } + +-static int build_link_address(struct drm_dp_sideband_msg_tx *msg) ++static void build_link_address(struct drm_dp_sideband_msg_tx *msg) + { + struct drm_dp_sideband_msg_req_body req; + + req.req_type = DP_LINK_ADDRESS; + drm_dp_encode_sideband_req(&req, msg); +- return 0; + } + + static int build_clear_payload_id_table(struct drm_dp_sideband_msg_tx *msg) +@@ -1067,7 +1065,8 @@ static int build_clear_payload_id_table(struct drm_dp_sideband_msg_tx *msg) + return 0; + } + +-static int build_enum_path_resources(struct drm_dp_sideband_msg_tx *msg, int port_num) ++static int build_enum_path_resources(struct drm_dp_sideband_msg_tx *msg, ++ int port_num) + { + struct drm_dp_sideband_msg_req_body req; + +@@ -1078,10 +1077,11 @@ static int build_enum_path_resources(struct drm_dp_sideband_msg_tx *msg, int por + return 0; + } + +-static int build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, int port_num, +- u8 vcpi, uint16_t pbn, +- u8 number_sdp_streams, +- u8 *sdp_stream_sink) ++static void build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, ++ int port_num, ++ u8 vcpi, uint16_t pbn, ++ u8 number_sdp_streams, ++ u8 *sdp_stream_sink) + { + struct drm_dp_sideband_msg_req_body req; + memset(&req, 0, sizeof(req)); +@@ -1094,11 +1094,10 @@ static int build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, int port_n + number_sdp_streams); + drm_dp_encode_sideband_req(&req, msg); + msg->path_msg = true; +- return 0; + } + +-static int build_power_updown_phy(struct drm_dp_sideband_msg_tx *msg, +- int port_num, bool power_up) ++static void build_power_updown_phy(struct drm_dp_sideband_msg_tx *msg, ++ int port_num, bool power_up) + { + struct drm_dp_sideband_msg_req_body req; + +@@ -1110,7 +1109,6 @@ static int build_power_updown_phy(struct drm_dp_sideband_msg_tx *msg, + req.u.port_num.port_number = port_num; + drm_dp_encode_sideband_req(&req, msg); + msg->path_msg = true; +- return 0; + } + + static int drm_dp_mst_assign_payload_id(struct drm_dp_mst_topology_mgr *mgr, +@@ -2073,29 +2071,24 @@ ssize_t drm_dp_mst_dpcd_write(struct drm_dp_aux *aux, + offset, size, buffer); + } + +-static void drm_dp_check_mstb_guid(struct drm_dp_mst_branch *mstb, u8 *guid) ++static int drm_dp_check_mstb_guid(struct drm_dp_mst_branch *mstb, u8 *guid) + { +- int ret; ++ int ret = 0; + + memcpy(mstb->guid, guid, 16); + + if (!drm_dp_validate_guid(mstb->mgr, mstb->guid)) { + if (mstb->port_parent) { +- ret = drm_dp_send_dpcd_write( +- mstb->mgr, +- mstb->port_parent, +- DP_GUID, +- 16, +- mstb->guid); ++ ret = drm_dp_send_dpcd_write(mstb->mgr, ++ mstb->port_parent, ++ DP_GUID, 16, mstb->guid); + } else { +- +- ret = drm_dp_dpcd_write( +- mstb->mgr->aux, +- DP_GUID, +- mstb->guid, +- 16); ++ ret = drm_dp_dpcd_write(mstb->mgr->aux, ++ DP_GUID, mstb->guid, 16); + } + } ++ ++ return ret; + } + + static void build_mst_prop_path(const struct drm_dp_mst_branch *mstb, +@@ -2641,7 +2634,8 @@ static bool drm_dp_validate_guid(struct drm_dp_mst_topology_mgr *mgr, + return false; + } + +-static int build_dpcd_read(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 offset, u8 num_bytes) ++static void build_dpcd_read(struct drm_dp_sideband_msg_tx *msg, ++ u8 port_num, u32 offset, u8 num_bytes) + { + struct drm_dp_sideband_msg_req_body req; + +@@ -2650,8 +2644,6 @@ static int build_dpcd_read(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 + req.u.dpcd_read.dpcd_address = offset; + req.u.dpcd_read.num_bytes = num_bytes; + drm_dp_encode_sideband_req(&req, msg); +- +- return 0; + } + + static int drm_dp_send_sideband_msg(struct drm_dp_mst_topology_mgr *mgr, +@@ -2877,7 +2869,7 @@ static int drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr, + struct drm_dp_sideband_msg_tx *txmsg; + struct drm_dp_link_address_ack_reply *reply; + struct drm_dp_mst_port *port, *tmp; +- int i, len, ret, port_mask = 0; ++ int i, ret, port_mask = 0; + bool changed = false; + + txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL); +@@ -2885,7 +2877,7 @@ static int drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr, + return -ENOMEM; + + txmsg->dst = mstb; +- len = build_link_address(txmsg); ++ build_link_address(txmsg); + + mstb->link_address_sent = true; + drm_dp_queue_down_tx(mgr, txmsg); +@@ -2906,7 +2898,9 @@ static int drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr, + DRM_DEBUG_KMS("link address reply: %d\n", reply->nports); + drm_dp_dump_link_address(reply); + +- drm_dp_check_mstb_guid(mstb, reply->guid); ++ ret = drm_dp_check_mstb_guid(mstb, reply->guid); ++ if (ret) ++ goto out; + + for (i = 0; i < reply->nports; i++) { + port_mask |= BIT(reply->ports[i].port_number); +@@ -2947,14 +2941,14 @@ void drm_dp_send_clear_payload_id_table(struct drm_dp_mst_topology_mgr *mgr, + struct drm_dp_mst_branch *mstb) + { + struct drm_dp_sideband_msg_tx *txmsg; +- int len, ret; ++ int ret; + + txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL); + if (!txmsg) + return; + + txmsg->dst = mstb; +- len = build_clear_payload_id_table(txmsg); ++ build_clear_payload_id_table(txmsg); + + drm_dp_queue_down_tx(mgr, txmsg); + +@@ -2972,7 +2966,6 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, + { + struct drm_dp_enum_path_resources_ack_reply *path_res; + struct drm_dp_sideband_msg_tx *txmsg; +- int len; + int ret; + + txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL); +@@ -2980,7 +2973,7 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, + return -ENOMEM; + + txmsg->dst = mstb; +- len = build_enum_path_resources(txmsg, port->port_num); ++ build_enum_path_resources(txmsg, port->port_num); + + drm_dp_queue_down_tx(mgr, txmsg); + +@@ -3073,7 +3066,7 @@ static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr, + { + struct drm_dp_sideband_msg_tx *txmsg; + struct drm_dp_mst_branch *mstb; +- int len, ret, port_num; ++ int ret, port_num; + u8 sinks[DRM_DP_MAX_SDP_STREAMS]; + int i; + +@@ -3098,9 +3091,9 @@ static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr, + sinks[i] = i; + + txmsg->dst = mstb; +- len = build_allocate_payload(txmsg, port_num, +- id, +- pbn, port->num_sdp_streams, sinks); ++ build_allocate_payload(txmsg, port_num, ++ id, ++ pbn, port->num_sdp_streams, sinks); + + drm_dp_queue_down_tx(mgr, txmsg); + +@@ -3129,7 +3122,7 @@ int drm_dp_send_power_updown_phy(struct drm_dp_mst_topology_mgr *mgr, + struct drm_dp_mst_port *port, bool power_up) + { + struct drm_dp_sideband_msg_tx *txmsg; +- int len, ret; ++ int ret; + + port = drm_dp_mst_topology_get_port_validated(mgr, port); + if (!port) +@@ -3142,7 +3135,7 @@ int drm_dp_send_power_updown_phy(struct drm_dp_mst_topology_mgr *mgr, + } + + txmsg->dst = port->parent; +- len = build_power_updown_phy(txmsg, port->port_num, power_up); ++ build_power_updown_phy(txmsg, port->port_num, power_up); + drm_dp_queue_down_tx(mgr, txmsg); + + ret = drm_dp_mst_wait_tx_reply(port->parent, txmsg); +@@ -3364,7 +3357,6 @@ static int drm_dp_send_dpcd_read(struct drm_dp_mst_topology_mgr *mgr, + struct drm_dp_mst_port *port, + int offset, int size, u8 *bytes) + { +- int len; + int ret = 0; + struct drm_dp_sideband_msg_tx *txmsg; + struct drm_dp_mst_branch *mstb; +@@ -3379,7 +3371,7 @@ static int drm_dp_send_dpcd_read(struct drm_dp_mst_topology_mgr *mgr, + goto fail_put; + } + +- len = build_dpcd_read(txmsg, port->port_num, offset, size); ++ build_dpcd_read(txmsg, port->port_num, offset, size); + txmsg->dst = port->parent; + + drm_dp_queue_down_tx(mgr, txmsg); +@@ -3417,7 +3409,6 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr, + struct drm_dp_mst_port *port, + int offset, int size, u8 *bytes) + { +- int len; + int ret; + struct drm_dp_sideband_msg_tx *txmsg; + struct drm_dp_mst_branch *mstb; +@@ -3432,7 +3423,7 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr, + goto fail_put; + } + +- len = build_dpcd_write(txmsg, port->port_num, offset, size, bytes); ++ build_dpcd_write(txmsg, port->port_num, offset, size, bytes); + txmsg->dst = mstb; + + drm_dp_queue_down_tx(mgr, txmsg); +@@ -3682,7 +3673,12 @@ int drm_dp_mst_topology_mgr_resume(struct drm_dp_mst_topology_mgr *mgr, + DRM_DEBUG_KMS("dpcd read failed - undocked during suspend?\n"); + goto out_fail; + } +- drm_dp_check_mstb_guid(mgr->mst_primary, guid); ++ ++ ret = drm_dp_check_mstb_guid(mgr->mst_primary, guid); ++ if (ret) { ++ DRM_DEBUG_KMS("check mstb failed - undocked during suspend?\n"); ++ goto out_fail; ++ } + + /* + * For the final step of resuming the topology, we need to bring the +@@ -4625,15 +4621,34 @@ void drm_dp_mst_dump_topology(struct seq_file *m, + int ret; + + ret = drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, buf, DP_RECEIVER_CAP_SIZE); ++ if (ret) { ++ seq_printf(m, "dpcd read failed\n"); ++ goto out; ++ } + seq_printf(m, "dpcd: %*ph\n", DP_RECEIVER_CAP_SIZE, buf); ++ + ret = drm_dp_dpcd_read(mgr->aux, DP_FAUX_CAP, buf, 2); ++ if (ret) { ++ seq_printf(m, "faux/mst read failed\n"); ++ goto out; ++ } + seq_printf(m, "faux/mst: %*ph\n", 2, buf); ++ + ret = drm_dp_dpcd_read(mgr->aux, DP_MSTM_CTRL, buf, 1); ++ if (ret) { ++ seq_printf(m, "mst ctrl read failed\n"); ++ goto out; ++ } + seq_printf(m, "mst ctrl: %*ph\n", 1, buf); + + /* dump the standard OUI branch header */ + ret = drm_dp_dpcd_read(mgr->aux, DP_BRANCH_OUI, buf, DP_BRANCH_OUI_HEADER_SIZE); ++ if (ret) { ++ seq_printf(m, "branch oui read failed\n"); ++ goto out; ++ } + seq_printf(m, "branch oui: %*phN devid: ", 3, buf); ++ + for (i = 0x3; i < 0x8 && buf[i]; i++) + seq_printf(m, "%c", buf[i]); + seq_printf(m, " revision: hw: %x.%x sw: %x.%x\n", +@@ -4642,6 +4657,7 @@ void drm_dp_mst_dump_topology(struct seq_file *m, + seq_printf(m, "payload table: %*ph\n", DP_PAYLOAD_TABLE_SIZE, buf); + } + ++out: + mutex_unlock(&mgr->lock); + + } +-- +2.25.1 + +From 9004e704af8486da3dcbde0fb35a2a309152a5c3 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Fri, 6 Mar 2020 18:49:21 -0500 +Subject: [PATCH 2/3] drm/dp_mst: Make drm_dp_mst_dpcd_write() consistent with + drm_dp_dpcd_write() + +Noticed this while having some problems with hubs sometimes not being +detected on the first plug. Every single dpcd read or write function +returns the number of bytes transferred on success or a negative error +code, except apparently for drm_dp_mst_dpcd_write() - which returns 0 on +success. + +There's not really any good reason for this difference that I can tell, +and having the two functions give differing behavior means that +drm_dp_dpcd_write() will end up returning 0 on success for MST devices, +but the number of bytes transferred for everything else. + +So, fix that and update the kernel doc. + +Signed-off-by: Lyude Paul +Fixes: 2f221a5efed4 ("drm/dp_mst: Add MST support to DP DPCD R/W functions") +Cc: Hans de Goede +Cc: Mikita Lipski +Cc: Sean Paul +--- + drivers/gpu/drm/drm_dp_mst_topology.c | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c +index 95e08d908dd2..2dc1c0ba456b 100644 +--- a/drivers/gpu/drm/drm_dp_mst_topology.c ++++ b/drivers/gpu/drm/drm_dp_mst_topology.c +@@ -2059,7 +2059,7 @@ ssize_t drm_dp_mst_dpcd_read(struct drm_dp_aux *aux, + * sideband messaging as drm_dp_dpcd_write() does for local + * devices via actual AUX CH. + * +- * Return: 0 on success, negative error code on failure. ++ * Return: number of bytes written on success, negative error code on failure. + */ + ssize_t drm_dp_mst_dpcd_write(struct drm_dp_aux *aux, + unsigned int offset, void *buffer, size_t size) +@@ -3429,12 +3429,9 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr, + drm_dp_queue_down_tx(mgr, txmsg); + + ret = drm_dp_mst_wait_tx_reply(mstb, txmsg); +- if (ret > 0) { +- if (txmsg->reply.reply_type == DP_SIDEBAND_REPLY_NAK) +- ret = -EIO; +- else +- ret = 0; +- } ++ if (ret > 0 && txmsg->reply.reply_type == DP_SIDEBAND_REPLY_NAK) ++ ret = -EIO; ++ + kfree(txmsg); + fail_put: + drm_dp_mst_topology_put_mstb(mstb); +-- +2.25.1 + +From ff18e1a7ef709cdd3dcbf7b4ae2b37e1c6695289 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Fri, 6 Mar 2020 18:49:22 -0500 +Subject: [PATCH 3/3] drm/dp_mst: Fix drm_dp_check_mstb_guid() return code + +We actually expect this to return a 0 on success, or negative error code +on failure. In order to do that, we check whether or not we managed to +write the whole GUID and then return 0 if so, otherwise return a +negative error code. Also, let's add an error message here so it's a +little more obvious when this fails in the middle of a link address +probe. + +This should fix issues with certain MST hubs seemingly stopping for no +reason in the middle of the link address probe process. + +Fixes: cb897542c6d2 ("drm/dp_mst: Fix W=1 warnings") +Cc: Benjamin Gaignard +Cc: Sean Paul +Cc: Hans de Goede +Signed-off-by: Lyude Paul +--- + drivers/gpu/drm/drm_dp_mst_topology.c | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c +index 2dc1c0ba456b..d0e5993b0622 100644 +--- a/drivers/gpu/drm/drm_dp_mst_topology.c ++++ b/drivers/gpu/drm/drm_dp_mst_topology.c +@@ -2088,7 +2088,10 @@ static int drm_dp_check_mstb_guid(struct drm_dp_mst_branch *mstb, u8 *guid) + } + } + +- return ret; ++ if (ret < 16 && ret > 0) ++ return -EPROTO; ++ ++ return ret == 16 ? 0 : ret; + } + + static void build_mst_prop_path(const struct drm_dp_mst_branch *mstb, +@@ -2899,8 +2902,14 @@ static int drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr, + drm_dp_dump_link_address(reply); + + ret = drm_dp_check_mstb_guid(mstb, reply->guid); +- if (ret) ++ if (ret) { ++ char buf[64]; ++ ++ drm_dp_mst_rad_to_str(mstb->rad, mstb->lct, buf, sizeof(buf)); ++ DRM_ERROR("GUID check on %s failed: %d\n", ++ buf, ret); + goto out; ++ } + + for (i = 0; i < reply->nports; i++) { + port_mask |= BIT(reply->ports[i].port_number); +-- +2.25.1 + diff --git a/drm-dp-mst-fixes.patch b/drm-dp-mst-fixes.patch new file mode 100644 index 000000000..d1e61f17d --- /dev/null +++ b/drm-dp-mst-fixes.patch @@ -0,0 +1,578 @@ +From 5118c9aeafecbfa5c2a49d757c882c6033828e7e Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Fri, 6 Mar 2020 18:46:19 -0500 +Subject: [PATCH 1/4] drm/dp_mst: Rename drm_dp_mst_is_dp_mst_end_device() to + be less redundant + +It's already prefixed by dp_mst, so we don't really need to repeat +ourselves here. One of the changes I should have picked up originally +when reviewing MST DSC support. + +There should be no functional changes here + +Cc: Mikita Lipski +Cc: Sean Paul +Cc: Hans de Goede +Signed-off-by: Lyude Paul +--- + drivers/gpu/drm/drm_dp_mst_topology.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c +index cce0b1bba591..9188c53f5c96 100644 +--- a/drivers/gpu/drm/drm_dp_mst_topology.c ++++ b/drivers/gpu/drm/drm_dp_mst_topology.c +@@ -1935,7 +1935,7 @@ static u8 drm_dp_calculate_rad(struct drm_dp_mst_port *port, + return parent_lct + 1; + } + +-static bool drm_dp_mst_is_dp_mst_end_device(u8 pdt, bool mcs) ++static bool drm_dp_mst_is_end_device(u8 pdt, bool mcs) + { + switch (pdt) { + case DP_PEER_DEVICE_DP_LEGACY_CONV: +@@ -1965,13 +1965,13 @@ drm_dp_port_set_pdt(struct drm_dp_mst_port *port, u8 new_pdt, + + /* Teardown the old pdt, if there is one */ + if (port->pdt != DP_PEER_DEVICE_NONE) { +- if (drm_dp_mst_is_dp_mst_end_device(port->pdt, port->mcs)) { ++ if (drm_dp_mst_is_end_device(port->pdt, port->mcs)) { + /* + * If the new PDT would also have an i2c bus, + * don't bother with reregistering it + */ + if (new_pdt != DP_PEER_DEVICE_NONE && +- drm_dp_mst_is_dp_mst_end_device(new_pdt, new_mcs)) { ++ drm_dp_mst_is_end_device(new_pdt, new_mcs)) { + port->pdt = new_pdt; + port->mcs = new_mcs; + return 0; +@@ -1991,7 +1991,7 @@ drm_dp_port_set_pdt(struct drm_dp_mst_port *port, u8 new_pdt, + port->mcs = new_mcs; + + if (port->pdt != DP_PEER_DEVICE_NONE) { +- if (drm_dp_mst_is_dp_mst_end_device(port->pdt, port->mcs)) { ++ if (drm_dp_mst_is_end_device(port->pdt, port->mcs)) { + /* add i2c over sideband */ + ret = drm_dp_mst_register_i2c_bus(&port->aux); + } else { +@@ -2172,7 +2172,7 @@ drm_dp_mst_port_add_connector(struct drm_dp_mst_branch *mstb, + } + + if (port->pdt != DP_PEER_DEVICE_NONE && +- drm_dp_mst_is_dp_mst_end_device(port->pdt, port->mcs)) { ++ drm_dp_mst_is_end_device(port->pdt, port->mcs)) { + port->cached_edid = drm_get_edid(port->connector, + &port->aux.ddc); + drm_connector_set_tile_property(port->connector); +-- +2.25.1 + +From 270862e1b736dc0e7c56a48fbb61b5ec76236982 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Fri, 6 Mar 2020 18:46:20 -0500 +Subject: [PATCH 2/4] drm/dp_mst: Use full_pbn instead of available_pbn for + bandwidth checks + +DisplayPort specifications are fun. For a while, it's been really +unclear to us what available_pbn actually does. There's a somewhat vague +explanation in the DisplayPort spec (starting from 1.2) that partially +explains it: + + The minimum payload bandwidth number supported by the path. Each node + updates this number with its available payload bandwidth number if its + payload bandwidth number is less than that in the Message Transaction + reply. + +So, it sounds like available_pbn represents the smallest link rate in +use between the source and the branch device. Cool, so full_pbn is just +the highest possible PBN that the branch device supports right? + +Well, we assumed that for quite a while until Sean Paul noticed that on +some MST hubs, available_pbn will actually get set to 0 whenever there's +any active payloads on the respective branch device. This caused quite a +bit of confusion since clearing the payload ID table would end up fixing +the available_pbn value. + +So, we just went with that until commit cd82d82cbc04 ("drm/dp_mst: Add +branch bandwidth validation to MST atomic check") started breaking +people's setups due to us getting erroneous available_pbn values. So, we +did some more digging and got confused until we finally looked at the +definition for full_pbn: + + The bandwidth of the link at the trained link rate and lane count + between the DP Source device and the DP Sink device with no time slots + allocated to VC Payloads, represented as a Payload Bandwidth Number. As + with the Available_Payload_Bandwidth_Number, this number is determined + by the link with the lowest lane count and link rate. + +That's what we get for not reading specs closely enough, hehe. So, since +full_pbn is definitely what we want for doing bandwidth restriction +checks - let's start using that instead and ignore available_pbn +entirely. + +Signed-off-by: Lyude Paul +Fixes: cd82d82cbc04 ("drm/dp_mst: Add branch bandwidth validation to MST atomic check") +Cc: Mikita Lipski +Cc: Hans de Goede +Cc: Sean Paul +--- + drivers/gpu/drm/drm_dp_mst_topology.c | 15 +++++++-------- + include/drm/drm_dp_mst_helper.h | 4 ++-- + 2 files changed, 9 insertions(+), 10 deletions(-) + +diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c +index 9188c53f5c96..7df7676b45c4 100644 +--- a/drivers/gpu/drm/drm_dp_mst_topology.c ++++ b/drivers/gpu/drm/drm_dp_mst_topology.c +@@ -2309,7 +2309,7 @@ drm_dp_mst_handle_link_address_port(struct drm_dp_mst_branch *mstb, + port); + } + } else { +- port->available_pbn = 0; ++ port->full_pbn = 0; + } + } + +@@ -2404,7 +2404,7 @@ drm_dp_mst_handle_conn_stat(struct drm_dp_mst_branch *mstb, + if (port->ddps) { + dowork = true; + } else { +- port->available_pbn = 0; ++ port->full_pbn = 0; + } + } + +@@ -2556,7 +2556,7 @@ static int drm_dp_check_and_send_link_address(struct drm_dp_mst_topology_mgr *mg + if (port->input || !port->ddps) + continue; + +- if (!port->available_pbn) { ++ if (!port->full_pbn) { + drm_modeset_lock(&mgr->base.lock, NULL); + drm_dp_send_enum_path_resources(mgr, mstb, port); + drm_modeset_unlock(&mgr->base.lock); +@@ -3002,8 +3002,7 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, + path_res->port_number, + path_res->full_payload_bw_number, + path_res->avail_payload_bw_number); +- port->available_pbn = +- path_res->avail_payload_bw_number; ++ port->full_pbn = path_res->full_payload_bw_number; + port->fec_capable = path_res->fec_capable; + } + } +@@ -3598,7 +3597,7 @@ drm_dp_mst_topology_mgr_invalidate_mstb(struct drm_dp_mst_branch *mstb) + + list_for_each_entry(port, &mstb->ports, next) { + /* The PBN for each port will also need to be re-probed */ +- port->available_pbn = 0; ++ port->full_pbn = 0; + + if (port->mstb) + drm_dp_mst_topology_mgr_invalidate_mstb(port->mstb); +@@ -4842,8 +4841,8 @@ int drm_dp_mst_atomic_check_bw_limit(struct drm_dp_mst_branch *branch, + if (drm_dp_mst_atomic_check_bw_limit(port->mstb, mst_state)) + return -ENOSPC; + +- if (port->available_pbn > 0) +- pbn_limit = port->available_pbn; ++ if (port->full_pbn > 0) ++ pbn_limit = port->full_pbn; + } + DRM_DEBUG_ATOMIC("[MST BRANCH:%p] branch has %d PBN available\n", + branch, pbn_limit); +diff --git a/include/drm/drm_dp_mst_helper.h b/include/drm/drm_dp_mst_helper.h +index bcb39da9adb4..41725d88d27e 100644 +--- a/include/drm/drm_dp_mst_helper.h ++++ b/include/drm/drm_dp_mst_helper.h +@@ -81,7 +81,7 @@ struct drm_dp_vcpi { + * &drm_dp_mst_topology_mgr.base.lock. + * @num_sdp_stream_sinks: Number of stream sinks. Protected by + * &drm_dp_mst_topology_mgr.base.lock. +- * @available_pbn: Available bandwidth for this port. Protected by ++ * @full_pbn: Max possible bandwidth for this port. Protected by + * &drm_dp_mst_topology_mgr.base.lock. + * @next: link to next port on this branch device + * @aux: i2c aux transport to talk to device connected to this port, protected +@@ -126,7 +126,7 @@ struct drm_dp_mst_port { + u8 dpcd_rev; + u8 num_sdp_streams; + u8 num_sdp_stream_sinks; +- uint16_t available_pbn; ++ uint16_t full_pbn; + struct list_head next; + /** + * @mstb: the branch device connected to this port, if there is one. +-- +2.25.1 + +From 6fceb6d9d9cdef2e26558f6b75700cc0f07a812c Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Fri, 6 Mar 2020 18:46:21 -0500 +Subject: [PATCH 3/4] drm/dp_mst: Reprobe path resources in CSN handler + +We used to punt off reprobing path resources to the link address probe +work, but now that we handle CSNs asynchronously from the driver's HPD +handling we can do whatever the heck we want from the CSN! + +So, reprobe the path resources from drm_dp_mst_handle_conn_stat(). Also, +get rid of the path resource reprobing code in +drm_dp_check_and_send_link_address() since it's needlessly complicated +when we already reprobe path resources from +drm_dp_handle_link_address_port(). And finally, teach +drm_dp_send_enum_path_resources() to return 1 on PBN changes so we know +if we need to send another hotplug or not. + +This fixes issues where we've indicated to userspace that a port has +just been connected, before we actually probed it's available PBN - +something that results in unexpected atomic check failures. + +Signed-off-by: Lyude Paul +Fixes: cd82d82cbc04 ("drm/dp_mst: Add branch bandwidth validation to MST atomic check") +Cc: Mikita Lipski +Cc: Hans de Goede +Cc: Sean Paul +--- + drivers/gpu/drm/drm_dp_mst_topology.c | 48 ++++++++++++++------------- + 1 file changed, 25 insertions(+), 23 deletions(-) + +diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c +index 7df7676b45c4..112972031a84 100644 +--- a/drivers/gpu/drm/drm_dp_mst_topology.c ++++ b/drivers/gpu/drm/drm_dp_mst_topology.c +@@ -2302,12 +2302,16 @@ drm_dp_mst_handle_link_address_port(struct drm_dp_mst_branch *mstb, + mutex_unlock(&mgr->lock); + } + +- if (old_ddps != port->ddps) { +- if (port->ddps) { +- if (!port->input) { +- drm_dp_send_enum_path_resources(mgr, mstb, +- port); +- } ++ /* ++ * Reprobe PBN caps on both hotplug, and when re-probing the link ++ * for our parent mstb ++ */ ++ if (old_ddps != port->ddps || !created) { ++ if (port->ddps && !port->input) { ++ ret = drm_dp_send_enum_path_resources(mgr, mstb, ++ port); ++ if (ret == 1) ++ changed = true; + } else { + port->full_pbn = 0; + } +@@ -2401,11 +2405,10 @@ drm_dp_mst_handle_conn_stat(struct drm_dp_mst_branch *mstb, + port->ddps = conn_stat->displayport_device_plug_status; + + if (old_ddps != port->ddps) { +- if (port->ddps) { +- dowork = true; +- } else { ++ if (port->ddps && !port->input) ++ drm_dp_send_enum_path_resources(mgr, mstb, port); ++ else + port->full_pbn = 0; +- } + } + + new_pdt = port->input ? DP_PEER_DEVICE_NONE : conn_stat->peer_device_type; +@@ -2556,13 +2559,6 @@ static int drm_dp_check_and_send_link_address(struct drm_dp_mst_topology_mgr *mg + if (port->input || !port->ddps) + continue; + +- if (!port->full_pbn) { +- drm_modeset_lock(&mgr->base.lock, NULL); +- drm_dp_send_enum_path_resources(mgr, mstb, port); +- drm_modeset_unlock(&mgr->base.lock); +- changed = true; +- } +- + if (port->mstb) + mstb_child = drm_dp_mst_topology_get_mstb_validated( + mgr, port->mstb); +@@ -2990,6 +2986,7 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, + + ret = drm_dp_mst_wait_tx_reply(mstb, txmsg); + if (ret > 0) { ++ ret = 0; + path_res = &txmsg->reply.u.path_resources; + + if (txmsg->reply.reply_type == DP_SIDEBAND_REPLY_NAK) { +@@ -3002,13 +2999,22 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, + path_res->port_number, + path_res->full_payload_bw_number, + path_res->avail_payload_bw_number); ++ ++ /* ++ * If something changed, make sure we send a ++ * hotplug ++ */ ++ if (port->full_pbn != path_res->full_payload_bw_number || ++ port->fec_capable != path_res->fec_capable) ++ ret = 1; ++ + port->full_pbn = path_res->full_payload_bw_number; + port->fec_capable = path_res->fec_capable; + } + } + + kfree(txmsg); +- return 0; ++ return ret; + } + + static struct drm_dp_mst_port *drm_dp_get_last_connected_port_to_mstb(struct drm_dp_mst_branch *mstb) +@@ -3595,13 +3601,9 @@ drm_dp_mst_topology_mgr_invalidate_mstb(struct drm_dp_mst_branch *mstb) + /* The link address will need to be re-sent on resume */ + mstb->link_address_sent = false; + +- list_for_each_entry(port, &mstb->ports, next) { +- /* The PBN for each port will also need to be re-probed */ +- port->full_pbn = 0; +- ++ list_for_each_entry(port, &mstb->ports, next) + if (port->mstb) + drm_dp_mst_topology_mgr_invalidate_mstb(port->mstb); +- } + } + + /** +-- +2.25.1 + +From 20c8afc6f3f18187517411323a125dfff3c014e7 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Fri, 6 Mar 2020 18:46:22 -0500 +Subject: [PATCH 4/4] drm/dp_mst: Rewrite and fix bandwidth limit checks +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Sigh, this is mostly my fault for not giving commit cd82d82cbc04 +("drm/dp_mst: Add branch bandwidth validation to MST atomic check") +enough scrutiny during review. The way we're checking bandwidth +limitations here is mostly wrong: + +For starters, drm_dp_mst_atomic_check_bw_limit() determines the +pbn_limit of a branch by simply scanning each port on the current branch +device, then uses the last non-zero full_pbn value that it finds. It +then counts the sum of the PBN used on each branch device for that +level, and compares against the full_pbn value it found before. + +This is wrong because ports can and will have different PBN limitations +on many hubs, especially since a number of DisplayPort hubs out there +will be clever and only use the smallest link rate required for each +downstream sink - potentially giving every port a different full_pbn +value depending on what link rate it's trained at. This means with our +current code, which max PBN value we end up with is not well defined. + +Additionally, we also need to remember when checking bandwidth +limitations that the top-most device in any MST topology is a branch +device, not a port. This means that the first level of a topology +doesn't technically have a full_pbn value that needs to be checked. +Instead, we should assume that so long as our VCPI allocations fit we're +within the bandwidth limitations of the primary MSTB. + +We do however, want to check full_pbn on every port including those of +the primary MSTB. However, it's important to keep in mind that this +value represents the minimum link rate /between a port's sink or mstb, +and the mstb itself/. A quick diagram to explain: + + MSTB #1 + / \ + / \ + Port #1 Port #2 + full_pbn for Port #1 → | | ← full_pbn for Port #2 + Sink #1 MSTB #2 + | + etc... + +Note that in the above diagram, the combined PBN from all VCPI +allocations on said hub should not exceed the full_pbn value of port #2, +and the display configuration on sink #1 should not exceed the full_pbn +value of port #1. However, port #1 and port #2 can otherwise consume as +much bandwidth as they want so long as their VCPI allocations still fit. + +And finally - our current bandwidth checking code also makes the mistake +of not checking whether something is an end device or not before trying +to traverse down it. + +So, let's fix it by rewriting our bandwidth checking helpers. We split +the function into one part for handling branches which simply adds up +the total PBN on each branch and returns it, and one for checking each +port to ensure we're not going over its PBN limit. Phew. + +This should fix regressions seen, where we erroneously reject display +configurations due to thinking they're going over our bandwidth limits +when they're not. + +Changes since v1: +* Took an even closer look at how PBN limitations are supposed to be + handled, and did some experimenting with Sean Paul. Ended up rewriting + these helpers again, but this time they should actually be correct! + +Signed-off-by: Lyude Paul +Fixes: cd82d82cbc04 ("drm/dp_mst: Add branch bandwidth validation to MST atomic check") +Cc: Mikita Lipski +Cc: Sean Paul +Cc: Hans de Goede +--- + drivers/gpu/drm/drm_dp_mst_topology.c | 120 ++++++++++++++++++++------ + 1 file changed, 94 insertions(+), 26 deletions(-) + +diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c +index 112972031a84..415bd0770eab 100644 +--- a/drivers/gpu/drm/drm_dp_mst_topology.c ++++ b/drivers/gpu/drm/drm_dp_mst_topology.c +@@ -4830,41 +4830,103 @@ static bool drm_dp_mst_port_downstream_of_branch(struct drm_dp_mst_port *port, + return false; + } + +-static inline +-int drm_dp_mst_atomic_check_bw_limit(struct drm_dp_mst_branch *branch, +- struct drm_dp_mst_topology_state *mst_state) ++static int ++drm_dp_mst_atomic_check_port_bw_limit(struct drm_dp_mst_port *port, ++ struct drm_dp_mst_topology_state *state); ++ ++static int ++drm_dp_mst_atomic_check_mstb_bw_limit(struct drm_dp_mst_branch *mstb, ++ struct drm_dp_mst_topology_state *state) + { +- struct drm_dp_mst_port *port; + struct drm_dp_vcpi_allocation *vcpi; +- int pbn_limit = 0, pbn_used = 0; ++ struct drm_dp_mst_port *port; ++ int pbn_used = 0, ret; ++ bool found = false; + +- list_for_each_entry(port, &branch->ports, next) { +- if (port->mstb) +- if (drm_dp_mst_atomic_check_bw_limit(port->mstb, mst_state)) +- return -ENOSPC; ++ /* Check that we have at least one port in our state that's downstream ++ * of this branch, otherwise we can skip this branch ++ */ ++ list_for_each_entry(vcpi, &state->vcpis, next) { ++ if (!vcpi->pbn || ++ !drm_dp_mst_port_downstream_of_branch(vcpi->port, ++ mstb)) ++ continue; + +- if (port->full_pbn > 0) +- pbn_limit = port->full_pbn; ++ found = true; ++ break; + } +- DRM_DEBUG_ATOMIC("[MST BRANCH:%p] branch has %d PBN available\n", +- branch, pbn_limit); ++ if (!found) ++ return 0; + +- list_for_each_entry(vcpi, &mst_state->vcpis, next) { +- if (!vcpi->pbn) +- continue; ++ if (mstb->port_parent) ++ DRM_DEBUG_ATOMIC("[MSTB:%p] [MST PORT:%p] Checking bandwidth limits on [MSTB:%p]\n", ++ mstb->port_parent->parent, mstb->port_parent, ++ mstb); ++ else ++ DRM_DEBUG_ATOMIC("[MSTB:%p] Checking bandwidth limits\n", ++ mstb); ++ ++ list_for_each_entry(port, &mstb->ports, next) { ++ ret = drm_dp_mst_atomic_check_port_bw_limit(port, state); ++ if (ret < 0) ++ return ret; + +- if (drm_dp_mst_port_downstream_of_branch(vcpi->port, branch)) +- pbn_used += vcpi->pbn; ++ pbn_used += ret; + } +- DRM_DEBUG_ATOMIC("[MST BRANCH:%p] branch used %d PBN\n", +- branch, pbn_used); + +- if (pbn_used > pbn_limit) { +- DRM_DEBUG_ATOMIC("[MST BRANCH:%p] No available bandwidth\n", +- branch); ++ return pbn_used; ++} ++ ++static int ++drm_dp_mst_atomic_check_port_bw_limit(struct drm_dp_mst_port *port, ++ struct drm_dp_mst_topology_state *state) ++{ ++ struct drm_dp_vcpi_allocation *vcpi; ++ int pbn_used = 0; ++ ++ if (port->pdt == DP_PEER_DEVICE_NONE) ++ return 0; ++ ++ if (drm_dp_mst_is_end_device(port->pdt, port->mcs)) { ++ bool found = false; ++ ++ list_for_each_entry(vcpi, &state->vcpis, next) { ++ if (vcpi->port != port) ++ continue; ++ if (!vcpi->pbn) ++ return 0; ++ ++ found = true; ++ break; ++ } ++ if (!found) ++ return 0; ++ ++ /* This should never happen, as it means we tried to ++ * set a mode before querying the full_pbn ++ */ ++ if (WARN_ON(!port->full_pbn)) ++ return -EINVAL; ++ ++ pbn_used = vcpi->pbn; ++ } else { ++ pbn_used = drm_dp_mst_atomic_check_mstb_bw_limit(port->mstb, ++ state); ++ if (pbn_used <= 0) ++ return 0; ++ } ++ ++ if (pbn_used > port->full_pbn) { ++ DRM_DEBUG_ATOMIC("[MSTB:%p] [MST PORT:%p] required PBN of %d exceeds port limit of %d\n", ++ port->parent, port, pbn_used, ++ port->full_pbn); + return -ENOSPC; + } +- return 0; ++ ++ DRM_DEBUG_ATOMIC("[MSTB:%p] [MST PORT:%p] uses %d out of %d PBN\n", ++ port->parent, port, pbn_used, port->full_pbn); ++ ++ return pbn_used; + } + + static inline int +@@ -5062,9 +5124,15 @@ int drm_dp_mst_atomic_check(struct drm_atomic_state *state) + ret = drm_dp_mst_atomic_check_vcpi_alloc_limit(mgr, mst_state); + if (ret) + break; +- ret = drm_dp_mst_atomic_check_bw_limit(mgr->mst_primary, mst_state); +- if (ret) ++ ++ mutex_lock(&mgr->lock); ++ ret = drm_dp_mst_atomic_check_mstb_bw_limit(mgr->mst_primary, ++ mst_state); ++ mutex_unlock(&mgr->lock); ++ if (ret < 0) + break; ++ else ++ ret = 0; + } + + return ret; +-- +2.25.1 + diff --git a/iommu-WARN_TAINT-fixes.patch b/iommu-WARN_TAINT-fixes.patch new file mode 100644 index 000000000..5cb4aa973 --- /dev/null +++ b/iommu-WARN_TAINT-fixes.patch @@ -0,0 +1,164 @@ +From 2f2265a8cbc6b43deb169c525204ea7df02e9363 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Mon, 9 Mar 2020 13:55:02 +0100 +Subject: [PATCH 1/2] iommu/vt-d: dmar: replace WARN_TAINT with pr_warn + + add_taint + +Quoting from the comment describing the WARN functions in +include/asm-generic/bug.h: + + * WARN(), WARN_ON(), WARN_ON_ONCE, and so on can be used to report + * significant kernel issues that need prompt attention if they should ever + * appear at runtime. + * + * Do not use these macros when checking for invalid external inputs + +The (buggy) firmware tables which the dmar code was calling WARN_TAINT +for really are invalid external inputs. They are not under the kernel's +control and the issues in them cannot be fixed by a kernel update. +So logging a backtrace, which invites bug reports to be filed about this, +is not helpful. + +Some distros, e.g. Fedora, have tools watching for the kernel backtraces +logged by the WARN macros and offer the user an option to file a bug for +this when these are encountered. The WARN_TAINT in warn_invalid_dmar() ++ another iommu WARN_TAINT, addressed in another patch, have lead to over +a 100 bugs being filed this way. + +This commit replaces the WARN_TAINT("...") calls, with +pr_warn(FW_BUG "...") + add_taint(TAINT_FIRMWARE_WORKAROUND, ...) calls +avoiding the backtrace and thus also avoiding bug-reports being filed +about this against the kernel. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1564895 +Fixes: e625b4a95d50 ("iommu/vt-d: Parse ANDD records") +Fixes: fd0c8894893c ("intel-iommu: Set a more specific taint flag for invalid BI +Cc: stable@vger.kernel.org +Signed-off-by: Hans de Goede +--- + drivers/iommu/dmar.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c +index 071bb42bbbc5..87194a46cb0b 100644 +--- a/drivers/iommu/dmar.c ++++ b/drivers/iommu/dmar.c +@@ -440,12 +440,13 @@ static int __init dmar_parse_one_andd(struct acpi_dmar_header *header, + + /* Check for NUL termination within the designated length */ + if (strnlen(andd->device_name, header->length - 8) == header->length - 8) { +- WARN_TAINT(1, TAINT_FIRMWARE_WORKAROUND, ++ pr_warn(FW_BUG + "Your BIOS is broken; ANDD object name is not NUL-terminated\n" + "BIOS vendor: %s; Ver: %s; Product Version: %s\n", + dmi_get_system_info(DMI_BIOS_VENDOR), + dmi_get_system_info(DMI_BIOS_VERSION), + dmi_get_system_info(DMI_PRODUCT_VERSION)); ++ add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK); + return -EINVAL; + } + pr_info("ANDD device: %x name: %s\n", andd->device_number, +@@ -471,14 +472,14 @@ static int dmar_parse_one_rhsa(struct acpi_dmar_header *header, void *arg) + return 0; + } + } +- WARN_TAINT( +- 1, TAINT_FIRMWARE_WORKAROUND, ++ pr_warn(FW_BUG + "Your BIOS is broken; RHSA refers to non-existent DMAR unit at %llx\n" + "BIOS vendor: %s; Ver: %s; Product Version: %s\n", + drhd->reg_base_addr, + dmi_get_system_info(DMI_BIOS_VENDOR), + dmi_get_system_info(DMI_BIOS_VERSION), + dmi_get_system_info(DMI_PRODUCT_VERSION)); ++ add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK); + + return 0; + } +@@ -827,14 +828,14 @@ int __init dmar_table_init(void) + + static void warn_invalid_dmar(u64 addr, const char *message) + { +- WARN_TAINT_ONCE( +- 1, TAINT_FIRMWARE_WORKAROUND, ++ pr_warn_once(FW_BUG + "Your BIOS is broken; DMAR reported at address %llx%s!\n" + "BIOS vendor: %s; Ver: %s; Product Version: %s\n", + addr, message, + dmi_get_system_info(DMI_BIOS_VENDOR), + dmi_get_system_info(DMI_BIOS_VERSION), + dmi_get_system_info(DMI_PRODUCT_VERSION)); ++ add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK); + } + + static int __ref +-- +2.25.1 + +From 038ebd8952c5fb3ba3b5e09b0b55a4e617ae22bf Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Mon, 9 Mar 2020 14:12:37 +0100 +Subject: [PATCH 2/2] iommu/vt-d: dmar_parse_one_rmrr: replace WARN_TAINT with + pr_warn + add_taint + +Quoting from the comment describing the WARN functions in +include/asm-generic/bug.h: + + * WARN(), WARN_ON(), WARN_ON_ONCE, and so on can be used to report + * significant kernel issues that need prompt attention if they should ever + * appear at runtime. + * + * Do not use these macros when checking for invalid external inputs + +The (buggy) firmware tables which the dmar code was calling WARN_TAINT +for really are invalid external inputs. They are not under the kernel's +control and the issues in them cannot be fixed by a kernel update. +So logging a backtrace, which invites bug reports to be filed about this, +is not helpful. + +Some distros, e.g. Fedora, have tools watching for the kernel backtraces +logged by the WARN macros and offer the user an option to file a bug for +this when these are encountered. The WARN_TAINT in dmar_parse_one_rmrr ++ another iommu WARN_TAINT, addressed in another patch, have lead to over +a 100 bugs being filed this way. + +This commit replaces the WARN_TAINT("...") call, with a +pr_warn(FW_BUG "...") + add_taint(TAINT_FIRMWARE_WORKAROUND, ...) call +avoiding the backtrace and thus also avoiding bug-reports being filed +about this against the kernel. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1808874 +Fixes: f5a68bb0752e ("iommu/vt-d: Mark firmware tainted if RMRR fails sanity check") +Cc: Barret Rhoden +Cc: stable@vger.kernel.org +Signed-off-by: Hans de Goede +--- + drivers/iommu/intel-iommu.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c +index 6fa6de2b6ad5..3857a5cd1a75 100644 +--- a/drivers/iommu/intel-iommu.c ++++ b/drivers/iommu/intel-iommu.c +@@ -4460,14 +4460,16 @@ int __init dmar_parse_one_rmrr(struct acpi_dmar_header *header, void *arg) + struct dmar_rmrr_unit *rmrru; + + rmrr = (struct acpi_dmar_reserved_memory *)header; +- if (rmrr_sanity_check(rmrr)) +- WARN_TAINT(1, TAINT_FIRMWARE_WORKAROUND, ++ if (rmrr_sanity_check(rmrr)) { ++ pr_warn(FW_BUG + "Your BIOS is broken; bad RMRR [%#018Lx-%#018Lx]\n" + "BIOS vendor: %s; Ver: %s; Product Version: %s\n", + rmrr->base_address, rmrr->end_address, + dmi_get_system_info(DMI_BIOS_VENDOR), + dmi_get_system_info(DMI_BIOS_VERSION), + dmi_get_system_info(DMI_PRODUCT_VERSION)); ++ add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK); ++ } + + rmrru = kzalloc(sizeof(*rmrru), GFP_KERNEL); + if (!rmrru) +-- +2.25.1 + diff --git a/kernel.spec b/kernel.spec index 4f68ea776..aa807220b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -879,6 +879,17 @@ Patch504: 0001-mm-kmemleak-skip-late_init-if-not-skip-disable.patch # https://lkml.org/lkml/2019/8/29/1772 Patch505: ARM-fix-__get_user_check-in-case-uaccess_-calls-are-not-inlined.patch +# Fix issues with only 1 monitor working on DP-MST docks (rhbz#1809681) +# These patches should show up in a future 5.6-rc# release +Patch506: drm-dp-mst-fixes.patch + +# More DP-MST fixes, pending for 5.7 +Patch507: drm-dp-mst-error-handling-improvements.patch + +# Fix backtraces triggered by warnings about buggy BIOS (rhbz 1564895, 1808874) +# Submitted upstream +Patch508: iommu-WARN_TAINT-fixes.patch + # END OF PATCH DEFINITIONS %endif @@ -2952,6 +2963,12 @@ fi # # %changelog +* Mon Mar 09 2020 Hans de Goede +- Fix only 1 monitor working on DP-MST docking stations (rhbz 1809681) +- Fix backtraces on various buggy BIOS-es (rhbz 1564895, 1808874) +- Add /etc/modprobe.d/floppy-blacklist.conf to fix auto-loading of the + legacy floppy driver (rhbz 1789155) + * Mon Mar 09 2020 Peter Robinson - 5.6.0-0.rc5.git0.1 - Linux v5.6-rc5 diff --git a/mod-extra-blacklist.sh b/mod-extra-blacklist.sh index 9569ef6f2..c4c4f8f6d 100755 --- a/mod-extra-blacklist.sh +++ b/mod-extra-blacklist.sh @@ -46,3 +46,11 @@ foreachp() [ -d "$buildroot/etc/modprobe.d/" ] || mkdir -p "$buildroot/etc/modprobe.d/" find "$buildroot/$kernel_base/extra" -name "*.ko*" | \ foreachp check_blacklist + +# Many BIOS-es export a PNP-id which causes the floppy driver to autoload +# even though most modern systems don't have a 3.5" floppy driver anymore +# this replaces the old die_floppy_die.patch which removed the PNP-id from +# the module +if [ -f $buildroot/$kernel_base/extra/drivers/block/floppy.ko* ]; then + blacklist "floppy" +fi From c74a0334bf4bfcd959c0652d5eb7071a22b8706a Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Tue, 10 Mar 2020 14:48:32 -0400 Subject: [PATCH 002/191] A series of eDP backlight fixes for i915 (rhbz 1811850) --- drm-i915-backports.patch | 894 +++++++++++++++++++++++++++++++++++++++ kernel.spec | 8 +- 2 files changed, 901 insertions(+), 1 deletion(-) create mode 100644 drm-i915-backports.patch diff --git a/drm-i915-backports.patch b/drm-i915-backports.patch new file mode 100644 index 000000000..6fa8d2849 --- /dev/null +++ b/drm-i915-backports.patch @@ -0,0 +1,894 @@ +From 0fdb20f83f9962a3501e9cbdbfcc37ed5e721ab8 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Tue, 10 Mar 2020 14:07:31 -0400 +Subject: [PATCH 1/7] drm/i915: Fix eDP DPCD aux max backlight calculations + +Max backlight value for the panel was being calculated using byte +count i.e. 0xffff if 2 bytes are supported for backlight brightness +and 0xff if 1 byte is supported. However, EDP_PWMGEN_BIT_COUNT +determines the number of active control bits used for the brightness +setting. Thus, even if the panel uses 2 byte setting, it might not use +all the control bits. Thus, max backlight should be set based on the +value of EDP_PWMGEN_BIT_COUNT instead of assuming 65535 or 255. + +Additionally, EDP_PWMGEN_BIT_COUNT was being updated based on the VBT +frequency which results in a different max backlight value. Thus, +setting of EDP_PWMGEN_BIT_COUNT is moved to setup phase instead of +enable so that max backlight can be calculated correctly. Only the +frequency divider is set during the enable phase using the value of +EDP_PWMGEN_BIT_COUNT. + +This is based off the original patch series from Furquan Shaikh +: + +https://patchwork.freedesktop.org/patch/317255/?series=62326&rev=3 + +Changes since original patch: +* Remove unused intel_dp variable in intel_dp_aux_setup_backlight() +* Fix checkpatch issues +* Make sure that we rewrite the pwmgen bit count whenever we bring the + panel out of D3 mode + +v2 by Jani: +* rebase +* fix readb return value check + +Cc: Furquan Shaikh +Tested-by: AceLan Kao +Tested-by: Perry Yuan +Signed-off-by: Lyude Paul +Signed-off-by: Jani Nikula +Link: https://patchwork.freedesktop.org/patch/msgid/20200116211623.53799-2-lyude@redhat.com +--- + .../drm/i915/display/intel_display_types.h | 3 + + .../drm/i915/display/intel_dp_aux_backlight.c | 139 ++++++++++++------ + 2 files changed, 95 insertions(+), 47 deletions(-) + +diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h +index 888ea8a170d1..778bd30743e5 100644 +--- a/drivers/gpu/drm/i915/display/intel_display_types.h ++++ b/drivers/gpu/drm/i915/display/intel_display_types.h +@@ -214,6 +214,9 @@ struct intel_panel { + u8 controller; /* bxt+ only */ + struct pwm_device *pwm; + ++ /* DPCD backlight */ ++ u8 pwmgen_bit_count; ++ + struct backlight_device *device; + + /* Connector and platform specific backlight functions */ +diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +index 7c653f8c307f..345eed641455 100644 +--- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c ++++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +@@ -111,61 +111,28 @@ static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector) + { + struct drm_i915_private *dev_priv = to_i915(connector->base.dev); + struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder); +- int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1; +- u8 pn, pn_min, pn_max; ++ const u8 pn = connector->panel.backlight.pwmgen_bit_count; ++ int freq, fxp, f, fxp_actual, fxp_min, fxp_max; + +- /* Find desired value of (F x P) +- * Note that, if F x P is out of supported range, the maximum value or +- * minimum value will applied automatically. So no need to check that. +- */ + freq = dev_priv->vbt.backlight.pwm_freq_hz; +- DRM_DEBUG_KMS("VBT defined backlight frequency %u Hz\n", freq); + if (!freq) { + DRM_DEBUG_KMS("Use panel default backlight frequency\n"); + return false; + } + + fxp = DIV_ROUND_CLOSEST(KHz(DP_EDP_BACKLIGHT_FREQ_BASE_KHZ), freq); ++ f = clamp(DIV_ROUND_CLOSEST(fxp, 1 << pn), 1, 255); ++ fxp_actual = f << pn; + +- /* Use highest possible value of Pn for more granularity of brightness +- * adjustment while satifying the conditions below. +- * - Pn is in the range of Pn_min and Pn_max +- * - F is in the range of 1 and 255 +- * - FxP is within 25% of desired value. +- * Note: 25% is arbitrary value and may need some tweak. +- */ +- if (drm_dp_dpcd_readb(&intel_dp->aux, +- DP_EDP_PWMGEN_BIT_COUNT_CAP_MIN, &pn_min) != 1) { +- DRM_DEBUG_KMS("Failed to read pwmgen bit count cap min\n"); +- return false; +- } +- if (drm_dp_dpcd_readb(&intel_dp->aux, +- DP_EDP_PWMGEN_BIT_COUNT_CAP_MAX, &pn_max) != 1) { +- DRM_DEBUG_KMS("Failed to read pwmgen bit count cap max\n"); +- return false; +- } +- pn_min &= DP_EDP_PWMGEN_BIT_COUNT_MASK; +- pn_max &= DP_EDP_PWMGEN_BIT_COUNT_MASK; +- ++ /* Ensure frequency is within 25% of desired value */ + fxp_min = DIV_ROUND_CLOSEST(fxp * 3, 4); + fxp_max = DIV_ROUND_CLOSEST(fxp * 5, 4); +- if (fxp_min < (1 << pn_min) || (255 << pn_max) < fxp_max) { +- DRM_DEBUG_KMS("VBT defined backlight frequency out of range\n"); +- return false; +- } + +- for (pn = pn_max; pn >= pn_min; pn--) { +- f = clamp(DIV_ROUND_CLOSEST(fxp, 1 << pn), 1, 255); +- fxp_actual = f << pn; +- if (fxp_min <= fxp_actual && fxp_actual <= fxp_max) +- break; +- } +- +- if (drm_dp_dpcd_writeb(&intel_dp->aux, +- DP_EDP_PWMGEN_BIT_COUNT, pn) < 0) { +- DRM_DEBUG_KMS("Failed to write aux pwmgen bit count\n"); ++ if (fxp_min > fxp_actual || fxp_actual > fxp_max) { ++ DRM_DEBUG_KMS("Actual frequency out of range\n"); + return false; + } ++ + if (drm_dp_dpcd_writeb(&intel_dp->aux, + DP_EDP_BACKLIGHT_FREQ_SET, (u8) f) < 0) { + DRM_DEBUG_KMS("Failed to write aux backlight freq\n"); +@@ -179,6 +146,7 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st + { + struct intel_connector *connector = to_intel_connector(conn_state->connector); + struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder); ++ struct intel_panel *panel = &connector->panel; + u8 dpcd_buf, new_dpcd_buf, edp_backlight_mode; + + if (drm_dp_dpcd_readb(&intel_dp->aux, +@@ -197,6 +165,12 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st + case DP_EDP_BACKLIGHT_CONTROL_MODE_PRODUCT: + new_dpcd_buf &= ~DP_EDP_BACKLIGHT_CONTROL_MODE_MASK; + new_dpcd_buf |= DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD; ++ ++ if (drm_dp_dpcd_writeb(&intel_dp->aux, ++ DP_EDP_PWMGEN_BIT_COUNT, ++ panel->backlight.pwmgen_bit_count) < 0) ++ DRM_DEBUG_KMS("Failed to write aux pwmgen bit count\n"); ++ + break; + + /* Do nothing when it is already DPCD mode */ +@@ -226,20 +200,91 @@ static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old + false); + } + ++static u32 intel_dp_aux_calc_max_backlight(struct intel_connector *connector) ++{ ++ struct drm_i915_private *i915 = to_i915(connector->base.dev); ++ struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder); ++ struct intel_panel *panel = &connector->panel; ++ u32 max_backlight = 0; ++ int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1; ++ u8 pn, pn_min, pn_max; ++ ++ if (drm_dp_dpcd_readb(&intel_dp->aux, DP_EDP_PWMGEN_BIT_COUNT, &pn) == 1) { ++ pn &= DP_EDP_PWMGEN_BIT_COUNT_MASK; ++ max_backlight = (1 << pn) - 1; ++ } ++ ++ /* Find desired value of (F x P) ++ * Note that, if F x P is out of supported range, the maximum value or ++ * minimum value will applied automatically. So no need to check that. ++ */ ++ freq = i915->vbt.backlight.pwm_freq_hz; ++ DRM_DEBUG_KMS("VBT defined backlight frequency %u Hz\n", freq); ++ if (!freq) { ++ DRM_DEBUG_KMS("Use panel default backlight frequency\n"); ++ return max_backlight; ++ } ++ ++ fxp = DIV_ROUND_CLOSEST(KHz(DP_EDP_BACKLIGHT_FREQ_BASE_KHZ), freq); ++ ++ /* Use highest possible value of Pn for more granularity of brightness ++ * adjustment while satifying the conditions below. ++ * - Pn is in the range of Pn_min and Pn_max ++ * - F is in the range of 1 and 255 ++ * - FxP is within 25% of desired value. ++ * Note: 25% is arbitrary value and may need some tweak. ++ */ ++ if (drm_dp_dpcd_readb(&intel_dp->aux, ++ DP_EDP_PWMGEN_BIT_COUNT_CAP_MIN, &pn_min) != 1) { ++ DRM_DEBUG_KMS("Failed to read pwmgen bit count cap min\n"); ++ return max_backlight; ++ } ++ if (drm_dp_dpcd_readb(&intel_dp->aux, ++ DP_EDP_PWMGEN_BIT_COUNT_CAP_MAX, &pn_max) != 1) { ++ DRM_DEBUG_KMS("Failed to read pwmgen bit count cap max\n"); ++ return max_backlight; ++ } ++ pn_min &= DP_EDP_PWMGEN_BIT_COUNT_MASK; ++ pn_max &= DP_EDP_PWMGEN_BIT_COUNT_MASK; ++ ++ fxp_min = DIV_ROUND_CLOSEST(fxp * 3, 4); ++ fxp_max = DIV_ROUND_CLOSEST(fxp * 5, 4); ++ if (fxp_min < (1 << pn_min) || (255 << pn_max) < fxp_max) { ++ DRM_DEBUG_KMS("VBT defined backlight frequency out of range\n"); ++ return max_backlight; ++ } ++ ++ for (pn = pn_max; pn >= pn_min; pn--) { ++ f = clamp(DIV_ROUND_CLOSEST(fxp, 1 << pn), 1, 255); ++ fxp_actual = f << pn; ++ if (fxp_min <= fxp_actual && fxp_actual <= fxp_max) ++ break; ++ } ++ ++ DRM_DEBUG_KMS("Using eDP pwmgen bit count of %d\n", pn); ++ if (drm_dp_dpcd_writeb(&intel_dp->aux, ++ DP_EDP_PWMGEN_BIT_COUNT, pn) < 0) { ++ DRM_DEBUG_KMS("Failed to write aux pwmgen bit count\n"); ++ return max_backlight; ++ } ++ panel->backlight.pwmgen_bit_count = pn; ++ ++ max_backlight = (1 << pn) - 1; ++ ++ return max_backlight; ++} ++ + static int intel_dp_aux_setup_backlight(struct intel_connector *connector, + enum pipe pipe) + { +- struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder); + struct intel_panel *panel = &connector->panel; + +- if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT) +- panel->backlight.max = 0xFFFF; +- else +- panel->backlight.max = 0xFF; ++ panel->backlight.max = intel_dp_aux_calc_max_backlight(connector); ++ if (!panel->backlight.max) ++ return -ENODEV; + + panel->backlight.min = 0; + panel->backlight.level = intel_dp_aux_get_backlight(connector); +- + panel->backlight.enabled = panel->backlight.level != 0; + + return 0; +-- +2.25.1 + +From 7dbe3f659d364de34b210baf0598913dc8c3cabd Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Tue, 10 Mar 2020 14:07:32 -0400 +Subject: [PATCH 2/7] drm/i915: Assume 100% brightness when not in DPCD control + mode + +Currently we always determine the initial panel brightness level by +simply reading the value from DP_EDP_BACKLIGHT_BRIGHTNESS_MSB/LSB. This +seems wrong though, because if the panel is not currently in DPCD +control mode there's not really any reason why there would be any +brightness value programmed in the first place. + +This appears to be the case on the Lenovo ThinkPad X1 Extreme 2nd +Generation, where the default value in these registers is always 0 on +boot despite the fact the panel runs at max brightness by default. +Getting the initial brightness value correct here is important as well, +since the panel on this laptop doesn't behave well if it's ever put into +DPCD control mode while the brightness level is programmed to 0. + +So, let's fix this by checking what the current backlight control mode +is before reading the brightness level. If it's in DPCD control mode, we +return the programmed brightness level. Otherwise we assume 100% +brightness and return the highest possible brightness level. This also +prevents us from accidentally programming a brightness level of 0. + +This is one of the many fixes that gets backlight controls working on +the ThinkPad X1 Extreme 2nd Generation with optional 4K AMOLED screen. + +Changes since v1: +* s/DP_EDP_DISPLAY_CONTROL_REGISTER/DP_EDP_BACKLIGHT_MODE_SET_REGISTER/ + - Jani + +Tested-by: AceLan Kao +Tested-by: Perry Yuan +Signed-off-by: Lyude Paul +Signed-off-by: Jani Nikula +Link: https://patchwork.freedesktop.org/patch/msgid/20200116211623.53799-3-lyude@redhat.com +--- + .../drm/i915/display/intel_dp_aux_backlight.c | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +index 345eed641455..5d4db5f8a165 100644 +--- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c ++++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +@@ -59,8 +59,25 @@ static u32 intel_dp_aux_get_backlight(struct intel_connector *connector) + { + struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder); + u8 read_val[2] = { 0x0 }; ++ u8 mode_reg; + u16 level = 0; + ++ if (drm_dp_dpcd_readb(&intel_dp->aux, ++ DP_EDP_BACKLIGHT_MODE_SET_REGISTER, ++ &mode_reg) != 1) { ++ DRM_DEBUG_KMS("Failed to read the DPCD register 0x%x\n", ++ DP_EDP_BACKLIGHT_MODE_SET_REGISTER); ++ return 0; ++ } ++ ++ /* ++ * If we're not in DPCD control mode yet, the programmed brightness ++ * value is meaningless and we should assume max brightness ++ */ ++ if ((mode_reg & DP_EDP_BACKLIGHT_CONTROL_MODE_MASK) != ++ DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD) ++ return connector->panel.backlight.max; ++ + if (drm_dp_dpcd_read(&intel_dp->aux, DP_EDP_BACKLIGHT_BRIGHTNESS_MSB, + &read_val, sizeof(read_val)) < 0) { + DRM_DEBUG_KMS("Failed to read DPCD register 0x%x\n", +-- +2.25.1 + +From b2a29a70e386c2fbd92e1b7980091e7980495211 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Tue, 10 Mar 2020 14:07:33 -0400 +Subject: [PATCH 3/7] drm/i915: Fix DPCD register order in + intel_dp_aux_enable_backlight() + +For eDP panels, it appears it's expected that so long as the panel is in +DPCD control mode that the brightness value is never set to 0. Instead, +if the desired effect is to set the panel's backlight to 0 we're +expected to simply turn off the backlight through the +DP_EDP_DISPLAY_CONTROL_REGISTER. + +We already do the latter correctly in intel_dp_aux_disable_backlight(). +But, we make the mistake of writing the DPCD registers in the wrong +order when enabling the backlight in intel_dp_aux_enable_backlight() +since we currently enable the backlight through +DP_EDP_DISPLAY_CONTROL_REGISTER before writing the brightness level. On +the X1 Extreme 2nd Generation, this appears to have the potential of +confusing the panel in such a way that further attempts to set the +brightness don't actually change the backlight as expected and leave it +off. Presumably, this happens because the incorrect register writing +order briefly leaves the panel with DPCD mode enabled and a 0 brightness +level set. + +So, reverse the order we write the DPCD registers when enabling the +panel backlight so that we write the brightness value first, and enable +the backlight second. This fix appears to be the final bit needed to get +the backlight on the ThinkPad X1 Extreme 2nd Generation's AMOLED screen +working. + +Tested-by: AceLan Kao +Tested-by: Perry Yuan +Signed-off-by: Lyude Paul +Signed-off-by: Jani Nikula +Link: https://patchwork.freedesktop.org/patch/msgid/20200116211623.53799-4-lyude@redhat.com +--- + drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +index 5d4db5f8a165..77a759361c5c 100644 +--- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c ++++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +@@ -207,8 +207,9 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st + } + } + ++ intel_dp_aux_set_backlight(conn_state, ++ connector->panel.backlight.level); + set_aux_backlight_enable(intel_dp, true); +- intel_dp_aux_set_backlight(conn_state, connector->panel.backlight.level); + } + + static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old_conn_state) +-- +2.25.1 + +From 8b2e6f450c1f8d34632d4789369030008e874a75 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Tue, 10 Mar 2020 14:07:34 -0400 +Subject: [PATCH 4/7] drm/i915: Auto detect DPCD backlight support by default + +Turns out we actually already have some companies, such as Lenovo, +shipping machines with AMOLED screens that don't allow controlling the +backlight through the usual PWM interface and only allow controlling it +through the standard EDP DPCD interface. One example of one of these +laptops is the X1 Extreme 2nd Generation. + +Since we've got systems that need this turned on by default now to have +backlight controls working out of the box, let's start auto-detecting it +for systems by default based on what the VBT tells us. We do this by +changing the default value for the enable_dpcd_backlight module param +from 0 to -1. + +Tested-by: AceLan Kao +Tested-by: Perry Yuan +Signed-off-by: Lyude Paul +Signed-off-by: Jani Nikula +Link: https://patchwork.freedesktop.org/patch/msgid/20200116211623.53799-6-lyude@redhat.com +--- + drivers/gpu/drm/i915/i915_params.c | 2 +- + drivers/gpu/drm/i915/i915_params.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c +index 1dd1f3652795..31eed60c167e 100644 +--- a/drivers/gpu/drm/i915/i915_params.c ++++ b/drivers/gpu/drm/i915/i915_params.c +@@ -172,7 +172,7 @@ i915_param_named_unsafe(inject_probe_failure, uint, 0400, + + i915_param_named(enable_dpcd_backlight, int, 0600, + "Enable support for DPCD backlight control" +- "(-1=use per-VBT LFP backlight type setting, 0=disabled [default], 1=enabled)"); ++ "(-1=use per-VBT LFP backlight type setting [default], 0=disabled, 1=enabled)"); + + #if IS_ENABLED(CONFIG_DRM_I915_GVT) + i915_param_named(enable_gvt, bool, 0400, +diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h +index 31b88f297fbc..a79d0867f77a 100644 +--- a/drivers/gpu/drm/i915/i915_params.h ++++ b/drivers/gpu/drm/i915/i915_params.h +@@ -64,7 +64,7 @@ struct drm_printer; + param(int, reset, 3) \ + param(unsigned int, inject_probe_failure, 0) \ + param(int, fastboot, -1) \ +- param(int, enable_dpcd_backlight, 0) \ ++ param(int, enable_dpcd_backlight, -1) \ + param(char *, force_probe, CONFIG_DRM_I915_FORCE_PROBE) \ + param(unsigned long, fake_lmem_start, 0) \ + /* leave bools at the end to not create holes */ \ +-- +2.25.1 + +From c10b0dfaac8385f9b712a552c9a5eed9976aacf2 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Tue, 10 Mar 2020 14:07:35 -0400 +Subject: [PATCH 5/7] drm/dp: Introduce EDID-based quirks + +The whole point of using OUIs is so that we can recognize certain +devices and potentially apply quirks for them. Normally this should work +quite well, but there appears to be quite a number of laptop panels out +there that will fill the OUI but not the device ID. As such, for devices +like this I can't imagine it's a very good idea to try relying on OUIs +for applying quirks. As well, some laptop vendors have confirmed to us +that their panels have this exact issue. + +So, let's introduce the ability to apply DP quirks based on EDID +identification. We reuse the same quirk bits for OUI-based quirks, so +that callers can simply check all possible quirks using +drm_dp_has_quirk(). + +Signed-off-by: Lyude Paul +Reviewed-by: Adam Jackson +Cc: Jani Nikula +--- + drivers/gpu/drm/drm_dp_helper.c | 61 +++++++++++++++++++ + drivers/gpu/drm/drm_dp_mst_topology.c | 3 +- + .../drm/i915/display/intel_display_types.h | 1 + + drivers/gpu/drm/i915/display/intel_dp.c | 11 ++-- + drivers/gpu/drm/i915/display/intel_dp_mst.c | 2 +- + drivers/gpu/drm/i915/display/intel_psr.c | 2 +- + include/drm/drm_dp_helper.h | 11 +++- + 7 files changed, 81 insertions(+), 10 deletions(-) + +diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c +index a5364b5192b8..9b2ea2ae0204 100644 +--- a/drivers/gpu/drm/drm_dp_helper.c ++++ b/drivers/gpu/drm/drm_dp_helper.c +@@ -1222,6 +1222,67 @@ drm_dp_get_quirks(const struct drm_dp_dpcd_ident *ident, bool is_branch) + #undef DEVICE_ID_ANY + #undef DEVICE_ID + ++struct edid_quirk { ++ u8 mfg_id[2]; ++ u8 prod_id[2]; ++ u32 quirks; ++}; ++ ++#define MFG(first, second) { (first), (second) } ++#define PROD_ID(first, second) { (first), (second) } ++ ++/* ++ * Some devices have unreliable OUIDs where they don't set the device ID ++ * correctly, and as a result we need to use the EDID for finding additional ++ * DP quirks in such cases. ++ */ ++static const struct edid_quirk edid_quirk_list[] = { ++}; ++ ++#undef MFG ++#undef PROD_ID ++ ++/** ++ * drm_dp_get_edid_quirks() - Check the EDID of a DP device to find additional ++ * DP-specific quirks ++ * @edid: The EDID to check ++ * ++ * While OUIDs are meant to be used to recognize a DisplayPort device, a lot ++ * of manufacturers don't seem to like following standards and neglect to fill ++ * the dev-ID in, making it impossible to only use OUIDs for determining ++ * quirks in some cases. This function can be used to check the EDID and look ++ * up any additional DP quirks. The bits returned by this function correspond ++ * to the quirk bits in &drm_dp_quirk. ++ * ++ * Returns: a bitmask of quirks, if any. The driver can check this using ++ * drm_dp_has_quirk(). ++ */ ++u32 drm_dp_get_edid_quirks(const struct edid *edid) ++{ ++ const struct edid_quirk *quirk; ++ u32 quirks = 0; ++ int i; ++ ++ if (!edid) ++ return 0; ++ ++ for (i = 0; i < ARRAY_SIZE(edid_quirk_list); i++) { ++ quirk = &edid_quirk_list[i]; ++ if (memcmp(quirk->mfg_id, edid->mfg_id, ++ sizeof(edid->mfg_id)) == 0 && ++ memcmp(quirk->prod_id, edid->prod_code, ++ sizeof(edid->prod_code)) == 0) ++ quirks |= quirk->quirks; ++ } ++ ++ DRM_DEBUG_KMS("DP sink: EDID mfg %*phD prod-ID %*phD quirks: 0x%04x\n", ++ (int)sizeof(edid->mfg_id), edid->mfg_id, ++ (int)sizeof(edid->prod_code), edid->prod_code, quirks); ++ ++ return quirks; ++} ++EXPORT_SYMBOL(drm_dp_get_edid_quirks); ++ + /** + * drm_dp_read_desc - read sink/branch descriptor from DPCD + * @aux: DisplayPort AUX channel +diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c +index cce0b1bba591..685c35e67144 100644 +--- a/drivers/gpu/drm/drm_dp_mst_topology.c ++++ b/drivers/gpu/drm/drm_dp_mst_topology.c +@@ -5461,7 +5461,8 @@ struct drm_dp_aux *drm_dp_mst_dsc_aux_for_port(struct drm_dp_mst_port *port) + if (drm_dp_read_desc(port->mgr->aux, &desc, true)) + return NULL; + +- if (drm_dp_has_quirk(&desc, DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD) && ++ if (drm_dp_has_quirk(&desc, 0, ++ DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD) && + port->mgr->dpcd[DP_DPCD_REV] >= DP_DPCD_REV_14 && + port->parent == port->mgr->mst_primary) { + u8 downstreamport; +diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h +index 778bd30743e5..8e3c5569603b 100644 +--- a/drivers/gpu/drm/i915/display/intel_display_types.h ++++ b/drivers/gpu/drm/i915/display/intel_display_types.h +@@ -1253,6 +1253,7 @@ struct intel_dp { + int max_link_rate; + /* sink or branch descriptor */ + struct drm_dp_desc desc; ++ u32 edid_quirks; + struct drm_dp_aux aux; + u32 aux_busy_last_status; + u8 train_set[4]; +diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c +index c7424e2a04a3..e20b85ff937d 100644 +--- a/drivers/gpu/drm/i915/display/intel_dp.c ++++ b/drivers/gpu/drm/i915/display/intel_dp.c +@@ -2373,7 +2373,7 @@ intel_dp_compute_config(struct intel_encoder *encoder, + struct intel_connector *intel_connector = intel_dp->attached_connector; + struct intel_digital_connector_state *intel_conn_state = + to_intel_digital_connector_state(conn_state); +- bool constant_n = drm_dp_has_quirk(&intel_dp->desc, ++ bool constant_n = drm_dp_has_quirk(&intel_dp->desc, 0, + DP_DPCD_QUIRK_CONSTANT_N); + int ret = 0, output_bpp; + +@@ -4466,7 +4466,8 @@ intel_dp_get_dpcd(struct intel_dp *intel_dp) + * it don't care about read it here and in intel_edp_init_dpcd(). + */ + if (!intel_dp_is_edp(intel_dp) && +- !drm_dp_has_quirk(&intel_dp->desc, DP_DPCD_QUIRK_NO_SINK_COUNT)) { ++ !drm_dp_has_quirk(&intel_dp->desc, 0, ++ DP_DPCD_QUIRK_NO_SINK_COUNT)) { + u8 count; + ssize_t r; + +@@ -5631,6 +5632,7 @@ intel_dp_set_edid(struct intel_dp *intel_dp) + + intel_dp->has_audio = drm_detect_monitor_audio(edid); + drm_dp_cec_set_edid(&intel_dp->aux, edid); ++ intel_dp->edid_quirks = drm_dp_get_edid_quirks(edid); + } + + static void +@@ -5643,6 +5645,7 @@ intel_dp_unset_edid(struct intel_dp *intel_dp) + intel_connector->detect_edid = NULL; + + intel_dp->has_audio = false; ++ intel_dp->edid_quirks = 0; + } + + static int +@@ -7356,8 +7359,8 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, + edid = drm_get_edid(connector, &intel_dp->aux.ddc); + if (edid) { + if (drm_add_edid_modes(connector, edid)) { +- drm_connector_update_edid_property(connector, +- edid); ++ drm_connector_update_edid_property(connector, edid); ++ intel_dp->edid_quirks = drm_dp_get_edid_quirks(edid); + } else { + kfree(edid); + edid = ERR_PTR(-EINVAL); +diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c +index cba68c5a80fa..4a1a2f868423 100644 +--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c ++++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c +@@ -50,7 +50,7 @@ static int intel_dp_mst_compute_link_config(struct intel_encoder *encoder, + const struct drm_display_mode *adjusted_mode = + &crtc_state->hw.adjusted_mode; + void *port = connector->port; +- bool constant_n = drm_dp_has_quirk(&intel_dp->desc, ++ bool constant_n = drm_dp_has_quirk(&intel_dp->desc, 0, + DP_DPCD_QUIRK_CONSTANT_N); + int bpp, slots = -EINVAL; + +diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c +index 83025052c965..82ba5624d14f 100644 +--- a/drivers/gpu/drm/i915/display/intel_psr.c ++++ b/drivers/gpu/drm/i915/display/intel_psr.c +@@ -282,7 +282,7 @@ void intel_psr_init_dpcd(struct intel_dp *intel_dp) + DRM_DEBUG_KMS("eDP panel supports PSR version %x\n", + intel_dp->psr_dpcd[0]); + +- if (drm_dp_has_quirk(&intel_dp->desc, DP_DPCD_QUIRK_NO_PSR)) { ++ if (drm_dp_has_quirk(&intel_dp->desc, 0, DP_DPCD_QUIRK_NO_PSR)) { + DRM_DEBUG_KMS("PSR support not currently available for this panel\n"); + return; + } +diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h +index bc04467f7c3a..1fe49e202dfb 100644 +--- a/include/drm/drm_dp_helper.h ++++ b/include/drm/drm_dp_helper.h +@@ -1493,13 +1493,16 @@ struct drm_dp_desc { + + int drm_dp_read_desc(struct drm_dp_aux *aux, struct drm_dp_desc *desc, + bool is_branch); ++u32 drm_dp_get_edid_quirks(const struct edid *edid); + + /** + * enum drm_dp_quirk - Display Port sink/branch device specific quirks + * + * Display Port sink and branch devices in the wild have a variety of bugs, try + * to collect them here. The quirks are shared, but it's up to the drivers to +- * implement workarounds for them. ++ * implement workarounds for them. Note that because some devices have ++ * unreliable OUIDs, the EDID of sinks should also be checked for quirks using ++ * drm_dp_get_edid_quirks(). + */ + enum drm_dp_quirk { + /** +@@ -1535,14 +1538,16 @@ enum drm_dp_quirk { + /** + * drm_dp_has_quirk() - does the DP device have a specific quirk + * @desc: Device decriptor filled by drm_dp_read_desc() ++ * @edid_quirks: Optional quirk bitmask filled by drm_dp_get_edid_quirks() + * @quirk: Quirk to query for + * + * Return true if DP device identified by @desc has @quirk. + */ + static inline bool +-drm_dp_has_quirk(const struct drm_dp_desc *desc, enum drm_dp_quirk quirk) ++drm_dp_has_quirk(const struct drm_dp_desc *desc, u32 edid_quirks, ++ enum drm_dp_quirk quirk) + { +- return desc->quirks & BIT(quirk); ++ return (desc->quirks | edid_quirks) & BIT(quirk); + } + + #ifdef CONFIG_DRM_DP_CEC +-- +2.25.1 + +From a21ec8aec8452de788d6b1fc175dc8281a57d5de Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Tue, 10 Mar 2020 14:07:36 -0400 +Subject: [PATCH 6/7] drm/i915: Force DPCD backlight mode on X1 Extreme 2nd Gen + 4K AMOLED panel + +The X1 Extreme is one of the systems that lies about which backlight +interface that it uses in its VBIOS as PWM backlight controls don't work +at all on this machine. It's possible that this panel could be one of +the infamous ones that can switch between PWM mode and DPCD backlight +control mode, but we haven't gotten any more details on this from Lenovo +just yet. For the time being though, making sure the backlight 'just +works' is a bit more important. + +So, add a quirk to force DPCD backlight controls on for these systems +based on EDID (since this panel doesn't appear to fill in the device ID). +Hopefully in the future we'll figure out a better way of probing this. + +Signed-off-by: Lyude Paul +Reviewed-by: Adam Jackson +Cc: Jani Nikula + +Changes since v2: +* The bugzilla URL is deprecated, bug reporting happens on gitlab now. + Update the messages we print to reflect this +* Also, take the opportunity to move FDO_BUG_URL out of i915_utils.c and + into i915_utils.h so that other places which print things that aren't + traditional errors but are worth filing bugs about, can actually use + it. + +Signed-off-by: Lyude Paul +--- + drivers/gpu/drm/drm_dp_helper.c | 4 ++++ + .../drm/i915/display/intel_dp_aux_backlight.c | 24 +++++++++++++++---- + drivers/gpu/drm/i915/i915_utils.c | 1 - + drivers/gpu/drm/i915/i915_utils.h | 2 ++ + include/drm/drm_dp_helper.h | 10 ++++++++ + 5 files changed, 36 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c +index 9b2ea2ae0204..026f701eac69 100644 +--- a/drivers/gpu/drm/drm_dp_helper.c ++++ b/drivers/gpu/drm/drm_dp_helper.c +@@ -1237,6 +1237,10 @@ struct edid_quirk { + * DP quirks in such cases. + */ + static const struct edid_quirk edid_quirk_list[] = { ++ /* Optional 4K AMOLED panel in the ThinkPad X1 Extreme 2nd Generation ++ * only supports DPCD backlight controls ++ */ ++ { MFG(0x4c, 0x83), PROD_ID(0x41, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, + }; + + #undef MFG +diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +index 77a759361c5c..a7c94c201b38 100644 +--- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c ++++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +@@ -328,15 +328,31 @@ intel_dp_aux_display_control_capable(struct intel_connector *connector) + int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector) + { + struct intel_panel *panel = &intel_connector->panel; +- struct drm_i915_private *dev_priv = to_i915(intel_connector->base.dev); ++ struct intel_dp *intel_dp = enc_to_intel_dp(intel_connector->encoder); ++ struct drm_device *dev = intel_connector->base.dev; ++ struct drm_i915_private *dev_priv = to_i915(dev); + + if (i915_modparams.enable_dpcd_backlight == 0 || +- (i915_modparams.enable_dpcd_backlight == -1 && +- dev_priv->vbt.backlight.type != INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE)) ++ !intel_dp_aux_display_control_capable(intel_connector)) + return -ENODEV; + +- if (!intel_dp_aux_display_control_capable(intel_connector)) ++ /* ++ * There are a lot of machines that don't advertise the backlight ++ * control interface to use properly in their VBIOS, :\ ++ */ ++ if (dev_priv->vbt.backlight.type != ++ INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE && ++ !drm_dp_has_quirk(&intel_dp->desc, intel_dp->edid_quirks, ++ DP_QUIRK_FORCE_DPCD_BACKLIGHT)) { ++ DRM_DEV_INFO(dev->dev, ++ "Panel advertises DPCD backlight support, but " ++ "VBT disagrees. If your backlight controls " ++ "don't work try booting with " ++ "i915.enable_dpcd_backlight=1. If your machine " ++ "needs this, please file a _new_ bug report on " ++ "drm/i915, see " FDO_BUG_URL " for details.\n"); + return -ENODEV; ++ } + + panel->backlight.setup = intel_dp_aux_setup_backlight; + panel->backlight.enable = intel_dp_aux_enable_backlight; +diff --git a/drivers/gpu/drm/i915/i915_utils.c b/drivers/gpu/drm/i915/i915_utils.c +index 632d6953c78d..029854ae65fc 100644 +--- a/drivers/gpu/drm/i915/i915_utils.c ++++ b/drivers/gpu/drm/i915/i915_utils.c +@@ -8,7 +8,6 @@ + #include "i915_drv.h" + #include "i915_utils.h" + +-#define FDO_BUG_URL "https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs" + #define FDO_BUG_MSG "Please file a bug on drm/i915; see " FDO_BUG_URL " for details." + + void +diff --git a/drivers/gpu/drm/i915/i915_utils.h b/drivers/gpu/drm/i915/i915_utils.h +index b0ade76bec90..cae0ae520398 100644 +--- a/drivers/gpu/drm/i915/i915_utils.h ++++ b/drivers/gpu/drm/i915/i915_utils.h +@@ -34,6 +34,8 @@ + struct drm_i915_private; + struct timer_list; + ++#define FDO_BUG_URL "https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs" ++ + #undef WARN_ON + /* Many gcc seem to no see through this and fall over :( */ + #if 0 +diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h +index 1fe49e202dfb..eff5a69051d6 100644 +--- a/include/drm/drm_dp_helper.h ++++ b/include/drm/drm_dp_helper.h +@@ -1533,6 +1533,16 @@ enum drm_dp_quirk { + * The DSC caps can be read from the physical aux instead. + */ + DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD, ++ /** ++ * @DP_QUIRK_FORCE_DPCD_BACKLIGHT: ++ * ++ * The device is telling the truth when it says that it uses DPCD ++ * backlight controls, even if the system's firmware disagrees. This ++ * quirk should be checked against both the ident and panel EDID. ++ * When present, the driver should honor the DPCD backlight ++ * capabilities advertised. ++ */ ++ DP_QUIRK_FORCE_DPCD_BACKLIGHT, + }; + + /** +-- +2.25.1 + +From 057e7f8db05c2382b666270b1fbf986fdd172769 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Tue, 10 Mar 2020 14:07:37 -0400 +Subject: [PATCH 7/7] drm/i915: Force DPCD backlight mode for some Dell CML + 2020 panels + +According to Dell, trying to match their panels via OUI is not reliable +enough and we've been told that we should check against the EDID +instead. As well, Dell seems to have some panels that are actually +intended to switch between using PWM for backlight controls and DPCD for +backlight controls depending on whether or not the panel is in HDR or +SDR mode. Yikes. + +Regardless, we need to add quirks for these so that DPCD backlight +controls get enabled by default, since without additional driver support +that's the only form of brightness control that will work. Hopefully in +the future we can remove these quirks once we have a better way of +probing for this. + +Changes since v1: +* Add one more EDID per Dell's request +* Remove model number (which is possibly wrong) and replace with Dell + CML 2020 systems + +Signed-off-by: Lyude Paul +Reviewed-by: Adam Jackson +Cc: Jani Nikula +--- + drivers/gpu/drm/drm_dp_helper.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c +index 026f701eac69..d3a636a925d4 100644 +--- a/drivers/gpu/drm/drm_dp_helper.c ++++ b/drivers/gpu/drm/drm_dp_helper.c +@@ -1241,6 +1241,20 @@ static const struct edid_quirk edid_quirk_list[] = { + * only supports DPCD backlight controls + */ + { MFG(0x4c, 0x83), PROD_ID(0x41, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, ++ /* ++ * Some Dell CML 2020 systems have panels support both AUX and PWM ++ * backlight control, and some only support AUX backlight control. All ++ * said panels start up in AUX mode by default, and we don't have any ++ * support for disabling HDR mode on these panels which would be ++ * required to switch to PWM backlight control mode (plus, I'm not ++ * even sure we want PWM backlight controls over DPCD backlight ++ * controls anyway...). Until we have a better way of detecting these, ++ * force DPCD backlight mode on all of them. ++ */ ++ { MFG(0x06, 0xaf), PROD_ID(0x9b, 0x32), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, ++ { MFG(0x06, 0xaf), PROD_ID(0xeb, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, ++ { MFG(0x4d, 0x10), PROD_ID(0xc7, 0x14), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, ++ { MFG(0x4d, 0x10), PROD_ID(0xe6, 0x14), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, + }; + + #undef MFG +-- +2.25.1 + diff --git a/kernel.spec b/kernel.spec index aa807220b..ac395d6ab 100644 --- a/kernel.spec +++ b/kernel.spec @@ -80,7 +80,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -890,6 +890,9 @@ Patch507: drm-dp-mst-error-handling-improvements.patch # Submitted upstream Patch508: iommu-WARN_TAINT-fixes.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1811850 +Patch509: drm-i915-backports.patch + # END OF PATCH DEFINITIONS %endif @@ -2963,6 +2966,9 @@ fi # # %changelog +* Tue Mar 10 2020 Jeremy Cline - 5.6.0-0.rc5.git0.2 +- A series of eDP backlight fixes for i915 (rhbz 1811850) + * Mon Mar 09 2020 Hans de Goede - Fix only 1 monitor working on DP-MST docking stations (rhbz 1809681) - Fix backtraces on various buggy BIOS-es (rhbz 1564895, 1808874) From 5c61b217d3a8cf959ab661c83bb87b4dd398cf76 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 12 Mar 2020 13:01:59 +0000 Subject: [PATCH 003/191] Update RPi4 USB patch to v5 --- USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch | 299 +++++++++--------- kernel.spec | 2 +- 2 files changed, 155 insertions(+), 146 deletions(-) diff --git a/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch b/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch index 7b4f60cb5..894a56a14 100644 --- a/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch +++ b/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch @@ -1,27 +1,27 @@ -From patchwork Fri Mar 6 11:43:45 2020 +From patchwork Tue Mar 10 12:52:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11423679 +X-Patchwork-Id: 11429251 Return-Path: - + Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 70B5914B7 + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8D720924 for ; - Fri, 6 Mar 2020 11:44:02 +0000 (UTC) + Tue, 10 Mar 2020 12:53:32 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 4E4F92072A + by mail.kernel.org (Postfix) with ESMTPS id 663C724693 for ; - Fri, 6 Mar 2020 11:44:02 +0000 (UTC) + Tue, 10 Mar 2020 12:53:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="dGEE0Sg7" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4E4F92072A + header.i=@lists.infradead.org header.b="brxu2SSp" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 663C724693 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; @@ -33,39 +33,38 @@ DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=ZW8pFtwlUj3q7GZJotB4Rgjtfp9gMy+l74jJQcTab0w=; b=dGEE0Sg7v5PBTu - 5qGfgXA4+4sJpnFfsp+cAr2DAwAeCgqMmQrm4uAPZLI8efXK5VHLKP6PEX2JrH7D3MfzTF0dU9g6/ - WQUqXvxsGGnePdDZw5//mlUcq+gml374oe11NwXONXbBo79sEsxrYx25OjFsZt2RxgNXg4bZlQrMy - YnqIMx3EPz58Ah2d69LlezGH3br2KiByqaG0B1TUiU6oD2BLFMZE7Z4g8Ndb5AvkxTwsWjFnpacZN - 95uzRzQy042X9al5ZuSokOeT3hDAaTFHQc0JwQYX+YxpN1aK/AnIYTATOGlsfmCosK5cOsOJk+aSD - +zIXNMdtqtSwEzzEk9QA==; + List-Owner; bh=ZW8pFtwlUj3q7GZJotB4Rgjtfp9gMy+l74jJQcTab0w=; b=brxu2SSpvrhJNb + w5nIpDDyBZwSbCT9/lV2mTMlmQYmRJmzfp6qMUdidNb6M06u9vNMEUs7Ux1xhzZ+2kUiHMGdYmySb + 2ZTluMYsD0wDWn/cBbbQSTAVeWuM5loKbQx7f6YtApSP/BRhwHyQT2hOCH5FQsO4upkRzvyiu1oDy + RFlB4bVwhxeh0DLHk4treOY7PH07MfqozbH1deQqmRPbrtHmPfNqVfuLHJoWQUyHBobxUu8VcPdIN + hznwXAVJBLYVLiKMQQ+KFCAaj2Qhv5LbtahIMlTj8qx3PdD4LASzktKkD/iUYd358hJSk43gJpAIe + 812yC2v21Pex7ZCY06ag==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jABOb-00053O-32; Fri, 06 Mar 2020 11:44:01 +0000 + id 1jBeO2-0004Ny-7z; Tue, 10 Mar 2020 12:53:30 +0000 Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jABOY-00051E-01; Fri, 06 Mar 2020 11:43:59 +0000 + id 1jBeNk-00048F-6W; Tue, 10 Mar 2020 12:53:13 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id A2B70AEF6; - Fri, 6 Mar 2020 11:43:55 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id DF3D2B149; + Tue, 10 Mar 2020 12:53:10 +0000 (UTC) From: Nicolas Saenz Julienne -To: linux-kernel@vger.kernel.org, - Nicolas Saenz Julienne , - Florian Fainelli , Ray Jui , - Scott Branden , - bcm-kernel-feedback-list@broadcom.com -Subject: [PATCH v4 1/4] soc: bcm2835: Sync xHCI reset firmware property with +To: linux-kernel@vger.kernel.org, Florian Fainelli , + Ray Jui , Scott Branden , + bcm-kernel-feedback-list@broadcom.com, + Nicolas Saenz Julienne +Subject: [PATCH v5 1/4] soc: bcm2835: Sync xHCI reset firmware property with downstream -Date: Fri, 6 Mar 2020 12:43:45 +0100 -Message-Id: <20200306114348.5172-2-nsaenzjulienne@suse.de> +Date: Tue, 10 Mar 2020 13:52:39 +0100 +Message-Id: <20200310125243.25805-2-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200306114348.5172-1-nsaenzjulienne@suse.de> -References: <20200306114348.5172-1-nsaenzjulienne@suse.de> +In-Reply-To: <20200310125243.25805-1-nsaenzjulienne@suse.de> +References: <20200310125243.25805-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200306_034358_187314_7B4D5C40 -X-CRM114-Status: GOOD ( 13.62 ) +X-CRM114-CacheID: sfid-20200310_055312_379726_E2DB0CE8 +X-CRM114-Status: GOOD ( 13.79 ) X-Spam-Score: -2.3 (--) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (-2.3 points) @@ -74,10 +73,10 @@ X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [195.135.220.15 listed in list.dnswl.org] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [195.135.220.15 listed in wl.mailspike.net] + 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 @@ -92,10 +91,10 @@ List-Help: List-Subscribe: , -Cc: tim.gover@raspberrypi.org, gregkh@linuxfoundation.org, - linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, - linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, - wahrenst@gmx.net +Cc: tim.gover@raspberrypi.org, sergei.shtylyov@cogentembedded.com, + gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, + linux-rpi-kernel@lists.infradead.org, linux-pci@vger.kernel.org, + linux-arm-kernel@lists.infradead.org, wahrenst@gmx.net Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org @@ -124,30 +123,30 @@ index 7800e12ee042..cc9cdbc66403 100644 /* Dispmanx TAGS */ RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001, -From patchwork Fri Mar 6 11:43:46 2020 +From patchwork Tue Mar 10 12:52:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11423697 +X-Patchwork-Id: 11429255 Return-Path: - + Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B5ACE14B7 + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D4796138D for ; - Fri, 6 Mar 2020 11:44:32 +0000 (UTC) + Tue, 10 Mar 2020 12:53:47 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 91DF92072A + by mail.kernel.org (Postfix) with ESMTPS id B22E52468F for ; - Fri, 6 Mar 2020 11:44:32 +0000 (UTC) + Tue, 10 Mar 2020 12:53:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="DG1Rd9pv" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 91DF92072A + header.i=@lists.infradead.org header.b="UnuFVkmk" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B22E52468F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; @@ -159,48 +158,47 @@ DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=3Y9Bl+SWHCBoW9h0wXyUxKrcbYUmxn2lHa+AZSrB9sI=; b=DG1Rd9pvKLqCNK - BTo7HtqMLcSMlDp9MBV7S9jQys3aZp0d0DfZzySKxREwIFwG/vrhhs5Wl6fIyF0s/UxzUT0PRv1w8 - JST/Eeac+0SyEf03QO0muMBhXms+lS7Xj2W5ExGRLjsTRb5fF3tb7VD9yiiyqaaYlnS1pmtpwwBwf - fMemr/A/aOYHmcEV3wtSwDyFpKzbn3LGtIVeaPDKZhnkYvyJGD52G4h6pr/KLRQv2oFt8rA/U9QR/ - R4So9MJxK3FyVioYRdBqwgN7ijrfhh2UtaBLKzk77k59/nMuQoGm19vSwRCus5axiQJisYFNrDwvv - kiKbXXrYW68JvUUXZxGQ==; + List-Owner; bh=eupkp4tsmm4bLugl948LTwuMnwmoAOiN5fj7gGg2GJM=; b=UnuFVkmkE9iLlT + dNztNBOsbtwlARvXfPvQbXyhiNZOH0emv3kmr+XxltWYeAiqH5UzUtJy0KwjF2KunmcjkiSOmBj0b + YDxYVIOUXPbof4UrgceWbINbqzOpy703aw8B2pWaXc2Fx+tkQI31pG+fHwB1TSaAXnCU0ClY85soE + suAOeomFWgZYxgZBIqem7oslnqdQ6KgACCkliCU3dEKd+XX/hZA9C2J0N/EgEwcNWXEmKB9PdwTli + 2lAYh1TlEnx1fuRLvs8UyVj+r4BpSYgTcvEoy1eI12XtX708NuiE57pnSZn3Xc+2EI2fzW/7FowQ/ + edW61tscKfv3VMYGGa4A==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jABP4-0005Wb-RE; Fri, 06 Mar 2020 11:44:30 +0000 + id 1jBeOE-0004am-Pw; Tue, 10 Mar 2020 12:53:42 +0000 Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jABOY-00051M-46; Fri, 06 Mar 2020 11:44:00 +0000 + id 1jBeNl-00048m-7v; Tue, 10 Mar 2020 12:53:14 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id B52A5AFD8; - Fri, 6 Mar 2020 11:43:56 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id EF846B18F; + Tue, 10 Mar 2020 12:53:11 +0000 (UTC) From: Nicolas Saenz Julienne -To: linux-kernel@vger.kernel.org, - Nicolas Saenz Julienne , - Florian Fainelli , Ray Jui , - Scott Branden , - bcm-kernel-feedback-list@broadcom.com -Subject: [PATCH v4 2/4] firmware: raspberrypi: Introduce vl805 init routine -Date: Fri, 6 Mar 2020 12:43:46 +0100 -Message-Id: <20200306114348.5172-3-nsaenzjulienne@suse.de> +To: linux-kernel@vger.kernel.org, Florian Fainelli , + Ray Jui , Scott Branden , + bcm-kernel-feedback-list@broadcom.com, + Nicolas Saenz Julienne +Subject: [PATCH v5 2/4] firmware: raspberrypi: Introduce vl805 init routine +Date: Tue, 10 Mar 2020 13:52:40 +0100 +Message-Id: <20200310125243.25805-3-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200306114348.5172-1-nsaenzjulienne@suse.de> -References: <20200306114348.5172-1-nsaenzjulienne@suse.de> +In-Reply-To: <20200310125243.25805-1-nsaenzjulienne@suse.de> +References: <20200310125243.25805-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200306_034358_450028_ABB3A519 -X-CRM114-Status: GOOD ( 15.23 ) +X-CRM114-CacheID: sfid-20200310_055313_564661_57DD1A42 +X-CRM114-Status: GOOD ( 15.58 ) X-Spam-Score: -2.3 (--) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (-2.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [195.135.220.15 listed in list.dnswl.org] + 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) + [195.135.220.15 listed in wl.mailspike.net] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders @@ -217,10 +215,10 @@ List-Help: List-Subscribe: , -Cc: tim.gover@raspberrypi.org, gregkh@linuxfoundation.org, - linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, - linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, - wahrenst@gmx.net +Cc: tim.gover@raspberrypi.org, sergei.shtylyov@cogentembedded.com, + gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, + linux-rpi-kernel@lists.infradead.org, linux-pci@vger.kernel.org, + linux-arm-kernel@lists.infradead.org, wahrenst@gmx.net Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org @@ -235,6 +233,10 @@ Based on Tim Gover's downstream implementation. Signed-off-by: Nicolas Saenz Julienne Reviewed-by: Florian Fainelli --- + +Changes since v4: + - Inline function definition when RASPBERRYPI_FIRMWARE is not defined + Changes since v1: - Move include into .c file and add forward declaration to .h @@ -299,7 +301,7 @@ index da26a584dca0..cbb495aff6a0 100644 { .compatible = "raspberrypi,bcm2835-firmware", }, {}, diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h -index cc9cdbc66403..c161bdab759d 100644 +index cc9cdbc66403..3025aca3c358 100644 --- a/include/soc/bcm2835/raspberrypi-firmware.h +++ b/include/soc/bcm2835/raspberrypi-firmware.h @@ -10,6 +10,7 @@ @@ -323,7 +325,7 @@ index cc9cdbc66403..c161bdab759d 100644 return NULL; } + -+static int rpi_firmware_init_vl805(struct pci_dev *pdev) ++static inline int rpi_firmware_init_vl805(struct pci_dev *pdev) +{ + return 0; +} @@ -331,30 +333,30 @@ index cc9cdbc66403..c161bdab759d 100644 #endif /* __SOC_RASPBERRY_FIRMWARE_H__ */ -From patchwork Fri Mar 6 11:43:47 2020 +From patchwork Tue Mar 10 12:52:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11423699 +X-Patchwork-Id: 11429257 Return-Path: - + Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A184A14B7 + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DB7DF924 for ; - Fri, 6 Mar 2020 11:44:49 +0000 (UTC) + Tue, 10 Mar 2020 12:54:01 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 6921A2072A + by mail.kernel.org (Postfix) with ESMTPS id B8AF22468F for ; - Fri, 6 Mar 2020 11:44:49 +0000 (UTC) + Tue, 10 Mar 2020 12:54:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="Y5dY1L75" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6921A2072A + header.i=@lists.infradead.org header.b="Pukt5VBt" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B8AF22468F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; @@ -366,49 +368,49 @@ DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=2ExZWVTw9LuCk0+3FVpp99SpZhZ8GLF00iI2upbbmVU=; b=Y5dY1L75FQ1OgS - TFgcuSnOZaeUh5zcKRjkext3cOjhQ8m9HMKNy8qhAxoD092CEriDJrZZ/JJEAzKFBe5ekgjmTiU/q - SbhN3NfLpL0N13VD1SZy2PP6nTiTWBxwD6pbF0JewFUqH9koK8EmH7Pd3udj4+kKLWOVH0fP9gZhl - ftPrHyJo07K7pMVX0t4bt2OildDgMK3xzHkHl7U8KKttcwMQFAY7xD+eC5GwrccDhlZJMANHZku9N - vLsFCNWq7b6z+otqy+7cUEbUSkWqS0KeNKpRlKx0h/j3zxl6eAi2KtQlgD2StgkVrJZGb0plNBch6 - JZAjf1oTo1/nzgnp1+MA==; + List-Owner; bh=BdoGeNn/NWcbYVlSIJeeADhjLPnS4htif3Z9tAGsAwY=; b=Pukt5VBtbAyyHT + Fl05OgBfjiC6FzMq3vCA9/PjIVGnDl7+C9Y63M8cdUbsobWVut0YWAFVbxQgaQz235gW9sfpGxt/V + mD8vzLqKf6uRRow1iQWGR7cZhKOwWGYd/zGoyQtwE5MR06gK9hYUwfDs7irt11GsjJaAH7uoWvpnV + 1st3tm/ScoO386zatdiMdGhSNU1I42NGKUCH6evFgkwPeoqs0P4NYMA3W2Xnb4VECrMGeEdZLG1bw + 5H3WNE1+8q3HSuXB/qNxf1kgajM102CNfhPWAm9FE9nh/PyRbe/6lrUEy+pFEKOXLWCp4sSHVRek5 + 57BW6iK719eKvyQ3iNbg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jABPH-0005lM-Om; Fri, 06 Mar 2020 11:44:43 +0000 + id 1jBeOV-0004sJ-68; Tue, 10 Mar 2020 12:53:59 +0000 Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jABOZ-00052G-7b; Fri, 06 Mar 2020 11:44:00 +0000 + id 1jBeNm-00049C-8J; Tue, 10 Mar 2020 12:53:15 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id EA31EAF21; - Fri, 6 Mar 2020 11:43:57 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id E5116B1B1; + Tue, 10 Mar 2020 12:53:12 +0000 (UTC) From: Nicolas Saenz Julienne To: linux-kernel@vger.kernel.org, Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Nicolas Saenz Julienne , Lorenzo Pieralisi , Andrew Murray -Subject: [PATCH v4 3/4] PCI: brcmstb: Wait for Raspberry Pi's firmware when +Subject: [PATCH v5 3/4] PCI: brcmstb: Wait for Raspberry Pi's firmware when present -Date: Fri, 6 Mar 2020 12:43:47 +0100 -Message-Id: <20200306114348.5172-4-nsaenzjulienne@suse.de> +Date: Tue, 10 Mar 2020 13:52:41 +0100 +Message-Id: <20200310125243.25805-4-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200306114348.5172-1-nsaenzjulienne@suse.de> -References: <20200306114348.5172-1-nsaenzjulienne@suse.de> +In-Reply-To: <20200310125243.25805-1-nsaenzjulienne@suse.de> +References: <20200310125243.25805-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200306_034359_420497_DC31988D -X-CRM114-Status: GOOD ( 12.02 ) +X-CRM114-CacheID: sfid-20200310_055314_439377_DE6EBA94 +X-CRM114-Status: GOOD ( 12.27 ) X-Spam-Score: -2.3 (--) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (-2.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [195.135.220.15 listed in list.dnswl.org] + 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) + [195.135.220.15 listed in wl.mailspike.net] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders @@ -425,22 +427,27 @@ List-Help: List-Subscribe: , -Cc: tim.gover@raspberrypi.org, gregkh@linuxfoundation.org, - linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, - linux-pci@vger.kernel.org, Bjorn Helgaas , - linux-arm-kernel@lists.infradead.org, wahrenst@gmx.net +Cc: tim.gover@raspberrypi.org, sergei.shtylyov@cogentembedded.com, + gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, + linux-rpi-kernel@lists.infradead.org, linux-pci@vger.kernel.org, + Bjorn Helgaas , linux-arm-kernel@lists.infradead.org, + wahrenst@gmx.net Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org xHCI's PCI fixup, run at the end of pcie-brcmstb's probe, depends on RPi4's VideoCore firmware interface to be up and running. It's possible -for both initializations to race, so make sure it's available prior +for both initializations to race, so make sure it's available prior to starting. Signed-off-by: Nicolas Saenz Julienne Reviewed-by: Florian Fainelli --- + +Changes since v4: + - Fixed typo in commit description + drivers/pci/controller/pcie-brcmstb.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) @@ -483,30 +490,30 @@ index 3a10e678c7f4..a3d3070a5832 100644 if (!bridge) return -ENOMEM; -From patchwork Fri Mar 6 11:43:48 2020 +From patchwork Tue Mar 10 12:52:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11423701 +X-Patchwork-Id: 11429259 Return-Path: - + Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A07E214B7 + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9C04D924 for ; - Fri, 6 Mar 2020 11:45:15 +0000 (UTC) + Tue, 10 Mar 2020 12:54:22 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 7E7512072A + by mail.kernel.org (Postfix) with ESMTPS id 7966324698 for ; - Fri, 6 Mar 2020 11:45:15 +0000 (UTC) + Tue, 10 Mar 2020 12:54:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="MgZdlxvb" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7E7512072A + header.i=@lists.infradead.org header.b="QRTrew7I" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7966324698 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; @@ -518,45 +525,45 @@ DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=RSrjVuoil+7Cud9POGvsAcP8PYRf4QKzZ03MsRUZFO4=; b=MgZdlxvbm99qLd - l3Hb/jk4OC0RFy13iStY4bzUK9vCP+6Vot5m5wzUVCtDKdxS4kdMx5eQDu3ZidH3fcWhQgbkujlwO - TxZisATN94E5Xhi9zD+YUkb8+PGNRY8a0dQ3Ggloj2/GcEIkR2dDFe1Zhf4zIVnA7iEAfBcmFHdz3 - GP7Ab6fR6jGjs98nJ/vRx+vT6RNArA7Lzg+QthfGGIL//I6DtSigSOYxlnGfKGLU+cEgodxmpLPzf - qXxV5iRqCQ6tFmpueyjF2J/OL91jR8MAt5TnWiCSx83x3Ao0lsTd7htOh38t7RDefC86yce98OJdx - ku00uNE2FVPvudJC9ScQ==; + List-Owner; bh=aEzRVs2pg+6QbUDWQQN1yAPYlnW+XWVwKn2FDiv80JA=; b=QRTrew7IL9vbdM + mtuOZU1FJwi43+wuyjiempsm4CcD4i4E2/w4xlW2OIcLT1Grm9thTXmLQIoxXAfg40P9oIqWxPEtz + rhv86PkeJMnxEH8qF+wjIQKwccTJyUAhPdShbUZ/SivZsdsqI9hjcuaMW0rwR6cLriXBDt+0cakcT + lbhYuhaJVupUPuPdyFV7jiOnkgrBm6i6iXfFQicO3lZtICEl5jCZUl5BCEfIalnyYAqvlbF9gPgmb + pbeU1TQCw0Wal6Frhgd0SiHOdo6Q1sx3T/++jMOKa8+Gbk9Vwgi7jggC4L2Njz0PVUrjTdR9/s+jF + d2k8KmMvgAcbYk/oKJZQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jABPl-0007AB-9M; Fri, 06 Mar 2020 11:45:13 +0000 + id 1jBeOn-0005AX-Nk; Tue, 10 Mar 2020 12:54:17 +0000 Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jABOa-00052y-EU; Fri, 06 Mar 2020 11:44:02 +0000 + id 1jBeNn-0004A1-CM; Tue, 10 Mar 2020 12:53:16 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id F3588AF77; - Fri, 6 Mar 2020 11:43:58 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id D2329B134; + Tue, 10 Mar 2020 12:53:13 +0000 (UTC) From: Nicolas Saenz Julienne To: linux-kernel@vger.kernel.org, Mathias Nyman -Subject: [PATCH v4 4/4] USB: pci-quirks: Add Raspberry Pi 4 quirk -Date: Fri, 6 Mar 2020 12:43:48 +0100 -Message-Id: <20200306114348.5172-5-nsaenzjulienne@suse.de> +Subject: [PATCH v5 4/4] USB: pci-quirks: Add Raspberry Pi 4 quirk +Date: Tue, 10 Mar 2020 13:52:42 +0100 +Message-Id: <20200310125243.25805-5-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200306114348.5172-1-nsaenzjulienne@suse.de> -References: <20200306114348.5172-1-nsaenzjulienne@suse.de> +In-Reply-To: <20200310125243.25805-1-nsaenzjulienne@suse.de> +References: <20200310125243.25805-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200306_034400_661945_E65B756F -X-CRM114-Status: GOOD ( 14.98 ) +X-CRM114-CacheID: sfid-20200310_055315_576152_512D1DE7 +X-CRM114-Status: GOOD ( 14.95 ) X-Spam-Score: -2.3 (--) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (-2.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [195.135.220.15 listed in list.dnswl.org] + 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) + [195.135.220.15 listed in wl.mailspike.net] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders @@ -573,8 +580,8 @@ List-Help: List-Subscribe: , -Cc: f.fainelli@gmail.com, gregkh@linuxfoundation.org, - linux-usb@vger.kernel.org, +Cc: f.fainelli@gmail.com, sergei.shtylyov@cogentembedded.com, + gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, Nicolas Saenz Julienne , tim.gover@raspberrypi.org, bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, @@ -593,9 +600,11 @@ firmware interface, reflect that on the firmware interface Kconfg. Signed-off-by: Nicolas Saenz Julienne --- +Changes since v4: + - Do not split up error message + Changes since v3: - - Add more complete error message. - - Add braces around if statement + - Add more complete error message Changes since v1: - Make RASPBERRYPI_FIRMWARE dependent on this quirk to make sure it @@ -618,7 +627,7 @@ index ea869addc89b..40a468d712a5 100644 This option enables support for communicating with the firmware on the Raspberry Pi. diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c -index beb2efa71341..452f5f12b042 100644 +index beb2efa71341..0dc34668bb2a 100644 --- a/drivers/usb/host/pci-quirks.c +++ b/drivers/usb/host/pci-quirks.c @@ -16,6 +16,9 @@ @@ -647,9 +656,9 @@ index beb2efa71341..452f5f12b042 100644 + ret = rpi_firmware_init_vl805(pdev); + if (ret) { + /* Firmware might be outdated, or something failed */ -+ dev_warn(&pdev->dev, "Failed to load VL805's firmware: %d\n", ret); -+ dev_warn(&pdev->dev, "Will continue to attempt to work, " -+ "but bad things might happen. You should fix this...\n"); ++ dev_warn(&pdev->dev, ++ "Failed to load VL805's firmware: %d. Will continue to attempt to work, but bad things might happen. You should fix this...\n", ++ ret); + } + } + diff --git a/kernel.spec b/kernel.spec index ac395d6ab..d0e98d24b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -822,7 +822,7 @@ Patch304: ARM-tegra-usb-no-reset.patch # Raspberry Pi # https://patchwork.kernel.org/cover/11353083/ Patch310: arm64-pinctrl-bcm2835-Add-support-for-all-BCM2711-GPIOs.patch -# https://patchwork.kernel.org/cover/11423693/ +# v5 https://patchwork.kernel.org/cover/11429245/ Patch311: USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch # https://patchwork.kernel.org/patch/11372935/ Patch312: bcm2835-irqchip-Quiesce-IRQs-left-enabled-by-bootloader.patch From 4272e30abaf08f5ab2510f4e58091e7a5cfcccc7 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Thu, 12 Mar 2020 11:41:51 -0400 Subject: [PATCH 004/191] Add weak-modules packaging back for not-Fedora The weak-module scripts are used in EL, but have been problematic for Fedora, so only include them if the build target isn't Fedora. Signed-off-by: Jeremy Cline --- kernel.spec | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/kernel.spec b/kernel.spec index d0e98d24b..1d10a750f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -1883,6 +1883,9 @@ BuildKernel() { mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/extra mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/internal mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/updates +%if 0%{!?fedora:1} + mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/weak-updates +%endif # CONFIG_KERNEL_HEADER_TEST generates some extra files in the process of # testing so just delete find . -name *.h.s -delete @@ -2677,6 +2680,12 @@ fi\ # %define kernel_variant_posttrans() \ %{expand:%%posttrans %{?1:%{1}-}core}\ +%if 0%{!?fedora:1}\ +if [ -x %{_sbindir}/weak-modules ]\ +then\ + %{_sbindir}/weak-modules --add-kernel %{KVERREL}%{?1:+%{1}} || exit $?\ +fi\ +%endif\ /bin/kernel-install add %{KVERREL}%{?1:+%{1}} /lib/modules/%{KVERREL}%{?1:+%{1}}/vmlinuz || exit $?\ %{nil} @@ -2706,6 +2715,12 @@ fi}\ %define kernel_variant_preun() \ %{expand:%%preun %{?1:%{1}-}core}\ /bin/kernel-install remove %{KVERREL}%{?1:+%{1}} /lib/modules/%{KVERREL}%{?1:+%{1}}/vmlinuz || exit $?\ +%if 0%{!?fedora:1}\ +if [ -x %{_sbindir}/weak-modules ]\ +then\ + %{_sbindir}/weak-modules --remove-kernel %{KVERREL}%{?1:+%{1}} || exit $?\ +fi\ +%endif\ %{nil} %kernel_variant_preun @@ -2913,6 +2928,9 @@ fi /lib/modules/%{KVERREL}%{?3:+%{3}}/source\ /lib/modules/%{KVERREL}%{?3:+%{3}}/updates\ /lib/modules/%{KVERREL}%{?3:+%{3}}/bls.conf\ +%if 0%{!?fedora:1}\ +/lib/modules/%{KVERREL}%{?3:+%{3}}/weak-updates\ +%endif\ %{_datadir}/doc/kernel-keys/%{KVERREL}%{?3:+%{3}}/kernel-signing-ca.cer\ %ifarch s390x ppc64le\ %if 0%{!?4:1}\ From ae38ea397cb9f56c24e672f6087aa381a942ffeb Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Thu, 12 Mar 2020 11:45:10 -0400 Subject: [PATCH 005/191] Make HDR_ARCH_LIST conditional on the build target EL kernels don't target arm, just arm64, so if we're not building for Fedora drop arm. Signed-off-by: Jeremy Cline --- kernel.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel.spec b/kernel.spec index 1d10a750f..5a0c54483 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2431,7 +2431,11 @@ find $RPM_BUILD_ROOT/usr/include \ %endif %if %{with_cross_headers} +%if 0%{?fedora} HDR_ARCH_LIST='arm arm64 powerpc s390 x86' +%else +HDR_ARCH_LIST='arm64 powerpc s390 x86' +%endif mkdir -p $RPM_BUILD_ROOT/usr/tmp-headers for arch in $HDR_ARCH_LIST; do From 1f27ff9b148dfe1e6d57719659b8e1272b78ca14 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Thu, 12 Mar 2020 16:16:39 -0400 Subject: [PATCH 006/191] Reenable debugging options. --- kernel.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index 5a0c54483..b357e50ab 100644 --- a/kernel.spec +++ b/kernel.spec @@ -200,7 +200,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 1 +%define debugbuildsenabled 0 %if 0%{?fedora} # Kernel headers are being split out into a separate package From 4b64598f892382f7a56b84d9217ec6e4b8d2bfb7 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Thu, 12 Mar 2020 16:32:30 -0400 Subject: [PATCH 007/191] Linux v5.6-rc5-53-g3cc6e2c599cd --- gitrev | 2 +- kernel.spec | 2 +- sources | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gitrev b/gitrev index 3c1a2ee7c..a6e29dac6 100644 --- a/gitrev +++ b/gitrev @@ -1 +1 @@ -aeb542a1b5c507ea117d21c3e3e012ba16f065ac +3cc6e2c599cdca573a8f347aea5da4c855ff5a78 diff --git a/kernel.spec b/kernel.spec index b357e50ab..f0d4b8590 100644 --- a/kernel.spec +++ b/kernel.spec @@ -107,7 +107,7 @@ Summary: The Linux kernel # The rc snapshot level %global rcrev 5 # The git snapshot level -%define gitrev 0 +%define gitrev 1 # Set rpm version accordingly %define rpmversion 5.%{upstream_sublevel}.0 %endif diff --git a/sources b/sources index d5657c407..8d26ebda9 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ SHA512 (linux-5.5.tar.xz) = fa74fdabb5e63384a39e54da05b86a9ae9ea16179524b041fbbdffc7177e80b53600ae98d76be127ba216148f9dc55fe07ab20637e22c6d6030cb4aa09eb2f86 SHA512 (patch-5.6-rc5.xz) = 655239e008d72e1e172db5e46cb6af8095300ff81e19897cfdb493424104c4ac072b57594202310afa1a75309b08f9567347f014b8129789fd93e353daf1a980 +SHA512 (patch-5.6-rc5-git1.xz) = c21909a809e9dc89660aada39abf1f9a11150c054a438fea5941ada41145ce653508d21f4c73f8ae10ea746edf69ee1cd1887e013b3cb5f675c25152d83d7f05 From a221191b0149e6b4502c6d5eacbc390e0aa33af5 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Fri, 13 Mar 2020 12:59:06 -0400 Subject: [PATCH 008/191] Linux v5.6-rc5-204-g0d81a3f29c0a --- drm-dp-mst-fixes.patch | 578 ----------------------------------------- gitrev | 2 +- kernel.spec | 6 +- sources | 2 +- 4 files changed, 3 insertions(+), 585 deletions(-) delete mode 100644 drm-dp-mst-fixes.patch diff --git a/drm-dp-mst-fixes.patch b/drm-dp-mst-fixes.patch deleted file mode 100644 index d1e61f17d..000000000 --- a/drm-dp-mst-fixes.patch +++ /dev/null @@ -1,578 +0,0 @@ -From 5118c9aeafecbfa5c2a49d757c882c6033828e7e Mon Sep 17 00:00:00 2001 -From: Lyude Paul -Date: Fri, 6 Mar 2020 18:46:19 -0500 -Subject: [PATCH 1/4] drm/dp_mst: Rename drm_dp_mst_is_dp_mst_end_device() to - be less redundant - -It's already prefixed by dp_mst, so we don't really need to repeat -ourselves here. One of the changes I should have picked up originally -when reviewing MST DSC support. - -There should be no functional changes here - -Cc: Mikita Lipski -Cc: Sean Paul -Cc: Hans de Goede -Signed-off-by: Lyude Paul ---- - drivers/gpu/drm/drm_dp_mst_topology.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c -index cce0b1bba591..9188c53f5c96 100644 ---- a/drivers/gpu/drm/drm_dp_mst_topology.c -+++ b/drivers/gpu/drm/drm_dp_mst_topology.c -@@ -1935,7 +1935,7 @@ static u8 drm_dp_calculate_rad(struct drm_dp_mst_port *port, - return parent_lct + 1; - } - --static bool drm_dp_mst_is_dp_mst_end_device(u8 pdt, bool mcs) -+static bool drm_dp_mst_is_end_device(u8 pdt, bool mcs) - { - switch (pdt) { - case DP_PEER_DEVICE_DP_LEGACY_CONV: -@@ -1965,13 +1965,13 @@ drm_dp_port_set_pdt(struct drm_dp_mst_port *port, u8 new_pdt, - - /* Teardown the old pdt, if there is one */ - if (port->pdt != DP_PEER_DEVICE_NONE) { -- if (drm_dp_mst_is_dp_mst_end_device(port->pdt, port->mcs)) { -+ if (drm_dp_mst_is_end_device(port->pdt, port->mcs)) { - /* - * If the new PDT would also have an i2c bus, - * don't bother with reregistering it - */ - if (new_pdt != DP_PEER_DEVICE_NONE && -- drm_dp_mst_is_dp_mst_end_device(new_pdt, new_mcs)) { -+ drm_dp_mst_is_end_device(new_pdt, new_mcs)) { - port->pdt = new_pdt; - port->mcs = new_mcs; - return 0; -@@ -1991,7 +1991,7 @@ drm_dp_port_set_pdt(struct drm_dp_mst_port *port, u8 new_pdt, - port->mcs = new_mcs; - - if (port->pdt != DP_PEER_DEVICE_NONE) { -- if (drm_dp_mst_is_dp_mst_end_device(port->pdt, port->mcs)) { -+ if (drm_dp_mst_is_end_device(port->pdt, port->mcs)) { - /* add i2c over sideband */ - ret = drm_dp_mst_register_i2c_bus(&port->aux); - } else { -@@ -2172,7 +2172,7 @@ drm_dp_mst_port_add_connector(struct drm_dp_mst_branch *mstb, - } - - if (port->pdt != DP_PEER_DEVICE_NONE && -- drm_dp_mst_is_dp_mst_end_device(port->pdt, port->mcs)) { -+ drm_dp_mst_is_end_device(port->pdt, port->mcs)) { - port->cached_edid = drm_get_edid(port->connector, - &port->aux.ddc); - drm_connector_set_tile_property(port->connector); --- -2.25.1 - -From 270862e1b736dc0e7c56a48fbb61b5ec76236982 Mon Sep 17 00:00:00 2001 -From: Lyude Paul -Date: Fri, 6 Mar 2020 18:46:20 -0500 -Subject: [PATCH 2/4] drm/dp_mst: Use full_pbn instead of available_pbn for - bandwidth checks - -DisplayPort specifications are fun. For a while, it's been really -unclear to us what available_pbn actually does. There's a somewhat vague -explanation in the DisplayPort spec (starting from 1.2) that partially -explains it: - - The minimum payload bandwidth number supported by the path. Each node - updates this number with its available payload bandwidth number if its - payload bandwidth number is less than that in the Message Transaction - reply. - -So, it sounds like available_pbn represents the smallest link rate in -use between the source and the branch device. Cool, so full_pbn is just -the highest possible PBN that the branch device supports right? - -Well, we assumed that for quite a while until Sean Paul noticed that on -some MST hubs, available_pbn will actually get set to 0 whenever there's -any active payloads on the respective branch device. This caused quite a -bit of confusion since clearing the payload ID table would end up fixing -the available_pbn value. - -So, we just went with that until commit cd82d82cbc04 ("drm/dp_mst: Add -branch bandwidth validation to MST atomic check") started breaking -people's setups due to us getting erroneous available_pbn values. So, we -did some more digging and got confused until we finally looked at the -definition for full_pbn: - - The bandwidth of the link at the trained link rate and lane count - between the DP Source device and the DP Sink device with no time slots - allocated to VC Payloads, represented as a Payload Bandwidth Number. As - with the Available_Payload_Bandwidth_Number, this number is determined - by the link with the lowest lane count and link rate. - -That's what we get for not reading specs closely enough, hehe. So, since -full_pbn is definitely what we want for doing bandwidth restriction -checks - let's start using that instead and ignore available_pbn -entirely. - -Signed-off-by: Lyude Paul -Fixes: cd82d82cbc04 ("drm/dp_mst: Add branch bandwidth validation to MST atomic check") -Cc: Mikita Lipski -Cc: Hans de Goede -Cc: Sean Paul ---- - drivers/gpu/drm/drm_dp_mst_topology.c | 15 +++++++-------- - include/drm/drm_dp_mst_helper.h | 4 ++-- - 2 files changed, 9 insertions(+), 10 deletions(-) - -diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c -index 9188c53f5c96..7df7676b45c4 100644 ---- a/drivers/gpu/drm/drm_dp_mst_topology.c -+++ b/drivers/gpu/drm/drm_dp_mst_topology.c -@@ -2309,7 +2309,7 @@ drm_dp_mst_handle_link_address_port(struct drm_dp_mst_branch *mstb, - port); - } - } else { -- port->available_pbn = 0; -+ port->full_pbn = 0; - } - } - -@@ -2404,7 +2404,7 @@ drm_dp_mst_handle_conn_stat(struct drm_dp_mst_branch *mstb, - if (port->ddps) { - dowork = true; - } else { -- port->available_pbn = 0; -+ port->full_pbn = 0; - } - } - -@@ -2556,7 +2556,7 @@ static int drm_dp_check_and_send_link_address(struct drm_dp_mst_topology_mgr *mg - if (port->input || !port->ddps) - continue; - -- if (!port->available_pbn) { -+ if (!port->full_pbn) { - drm_modeset_lock(&mgr->base.lock, NULL); - drm_dp_send_enum_path_resources(mgr, mstb, port); - drm_modeset_unlock(&mgr->base.lock); -@@ -3002,8 +3002,7 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, - path_res->port_number, - path_res->full_payload_bw_number, - path_res->avail_payload_bw_number); -- port->available_pbn = -- path_res->avail_payload_bw_number; -+ port->full_pbn = path_res->full_payload_bw_number; - port->fec_capable = path_res->fec_capable; - } - } -@@ -3598,7 +3597,7 @@ drm_dp_mst_topology_mgr_invalidate_mstb(struct drm_dp_mst_branch *mstb) - - list_for_each_entry(port, &mstb->ports, next) { - /* The PBN for each port will also need to be re-probed */ -- port->available_pbn = 0; -+ port->full_pbn = 0; - - if (port->mstb) - drm_dp_mst_topology_mgr_invalidate_mstb(port->mstb); -@@ -4842,8 +4841,8 @@ int drm_dp_mst_atomic_check_bw_limit(struct drm_dp_mst_branch *branch, - if (drm_dp_mst_atomic_check_bw_limit(port->mstb, mst_state)) - return -ENOSPC; - -- if (port->available_pbn > 0) -- pbn_limit = port->available_pbn; -+ if (port->full_pbn > 0) -+ pbn_limit = port->full_pbn; - } - DRM_DEBUG_ATOMIC("[MST BRANCH:%p] branch has %d PBN available\n", - branch, pbn_limit); -diff --git a/include/drm/drm_dp_mst_helper.h b/include/drm/drm_dp_mst_helper.h -index bcb39da9adb4..41725d88d27e 100644 ---- a/include/drm/drm_dp_mst_helper.h -+++ b/include/drm/drm_dp_mst_helper.h -@@ -81,7 +81,7 @@ struct drm_dp_vcpi { - * &drm_dp_mst_topology_mgr.base.lock. - * @num_sdp_stream_sinks: Number of stream sinks. Protected by - * &drm_dp_mst_topology_mgr.base.lock. -- * @available_pbn: Available bandwidth for this port. Protected by -+ * @full_pbn: Max possible bandwidth for this port. Protected by - * &drm_dp_mst_topology_mgr.base.lock. - * @next: link to next port on this branch device - * @aux: i2c aux transport to talk to device connected to this port, protected -@@ -126,7 +126,7 @@ struct drm_dp_mst_port { - u8 dpcd_rev; - u8 num_sdp_streams; - u8 num_sdp_stream_sinks; -- uint16_t available_pbn; -+ uint16_t full_pbn; - struct list_head next; - /** - * @mstb: the branch device connected to this port, if there is one. --- -2.25.1 - -From 6fceb6d9d9cdef2e26558f6b75700cc0f07a812c Mon Sep 17 00:00:00 2001 -From: Lyude Paul -Date: Fri, 6 Mar 2020 18:46:21 -0500 -Subject: [PATCH 3/4] drm/dp_mst: Reprobe path resources in CSN handler - -We used to punt off reprobing path resources to the link address probe -work, but now that we handle CSNs asynchronously from the driver's HPD -handling we can do whatever the heck we want from the CSN! - -So, reprobe the path resources from drm_dp_mst_handle_conn_stat(). Also, -get rid of the path resource reprobing code in -drm_dp_check_and_send_link_address() since it's needlessly complicated -when we already reprobe path resources from -drm_dp_handle_link_address_port(). And finally, teach -drm_dp_send_enum_path_resources() to return 1 on PBN changes so we know -if we need to send another hotplug or not. - -This fixes issues where we've indicated to userspace that a port has -just been connected, before we actually probed it's available PBN - -something that results in unexpected atomic check failures. - -Signed-off-by: Lyude Paul -Fixes: cd82d82cbc04 ("drm/dp_mst: Add branch bandwidth validation to MST atomic check") -Cc: Mikita Lipski -Cc: Hans de Goede -Cc: Sean Paul ---- - drivers/gpu/drm/drm_dp_mst_topology.c | 48 ++++++++++++++------------- - 1 file changed, 25 insertions(+), 23 deletions(-) - -diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c -index 7df7676b45c4..112972031a84 100644 ---- a/drivers/gpu/drm/drm_dp_mst_topology.c -+++ b/drivers/gpu/drm/drm_dp_mst_topology.c -@@ -2302,12 +2302,16 @@ drm_dp_mst_handle_link_address_port(struct drm_dp_mst_branch *mstb, - mutex_unlock(&mgr->lock); - } - -- if (old_ddps != port->ddps) { -- if (port->ddps) { -- if (!port->input) { -- drm_dp_send_enum_path_resources(mgr, mstb, -- port); -- } -+ /* -+ * Reprobe PBN caps on both hotplug, and when re-probing the link -+ * for our parent mstb -+ */ -+ if (old_ddps != port->ddps || !created) { -+ if (port->ddps && !port->input) { -+ ret = drm_dp_send_enum_path_resources(mgr, mstb, -+ port); -+ if (ret == 1) -+ changed = true; - } else { - port->full_pbn = 0; - } -@@ -2401,11 +2405,10 @@ drm_dp_mst_handle_conn_stat(struct drm_dp_mst_branch *mstb, - port->ddps = conn_stat->displayport_device_plug_status; - - if (old_ddps != port->ddps) { -- if (port->ddps) { -- dowork = true; -- } else { -+ if (port->ddps && !port->input) -+ drm_dp_send_enum_path_resources(mgr, mstb, port); -+ else - port->full_pbn = 0; -- } - } - - new_pdt = port->input ? DP_PEER_DEVICE_NONE : conn_stat->peer_device_type; -@@ -2556,13 +2559,6 @@ static int drm_dp_check_and_send_link_address(struct drm_dp_mst_topology_mgr *mg - if (port->input || !port->ddps) - continue; - -- if (!port->full_pbn) { -- drm_modeset_lock(&mgr->base.lock, NULL); -- drm_dp_send_enum_path_resources(mgr, mstb, port); -- drm_modeset_unlock(&mgr->base.lock); -- changed = true; -- } -- - if (port->mstb) - mstb_child = drm_dp_mst_topology_get_mstb_validated( - mgr, port->mstb); -@@ -2990,6 +2986,7 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, - - ret = drm_dp_mst_wait_tx_reply(mstb, txmsg); - if (ret > 0) { -+ ret = 0; - path_res = &txmsg->reply.u.path_resources; - - if (txmsg->reply.reply_type == DP_SIDEBAND_REPLY_NAK) { -@@ -3002,13 +2999,22 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, - path_res->port_number, - path_res->full_payload_bw_number, - path_res->avail_payload_bw_number); -+ -+ /* -+ * If something changed, make sure we send a -+ * hotplug -+ */ -+ if (port->full_pbn != path_res->full_payload_bw_number || -+ port->fec_capable != path_res->fec_capable) -+ ret = 1; -+ - port->full_pbn = path_res->full_payload_bw_number; - port->fec_capable = path_res->fec_capable; - } - } - - kfree(txmsg); -- return 0; -+ return ret; - } - - static struct drm_dp_mst_port *drm_dp_get_last_connected_port_to_mstb(struct drm_dp_mst_branch *mstb) -@@ -3595,13 +3601,9 @@ drm_dp_mst_topology_mgr_invalidate_mstb(struct drm_dp_mst_branch *mstb) - /* The link address will need to be re-sent on resume */ - mstb->link_address_sent = false; - -- list_for_each_entry(port, &mstb->ports, next) { -- /* The PBN for each port will also need to be re-probed */ -- port->full_pbn = 0; -- -+ list_for_each_entry(port, &mstb->ports, next) - if (port->mstb) - drm_dp_mst_topology_mgr_invalidate_mstb(port->mstb); -- } - } - - /** --- -2.25.1 - -From 20c8afc6f3f18187517411323a125dfff3c014e7 Mon Sep 17 00:00:00 2001 -From: Lyude Paul -Date: Fri, 6 Mar 2020 18:46:22 -0500 -Subject: [PATCH 4/4] drm/dp_mst: Rewrite and fix bandwidth limit checks -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Sigh, this is mostly my fault for not giving commit cd82d82cbc04 -("drm/dp_mst: Add branch bandwidth validation to MST atomic check") -enough scrutiny during review. The way we're checking bandwidth -limitations here is mostly wrong: - -For starters, drm_dp_mst_atomic_check_bw_limit() determines the -pbn_limit of a branch by simply scanning each port on the current branch -device, then uses the last non-zero full_pbn value that it finds. It -then counts the sum of the PBN used on each branch device for that -level, and compares against the full_pbn value it found before. - -This is wrong because ports can and will have different PBN limitations -on many hubs, especially since a number of DisplayPort hubs out there -will be clever and only use the smallest link rate required for each -downstream sink - potentially giving every port a different full_pbn -value depending on what link rate it's trained at. This means with our -current code, which max PBN value we end up with is not well defined. - -Additionally, we also need to remember when checking bandwidth -limitations that the top-most device in any MST topology is a branch -device, not a port. This means that the first level of a topology -doesn't technically have a full_pbn value that needs to be checked. -Instead, we should assume that so long as our VCPI allocations fit we're -within the bandwidth limitations of the primary MSTB. - -We do however, want to check full_pbn on every port including those of -the primary MSTB. However, it's important to keep in mind that this -value represents the minimum link rate /between a port's sink or mstb, -and the mstb itself/. A quick diagram to explain: - - MSTB #1 - / \ - / \ - Port #1 Port #2 - full_pbn for Port #1 → | | ← full_pbn for Port #2 - Sink #1 MSTB #2 - | - etc... - -Note that in the above diagram, the combined PBN from all VCPI -allocations on said hub should not exceed the full_pbn value of port #2, -and the display configuration on sink #1 should not exceed the full_pbn -value of port #1. However, port #1 and port #2 can otherwise consume as -much bandwidth as they want so long as their VCPI allocations still fit. - -And finally - our current bandwidth checking code also makes the mistake -of not checking whether something is an end device or not before trying -to traverse down it. - -So, let's fix it by rewriting our bandwidth checking helpers. We split -the function into one part for handling branches which simply adds up -the total PBN on each branch and returns it, and one for checking each -port to ensure we're not going over its PBN limit. Phew. - -This should fix regressions seen, where we erroneously reject display -configurations due to thinking they're going over our bandwidth limits -when they're not. - -Changes since v1: -* Took an even closer look at how PBN limitations are supposed to be - handled, and did some experimenting with Sean Paul. Ended up rewriting - these helpers again, but this time they should actually be correct! - -Signed-off-by: Lyude Paul -Fixes: cd82d82cbc04 ("drm/dp_mst: Add branch bandwidth validation to MST atomic check") -Cc: Mikita Lipski -Cc: Sean Paul -Cc: Hans de Goede ---- - drivers/gpu/drm/drm_dp_mst_topology.c | 120 ++++++++++++++++++++------ - 1 file changed, 94 insertions(+), 26 deletions(-) - -diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c -index 112972031a84..415bd0770eab 100644 ---- a/drivers/gpu/drm/drm_dp_mst_topology.c -+++ b/drivers/gpu/drm/drm_dp_mst_topology.c -@@ -4830,41 +4830,103 @@ static bool drm_dp_mst_port_downstream_of_branch(struct drm_dp_mst_port *port, - return false; - } - --static inline --int drm_dp_mst_atomic_check_bw_limit(struct drm_dp_mst_branch *branch, -- struct drm_dp_mst_topology_state *mst_state) -+static int -+drm_dp_mst_atomic_check_port_bw_limit(struct drm_dp_mst_port *port, -+ struct drm_dp_mst_topology_state *state); -+ -+static int -+drm_dp_mst_atomic_check_mstb_bw_limit(struct drm_dp_mst_branch *mstb, -+ struct drm_dp_mst_topology_state *state) - { -- struct drm_dp_mst_port *port; - struct drm_dp_vcpi_allocation *vcpi; -- int pbn_limit = 0, pbn_used = 0; -+ struct drm_dp_mst_port *port; -+ int pbn_used = 0, ret; -+ bool found = false; - -- list_for_each_entry(port, &branch->ports, next) { -- if (port->mstb) -- if (drm_dp_mst_atomic_check_bw_limit(port->mstb, mst_state)) -- return -ENOSPC; -+ /* Check that we have at least one port in our state that's downstream -+ * of this branch, otherwise we can skip this branch -+ */ -+ list_for_each_entry(vcpi, &state->vcpis, next) { -+ if (!vcpi->pbn || -+ !drm_dp_mst_port_downstream_of_branch(vcpi->port, -+ mstb)) -+ continue; - -- if (port->full_pbn > 0) -- pbn_limit = port->full_pbn; -+ found = true; -+ break; - } -- DRM_DEBUG_ATOMIC("[MST BRANCH:%p] branch has %d PBN available\n", -- branch, pbn_limit); -+ if (!found) -+ return 0; - -- list_for_each_entry(vcpi, &mst_state->vcpis, next) { -- if (!vcpi->pbn) -- continue; -+ if (mstb->port_parent) -+ DRM_DEBUG_ATOMIC("[MSTB:%p] [MST PORT:%p] Checking bandwidth limits on [MSTB:%p]\n", -+ mstb->port_parent->parent, mstb->port_parent, -+ mstb); -+ else -+ DRM_DEBUG_ATOMIC("[MSTB:%p] Checking bandwidth limits\n", -+ mstb); -+ -+ list_for_each_entry(port, &mstb->ports, next) { -+ ret = drm_dp_mst_atomic_check_port_bw_limit(port, state); -+ if (ret < 0) -+ return ret; - -- if (drm_dp_mst_port_downstream_of_branch(vcpi->port, branch)) -- pbn_used += vcpi->pbn; -+ pbn_used += ret; - } -- DRM_DEBUG_ATOMIC("[MST BRANCH:%p] branch used %d PBN\n", -- branch, pbn_used); - -- if (pbn_used > pbn_limit) { -- DRM_DEBUG_ATOMIC("[MST BRANCH:%p] No available bandwidth\n", -- branch); -+ return pbn_used; -+} -+ -+static int -+drm_dp_mst_atomic_check_port_bw_limit(struct drm_dp_mst_port *port, -+ struct drm_dp_mst_topology_state *state) -+{ -+ struct drm_dp_vcpi_allocation *vcpi; -+ int pbn_used = 0; -+ -+ if (port->pdt == DP_PEER_DEVICE_NONE) -+ return 0; -+ -+ if (drm_dp_mst_is_end_device(port->pdt, port->mcs)) { -+ bool found = false; -+ -+ list_for_each_entry(vcpi, &state->vcpis, next) { -+ if (vcpi->port != port) -+ continue; -+ if (!vcpi->pbn) -+ return 0; -+ -+ found = true; -+ break; -+ } -+ if (!found) -+ return 0; -+ -+ /* This should never happen, as it means we tried to -+ * set a mode before querying the full_pbn -+ */ -+ if (WARN_ON(!port->full_pbn)) -+ return -EINVAL; -+ -+ pbn_used = vcpi->pbn; -+ } else { -+ pbn_used = drm_dp_mst_atomic_check_mstb_bw_limit(port->mstb, -+ state); -+ if (pbn_used <= 0) -+ return 0; -+ } -+ -+ if (pbn_used > port->full_pbn) { -+ DRM_DEBUG_ATOMIC("[MSTB:%p] [MST PORT:%p] required PBN of %d exceeds port limit of %d\n", -+ port->parent, port, pbn_used, -+ port->full_pbn); - return -ENOSPC; - } -- return 0; -+ -+ DRM_DEBUG_ATOMIC("[MSTB:%p] [MST PORT:%p] uses %d out of %d PBN\n", -+ port->parent, port, pbn_used, port->full_pbn); -+ -+ return pbn_used; - } - - static inline int -@@ -5062,9 +5124,15 @@ int drm_dp_mst_atomic_check(struct drm_atomic_state *state) - ret = drm_dp_mst_atomic_check_vcpi_alloc_limit(mgr, mst_state); - if (ret) - break; -- ret = drm_dp_mst_atomic_check_bw_limit(mgr->mst_primary, mst_state); -- if (ret) -+ -+ mutex_lock(&mgr->lock); -+ ret = drm_dp_mst_atomic_check_mstb_bw_limit(mgr->mst_primary, -+ mst_state); -+ mutex_unlock(&mgr->lock); -+ if (ret < 0) - break; -+ else -+ ret = 0; - } - - return ret; --- -2.25.1 - diff --git a/gitrev b/gitrev index a6e29dac6..4c89cd14e 100644 --- a/gitrev +++ b/gitrev @@ -1 +1 @@ -3cc6e2c599cdca573a8f347aea5da4c855ff5a78 +0d81a3f29c0afb18ba2b1275dcccf21e0dd4da38 diff --git a/kernel.spec b/kernel.spec index f0d4b8590..46a27bc93 100644 --- a/kernel.spec +++ b/kernel.spec @@ -107,7 +107,7 @@ Summary: The Linux kernel # The rc snapshot level %global rcrev 5 # The git snapshot level -%define gitrev 1 +%define gitrev 2 # Set rpm version accordingly %define rpmversion 5.%{upstream_sublevel}.0 %endif @@ -879,10 +879,6 @@ Patch504: 0001-mm-kmemleak-skip-late_init-if-not-skip-disable.patch # https://lkml.org/lkml/2019/8/29/1772 Patch505: ARM-fix-__get_user_check-in-case-uaccess_-calls-are-not-inlined.patch -# Fix issues with only 1 monitor working on DP-MST docks (rhbz#1809681) -# These patches should show up in a future 5.6-rc# release -Patch506: drm-dp-mst-fixes.patch - # More DP-MST fixes, pending for 5.7 Patch507: drm-dp-mst-error-handling-improvements.patch diff --git a/sources b/sources index 8d26ebda9..49af8835e 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-5.5.tar.xz) = fa74fdabb5e63384a39e54da05b86a9ae9ea16179524b041fbbdffc7177e80b53600ae98d76be127ba216148f9dc55fe07ab20637e22c6d6030cb4aa09eb2f86 SHA512 (patch-5.6-rc5.xz) = 655239e008d72e1e172db5e46cb6af8095300ff81e19897cfdb493424104c4ac072b57594202310afa1a75309b08f9567347f014b8129789fd93e353daf1a980 -SHA512 (patch-5.6-rc5-git1.xz) = c21909a809e9dc89660aada39abf1f9a11150c054a438fea5941ada41145ce653508d21f4c73f8ae10ea746edf69ee1cd1887e013b3cb5f675c25152d83d7f05 +SHA512 (patch-5.6-rc5-git2.xz) = 76f7b2da1e1bef6f85ca23c1f4a76eacc9e4fc00354b9a502de25bbb9b2a2fdf699baf9a2ac65d66daacb100bfb23b400aec2965e6fa06fd1e6a4892f1340bd9 From 508adf19e302e7754cfe6f91c2a7ed3258ad655a Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 16 Mar 2020 11:56:08 +0000 Subject: [PATCH 009/191] arm: minor updates --- .../fedora/generic/CONFIG_MTD_NAND_FSL_IFC | 1 - .../generic/{ => arm}/CONFIG_GPIO_MPC8XXX | 0 .../arm/{armv7 => }/CONFIG_MTD_DATAFLASH | 0 .../arm/{armv7 => }/CONFIG_MTD_DATAFLASH_OTP | 0 .../CONFIG_MTD_DATAFLASH_WRITE_VERIFY | 0 .../generic/arm/CONFIG_MTD_PHYSMAP_GEMINI | 1 + .../generic/arm/CONFIG_MTD_PHYSMAP_IXP4XX | 1 + .../fedora/generic/arm/CONFIG_MTD_PHYSMAP_OF | 2 +- .../generic/arm/CONFIG_MTD_PHYSMAP_VERSATILE | 1 + .../generic/arm/{armv7 => }/CONFIG_MTD_SST25L | 0 .../generic/arm/CONFIG_RTC_DRV_PCF85363 | 1 + .../generic/arm/aarch64/CONFIG_CLK_QORIQ | 2 +- .../arm/aarch64/CONFIG_MTD_NAND_FSL_IFC | 1 + .../arm/aarch64/CONFIG_NET_DSA_MSCC_FELIX | 1 + .../generic/arm/aarch64/CONFIG_QORIQ_CPUFREQ | 1 + .../arm/armv7/{armv7 => }/CONFIG_SOC_LS1021A | 0 .../generic/arm/armv7/CONFIG_SPI_FSL_SPI | 1 + kernel-aarch64-debug-fedora.config | 21 ++++++++++++------- kernel-aarch64-fedora.config | 21 ++++++++++++------- kernel-armv7hl-debug-fedora.config | 10 +++++---- kernel-armv7hl-fedora.config | 10 +++++---- kernel-armv7hl-lpae-debug-fedora.config | 11 ++++++---- kernel-armv7hl-lpae-fedora.config | 11 ++++++---- kernel-i686-debug-fedora.config | 2 -- kernel-i686-fedora.config | 2 -- kernel-ppc64le-debug-fedora.config | 2 -- kernel-ppc64le-fedora.config | 2 -- kernel-s390x-debug-fedora.config | 2 -- kernel-s390x-fedora.config | 2 -- kernel-x86_64-debug-fedora.config | 2 -- kernel-x86_64-fedora.config | 2 -- kernel.spec | 16 +++++++------- 32 files changed, 70 insertions(+), 59 deletions(-) delete mode 100644 configs/fedora/generic/CONFIG_MTD_NAND_FSL_IFC rename configs/fedora/generic/{ => arm}/CONFIG_GPIO_MPC8XXX (100%) rename configs/fedora/generic/arm/{armv7 => }/CONFIG_MTD_DATAFLASH (100%) rename configs/fedora/generic/arm/{armv7 => }/CONFIG_MTD_DATAFLASH_OTP (100%) rename configs/fedora/generic/arm/{armv7 => }/CONFIG_MTD_DATAFLASH_WRITE_VERIFY (100%) create mode 100644 configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_GEMINI create mode 100644 configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_IXP4XX create mode 100644 configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_VERSATILE rename configs/fedora/generic/arm/{armv7 => }/CONFIG_MTD_SST25L (100%) create mode 100644 configs/fedora/generic/arm/CONFIG_RTC_DRV_PCF85363 create mode 100644 configs/fedora/generic/arm/aarch64/CONFIG_MTD_NAND_FSL_IFC create mode 100644 configs/fedora/generic/arm/aarch64/CONFIG_NET_DSA_MSCC_FELIX create mode 100644 configs/fedora/generic/arm/aarch64/CONFIG_QORIQ_CPUFREQ rename configs/fedora/generic/arm/armv7/{armv7 => }/CONFIG_SOC_LS1021A (100%) create mode 100644 configs/fedora/generic/arm/armv7/CONFIG_SPI_FSL_SPI diff --git a/configs/fedora/generic/CONFIG_MTD_NAND_FSL_IFC b/configs/fedora/generic/CONFIG_MTD_NAND_FSL_IFC deleted file mode 100644 index b8a44ee19..000000000 --- a/configs/fedora/generic/CONFIG_MTD_NAND_FSL_IFC +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_MTD_NAND_FSL_IFC is not set diff --git a/configs/fedora/generic/CONFIG_GPIO_MPC8XXX b/configs/fedora/generic/arm/CONFIG_GPIO_MPC8XXX similarity index 100% rename from configs/fedora/generic/CONFIG_GPIO_MPC8XXX rename to configs/fedora/generic/arm/CONFIG_GPIO_MPC8XXX diff --git a/configs/fedora/generic/arm/armv7/CONFIG_MTD_DATAFLASH b/configs/fedora/generic/arm/CONFIG_MTD_DATAFLASH similarity index 100% rename from configs/fedora/generic/arm/armv7/CONFIG_MTD_DATAFLASH rename to configs/fedora/generic/arm/CONFIG_MTD_DATAFLASH diff --git a/configs/fedora/generic/arm/armv7/CONFIG_MTD_DATAFLASH_OTP b/configs/fedora/generic/arm/CONFIG_MTD_DATAFLASH_OTP similarity index 100% rename from configs/fedora/generic/arm/armv7/CONFIG_MTD_DATAFLASH_OTP rename to configs/fedora/generic/arm/CONFIG_MTD_DATAFLASH_OTP diff --git a/configs/fedora/generic/arm/armv7/CONFIG_MTD_DATAFLASH_WRITE_VERIFY b/configs/fedora/generic/arm/CONFIG_MTD_DATAFLASH_WRITE_VERIFY similarity index 100% rename from configs/fedora/generic/arm/armv7/CONFIG_MTD_DATAFLASH_WRITE_VERIFY rename to configs/fedora/generic/arm/CONFIG_MTD_DATAFLASH_WRITE_VERIFY diff --git a/configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_GEMINI b/configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_GEMINI new file mode 100644 index 000000000..0a5178936 --- /dev/null +++ b/configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_GEMINI @@ -0,0 +1 @@ +# CONFIG_MTD_PHYSMAP_GEMINI is not set diff --git a/configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_IXP4XX b/configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_IXP4XX new file mode 100644 index 000000000..51968d79e --- /dev/null +++ b/configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_IXP4XX @@ -0,0 +1 @@ +# CONFIG_MTD_PHYSMAP_IXP4XX is not set diff --git a/configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_OF b/configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_OF index 20f59ebc7..6cdadf044 100644 --- a/configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_OF +++ b/configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_OF @@ -1 +1 @@ -# CONFIG_MTD_PHYSMAP_OF is not set +CONFIG_MTD_PHYSMAP_OF=y diff --git a/configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_VERSATILE b/configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_VERSATILE new file mode 100644 index 000000000..54ac1e2a8 --- /dev/null +++ b/configs/fedora/generic/arm/CONFIG_MTD_PHYSMAP_VERSATILE @@ -0,0 +1 @@ +# CONFIG_MTD_PHYSMAP_VERSATILE is not set diff --git a/configs/fedora/generic/arm/armv7/CONFIG_MTD_SST25L b/configs/fedora/generic/arm/CONFIG_MTD_SST25L similarity index 100% rename from configs/fedora/generic/arm/armv7/CONFIG_MTD_SST25L rename to configs/fedora/generic/arm/CONFIG_MTD_SST25L diff --git a/configs/fedora/generic/arm/CONFIG_RTC_DRV_PCF85363 b/configs/fedora/generic/arm/CONFIG_RTC_DRV_PCF85363 new file mode 100644 index 000000000..41451f50b --- /dev/null +++ b/configs/fedora/generic/arm/CONFIG_RTC_DRV_PCF85363 @@ -0,0 +1 @@ +CONFIG_RTC_DRV_PCF85363=m diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_CLK_QORIQ b/configs/fedora/generic/arm/aarch64/CONFIG_CLK_QORIQ index b05638e5c..def0884d5 100644 --- a/configs/fedora/generic/arm/aarch64/CONFIG_CLK_QORIQ +++ b/configs/fedora/generic/arm/aarch64/CONFIG_CLK_QORIQ @@ -1 +1 @@ -# CONFIG_CLK_QORIQ is not set +CONFIG_CLK_QORIQ=y diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_MTD_NAND_FSL_IFC b/configs/fedora/generic/arm/aarch64/CONFIG_MTD_NAND_FSL_IFC new file mode 100644 index 000000000..38acef3a9 --- /dev/null +++ b/configs/fedora/generic/arm/aarch64/CONFIG_MTD_NAND_FSL_IFC @@ -0,0 +1 @@ +CONFIG_MTD_NAND_FSL_IFC=m diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_NET_DSA_MSCC_FELIX b/configs/fedora/generic/arm/aarch64/CONFIG_NET_DSA_MSCC_FELIX new file mode 100644 index 000000000..47506f794 --- /dev/null +++ b/configs/fedora/generic/arm/aarch64/CONFIG_NET_DSA_MSCC_FELIX @@ -0,0 +1 @@ +CONFIG_NET_DSA_MSCC_FELIX=m diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_QORIQ_CPUFREQ b/configs/fedora/generic/arm/aarch64/CONFIG_QORIQ_CPUFREQ new file mode 100644 index 000000000..f70531603 --- /dev/null +++ b/configs/fedora/generic/arm/aarch64/CONFIG_QORIQ_CPUFREQ @@ -0,0 +1 @@ +CONFIG_QORIQ_CPUFREQ=m diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_SOC_LS1021A b/configs/fedora/generic/arm/armv7/CONFIG_SOC_LS1021A similarity index 100% rename from configs/fedora/generic/arm/armv7/armv7/CONFIG_SOC_LS1021A rename to configs/fedora/generic/arm/armv7/CONFIG_SOC_LS1021A diff --git a/configs/fedora/generic/arm/armv7/CONFIG_SPI_FSL_SPI b/configs/fedora/generic/arm/armv7/CONFIG_SPI_FSL_SPI new file mode 100644 index 000000000..834ceae37 --- /dev/null +++ b/configs/fedora/generic/arm/armv7/CONFIG_SPI_FSL_SPI @@ -0,0 +1 @@ +CONFIG_SPI_FSL_SPI=m diff --git a/kernel-aarch64-debug-fedora.config b/kernel-aarch64-debug-fedora.config index a45100dcb..5b5334f9a 100644 --- a/kernel-aarch64-debug-fedora.config +++ b/kernel-aarch64-debug-fedora.config @@ -973,7 +973,7 @@ CONFIG_CLK_IMX8MN=y CONFIG_CLK_IMX8MQ=y CONFIG_CLK_IMX8QXP=y CONFIG_CLK_LS1028A_PLLDIG=y -# CONFIG_CLK_QORIQ is not set +CONFIG_CLK_QORIQ=y CONFIG_CLK_RASPBERRYPI=y # CONFIG_CLK_SIFIVE is not set CONFIG_CLK_SP810=y @@ -3711,7 +3711,9 @@ CONFIG_MTD_CFI=m CONFIG_MTD_CFI_STAA=m # CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_DATAFLASH is not set +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_DATAFLASH_OTP=y +CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y # CONFIG_MTD_DOCG3 is not set # CONFIG_MTD_HYPERBUS is not set # CONFIG_MTD_INTEL_VR_NOR is not set @@ -3733,7 +3735,7 @@ CONFIG_MTD_NAND_CADENCE=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set +CONFIG_MTD_NAND_FSL_IFC=m # CONFIG_MTD_NAND_GPIO is not set # CONFIG_MTD_NAND_HISI504 is not set CONFIG_MTD_NAND_MARVELL=m @@ -3753,8 +3755,11 @@ CONFIG_MTD_OF_PARTS=m # CONFIG_MTD_PARTITIONED_MASTER is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_PHYSMAP_COMPAT is not set +# CONFIG_MTD_PHYSMAP_GEMINI is not set +# CONFIG_MTD_PHYSMAP_IXP4XX is not set CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_OF is not set +CONFIG_MTD_PHYSMAP_OF=y +# CONFIG_MTD_PHYSMAP_VERSATILE is not set # CONFIG_MTD_PLATRAM is not set # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_RAM is not set @@ -3766,7 +3771,7 @@ CONFIG_MTD_RAW_NAND=m CONFIG_MTD_SPI_NAND=m CONFIG_MTD_SPI_NOR=m # CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set -# CONFIG_MTD_SST25L is not set +CONFIG_MTD_SST25L=m # CONFIG_MTD_SWAP is not set # CONFIG_MTD_TESTS is not set CONFIG_MTD_UBI_BEB_LIMIT=20 @@ -3869,7 +3874,7 @@ CONFIG_NET_DSA=m # CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set CONFIG_NET_DSA_MICROCHIP_KSZ9477=m CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m -# CONFIG_NET_DSA_MSCC_FELIX is not set +CONFIG_NET_DSA_MSCC_FELIX=m CONFIG_NET_DSA_MT7530=m # CONFIG_NET_DSA_MV88E6060 is not set CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y @@ -4944,7 +4949,7 @@ CONFIG_QLCNIC_SRIOV=y CONFIG_QLGE=m # CONFIG_QNX4FS_FS is not set # CONFIG_QNX6FS_FS is not set -# CONFIG_QORIQ_CPUFREQ is not set +CONFIG_QORIQ_CPUFREQ=m CONFIG_QORIQ_THERMAL=m CONFIG_QRTR=m CONFIG_QRTR_SMD=m @@ -5270,7 +5275,7 @@ CONFIG_RTC_DRV_PCF2123=m CONFIG_RTC_DRV_PCF2127=m CONFIG_RTC_DRV_PCF85063=m CONFIG_RTC_DRV_PCF8523=m -# CONFIG_RTC_DRV_PCF85363 is not set +CONFIG_RTC_DRV_PCF85363=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m # CONFIG_RTC_DRV_PL030 is not set diff --git a/kernel-aarch64-fedora.config b/kernel-aarch64-fedora.config index c9eb3ff80..a339896c7 100644 --- a/kernel-aarch64-fedora.config +++ b/kernel-aarch64-fedora.config @@ -973,7 +973,7 @@ CONFIG_CLK_IMX8MN=y CONFIG_CLK_IMX8MQ=y CONFIG_CLK_IMX8QXP=y CONFIG_CLK_LS1028A_PLLDIG=y -# CONFIG_CLK_QORIQ is not set +CONFIG_CLK_QORIQ=y CONFIG_CLK_RASPBERRYPI=y # CONFIG_CLK_SIFIVE is not set CONFIG_CLK_SP810=y @@ -3691,7 +3691,9 @@ CONFIG_MTD_CFI=m CONFIG_MTD_CFI_STAA=m # CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_DATAFLASH is not set +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_DATAFLASH_OTP=y +CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y # CONFIG_MTD_DOCG3 is not set # CONFIG_MTD_HYPERBUS is not set # CONFIG_MTD_INTEL_VR_NOR is not set @@ -3713,7 +3715,7 @@ CONFIG_MTD_NAND_CADENCE=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set +CONFIG_MTD_NAND_FSL_IFC=m # CONFIG_MTD_NAND_GPIO is not set # CONFIG_MTD_NAND_HISI504 is not set CONFIG_MTD_NAND_MARVELL=m @@ -3733,8 +3735,11 @@ CONFIG_MTD_OF_PARTS=m # CONFIG_MTD_PARTITIONED_MASTER is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_PHYSMAP_COMPAT is not set +# CONFIG_MTD_PHYSMAP_GEMINI is not set +# CONFIG_MTD_PHYSMAP_IXP4XX is not set CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_OF is not set +CONFIG_MTD_PHYSMAP_OF=y +# CONFIG_MTD_PHYSMAP_VERSATILE is not set # CONFIG_MTD_PLATRAM is not set # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_RAM is not set @@ -3746,7 +3751,7 @@ CONFIG_MTD_RAW_NAND=m CONFIG_MTD_SPI_NAND=m CONFIG_MTD_SPI_NOR=m # CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set -# CONFIG_MTD_SST25L is not set +CONFIG_MTD_SST25L=m # CONFIG_MTD_SWAP is not set # CONFIG_MTD_TESTS is not set CONFIG_MTD_UBI_BEB_LIMIT=20 @@ -3849,7 +3854,7 @@ CONFIG_NET_DSA=m # CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set CONFIG_NET_DSA_MICROCHIP_KSZ9477=m CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m -# CONFIG_NET_DSA_MSCC_FELIX is not set +CONFIG_NET_DSA_MSCC_FELIX=m CONFIG_NET_DSA_MT7530=m # CONFIG_NET_DSA_MV88E6060 is not set CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y @@ -4923,7 +4928,7 @@ CONFIG_QLCNIC_SRIOV=y CONFIG_QLGE=m # CONFIG_QNX4FS_FS is not set # CONFIG_QNX6FS_FS is not set -# CONFIG_QORIQ_CPUFREQ is not set +CONFIG_QORIQ_CPUFREQ=m CONFIG_QORIQ_THERMAL=m CONFIG_QRTR=m CONFIG_QRTR_SMD=m @@ -5249,7 +5254,7 @@ CONFIG_RTC_DRV_PCF2123=m CONFIG_RTC_DRV_PCF2127=m CONFIG_RTC_DRV_PCF85063=m CONFIG_RTC_DRV_PCF8523=m -# CONFIG_RTC_DRV_PCF85363 is not set +CONFIG_RTC_DRV_PCF85363=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m # CONFIG_RTC_DRV_PL030 is not set diff --git a/kernel-armv7hl-debug-fedora.config b/kernel-armv7hl-debug-fedora.config index 48db5378f..c66e1133c 100644 --- a/kernel-armv7hl-debug-fedora.config +++ b/kernel-armv7hl-debug-fedora.config @@ -3789,7 +3789,6 @@ CONFIG_MTD_NAND_CAFE=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set CONFIG_MTD_NAND_GPIO=m CONFIG_MTD_NAND_GPMI_NAND=m # CONFIG_MTD_NAND_HISI504 is not set @@ -3814,8 +3813,11 @@ CONFIG_MTD_OF_PARTS=m # CONFIG_MTD_PARTITIONED_MASTER is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_PHYSMAP_COMPAT is not set +# CONFIG_MTD_PHYSMAP_GEMINI is not set +# CONFIG_MTD_PHYSMAP_IXP4XX is not set CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_OF is not set +CONFIG_MTD_PHYSMAP_OF=y +# CONFIG_MTD_PHYSMAP_VERSATILE is not set # CONFIG_MTD_PLATRAM is not set # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_RAM is not set @@ -5379,7 +5381,7 @@ CONFIG_RTC_DRV_PCF2123=m CONFIG_RTC_DRV_PCF2127=m CONFIG_RTC_DRV_PCF85063=m CONFIG_RTC_DRV_PCF8523=m -# CONFIG_RTC_DRV_PCF85363 is not set +CONFIG_RTC_DRV_PCF85363=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_PL030=y @@ -6482,7 +6484,7 @@ CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DW_PCI=m CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m -# CONFIG_SPI_FSL_SPI is not set +CONFIG_SPI_FSL_SPI=m CONFIG_SPI_GPIO=m # CONFIG_SPI_HISI_SFC_V3XX is not set CONFIG_SPI_IMX=m diff --git a/kernel-armv7hl-fedora.config b/kernel-armv7hl-fedora.config index 87f5e4d30..6f058b1dd 100644 --- a/kernel-armv7hl-fedora.config +++ b/kernel-armv7hl-fedora.config @@ -3770,7 +3770,6 @@ CONFIG_MTD_NAND_CAFE=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set CONFIG_MTD_NAND_GPIO=m CONFIG_MTD_NAND_GPMI_NAND=m # CONFIG_MTD_NAND_HISI504 is not set @@ -3795,8 +3794,11 @@ CONFIG_MTD_OF_PARTS=m # CONFIG_MTD_PARTITIONED_MASTER is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_PHYSMAP_COMPAT is not set +# CONFIG_MTD_PHYSMAP_GEMINI is not set +# CONFIG_MTD_PHYSMAP_IXP4XX is not set CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_OF is not set +CONFIG_MTD_PHYSMAP_OF=y +# CONFIG_MTD_PHYSMAP_VERSATILE is not set # CONFIG_MTD_PLATRAM is not set # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_RAM is not set @@ -5359,7 +5361,7 @@ CONFIG_RTC_DRV_PCF2123=m CONFIG_RTC_DRV_PCF2127=m CONFIG_RTC_DRV_PCF85063=m CONFIG_RTC_DRV_PCF8523=m -# CONFIG_RTC_DRV_PCF85363 is not set +CONFIG_RTC_DRV_PCF85363=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_PL030=y @@ -6461,7 +6463,7 @@ CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DW_PCI=m CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m -# CONFIG_SPI_FSL_SPI is not set +CONFIG_SPI_FSL_SPI=m CONFIG_SPI_GPIO=m # CONFIG_SPI_HISI_SFC_V3XX is not set CONFIG_SPI_IMX=m diff --git a/kernel-armv7hl-lpae-debug-fedora.config b/kernel-armv7hl-lpae-debug-fedora.config index ca5a9e869..e544c48bb 100644 --- a/kernel-armv7hl-lpae-debug-fedora.config +++ b/kernel-armv7hl-lpae-debug-fedora.config @@ -3689,7 +3689,6 @@ CONFIG_MTD_NAND_DAVINCI=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set CONFIG_MTD_NAND_GPIO=m # CONFIG_MTD_NAND_HISI504 is not set CONFIG_MTD_NAND_MARVELL=m @@ -3712,8 +3711,11 @@ CONFIG_MTD_OF_PARTS=m # CONFIG_MTD_PARTITIONED_MASTER is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_PHYSMAP_COMPAT is not set +# CONFIG_MTD_PHYSMAP_GEMINI is not set +# CONFIG_MTD_PHYSMAP_IXP4XX is not set CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_OF is not set +CONFIG_MTD_PHYSMAP_OF=y +# CONFIG_MTD_PHYSMAP_VERSATILE is not set # CONFIG_MTD_PLATRAM is not set # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_RAM is not set @@ -5199,7 +5201,7 @@ CONFIG_RTC_DRV_PCF2123=m CONFIG_RTC_DRV_PCF2127=m CONFIG_RTC_DRV_PCF85063=m CONFIG_RTC_DRV_PCF8523=m -# CONFIG_RTC_DRV_PCF85363 is not set +CONFIG_RTC_DRV_PCF85363=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_PL030=y @@ -6213,6 +6215,7 @@ CONFIG_SOC_EXYNOS5800=y # CONFIG_SOC_HAS_OMAP2_SDRC is not set CONFIG_SOC_HAS_REALTIME_COUNTER=y # CONFIG_SOC_IMX6SLL is not set +# CONFIG_SOC_LS1021A is not set CONFIG_SOC_OMAP5=y CONFIG_SOC_TEGRA_FLOWCTRL=y # CONFIG_SOC_TI is not set @@ -6246,7 +6249,7 @@ CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DW_PCI=m CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m -# CONFIG_SPI_FSL_SPI is not set +CONFIG_SPI_FSL_SPI=m CONFIG_SPI_GPIO=m # CONFIG_SPI_HISI_SFC_V3XX is not set CONFIG_SPI_IMX=m diff --git a/kernel-armv7hl-lpae-fedora.config b/kernel-armv7hl-lpae-fedora.config index a4d818e96..226fb50a4 100644 --- a/kernel-armv7hl-lpae-fedora.config +++ b/kernel-armv7hl-lpae-fedora.config @@ -3670,7 +3670,6 @@ CONFIG_MTD_NAND_DAVINCI=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set CONFIG_MTD_NAND_GPIO=m # CONFIG_MTD_NAND_HISI504 is not set CONFIG_MTD_NAND_MARVELL=m @@ -3693,8 +3692,11 @@ CONFIG_MTD_OF_PARTS=m # CONFIG_MTD_PARTITIONED_MASTER is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_PHYSMAP_COMPAT is not set +# CONFIG_MTD_PHYSMAP_GEMINI is not set +# CONFIG_MTD_PHYSMAP_IXP4XX is not set CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_OF is not set +CONFIG_MTD_PHYSMAP_OF=y +# CONFIG_MTD_PHYSMAP_VERSATILE is not set # CONFIG_MTD_PLATRAM is not set # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_RAM is not set @@ -5179,7 +5181,7 @@ CONFIG_RTC_DRV_PCF2123=m CONFIG_RTC_DRV_PCF2127=m CONFIG_RTC_DRV_PCF85063=m CONFIG_RTC_DRV_PCF8523=m -# CONFIG_RTC_DRV_PCF85363 is not set +CONFIG_RTC_DRV_PCF85363=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_PL030=y @@ -6192,6 +6194,7 @@ CONFIG_SOC_EXYNOS5800=y # CONFIG_SOC_HAS_OMAP2_SDRC is not set CONFIG_SOC_HAS_REALTIME_COUNTER=y # CONFIG_SOC_IMX6SLL is not set +# CONFIG_SOC_LS1021A is not set CONFIG_SOC_OMAP5=y CONFIG_SOC_TEGRA_FLOWCTRL=y # CONFIG_SOC_TI is not set @@ -6225,7 +6228,7 @@ CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DW_PCI=m CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m -# CONFIG_SPI_FSL_SPI is not set +CONFIG_SPI_FSL_SPI=m CONFIG_SPI_GPIO=m # CONFIG_SPI_HISI_SFC_V3XX is not set CONFIG_SPI_IMX=m diff --git a/kernel-i686-debug-fedora.config b/kernel-i686-debug-fedora.config index 29396972a..b909e248e 100644 --- a/kernel-i686-debug-fedora.config +++ b/kernel-i686-debug-fedora.config @@ -1833,7 +1833,6 @@ CONFIG_GPIO_MAX77650=m # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_ML_IOH is not set # CONFIG_GPIO_MOCKUP is not set -# CONFIG_GPIO_MPC8XXX is not set CONFIG_GPIO_PCA953X=m # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_PCH is not set @@ -3405,7 +3404,6 @@ CONFIG_MTD_NAND_CAFE=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set # CONFIG_MTD_NAND_GPIO is not set # CONFIG_MTD_NAND_HISI504 is not set # CONFIG_MTD_NAND_MESON is not set diff --git a/kernel-i686-fedora.config b/kernel-i686-fedora.config index f687ce946..cae2b33cb 100644 --- a/kernel-i686-fedora.config +++ b/kernel-i686-fedora.config @@ -1816,7 +1816,6 @@ CONFIG_GPIO_MAX77650=m # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_ML_IOH is not set # CONFIG_GPIO_MOCKUP is not set -# CONFIG_GPIO_MPC8XXX is not set CONFIG_GPIO_PCA953X=m # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_PCH is not set @@ -3386,7 +3385,6 @@ CONFIG_MTD_NAND_CAFE=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set # CONFIG_MTD_NAND_GPIO is not set # CONFIG_MTD_NAND_HISI504 is not set # CONFIG_MTD_NAND_MESON is not set diff --git a/kernel-ppc64le-debug-fedora.config b/kernel-ppc64le-debug-fedora.config index 1caee5d40..7f0f9e6e5 100644 --- a/kernel-ppc64le-debug-fedora.config +++ b/kernel-ppc64le-debug-fedora.config @@ -1667,7 +1667,6 @@ CONFIG_GPIO_MAX77650=m # CONFIG_GPIO_MB86S7X is not set # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_MOCKUP is not set -# CONFIG_GPIO_MPC8XXX is not set CONFIG_GPIO_PCA953X=m CONFIG_GPIO_PCF857X=m # CONFIG_GPIO_PCH is not set @@ -3127,7 +3126,6 @@ CONFIG_MTD_NAND_CADENCE=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set # CONFIG_MTD_NAND_GPIO is not set # CONFIG_MTD_NAND_HISI504 is not set # CONFIG_MTD_NAND_MESON is not set diff --git a/kernel-ppc64le-fedora.config b/kernel-ppc64le-fedora.config index 1a538de5f..99c48050a 100644 --- a/kernel-ppc64le-fedora.config +++ b/kernel-ppc64le-fedora.config @@ -1650,7 +1650,6 @@ CONFIG_GPIO_MAX77650=m # CONFIG_GPIO_MB86S7X is not set # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_MOCKUP is not set -# CONFIG_GPIO_MPC8XXX is not set CONFIG_GPIO_PCA953X=m CONFIG_GPIO_PCF857X=m # CONFIG_GPIO_PCH is not set @@ -3106,7 +3105,6 @@ CONFIG_MTD_NAND_CADENCE=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set # CONFIG_MTD_NAND_GPIO is not set # CONFIG_MTD_NAND_HISI504 is not set # CONFIG_MTD_NAND_MESON is not set diff --git a/kernel-s390x-debug-fedora.config b/kernel-s390x-debug-fedora.config index 9a41dd7bc..f8c8caebf 100644 --- a/kernel-s390x-debug-fedora.config +++ b/kernel-s390x-debug-fedora.config @@ -1663,7 +1663,6 @@ CONFIG_GPIO_MAX77650=m # CONFIG_GPIO_MB86S7X is not set # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_MOCKUP is not set -# CONFIG_GPIO_MPC8XXX is not set CONFIG_GPIO_PCA953X=m # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_PCH is not set @@ -3100,7 +3099,6 @@ CONFIG_MTD_NAND_CADENCE=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set # CONFIG_MTD_NAND_GPIO is not set # CONFIG_MTD_NAND_HISI504 is not set # CONFIG_MTD_NAND_MESON is not set diff --git a/kernel-s390x-fedora.config b/kernel-s390x-fedora.config index 808032031..23c26c31f 100644 --- a/kernel-s390x-fedora.config +++ b/kernel-s390x-fedora.config @@ -1646,7 +1646,6 @@ CONFIG_GPIO_MAX77650=m # CONFIG_GPIO_MB86S7X is not set # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_MOCKUP is not set -# CONFIG_GPIO_MPC8XXX is not set CONFIG_GPIO_PCA953X=m # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_PCH is not set @@ -3079,7 +3078,6 @@ CONFIG_MTD_NAND_CADENCE=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set # CONFIG_MTD_NAND_GPIO is not set # CONFIG_MTD_NAND_HISI504 is not set # CONFIG_MTD_NAND_MESON is not set diff --git a/kernel-x86_64-debug-fedora.config b/kernel-x86_64-debug-fedora.config index 41381fbf5..148bd2342 100644 --- a/kernel-x86_64-debug-fedora.config +++ b/kernel-x86_64-debug-fedora.config @@ -1867,7 +1867,6 @@ CONFIG_GPIO_MAX77650=m # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_ML_IOH is not set # CONFIG_GPIO_MOCKUP is not set -# CONFIG_GPIO_MPC8XXX is not set CONFIG_GPIO_PCA953X=m # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_PCH is not set @@ -3449,7 +3448,6 @@ CONFIG_MTD_NAND_CADENCE=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set # CONFIG_MTD_NAND_GPIO is not set # CONFIG_MTD_NAND_HISI504 is not set # CONFIG_MTD_NAND_MESON is not set diff --git a/kernel-x86_64-fedora.config b/kernel-x86_64-fedora.config index a4056433c..9b1a38246 100644 --- a/kernel-x86_64-fedora.config +++ b/kernel-x86_64-fedora.config @@ -1850,7 +1850,6 @@ CONFIG_GPIO_MAX77650=m # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_ML_IOH is not set # CONFIG_GPIO_MOCKUP is not set -# CONFIG_GPIO_MPC8XXX is not set CONFIG_GPIO_PCA953X=m # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_PCH is not set @@ -3430,7 +3429,6 @@ CONFIG_MTD_NAND_CADENCE=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_ECC_SW_BCH is not set # CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set # CONFIG_MTD_NAND_GPIO is not set # CONFIG_MTD_NAND_HISI504 is not set # CONFIG_MTD_NAND_MESON is not set diff --git a/kernel.spec b/kernel.spec index 46a27bc93..878e72f2b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -845,17 +845,17 @@ Patch325: backlight-lp855x-Ensure-regulators-are-disabled-on-probe-failure.patch Patch330: arm64-dts-imx8mq-phanbell-Add-support-for-ethernet.patch # Pine64 bits -# 340-344 queued for 5.7 +# 340-345 queued for 5.7 Patch340: arm64-pinebook-fixes.patch Patch341: arm64-a64-mbus.patch -# https://patchwork.kernel.org/cover/11405517/ -Patch342: Add-LCD-support-for-Pine64-Pinebook-1080p.patch -# https://lkml.org/lkml/2020/1/15/1320 -Patch343: arm64-pine64-pinetab.patch -# https://www.spinics.net/lists/arm-kernel/msg789135.html -Patch344: arm64-pine64-pinephone.patch # v4 https://patchwork.kernel.org/cover/11420797/ -Patch345: Add-support-for-the-pine64-Pinebook-Pro.patch +Patch342: Add-support-for-the-pine64-Pinebook-Pro.patch +# https://patchwork.kernel.org/cover/11405517/ +Patch343: Add-LCD-support-for-Pine64-Pinebook-1080p.patch +# https://lkml.org/lkml/2020/1/15/1320 +Patch344: arm64-pine64-pinetab.patch +# https://www.spinics.net/lists/arm-kernel/msg789135.html +Patch345: arm64-pine64-pinephone.patch # 400 - IBM (ppc/s390x) patches From 92e791bc5bc77e05cffc8f18a8c50be349d4ff15 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Tue, 17 Mar 2020 10:11:39 -0400 Subject: [PATCH 010/191] Disable debugging options. --- kernel.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index 878e72f2b..787ba0452 100644 --- a/kernel.spec +++ b/kernel.spec @@ -200,7 +200,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 0 +%define debugbuildsenabled 1 %if 0%{?fedora} # Kernel headers are being split out into a separate package From 67db79878a8e25b74680ecb1d4e4489e5f379752 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Tue, 17 Mar 2020 10:19:47 -0400 Subject: [PATCH 011/191] Linux v5.6-rc6 --- iommu-WARN_TAINT-fixes.patch | 164 ----------------------------------- kernel.spec | 11 ++- sources | 3 +- 3 files changed, 6 insertions(+), 172 deletions(-) delete mode 100644 iommu-WARN_TAINT-fixes.patch diff --git a/iommu-WARN_TAINT-fixes.patch b/iommu-WARN_TAINT-fixes.patch deleted file mode 100644 index 5cb4aa973..000000000 --- a/iommu-WARN_TAINT-fixes.patch +++ /dev/null @@ -1,164 +0,0 @@ -From 2f2265a8cbc6b43deb169c525204ea7df02e9363 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 9 Mar 2020 13:55:02 +0100 -Subject: [PATCH 1/2] iommu/vt-d: dmar: replace WARN_TAINT with pr_warn + - add_taint - -Quoting from the comment describing the WARN functions in -include/asm-generic/bug.h: - - * WARN(), WARN_ON(), WARN_ON_ONCE, and so on can be used to report - * significant kernel issues that need prompt attention if they should ever - * appear at runtime. - * - * Do not use these macros when checking for invalid external inputs - -The (buggy) firmware tables which the dmar code was calling WARN_TAINT -for really are invalid external inputs. They are not under the kernel's -control and the issues in them cannot be fixed by a kernel update. -So logging a backtrace, which invites bug reports to be filed about this, -is not helpful. - -Some distros, e.g. Fedora, have tools watching for the kernel backtraces -logged by the WARN macros and offer the user an option to file a bug for -this when these are encountered. The WARN_TAINT in warn_invalid_dmar() -+ another iommu WARN_TAINT, addressed in another patch, have lead to over -a 100 bugs being filed this way. - -This commit replaces the WARN_TAINT("...") calls, with -pr_warn(FW_BUG "...") + add_taint(TAINT_FIRMWARE_WORKAROUND, ...) calls -avoiding the backtrace and thus also avoiding bug-reports being filed -about this against the kernel. - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1564895 -Fixes: e625b4a95d50 ("iommu/vt-d: Parse ANDD records") -Fixes: fd0c8894893c ("intel-iommu: Set a more specific taint flag for invalid BI -Cc: stable@vger.kernel.org -Signed-off-by: Hans de Goede ---- - drivers/iommu/dmar.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c -index 071bb42bbbc5..87194a46cb0b 100644 ---- a/drivers/iommu/dmar.c -+++ b/drivers/iommu/dmar.c -@@ -440,12 +440,13 @@ static int __init dmar_parse_one_andd(struct acpi_dmar_header *header, - - /* Check for NUL termination within the designated length */ - if (strnlen(andd->device_name, header->length - 8) == header->length - 8) { -- WARN_TAINT(1, TAINT_FIRMWARE_WORKAROUND, -+ pr_warn(FW_BUG - "Your BIOS is broken; ANDD object name is not NUL-terminated\n" - "BIOS vendor: %s; Ver: %s; Product Version: %s\n", - dmi_get_system_info(DMI_BIOS_VENDOR), - dmi_get_system_info(DMI_BIOS_VERSION), - dmi_get_system_info(DMI_PRODUCT_VERSION)); -+ add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK); - return -EINVAL; - } - pr_info("ANDD device: %x name: %s\n", andd->device_number, -@@ -471,14 +472,14 @@ static int dmar_parse_one_rhsa(struct acpi_dmar_header *header, void *arg) - return 0; - } - } -- WARN_TAINT( -- 1, TAINT_FIRMWARE_WORKAROUND, -+ pr_warn(FW_BUG - "Your BIOS is broken; RHSA refers to non-existent DMAR unit at %llx\n" - "BIOS vendor: %s; Ver: %s; Product Version: %s\n", - drhd->reg_base_addr, - dmi_get_system_info(DMI_BIOS_VENDOR), - dmi_get_system_info(DMI_BIOS_VERSION), - dmi_get_system_info(DMI_PRODUCT_VERSION)); -+ add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK); - - return 0; - } -@@ -827,14 +828,14 @@ int __init dmar_table_init(void) - - static void warn_invalid_dmar(u64 addr, const char *message) - { -- WARN_TAINT_ONCE( -- 1, TAINT_FIRMWARE_WORKAROUND, -+ pr_warn_once(FW_BUG - "Your BIOS is broken; DMAR reported at address %llx%s!\n" - "BIOS vendor: %s; Ver: %s; Product Version: %s\n", - addr, message, - dmi_get_system_info(DMI_BIOS_VENDOR), - dmi_get_system_info(DMI_BIOS_VERSION), - dmi_get_system_info(DMI_PRODUCT_VERSION)); -+ add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK); - } - - static int __ref --- -2.25.1 - -From 038ebd8952c5fb3ba3b5e09b0b55a4e617ae22bf Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 9 Mar 2020 14:12:37 +0100 -Subject: [PATCH 2/2] iommu/vt-d: dmar_parse_one_rmrr: replace WARN_TAINT with - pr_warn + add_taint - -Quoting from the comment describing the WARN functions in -include/asm-generic/bug.h: - - * WARN(), WARN_ON(), WARN_ON_ONCE, and so on can be used to report - * significant kernel issues that need prompt attention if they should ever - * appear at runtime. - * - * Do not use these macros when checking for invalid external inputs - -The (buggy) firmware tables which the dmar code was calling WARN_TAINT -for really are invalid external inputs. They are not under the kernel's -control and the issues in them cannot be fixed by a kernel update. -So logging a backtrace, which invites bug reports to be filed about this, -is not helpful. - -Some distros, e.g. Fedora, have tools watching for the kernel backtraces -logged by the WARN macros and offer the user an option to file a bug for -this when these are encountered. The WARN_TAINT in dmar_parse_one_rmrr -+ another iommu WARN_TAINT, addressed in another patch, have lead to over -a 100 bugs being filed this way. - -This commit replaces the WARN_TAINT("...") call, with a -pr_warn(FW_BUG "...") + add_taint(TAINT_FIRMWARE_WORKAROUND, ...) call -avoiding the backtrace and thus also avoiding bug-reports being filed -about this against the kernel. - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1808874 -Fixes: f5a68bb0752e ("iommu/vt-d: Mark firmware tainted if RMRR fails sanity check") -Cc: Barret Rhoden -Cc: stable@vger.kernel.org -Signed-off-by: Hans de Goede ---- - drivers/iommu/intel-iommu.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c -index 6fa6de2b6ad5..3857a5cd1a75 100644 ---- a/drivers/iommu/intel-iommu.c -+++ b/drivers/iommu/intel-iommu.c -@@ -4460,14 +4460,16 @@ int __init dmar_parse_one_rmrr(struct acpi_dmar_header *header, void *arg) - struct dmar_rmrr_unit *rmrru; - - rmrr = (struct acpi_dmar_reserved_memory *)header; -- if (rmrr_sanity_check(rmrr)) -- WARN_TAINT(1, TAINT_FIRMWARE_WORKAROUND, -+ if (rmrr_sanity_check(rmrr)) { -+ pr_warn(FW_BUG - "Your BIOS is broken; bad RMRR [%#018Lx-%#018Lx]\n" - "BIOS vendor: %s; Ver: %s; Product Version: %s\n", - rmrr->base_address, rmrr->end_address, - dmi_get_system_info(DMI_BIOS_VENDOR), - dmi_get_system_info(DMI_BIOS_VERSION), - dmi_get_system_info(DMI_PRODUCT_VERSION)); -+ add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK); -+ } - - rmrru = kzalloc(sizeof(*rmrru), GFP_KERNEL); - if (!rmrru) --- -2.25.1 - diff --git a/kernel.spec b/kernel.spec index 787ba0452..5a9f7e314 100644 --- a/kernel.spec +++ b/kernel.spec @@ -105,9 +105,9 @@ Summary: The Linux kernel # The next upstream release sublevel (base_sublevel+1) %define upstream_sublevel %(echo $((%{base_sublevel} + 1))) # The rc snapshot level -%global rcrev 5 +%global rcrev 6 # The git snapshot level -%define gitrev 2 +%define gitrev 0 # Set rpm version accordingly %define rpmversion 5.%{upstream_sublevel}.0 %endif @@ -882,10 +882,6 @@ Patch505: ARM-fix-__get_user_check-in-case-uaccess_-calls-are-not-inlined.patch # More DP-MST fixes, pending for 5.7 Patch507: drm-dp-mst-error-handling-improvements.patch -# Fix backtraces triggered by warnings about buggy BIOS (rhbz 1564895, 1808874) -# Submitted upstream -Patch508: iommu-WARN_TAINT-fixes.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1811850 Patch509: drm-i915-backports.patch @@ -2984,6 +2980,9 @@ fi # # %changelog +* Tue Mar 17 2020 Jeremy Cline - 5.6.0-0.rc6.git0.1 +- Linux v5.6-rc6 + * Tue Mar 10 2020 Jeremy Cline - 5.6.0-0.rc5.git0.2 - A series of eDP backlight fixes for i915 (rhbz 1811850) diff --git a/sources b/sources index 49af8835e..b0e466ed6 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ SHA512 (linux-5.5.tar.xz) = fa74fdabb5e63384a39e54da05b86a9ae9ea16179524b041fbbdffc7177e80b53600ae98d76be127ba216148f9dc55fe07ab20637e22c6d6030cb4aa09eb2f86 -SHA512 (patch-5.6-rc5.xz) = 655239e008d72e1e172db5e46cb6af8095300ff81e19897cfdb493424104c4ac072b57594202310afa1a75309b08f9567347f014b8129789fd93e353daf1a980 -SHA512 (patch-5.6-rc5-git2.xz) = 76f7b2da1e1bef6f85ca23c1f4a76eacc9e4fc00354b9a502de25bbb9b2a2fdf699baf9a2ac65d66daacb100bfb23b400aec2965e6fa06fd1e6a4892f1340bd9 +SHA512 (patch-5.6-rc6.xz) = cb4867da79eaf199e65414be258b1ebf231eff3c506b27d0196c835a05c40937ec02604a982359379ed9a6a7d066f00ca87553df5f57bccfd47db0ceada9ae7f From 5af2c23df0dfe1e341b1c74139b2ef82c7a33b6b Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Wed, 18 Mar 2020 12:36:42 -0400 Subject: [PATCH 012/191] Reenable debugging options. --- kernel.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index 5a9f7e314..8a530f795 100644 --- a/kernel.spec +++ b/kernel.spec @@ -200,7 +200,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 1 +%define debugbuildsenabled 0 %if 0%{?fedora} # Kernel headers are being split out into a separate package @@ -2980,6 +2980,9 @@ fi # # %changelog +* Wed Mar 18 2020 Jeremy Cline +- Reenable debugging options. + * Tue Mar 17 2020 Jeremy Cline - 5.6.0-0.rc6.git0.1 - Linux v5.6-rc6 From c33c2625266571c6aeb31fd9fc63a14e8fa3bbe6 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Wed, 18 Mar 2020 14:55:22 -0400 Subject: [PATCH 013/191] Linux v5.6-rc6-9-gac309e7744be --- gitrev | 2 +- kernel.spec | 5 ++++- sources | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gitrev b/gitrev index 4c89cd14e..708b0a19d 100644 --- a/gitrev +++ b/gitrev @@ -1 +1 @@ -0d81a3f29c0afb18ba2b1275dcccf21e0dd4da38 +ac309e7744bee222df6de0122facaf2d9706fa70 diff --git a/kernel.spec b/kernel.spec index 8a530f795..70a2e5667 100644 --- a/kernel.spec +++ b/kernel.spec @@ -107,7 +107,7 @@ Summary: The Linux kernel # The rc snapshot level %global rcrev 6 # The git snapshot level -%define gitrev 0 +%define gitrev 1 # Set rpm version accordingly %define rpmversion 5.%{upstream_sublevel}.0 %endif @@ -2980,6 +2980,9 @@ fi # # %changelog +* Wed Mar 18 2020 Jeremy Cline - 5.6.0-0.rc6.git1.1 +- Linux v5.6-rc6-9-gac309e7744be + * Wed Mar 18 2020 Jeremy Cline - Reenable debugging options. diff --git a/sources b/sources index b0e466ed6..751ecf590 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ SHA512 (linux-5.5.tar.xz) = fa74fdabb5e63384a39e54da05b86a9ae9ea16179524b041fbbdffc7177e80b53600ae98d76be127ba216148f9dc55fe07ab20637e22c6d6030cb4aa09eb2f86 SHA512 (patch-5.6-rc6.xz) = cb4867da79eaf199e65414be258b1ebf231eff3c506b27d0196c835a05c40937ec02604a982359379ed9a6a7d066f00ca87553df5f57bccfd47db0ceada9ae7f +SHA512 (patch-5.6-rc6-git1.xz) = 0d0c1995e9da2ce8138b3e58a3a7e3d431cccbca869a6889fefeb8c3e8dfee32f6ed0235404a81eaadb9d37ed08e90a17da9c4c194ab6d87efe11240321ef7b6 From 7913c4b445b93187f96c95e560ba3e7d859af8f4 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 19 Mar 2020 00:54:08 +0000 Subject: [PATCH 014/191] Panel support for PinePhone --- Add-support-for-PinePhone-LCD-panel.patch | 1121 +++++++++++++++++++++ kernel-aarch64-debug-fedora.config | 1 + kernel-aarch64-fedora.config | 1 + kernel-armv7hl-debug-fedora.config | 1 + kernel-armv7hl-fedora.config | 1 + kernel-armv7hl-lpae-debug-fedora.config | 1 + kernel-armv7hl-lpae-fedora.config | 1 + kernel-i686-debug-fedora.config | 1 + kernel-i686-fedora.config | 1 + kernel-ppc64le-debug-fedora.config | 1 + kernel-ppc64le-fedora.config | 1 + kernel-s390x-debug-fedora.config | 1 + kernel-s390x-fedora.config | 1 + kernel-x86_64-debug-fedora.config | 1 + kernel-x86_64-fedora.config | 1 + kernel.spec | 2 + 16 files changed, 1137 insertions(+) create mode 100644 Add-support-for-PinePhone-LCD-panel.patch diff --git a/Add-support-for-PinePhone-LCD-panel.patch b/Add-support-for-PinePhone-LCD-panel.patch new file mode 100644 index 000000000..a8cfd239a --- /dev/null +++ b/Add-support-for-PinePhone-LCD-panel.patch @@ -0,0 +1,1121 @@ +From patchwork Mon Mar 16 13:35:00 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Icenowy Zheng +X-Patchwork-Id: 11440381 +Return-Path: + +Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org + [172.30.200.123]) + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 11A10913 + for ; + Mon, 16 Mar 2020 13:37:33 +0000 (UTC) +Received: from bombadil.infradead.org (bombadil.infradead.org + [198.137.202.133]) + (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by mail.kernel.org (Postfix) with ESMTPS id D823220658 + for ; + Mon, 16 Mar 2020 13:37:32 +0000 (UTC) +Authentication-Results: mail.kernel.org; + dkim=pass (2048-bit key) header.d=lists.infradead.org + header.i=@lists.infradead.org header.b="tONvF8xL"; + dkim=fail reason="signature verification failed" (1024-bit key) + header.d=aosc.io header.i=@aosc.io header.b="OUlaYo/F" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D823220658 +Authentication-Results: mail.kernel.org; + dmarc=none (p=none dis=none) header.from=aosc.io +Authentication-Results: mail.kernel.org; + spf=none + smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org +DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; + d=lists.infradead.org; s=bombadil.20170209; h=Sender: + Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: + List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: + Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: + Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: + List-Owner; bh=jopI4a0lnvKcPoWIQDtsU3+Ud4Almv/gYxD7C8b74AM=; b=tONvF8xLa0JOdp + lOlDz1mTuocTtleB1tz2mVLFhSSnvPuEVHfe/+tTd0RxGBi7RgesJwyproaLem7CQJC9XdeBHMAZi + GNHPDPwS11F/9Q5j0RGa9hqzmBn4auXeKB00LRPKKoNjIlbcXQzzU8tkGtvEHi7rHOS+k1TFWgSaM + UlnBfqD6z8rSAHHbAEPb9+dE9/gMuw6M8wi+4UwFZY8i8yxkjP00OfL3P1GUjX5Z8m3OTawi2jupS + yVUtKm/2fMPvyfC2x1YWUbTWiJoY1bznqv51lHwfOL60HJobKpisG/QRBWTmCdk3khQTjVBhrf7vG + syf/hIWeb2vFaaPjGf+g==; +Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) + by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) + id 1jDpvt-0007Bn-Dl; Mon, 16 Mar 2020 13:37:29 +0000 +Received: from dodo.xh.is ([2001:19f0:8001:184d:5400:2ff:fe7b:e8bd]) + by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) + id 1jDpvq-0007Ax-Dr + for linux-arm-kernel@lists.infradead.org; Mon, 16 Mar 2020 13:37:28 +0000 +X-Spam: yes +X-Spam-Score: 6.6 / 99999 +X-Spam-Symbols: FROM_HAS_DN, RCPT_COUNT_TWELVE, FREEMAIL_TO, FROM_EQ_ENVFROM, + SUSPICIOUS_RECIPS, ARC_NA, RCVD_VIA_SMTP_AUTH, TAGGED_RCPT, + RCVD_COUNT_TWO, BROKEN_CONTENT_TYPE, TO_MATCH_ENVRCPT_SOME, + MIME_TRACE, ASN, TO_DN_SOME, FREEMAIL_ENVRCPT, + RCVD_NO_TLS_LAST, R_MISSING_CHARSET, MID_CONTAINS_FROM +Received: by dodo.xh.is (OpenSMTPD) with ESMTPSA id 040dde7f + (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); + Mon, 16 Mar 2020 06:37:23 -0700 (PDT) +Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: + icenowy@aosc.io) + by hermes.aosc.io (Postfix) with ESMTPSA id 4124F4C196; + Mon, 16 Mar 2020 13:37:10 +0000 (UTC) +From: Icenowy Zheng +To: Thierry Reding , + Sam Ravnborg , + Rob Herring , Maxime Ripard , + Chen-Yu Tsai , Ondrej Jirman +Subject: [PATCH v2 2/5] dt-bindings: panel: add binding for Xingbangda XBD599 + panel +Date: Mon, 16 Mar 2020 21:35:00 +0800 +Message-Id: <20200316133503.144650-3-icenowy@aosc.io> +In-Reply-To: <20200316133503.144650-1-icenowy@aosc.io> +References: <20200316133503.144650-1-icenowy@aosc.io> +MIME-Version: 1.0 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aosc.io; s=dkim; + t=1584365841; + h=from:subject:date:message-id:to:cc:mime-version:content-transfer-encoding:in-reply-to:references; + bh=k5dZsJ/q6rrXyDSO2nmOTWqvPhDI4C+8rut25MFD+Sk=; + b=OUlaYo/FyQ18QC+9N7l4EKPc9OYtnaEJ6rHTTmw5vWDG6bE4z3Dc0JryPNmmzGXHubXOqg + vnAixztTiQggjBI+b2WQ1uKGq0JCKJczHDkbgeZsFMqH3T47xzNMNhu6qv5Xdi+haGzyNU + I+cG4IhCqhUW5fahJroACP3Tm5imnHs= +X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 +X-CRM114-CacheID: sfid-20200316_063726_515303_1C969948 +X-CRM114-Status: GOOD ( 12.18 ) +X-Spam-Score: -0.2 (/) +X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: + Content analysis details: (-0.2 points) + pts rule name description + ---- ---------------------- + -------------------------------------------------- + -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, + no trust [2001:19f0:8001:184d:5400:2ff:fe7b:e8bd listed in] + [list.dnswl.org] + -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + 0.1 DKIM_SIGNED Message has a DKIM or DK signature, + not necessarily + valid + -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from + envelope-from domain + -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature + -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from + author's domain +X-BeenThere: linux-arm-kernel@lists.infradead.org +X-Mailman-Version: 2.1.29 +Precedence: list +List-Id: +List-Unsubscribe: + , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: + , + +Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, + dri-devel@lists.freedesktop.org, linux-sunxi@googlegroups.com, + linux-arm-kernel@lists.infradead.org, Icenowy Zheng +Sender: "linux-arm-kernel" +Errors-To: + linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org + +Xingbangda XBD599 is a 5.99" 720x1440 MIPI-DSI LCD panel. + +Add its device tree binding. + +Signed-off-by: Icenowy Zheng +--- +Changes in v2: +- Example fix. +- Format fix. + + .../display/panel/xingbangda,xbd599.yaml | 50 +++++++++++++++++++ + 1 file changed, 50 insertions(+) + create mode 100644 Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml + +diff --git a/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml b/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml +new file mode 100644 +index 000000000000..b27bcf11198f +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml +@@ -0,0 +1,50 @@ ++# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/panel/xingbangda,xbd599.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Xingbangda XBD599 5.99in MIPI-DSI LCD panel ++ ++maintainers: ++ - Icenowy Zheng ++ ++allOf: ++ - $ref: panel-common.yaml# ++ ++properties: ++ compatible: ++ const: xingbangda,xbd599 ++ reg: true ++ backlight: true ++ reset-gpios: true ++ vcc-supply: ++ description: regulator that supplies the VCC voltage ++ iovcc-supply: ++ description: regulator that supplies the IOVCC voltage ++ ++required: ++ - compatible ++ - reg ++ - backlight ++ - vcc-supply ++ - iovcc-supply ++ ++additionalProperties: false ++ ++examples: ++ - | ++ dsi { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ panel@0 { ++ compatible = "xingbangda,xbd599"; ++ reg = <0>; ++ backlight = <&backlight>; ++ iovcc-supply = <®_dldo2>; ++ vcc-supply = <®_ldo_io0>; ++ }; ++ }; ++ ++... + +From patchwork Mon Mar 16 13:35:01 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Icenowy Zheng +X-Patchwork-Id: 11440383 +Return-Path: + +Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org + [172.30.200.123]) + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 04CA013B1 + for ; + Mon, 16 Mar 2020 13:37:50 +0000 (UTC) +Received: from bombadil.infradead.org (bombadil.infradead.org + [198.137.202.133]) + (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by mail.kernel.org (Postfix) with ESMTPS id D4F1120658 + for ; + Mon, 16 Mar 2020 13:37:49 +0000 (UTC) +Authentication-Results: mail.kernel.org; + dkim=pass (2048-bit key) header.d=lists.infradead.org + header.i=@lists.infradead.org header.b="Jauls22L"; + dkim=fail reason="signature verification failed" (1024-bit key) + header.d=aosc.io header.i=@aosc.io header.b="OnKcz19D" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D4F1120658 +Authentication-Results: mail.kernel.org; + dmarc=none (p=none dis=none) header.from=aosc.io +Authentication-Results: mail.kernel.org; + spf=none + smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org +DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; + d=lists.infradead.org; s=bombadil.20170209; h=Sender: + Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: + List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: + Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: + Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: + List-Owner; bh=TxGU4PiXBW274B0/qrcSGwYW6OdGxEdBGH504PoyIqM=; b=Jauls22LYE5NsX + fIslO/JUfhiN/XQQPdC2Q86jHiYF+bbm4r85Xyq09Ea+0sSxxchTeTfcHA7HMyk4GRem3FQJXH2yK + Rzs6OLQ/fL1rBVeMyXfJbyfR5Pq5ODc+lAI83DF0iPoCSFpcv40jQxkZnIkcrVvsbpilK1ord7fQ0 + 1hf6hPDvswsxcgSbirrbJMfnYSIEzsUT5rrFvv9ws9J8ukRYOqsS9lXTdrXk03uLskptzBYp5sYVw + Jb34Fq+gtFhgoUE8jONVa6Puexcl2grtch82d6/Lwcy3v7KtztAQyeFw88UVUF+rNx/Q67yiLMNiF + OPLOwCemY5TZ4eYEkWgA==; +Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) + by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) + id 1jDpwA-0007PW-5b; Mon, 16 Mar 2020 13:37:46 +0000 +Received: from dodo.xh.is ([2001:19f0:8001:184d:5400:2ff:fe7b:e8bd]) + by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) + id 1jDpw4-0007Ng-T4 + for linux-arm-kernel@lists.infradead.org; Mon, 16 Mar 2020 13:37:42 +0000 +X-Spam: yes +X-Spam-Score: 6.6 / 99999 +X-Spam-Symbols: MID_CONTAINS_FROM, FREEMAIL_TO, RCVD_COUNT_TWO, + FROM_EQ_ENVFROM, ASN, SUSPICIOUS_RECIPS, RCVD_VIA_SMTP_AUTH, + TO_DN_SOME, FREEMAIL_ENVRCPT, TAGGED_RCPT, RCVD_NO_TLS_LAST, + ARC_NA, R_MISSING_CHARSET, BROKEN_CONTENT_TYPE, + RCPT_COUNT_TWELVE, FROM_HAS_DN, TO_MATCH_ENVRCPT_SOME, + MIME_TRACE +Received: by dodo.xh.is (OpenSMTPD) with ESMTPSA id 2c12d690 + (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); + Mon, 16 Mar 2020 06:37:40 -0700 (PDT) +Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: + icenowy@aosc.io) + by hermes.aosc.io (Postfix) with ESMTPSA id E8D484C196; + Mon, 16 Mar 2020 13:37:25 +0000 (UTC) +From: Icenowy Zheng +To: Thierry Reding , + Sam Ravnborg , + Rob Herring , Maxime Ripard , + Chen-Yu Tsai , Ondrej Jirman +Subject: [PATCH v2 3/5] drm: panel: add Xingbangda XBD599 panel +Date: Mon, 16 Mar 2020 21:35:01 +0800 +Message-Id: <20200316133503.144650-4-icenowy@aosc.io> +In-Reply-To: <20200316133503.144650-1-icenowy@aosc.io> +References: <20200316133503.144650-1-icenowy@aosc.io> +MIME-Version: 1.0 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aosc.io; s=dkim; + t=1584365858; + h=from:subject:date:message-id:to:cc:mime-version:content-transfer-encoding:in-reply-to:references; + bh=r0lAtSWiBn8DOOqWzP8ERo3YcHe6/FA1xbvH5pEdRgw=; + b=OnKcz19DT6MgLt+rgH0qVaATJ7fQDnAVAXaZvZQM3agXAI3XDxnHoi+2DeVncogjT1bp0P + ljZ0XWs8BoeGtQ0sIdrAMvsBTCbnxBJHQqa3OWxS5inT7+90pxlCDVLERhwqIefwzeZDVJ + liP/v36WTzYINROF0nSPe1azOWltJ/g= +X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 +X-CRM114-CacheID: sfid-20200316_063740_985291_78D98883 +X-CRM114-Status: GOOD ( 20.73 ) +X-Spam-Score: -0.2 (/) +X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: + Content analysis details: (-0.2 points) + pts rule name description + ---- ---------------------- + -------------------------------------------------- + -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, + no trust [2001:19f0:8001:184d:5400:2ff:fe7b:e8bd listed in] + [list.dnswl.org] + -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + 0.1 DKIM_SIGNED Message has a DKIM or DK signature, + not necessarily + valid + -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from + envelope-from domain + -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature + -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from + author's domain +X-BeenThere: linux-arm-kernel@lists.infradead.org +X-Mailman-Version: 2.1.29 +Precedence: list +List-Id: +List-Unsubscribe: + , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: + , + +Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, + dri-devel@lists.freedesktop.org, linux-sunxi@googlegroups.com, + linux-arm-kernel@lists.infradead.org, Icenowy Zheng +Sender: "linux-arm-kernel" +Errors-To: + linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org + +Xingbangda XBD599 is a 5.99" 720x1440 MIPI-DSI IPS LCD panel made by +Xingbangda, which is used on PinePhone final assembled phones. + +Add support for it. + +Signed-off-by: Icenowy Zheng +--- +Changes in v2: +- Raised copyright info to 2020. +- Sort panel operation functions. +- Sort inclusion. + + drivers/gpu/drm/panel/Kconfig | 9 + + drivers/gpu/drm/panel/Makefile | 1 + + .../gpu/drm/panel/panel-xingbangda-xbd599.c | 366 ++++++++++++++++++ + 3 files changed, 376 insertions(+) + create mode 100644 drivers/gpu/drm/panel/panel-xingbangda-xbd599.c + +diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig +index a1723c1b5fbf..cf0c59015a44 100644 +--- a/drivers/gpu/drm/panel/Kconfig ++++ b/drivers/gpu/drm/panel/Kconfig +@@ -433,6 +433,15 @@ config DRM_PANEL_TRULY_NT35597_WQXGA + Say Y here if you want to enable support for Truly NT35597 WQXGA Dual DSI + Video Mode panel + ++config DRM_PANEL_XINGBANGDA_XBD599 ++ tristate "Xingbangda XBD599 panel" ++ depends on OF ++ depends on DRM_MIPI_DSI ++ depends on BACKLIGHT_CLASS_DEVICE ++ help ++ Say Y here if you want to enable support for the Xingbangda XBD599 ++ MIPI DSI Video Mode panel. ++ + config DRM_PANEL_XINPENG_XPP055C272 + tristate "Xinpeng XPP055C272 panel driver" + depends on OF +diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile +index 96a883cd6630..c84ed5215984 100644 +--- a/drivers/gpu/drm/panel/Makefile ++++ b/drivers/gpu/drm/panel/Makefile +@@ -46,4 +46,5 @@ obj-$(CONFIG_DRM_PANEL_TPO_TD028TTEC1) += panel-tpo-td028ttec1.o + obj-$(CONFIG_DRM_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o + obj-$(CONFIG_DRM_PANEL_TPO_TPG110) += panel-tpo-tpg110.o + obj-$(CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA) += panel-truly-nt35597.o ++obj-$(CONFIG_DRM_PANEL_XINGBANGDA_XBD599) += panel-xingbangda-xbd599.o + obj-$(CONFIG_DRM_PANEL_XINPENG_XPP055C272) += panel-xinpeng-xpp055c272.o +diff --git a/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c b/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c +new file mode 100644 +index 000000000000..8d56b6579111 +--- /dev/null ++++ b/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c +@@ -0,0 +1,366 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * Xingbangda XBD599 MIPI-DSI panel driver ++ * ++ * Copyright (C) 2019-2020 Icenowy Zheng ++ * ++ * Based on panel-rocktech-jh057n00900.c, which is: ++ * Copyright (C) Purism SPC 2019 ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++/* Manufacturer specific Commands send via DSI */ ++#define ST7703_CMD_ALL_PIXEL_OFF 0x22 ++#define ST7703_CMD_ALL_PIXEL_ON 0x23 ++#define ST7703_CMD_SETDISP 0xB2 ++#define ST7703_CMD_SETRGBIF 0xB3 ++#define ST7703_CMD_SETCYC 0xB4 ++#define ST7703_CMD_SETBGP 0xB5 ++#define ST7703_CMD_SETVCOM 0xB6 ++#define ST7703_CMD_SETOTP 0xB7 ++#define ST7703_CMD_SETPOWER_EXT 0xB8 ++#define ST7703_CMD_SETEXTC 0xB9 ++#define ST7703_CMD_SETMIPI 0xBA ++#define ST7703_CMD_SETVDC 0xBC ++#define ST7703_CMD_SETSCR 0xC0 ++#define ST7703_CMD_SETPOWER 0xC1 ++#define ST7703_CMD_UNK_C6 0xC6 ++#define ST7703_CMD_SETPANEL 0xCC ++#define ST7703_CMD_SETGAMMA 0xE0 ++#define ST7703_CMD_SETEQ 0xE3 ++#define ST7703_CMD_SETGIP1 0xE9 ++#define ST7703_CMD_SETGIP2 0xEA ++ ++static const char * const regulator_names[] = { ++ "iovcc", ++ "vcc", ++}; ++ ++struct xbd599 { ++ struct device *dev; ++ struct drm_panel panel; ++ struct gpio_desc *reset_gpio; ++ struct regulator_bulk_data supplies[ARRAY_SIZE(regulator_names)]; ++ bool prepared; ++}; ++ ++static inline struct xbd599 *panel_to_xbd599(struct drm_panel *panel) ++{ ++ return container_of(panel, struct xbd599, panel); ++} ++ ++#define dsi_dcs_write_seq(dsi, cmd, seq...) do { \ ++ static const u8 d[] = { seq }; \ ++ int ret; \ ++ ret = mipi_dsi_dcs_write(dsi, cmd, d, ARRAY_SIZE(d)); \ ++ if (ret < 0) \ ++ return ret; \ ++ } while (0) ++ ++static int xbd599_init_sequence(struct xbd599 *ctx) ++{ ++ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); ++ struct device *dev = ctx->dev; ++ int ret; ++ ++ /* ++ * Init sequence was supplied by the panel vendor. ++ */ ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETEXTC, ++ 0xF1, 0x12, 0x83); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETMIPI, ++ 0x33, 0x81, 0x05, 0xF9, 0x0E, 0x0E, 0x20, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, ++ 0x00, 0x91, 0x0a, 0x00, 0x00, 0x02, 0x4F, 0x11, ++ 0x00, 0x00, 0x37); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPOWER_EXT, ++ 0x25, 0x22, 0x20, 0x03); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETRGBIF, ++ 0x10, 0x10, 0x05, 0x05, 0x03, 0xFF, 0x00, 0x00, ++ 0x00, 0x00); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETSCR, ++ 0x73, 0x73, 0x50, 0x50, 0x00, 0xC0, 0x08, 0x70, ++ 0x00); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETVDC, 0x4E); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPANEL, 0x0B); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETCYC, 0x80); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETDISP, 0xF0, 0x12, 0xF0); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETEQ, ++ 0x00, 0x00, 0x0B, 0x0B, 0x10, 0x10, 0x00, 0x00, ++ 0x00, 0x00, 0xFF, 0x00, 0xC0, 0x10); ++ dsi_dcs_write_seq(dsi, 0xC6, 0x01, 0x00, 0xFF, 0xFF, 0x00); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPOWER, ++ 0x74, 0x00, 0x32, 0x32, 0x77, 0xF1, 0xFF, 0xFF, ++ 0xCC, 0xCC, 0x77, 0x77); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETBGP, 0x07, 0x07); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETVCOM, 0x2C, 0x2C); ++ dsi_dcs_write_seq(dsi, 0xBF, 0x02, 0x11, 0x00); ++ ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETGIP1, ++ 0x82, 0x10, 0x06, 0x05, 0xA2, 0x0A, 0xA5, 0x12, ++ 0x31, 0x23, 0x37, 0x83, 0x04, 0xBC, 0x27, 0x38, ++ 0x0C, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, ++ 0x03, 0x00, 0x00, 0x00, 0x75, 0x75, 0x31, 0x88, ++ 0x88, 0x88, 0x88, 0x88, 0x88, 0x13, 0x88, 0x64, ++ 0x64, 0x20, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, ++ 0x02, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETGIP2, ++ 0x02, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x02, 0x46, 0x02, 0x88, ++ 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0x88, 0x13, ++ 0x57, 0x13, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, ++ 0x75, 0x88, 0x23, 0x14, 0x00, 0x00, 0x02, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0A, ++ 0xA5, 0x00, 0x00, 0x00, 0x00); ++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETGAMMA, ++ 0x00, 0x09, 0x0D, 0x23, 0x27, 0x3C, 0x41, 0x35, ++ 0x07, 0x0D, 0x0E, 0x12, 0x13, 0x10, 0x12, 0x12, ++ 0x18, 0x00, 0x09, 0x0D, 0x23, 0x27, 0x3C, 0x41, ++ 0x35, 0x07, 0x0D, 0x0E, 0x12, 0x13, 0x10, 0x12, ++ 0x12, 0x18); ++ msleep(20); ++ ++ ret = mipi_dsi_dcs_exit_sleep_mode(dsi); ++ if (ret < 0) { ++ DRM_DEV_ERROR(dev, "Failed to exit sleep mode\n"); ++ return ret; ++ } ++ msleep(250); ++ ++ ret = mipi_dsi_dcs_set_display_on(dsi); ++ if (ret) ++ return ret; ++ msleep(50); ++ ++ DRM_DEV_DEBUG_DRIVER(dev, "Panel init sequence done\n"); ++ return 0; ++} ++ ++static int xbd599_prepare(struct drm_panel *panel) ++{ ++ struct xbd599 *ctx = panel_to_xbd599(panel); ++ int ret; ++ ++ if (ctx->prepared) ++ return 0; ++ ++ ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ctx->supplies); ++ if (ret) ++ return ret; ++ ++ DRM_DEV_DEBUG_DRIVER(ctx->dev, "Resetting the panel\n"); ++ gpiod_set_value_cansleep(ctx->reset_gpio, 1); ++ usleep_range(20, 40); ++ gpiod_set_value_cansleep(ctx->reset_gpio, 0); ++ msleep(20); ++ ++ ctx->prepared = true; ++ ++ return 0; ++} ++ ++static int xbd599_enable(struct drm_panel *panel) ++{ ++ struct xbd599 *ctx = panel_to_xbd599(panel); ++ int ret; ++ ++ ret = xbd599_init_sequence(ctx); ++ if (ret < 0) { ++ DRM_DEV_ERROR(ctx->dev, "Panel init sequence failed: %d\n", ++ ret); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int xbd599_disable(struct drm_panel *panel) ++{ ++ struct xbd599 *ctx = panel_to_xbd599(panel); ++ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); ++ ++ return mipi_dsi_dcs_set_display_off(dsi); ++} ++ ++static int xbd599_unprepare(struct drm_panel *panel) ++{ ++ struct xbd599 *ctx = panel_to_xbd599(panel); ++ ++ if (!ctx->prepared) ++ return 0; ++ ++ gpiod_set_value_cansleep(ctx->reset_gpio, 1); ++ regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies); ++ ctx->prepared = false; ++ ++ return 0; ++} ++ ++static const struct drm_display_mode xbd599_default_mode = { ++ .hdisplay = 720, ++ .hsync_start = 720 + 40, ++ .hsync_end = 720 + 40 + 40, ++ .htotal = 720 + 40 + 40 + 40, ++ .vdisplay = 1440, ++ .vsync_start = 1440 + 18, ++ .vsync_end = 1440 + 18 + 10, ++ .vtotal = 1440 + 18 + 10 + 17, ++ .vrefresh = 60, ++ .clock = 69000, ++ .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC, ++ ++ .width_mm = 68, ++ .height_mm = 136, ++ .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED, ++}; ++ ++static int xbd599_get_modes(struct drm_panel *panel, ++ struct drm_connector *connector) ++{ ++ struct xbd599 *ctx = panel_to_xbd599(panel); ++ struct drm_display_mode *mode; ++ ++ mode = drm_mode_duplicate(connector->dev, &xbd599_default_mode); ++ if (!mode) { ++ DRM_DEV_ERROR(ctx->dev, "Failed to add mode\n"); ++ return -ENOMEM; ++ } ++ ++ drm_mode_set_name(mode); ++ ++ mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; ++ connector->display_info.width_mm = mode->width_mm; ++ connector->display_info.height_mm = mode->height_mm; ++ drm_mode_probed_add(connector, mode); ++ ++ return 1; ++} ++ ++static const struct drm_panel_funcs xbd599_drm_funcs = { ++ .prepare = xbd599_prepare, ++ .enable = xbd599_enable, ++ .disable = xbd599_disable, ++ .unprepare = xbd599_unprepare, ++ .get_modes = xbd599_get_modes, ++}; ++ ++static int xbd599_probe(struct mipi_dsi_device *dsi) ++{ ++ struct device *dev = &dsi->dev; ++ struct xbd599 *ctx; ++ int i, ret; ++ ++ ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); ++ if (!ctx) ++ return -ENOMEM; ++ ++ for (i = 0; i < ARRAY_SIZE(ctx->supplies); i++) ++ ctx->supplies[i].supply = regulator_names[i]; ++ ++ ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies), ++ ctx->supplies); ++ if (ret < 0) { ++ DRM_DEV_ERROR(&dsi->dev, "cannot get regulators\n"); ++ return ret; ++ } ++ ++ ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); ++ if (IS_ERR(ctx->reset_gpio)) { ++ DRM_DEV_ERROR(dev, "cannot get reset gpio\n"); ++ return PTR_ERR(ctx->reset_gpio); ++ } ++ ++ mipi_dsi_set_drvdata(dsi, ctx); ++ ++ ctx->dev = dev; ++ ++ dsi->lanes = 4; ++ dsi->format = MIPI_DSI_FMT_RGB888; ++ dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE; ++ ++ drm_panel_init(&ctx->panel, &dsi->dev, &xbd599_drm_funcs, ++ DRM_MODE_CONNECTOR_DSI); ++ ++ ret = drm_panel_of_backlight(&ctx->panel); ++ if (ret) ++ return ret; ++ ++ drm_panel_add(&ctx->panel); ++ ++ ret = mipi_dsi_attach(dsi); ++ if (ret < 0) { ++ DRM_DEV_ERROR(dev, "mipi_dsi_attach failed. Is host ready?\n"); ++ drm_panel_remove(&ctx->panel); ++ return ret; ++ } ++ ++ DRM_DEV_INFO(dev, "%ux%u@%u %ubpp dsi %udl - ready\n", ++ xbd599_default_mode.hdisplay, ++ xbd599_default_mode.vdisplay, ++ xbd599_default_mode.vrefresh, ++ mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes); ++ ++ return 0; ++} ++ ++static void xbd599_shutdown(struct mipi_dsi_device *dsi) ++{ ++ struct xbd599 *ctx = mipi_dsi_get_drvdata(dsi); ++ int ret; ++ ++ ret = drm_panel_unprepare(&ctx->panel); ++ if (ret < 0) ++ DRM_DEV_ERROR(&dsi->dev, "Failed to unprepare panel: %d\n", ++ ret); ++} ++ ++static int xbd599_remove(struct mipi_dsi_device *dsi) ++{ ++ struct xbd599 *ctx = mipi_dsi_get_drvdata(dsi); ++ int ret; ++ ++ xbd599_shutdown(dsi); ++ ++ ret = mipi_dsi_detach(dsi); ++ if (ret < 0) ++ DRM_DEV_ERROR(&dsi->dev, "Failed to detach from DSI host: %d\n", ++ ret); ++ ++ drm_panel_remove(&ctx->panel); ++ ++ return 0; ++} ++ ++static const struct of_device_id xbd599_of_match[] = { ++ { .compatible = "xingbangda,xbd599", }, ++ { /* sentinel */ } ++}; ++MODULE_DEVICE_TABLE(of, xbd599_of_match); ++ ++static struct mipi_dsi_driver xbd599_driver = { ++ .probe = xbd599_probe, ++ .remove = xbd599_remove, ++ .shutdown = xbd599_shutdown, ++ .driver = { ++ .name = "panel-xingbangda-xbd599", ++ .of_match_table = xbd599_of_match, ++ }, ++}; ++module_mipi_dsi_driver(xbd599_driver); ++ ++MODULE_AUTHOR("Icenowy Zheng "); ++MODULE_DESCRIPTION("DRM driver for Xingbangda XBD599 MIPI DSI panel"); ++MODULE_LICENSE("GPL v2"); + +From patchwork Mon Mar 16 13:35:02 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Icenowy Zheng +X-Patchwork-Id: 11440385 +Return-Path: + +Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org + [172.30.200.123]) + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3551613B1 + for ; + Mon, 16 Mar 2020 13:38:04 +0000 (UTC) +Received: from bombadil.infradead.org (bombadil.infradead.org + [198.137.202.133]) + (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by mail.kernel.org (Postfix) with ESMTPS id 12F1120658 + for ; + Mon, 16 Mar 2020 13:38:04 +0000 (UTC) +Authentication-Results: mail.kernel.org; + dkim=pass (2048-bit key) header.d=lists.infradead.org + header.i=@lists.infradead.org header.b="FXIsTC05"; + dkim=fail reason="signature verification failed" (1024-bit key) + header.d=aosc.io header.i=@aosc.io header.b="quP9cKqY" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 12F1120658 +Authentication-Results: mail.kernel.org; + dmarc=none (p=none dis=none) header.from=aosc.io +Authentication-Results: mail.kernel.org; + spf=none + smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org +DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; + d=lists.infradead.org; s=bombadil.20170209; h=Sender: + Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: + List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: + Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: + Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: + List-Owner; bh=Ok8n9BLE8SnVMofHytH8sKJgOZAdRVkUgENm5rZmFlM=; b=FXIsTC05LwmLW8 + JIUJYcuGPwnerCktLqhIRVMIoUACV+PBjwCaXLEWUaLpYsx/fkH/6JQM4BBzg1AyfDq3atRF/nnBb + XD4OWFZC8nCVDiR7dqlEAxyOti5i1hsKYi1uKkOlwNdMx50Vklm+IEr5nd2rtKoWSFgNvr0LIQmYR + jk2fY+4TpwdEjCfSfCDoDlZsCssNnoQsaN2VRgkV0bKKSaQ+OTufaRoG4E3Ktjp2f0+IE0+saR8OT + ah8mB5WNxc5/MFTGoh8hq8aF2GlOfdhjRuNORBTjH7FRmGVFIsFY1dfMmTBQOnsDrxzz2guZVksZN + nf60u+PrkKp4zaAGdb8A==; +Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) + by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) + id 1jDpwP-0007eD-4F; Mon, 16 Mar 2020 13:38:01 +0000 +Received: from dodo.xh.is ([2001:19f0:8001:184d:5400:2ff:fe7b:e8bd]) + by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) + id 1jDpwL-0007bo-FZ + for linux-arm-kernel@lists.infradead.org; Mon, 16 Mar 2020 13:37:58 +0000 +X-Spam: yes +X-Spam-Score: 6.6 / 99999 +X-Spam-Symbols: TO_DN_SOME, FREEMAIL_ENVRCPT, TO_MATCH_ENVRCPT_SOME, + MID_CONTAINS_FROM, RCVD_NO_TLS_LAST, RCVD_COUNT_TWO, + SUSPICIOUS_RECIPS, FROM_EQ_ENVFROM, ASN, R_MISSING_CHARSET, + TAGGED_RCPT, RCPT_COUNT_TWELVE, FREEMAIL_TO, ARC_NA, + RCVD_VIA_SMTP_AUTH, FROM_HAS_DN, BROKEN_CONTENT_TYPE, + MIME_TRACE +Received: by dodo.xh.is (OpenSMTPD) with ESMTPSA id d83d4fb8 + (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); + Mon, 16 Mar 2020 06:37:56 -0700 (PDT) +Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: + icenowy@aosc.io) + by hermes.aosc.io (Postfix) with ESMTPSA id 904224CA5E; + Mon, 16 Mar 2020 13:37:47 +0000 (UTC) +From: Icenowy Zheng +To: Thierry Reding , + Sam Ravnborg , + Rob Herring , Maxime Ripard , + Chen-Yu Tsai , Ondrej Jirman +Subject: [PATCH v2 4/5] drm/sun4i: sun6i_mipi_dsi: fix horizontal timing + calculation +Date: Mon, 16 Mar 2020 21:35:02 +0800 +Message-Id: <20200316133503.144650-5-icenowy@aosc.io> +In-Reply-To: <20200316133503.144650-1-icenowy@aosc.io> +References: <20200316133503.144650-1-icenowy@aosc.io> +MIME-Version: 1.0 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aosc.io; s=dkim; + t=1584365875; + h=from:subject:date:message-id:to:cc:mime-version:content-transfer-encoding:in-reply-to:references; + bh=I9YOqCvznKIa+lsR+6QqRxbL27UJzO8C40dZ4CFdKfA=; + b=quP9cKqYYDD232RMGPzPh7YZaHSfncJHKNCNVORZvb7EzFJyswyLBv7GzoCIM/6KvGiH5Z + xbpDQs4fRsR5P/Cp7hTcnx+MoFGO3XV0SD6R82gTqKwejhi4j3ozUQiiIMTMC0P2NzAMb0 + tDkRk8CMwU/bfv3YHZlXvgGaYrZkMd8= +X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 +X-CRM114-CacheID: sfid-20200316_063757_563065_ED0BFB74 +X-CRM114-Status: GOOD ( 13.77 ) +X-Spam-Score: -0.2 (/) +X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: + Content analysis details: (-0.2 points) + pts rule name description + ---- ---------------------- + -------------------------------------------------- + -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, + no trust [2001:19f0:8001:184d:5400:2ff:fe7b:e8bd listed in] + [list.dnswl.org] + -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + 0.1 DKIM_SIGNED Message has a DKIM or DK signature, + not necessarily + valid + -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from + envelope-from domain + -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature + -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from + author's domain +X-BeenThere: linux-arm-kernel@lists.infradead.org +X-Mailman-Version: 2.1.29 +Precedence: list +List-Id: +List-Unsubscribe: + , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: + , + +Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, + dri-devel@lists.freedesktop.org, linux-sunxi@googlegroups.com, + linux-arm-kernel@lists.infradead.org, Icenowy Zheng +Sender: "linux-arm-kernel" +Errors-To: + linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org + +The max() function call in horizontal timing calculation shouldn't pad a +length already subtracted with overhead to overhead, instead it should +only prevent the set timing to underflow. + +Signed-off-by: Icenowy Zheng +--- +No changes in v2. + + drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +index 059939789730..5f2313c40328 100644 +--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c ++++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +@@ -555,7 +555,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, + */ + #define HSA_PACKET_OVERHEAD 10 + hsa = max((unsigned int)HSA_PACKET_OVERHEAD, +- (mode->hsync_end - mode->hsync_start) * Bpp - HSA_PACKET_OVERHEAD); ++ (mode->hsync_end - mode->hsync_start) * Bpp) - HSA_PACKET_OVERHEAD; + + /* + * The backporch is set using a blanking packet (4 +@@ -564,7 +564,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, + */ + #define HBP_PACKET_OVERHEAD 6 + hbp = max((unsigned int)HBP_PACKET_OVERHEAD, +- (mode->htotal - mode->hsync_end) * Bpp - HBP_PACKET_OVERHEAD); ++ (mode->htotal - mode->hsync_end) * Bpp) - HBP_PACKET_OVERHEAD; + + /* + * The frontporch is set using a sync event (4 bytes) +@@ -574,7 +574,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, + */ + #define HFP_PACKET_OVERHEAD 16 + hfp = max((unsigned int)HFP_PACKET_OVERHEAD, +- (mode->hsync_start - mode->hdisplay) * Bpp - HFP_PACKET_OVERHEAD); ++ (mode->hsync_start - mode->hdisplay) * Bpp) - HFP_PACKET_OVERHEAD; + + /* + * The blanking is set using a sync event (4 bytes) +@@ -583,8 +583,8 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, + */ + #define HBLK_PACKET_OVERHEAD 10 + hblk = max((unsigned int)HBLK_PACKET_OVERHEAD, +- (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp - +- HBLK_PACKET_OVERHEAD); ++ (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp) - ++ HBLK_PACKET_OVERHEAD; + + /* + * And I'm not entirely sure what vblk is about. The driver in + +From patchwork Mon Mar 16 13:35:03 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Icenowy Zheng +X-Patchwork-Id: 11440387 +Return-Path: + +Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org + [172.30.200.123]) + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7CB09913 + for ; + Mon, 16 Mar 2020 13:38:25 +0000 (UTC) +Received: from bombadil.infradead.org (bombadil.infradead.org + [198.137.202.133]) + (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by mail.kernel.org (Postfix) with ESMTPS id 5A3CF20663 + for ; + Mon, 16 Mar 2020 13:38:25 +0000 (UTC) +Authentication-Results: mail.kernel.org; + dkim=pass (2048-bit key) header.d=lists.infradead.org + header.i=@lists.infradead.org header.b="Dprxe0zU"; + dkim=fail reason="signature verification failed" (1024-bit key) + header.d=aosc.io header.i=@aosc.io header.b="gvv4Mt/p" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5A3CF20663 +Authentication-Results: mail.kernel.org; + dmarc=none (p=none dis=none) header.from=aosc.io +Authentication-Results: mail.kernel.org; + spf=none + smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org +DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; + d=lists.infradead.org; s=bombadil.20170209; h=Sender: + Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: + List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: + Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: + Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: + List-Owner; bh=rXiGf8B3g87rqGluDPPXHBPgLye0619C2/zq9YpC9mk=; b=Dprxe0zU40XkWN + m+hX9Icm5bhrdxLR5kmA+FetKifUp/T2toYOeoCfxA03wi/xuH83eTC/NNNeq2exi4vAQPAiKe4kJ + VnYn8drWuau9JdHE7b/KFeIhkULj3sy4MxJnnpxYCj63wXO+BDHm00cs1r8PoIzBtkP4DksqayKx7 + wGb6miY8D9JjeHzt6zhSeG5JXUzPatdZnw/q8zhpgoOk8Y1QDjKgVEgypDPBDp95TtiEO5wv/uPhf + mIFdAYoKy01EX0IF5/r/kyAEQTh95K7IXUz6SJM00+3rHPB7Ut7n48eG0C2qJhljJEsSEWJ1DxbjM + X629GHE95cSsRkq5gd9A==; +Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) + by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) + id 1jDpwj-0007wT-EM; Mon, 16 Mar 2020 13:38:21 +0000 +Received: from dodo.xh.is ([2001:19f0:8001:184d:5400:2ff:fe7b:e8bd]) + by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) + id 1jDpwZ-0007oi-Fv + for linux-arm-kernel@lists.infradead.org; Mon, 16 Mar 2020 13:38:13 +0000 +X-Spam: yes +X-Spam-Score: 6.6 / 99999 +X-Spam-Symbols: FREEMAIL_ENVRCPT, TO_MATCH_ENVRCPT_SOME, FROM_EQ_ENVFROM, + RCVD_VIA_SMTP_AUTH, FREEMAIL_TO, RCVD_COUNT_TWO, ARC_NA, + FROM_HAS_DN, TO_DN_SOME, RCPT_COUNT_TWELVE, RCVD_NO_TLS_LAST, + MIME_TRACE, R_MISSING_CHARSET, TAGGED_RCPT, + BROKEN_CONTENT_TYPE, MID_CONTAINS_FROM, ASN, SUSPICIOUS_RECIPS +Received: by dodo.xh.is (OpenSMTPD) with ESMTPSA id 3f67ee70 + (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); + Mon, 16 Mar 2020 06:38:10 -0700 (PDT) +Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: + icenowy@aosc.io) + by hermes.aosc.io (Postfix) with ESMTPSA id 718DE4CA5E; + Mon, 16 Mar 2020 13:38:00 +0000 (UTC) +From: Icenowy Zheng +To: Thierry Reding , + Sam Ravnborg , + Rob Herring , Maxime Ripard , + Chen-Yu Tsai , Ondrej Jirman +Subject: [PATCH v2 5/5] arm64: allwinner: dts: a64: add LCD-related device + nodes for PinePhone +Date: Mon, 16 Mar 2020 21:35:03 +0800 +Message-Id: <20200316133503.144650-6-icenowy@aosc.io> +In-Reply-To: <20200316133503.144650-1-icenowy@aosc.io> +References: <20200316133503.144650-1-icenowy@aosc.io> +MIME-Version: 1.0 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aosc.io; s=dkim; + t=1584365889; + h=from:subject:date:message-id:to:cc:mime-version:content-transfer-encoding:in-reply-to:references; + bh=vdJB1xaYREfjx8A1fc+UP5D7fCK/5ZczA3DRbH+hq08=; + b=gvv4Mt/ppP1U5dpUHA5n8qTEzN2afgaBkT+M0HHnD2QpiRBO0b4PVtnd5WiFOkLgnHm3Cm + uS+WljMpibhdzup+UJWKXGt9n3IFyflFgVAqemHSAFN5h+VJ1vskMjGMiiu1teCs1nUAhP + zGvHhAcI1EY4J2t587DsvuxH/d6lNFs= +X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 +X-CRM114-CacheID: sfid-20200316_063811_575168_FBAB174A +X-CRM114-Status: GOOD ( 11.16 ) +X-Spam-Score: -0.2 (/) +X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: + Content analysis details: (-0.2 points) + pts rule name description + ---- ---------------------- + -------------------------------------------------- + -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, + no trust [2001:19f0:8001:184d:5400:2ff:fe7b:e8bd listed in] + [list.dnswl.org] + -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + 0.1 DKIM_SIGNED Message has a DKIM or DK signature, + not necessarily + valid + -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from + envelope-from domain + -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature + -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from + author's domain +X-BeenThere: linux-arm-kernel@lists.infradead.org +X-Mailman-Version: 2.1.29 +Precedence: list +List-Id: +List-Unsubscribe: + , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: + , + +Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, + dri-devel@lists.freedesktop.org, linux-sunxi@googlegroups.com, + linux-arm-kernel@lists.infradead.org, Icenowy Zheng +Sender: "linux-arm-kernel" +Errors-To: + linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org + +PinePhone uses PWM backlight and a XBD599 LCD panel over DSI for +display. + +Add its device nodes. + +Signed-off-by: Icenowy Zheng +--- +No changes in v2. + + .../dts/allwinner/sun50i-a64-pinephone.dtsi | 37 +++++++++++++++++++ + 1 file changed, 37 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +index cefda145c3c9..96d9150423e0 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +@@ -16,6 +16,15 @@ aliases { + serial0 = &uart0; + }; + ++ backlight: backlight { ++ compatible = "pwm-backlight"; ++ pwms = <&r_pwm 0 50000 PWM_POLARITY_INVERTED>; ++ brightness-levels = <0 16 18 20 22 24 26 29 32 35 38 42 46 51 56 62 68 75 83 91 100>; ++ default-brightness-level = <15>; ++ enable-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */ ++ power-supply = <®_ldo_io0>; ++ }; ++ + chosen { + stdout-path = "serial0:115200n8"; + }; +@@ -84,6 +93,30 @@ &dai { + status = "okay"; + }; + ++&de { ++ status = "okay"; ++}; ++ ++&dphy { ++ status = "okay"; ++}; ++ ++&dsi { ++ vcc-dsi-supply = <®_dldo1>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ panel@0 { ++ compatible = "xingbangda,xbd599"; ++ reg = <0>; ++ reset-gpios = <&pio 3 23 GPIO_ACTIVE_LOW>; /* PD23 */ ++ iovcc-supply = <®_dldo2>; ++ vcc-supply = <®_ldo_io0>; ++ backlight = <&backlight>; ++ }; ++}; ++ + &ehci0 { + status = "okay"; + }; +@@ -188,6 +221,10 @@ &r_pio { + */ + }; + ++&r_pwm { ++ status = "okay"; ++}; ++ + &r_rsb { + status = "okay"; + diff --git a/kernel-aarch64-debug-fedora.config b/kernel-aarch64-debug-fedora.config index 5b5334f9a..77b4f910a 100644 --- a/kernel-aarch64-debug-fedora.config +++ b/kernel-aarch64-debug-fedora.config @@ -1600,6 +1600,7 @@ CONFIG_DRM_PANEL_SITRONIX_ST7701=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m +CONFIG_DRM_PANEL_XINGBANGDA_XBD599=m # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y CONFIG_DRM_PANFROST=m diff --git a/kernel-aarch64-fedora.config b/kernel-aarch64-fedora.config index a339896c7..81f59f036 100644 --- a/kernel-aarch64-fedora.config +++ b/kernel-aarch64-fedora.config @@ -1592,6 +1592,7 @@ CONFIG_DRM_PANEL_SITRONIX_ST7701=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m +CONFIG_DRM_PANEL_XINGBANGDA_XBD599=m # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y CONFIG_DRM_PANFROST=m diff --git a/kernel-armv7hl-debug-fedora.config b/kernel-armv7hl-debug-fedora.config index c66e1133c..b739293ff 100644 --- a/kernel-armv7hl-debug-fedora.config +++ b/kernel-armv7hl-debug-fedora.config @@ -1616,6 +1616,7 @@ CONFIG_DRM_PANEL_SITRONIX_ST7701=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y CONFIG_DRM_PANFROST=m diff --git a/kernel-armv7hl-fedora.config b/kernel-armv7hl-fedora.config index 6f058b1dd..3ade340f2 100644 --- a/kernel-armv7hl-fedora.config +++ b/kernel-armv7hl-fedora.config @@ -1609,6 +1609,7 @@ CONFIG_DRM_PANEL_SITRONIX_ST7701=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y CONFIG_DRM_PANFROST=m diff --git a/kernel-armv7hl-lpae-debug-fedora.config b/kernel-armv7hl-lpae-debug-fedora.config index e544c48bb..dee41111b 100644 --- a/kernel-armv7hl-lpae-debug-fedora.config +++ b/kernel-armv7hl-lpae-debug-fedora.config @@ -1571,6 +1571,7 @@ CONFIG_DRM_PANEL_SITRONIX_ST7701=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y CONFIG_DRM_PANFROST=m diff --git a/kernel-armv7hl-lpae-fedora.config b/kernel-armv7hl-lpae-fedora.config index 226fb50a4..3c7a2ba7a 100644 --- a/kernel-armv7hl-lpae-fedora.config +++ b/kernel-armv7hl-lpae-fedora.config @@ -1564,6 +1564,7 @@ CONFIG_DRM_PANEL_SITRONIX_ST7701=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y CONFIG_DRM_PANFROST=m diff --git a/kernel-i686-debug-fedora.config b/kernel-i686-debug-fedora.config index b909e248e..2c0c7ec6a 100644 --- a/kernel-i686-debug-fedora.config +++ b/kernel-i686-debug-fedora.config @@ -1335,6 +1335,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set diff --git a/kernel-i686-fedora.config b/kernel-i686-fedora.config index cae2b33cb..0cf5f785a 100644 --- a/kernel-i686-fedora.config +++ b/kernel-i686-fedora.config @@ -1326,6 +1326,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set diff --git a/kernel-ppc64le-debug-fedora.config b/kernel-ppc64le-debug-fedora.config index 7f0f9e6e5..7488797de 100644 --- a/kernel-ppc64le-debug-fedora.config +++ b/kernel-ppc64le-debug-fedora.config @@ -1227,6 +1227,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set diff --git a/kernel-ppc64le-fedora.config b/kernel-ppc64le-fedora.config index 99c48050a..e59a04250 100644 --- a/kernel-ppc64le-fedora.config +++ b/kernel-ppc64le-fedora.config @@ -1218,6 +1218,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set diff --git a/kernel-s390x-debug-fedora.config b/kernel-s390x-debug-fedora.config index f8c8caebf..675cdacee 100644 --- a/kernel-s390x-debug-fedora.config +++ b/kernel-s390x-debug-fedora.config @@ -1233,6 +1233,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set diff --git a/kernel-s390x-fedora.config b/kernel-s390x-fedora.config index 23c26c31f..251997b4d 100644 --- a/kernel-s390x-fedora.config +++ b/kernel-s390x-fedora.config @@ -1224,6 +1224,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set diff --git a/kernel-x86_64-debug-fedora.config b/kernel-x86_64-debug-fedora.config index 148bd2342..c52f99776 100644 --- a/kernel-x86_64-debug-fedora.config +++ b/kernel-x86_64-debug-fedora.config @@ -1373,6 +1373,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set diff --git a/kernel-x86_64-fedora.config b/kernel-x86_64-fedora.config index 9b1a38246..24121b0e7 100644 --- a/kernel-x86_64-fedora.config +++ b/kernel-x86_64-fedora.config @@ -1364,6 +1364,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set diff --git a/kernel.spec b/kernel.spec index 70a2e5667..d84229b7d 100644 --- a/kernel.spec +++ b/kernel.spec @@ -856,6 +856,8 @@ Patch343: Add-LCD-support-for-Pine64-Pinebook-1080p.patch Patch344: arm64-pine64-pinetab.patch # https://www.spinics.net/lists/arm-kernel/msg789135.html Patch345: arm64-pine64-pinephone.patch +# https://patchwork.kernel.org/cover/11440399/ +Patch346: Add-support-for-PinePhone-LCD-panel.patch # 400 - IBM (ppc/s390x) patches From e2478b02d5f24647141c9e859b28d20cce8ef675 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Fri, 20 Mar 2020 17:56:53 -0400 Subject: [PATCH 015/191] Switch Secure Boot to lock down in integrity mode (rhbz 1815571) --- efi-secureboot.patch | 2 +- s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/efi-secureboot.patch b/efi-secureboot.patch index 326c73a0f..90ac9feca 100644 --- a/efi-secureboot.patch +++ b/efi-secureboot.patch @@ -303,7 +303,7 @@ index 1797623b0c3a..fa8ac411bf6e 100644 + +#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT + if (efi_enabled(EFI_SECURE_BOOT)) -+ security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_CONFIDENTIALITY_MAX); ++ security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_INTEGRITY_MAX); +#endif + dmi_setup(); diff --git a/s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch b/s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch index 0779418b4..70e3f76a8 100644 --- a/s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch +++ b/s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch @@ -3,7 +3,7 @@ From: Jeremy Cline Date: Wed, 30 Oct 2019 14:37:49 +0000 Subject: [PATCH] s390: Lock down the kernel when the IPL secure flag is set -Automatically lock down the kernel to LOCKDOWN_CONFIDENTIALITY_MAX if +Automatically lock down the kernel to LOCKDOWN_INTEGRITY_MAX if the IPL secure flag is set. Suggested-by: Philipp Rudo @@ -56,7 +56,7 @@ index 9cbf490fd162..0510ecdfc3f6 100644 log_component_list(); + if (ipl_get_secureboot()) -+ security_lock_kernel_down("Secure IPL mode", LOCKDOWN_CONFIDENTIALITY_MAX); ++ security_lock_kernel_down("Secure IPL mode", LOCKDOWN_INTEGRITY_MAX); + /* Have one command line that is parsed and saved in /proc/cmdline */ /* boot_command_line has been already set up in early.c */ From 92804c49fc8d7002ceb4f403e1c6fcb63b6241a0 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Fri, 20 Mar 2020 18:00:25 -0400 Subject: [PATCH 016/191] Linux v5.6-rc6-115-g5ad0ec0b8652 --- gitrev | 2 +- kernel.spec | 6 +++++- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/gitrev b/gitrev index 708b0a19d..22fff2bf7 100644 --- a/gitrev +++ b/gitrev @@ -1 +1 @@ -ac309e7744bee222df6de0122facaf2d9706fa70 +5ad0ec0b86525d0c5d3d250d3cfad7f183b00cfa diff --git a/kernel.spec b/kernel.spec index d84229b7d..3d56d6f51 100644 --- a/kernel.spec +++ b/kernel.spec @@ -107,7 +107,7 @@ Summary: The Linux kernel # The rc snapshot level %global rcrev 6 # The git snapshot level -%define gitrev 1 +%define gitrev 2 # Set rpm version accordingly %define rpmversion 5.%{upstream_sublevel}.0 %endif @@ -2982,6 +2982,10 @@ fi # # %changelog +* Fri Mar 20 2020 Jeremy Cline - 5.6.0-0.rc6.git2.1 +- Linux v5.6-rc6-115-g5ad0ec0b8652 +- Switch Secure Boot to lock down to integrity mode (rhbz 1815571) + * Wed Mar 18 2020 Jeremy Cline - 5.6.0-0.rc6.git1.1 - Linux v5.6-rc6-9-gac309e7744be diff --git a/sources b/sources index 751ecf590..b95341d61 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-5.5.tar.xz) = fa74fdabb5e63384a39e54da05b86a9ae9ea16179524b041fbbdffc7177e80b53600ae98d76be127ba216148f9dc55fe07ab20637e22c6d6030cb4aa09eb2f86 SHA512 (patch-5.6-rc6.xz) = cb4867da79eaf199e65414be258b1ebf231eff3c506b27d0196c835a05c40937ec02604a982359379ed9a6a7d066f00ca87553df5f57bccfd47db0ceada9ae7f -SHA512 (patch-5.6-rc6-git1.xz) = 0d0c1995e9da2ce8138b3e58a3a7e3d431cccbca869a6889fefeb8c3e8dfee32f6ed0235404a81eaadb9d37ed08e90a17da9c4c194ab6d87efe11240321ef7b6 +SHA512 (patch-5.6-rc6-git2.xz) = bcf4b88390df78503b1ae4e3154d53e269ecdfc9fc6aeca2a9807a302409168b15988a3a4eafaa9ef94e1bba357dd6245eee9c53027e915a10522e58e7ab6698 From e19c9c1c6118387ea0869107bb6a6c9d40ca2910 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 21 Mar 2020 16:10:08 +0000 Subject: [PATCH 017/191] add DRM_PANEL_XINGBANGDA_XBD599 options --- configs/fedora/generic/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 | 1 + .../generic/arm/aarch64/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 | 1 + 2 files changed, 2 insertions(+) create mode 100644 configs/fedora/generic/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 create mode 100644 configs/fedora/generic/arm/aarch64/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 b/configs/fedora/generic/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 new file mode 100644 index 000000000..b3e186e66 --- /dev/null +++ b/configs/fedora/generic/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 @@ -0,0 +1 @@ +# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 b/configs/fedora/generic/arm/aarch64/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 new file mode 100644 index 000000000..aba5e985e --- /dev/null +++ b/configs/fedora/generic/arm/aarch64/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 @@ -0,0 +1 @@ +CONFIG_DRM_PANEL_XINGBANGDA_XBD599=m From 12e2e3d1d87850cf69f4c31ecbacb6d3006f9cb1 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 22 Mar 2020 10:10:47 +0000 Subject: [PATCH 018/191] build IIO inx2xx adc for all arm arches --- configs/fedora/generic/arm/{aarch64 => }/CONFIG_INA2XX_ADC | 0 kernel-armv7hl-debug-fedora.config | 2 +- kernel-armv7hl-fedora.config | 2 +- kernel-armv7hl-lpae-debug-fedora.config | 2 +- kernel-armv7hl-lpae-fedora.config | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) rename configs/fedora/generic/arm/{aarch64 => }/CONFIG_INA2XX_ADC (100%) diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_INA2XX_ADC b/configs/fedora/generic/arm/CONFIG_INA2XX_ADC similarity index 100% rename from configs/fedora/generic/arm/aarch64/CONFIG_INA2XX_ADC rename to configs/fedora/generic/arm/CONFIG_INA2XX_ADC diff --git a/kernel-armv7hl-debug-fedora.config b/kernel-armv7hl-debug-fedora.config index b739293ff..c3994369d 100644 --- a/kernel-armv7hl-debug-fedora.config +++ b/kernel-armv7hl-debug-fedora.config @@ -2563,7 +2563,7 @@ CONFIG_IMX_SC_WDT=m CONFIG_IMX_SDMA=m CONFIG_IMX_THERMAL=m CONFIG_IMX_WEIM=y -# CONFIG_INA2XX_ADC is not set +CONFIG_INA2XX_ADC=m CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_ESP_OFFLOAD=m diff --git a/kernel-armv7hl-fedora.config b/kernel-armv7hl-fedora.config index 3ade340f2..ccc05f00a 100644 --- a/kernel-armv7hl-fedora.config +++ b/kernel-armv7hl-fedora.config @@ -2548,7 +2548,7 @@ CONFIG_IMX_SC_WDT=m CONFIG_IMX_SDMA=m CONFIG_IMX_THERMAL=m CONFIG_IMX_WEIM=y -# CONFIG_INA2XX_ADC is not set +CONFIG_INA2XX_ADC=m CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_ESP_OFFLOAD=m diff --git a/kernel-armv7hl-lpae-debug-fedora.config b/kernel-armv7hl-lpae-debug-fedora.config index dee41111b..1dd79f5fa 100644 --- a/kernel-armv7hl-lpae-debug-fedora.config +++ b/kernel-armv7hl-lpae-debug-fedora.config @@ -2503,7 +2503,7 @@ CONFIG_IMX_MBOX=m CONFIG_IMX_SC_WDT=m CONFIG_IMX_SDMA=m # CONFIG_IMX_WEIM is not set -# CONFIG_INA2XX_ADC is not set +CONFIG_INA2XX_ADC=m CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_ESP_OFFLOAD=m diff --git a/kernel-armv7hl-lpae-fedora.config b/kernel-armv7hl-lpae-fedora.config index 3c7a2ba7a..ad95f951f 100644 --- a/kernel-armv7hl-lpae-fedora.config +++ b/kernel-armv7hl-lpae-fedora.config @@ -2488,7 +2488,7 @@ CONFIG_IMX_MBOX=m CONFIG_IMX_SC_WDT=m CONFIG_IMX_SDMA=m # CONFIG_IMX_WEIM is not set -# CONFIG_INA2XX_ADC is not set +CONFIG_INA2XX_ADC=m CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_ESP_OFFLOAD=m From eacb151f75dfd95f093577679fdcff8d6b8f4f35 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 23 Mar 2020 10:23:18 +0000 Subject: [PATCH 019/191] Disable debugging options. --- kernel.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index 3d56d6f51..a56743d59 100644 --- a/kernel.spec +++ b/kernel.spec @@ -200,7 +200,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 0 +%define debugbuildsenabled 1 %if 0%{?fedora} # Kernel headers are being split out into a separate package @@ -2982,6 +2982,9 @@ fi # # %changelog +* Mon Mar 23 2020 Peter Robinson +- Disable debugging options. + * Fri Mar 20 2020 Jeremy Cline - 5.6.0-0.rc6.git2.1 - Linux v5.6-rc6-115-g5ad0ec0b8652 - Switch Secure Boot to lock down to integrity mode (rhbz 1815571) From 867ad43228fa81b97a1867a50775cf489a7901af Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 23 Mar 2020 10:32:09 +0000 Subject: [PATCH 020/191] Linux v5.6-rc7 --- kernel.spec | 7 +++++-- sources | 3 +-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/kernel.spec b/kernel.spec index a56743d59..26da3ded6 100644 --- a/kernel.spec +++ b/kernel.spec @@ -105,9 +105,9 @@ Summary: The Linux kernel # The next upstream release sublevel (base_sublevel+1) %define upstream_sublevel %(echo $((%{base_sublevel} + 1))) # The rc snapshot level -%global rcrev 6 +%global rcrev 7 # The git snapshot level -%define gitrev 2 +%define gitrev 0 # Set rpm version accordingly %define rpmversion 5.%{upstream_sublevel}.0 %endif @@ -2982,6 +2982,9 @@ fi # # %changelog +* Mon Mar 23 2020 Peter Robinson - 5.6.0-0.rc7.git0.1 +- Linux v5.6-rc7 + * Mon Mar 23 2020 Peter Robinson - Disable debugging options. diff --git a/sources b/sources index b95341d61..23c2b2153 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ SHA512 (linux-5.5.tar.xz) = fa74fdabb5e63384a39e54da05b86a9ae9ea16179524b041fbbdffc7177e80b53600ae98d76be127ba216148f9dc55fe07ab20637e22c6d6030cb4aa09eb2f86 -SHA512 (patch-5.6-rc6.xz) = cb4867da79eaf199e65414be258b1ebf231eff3c506b27d0196c835a05c40937ec02604a982359379ed9a6a7d066f00ca87553df5f57bccfd47db0ceada9ae7f -SHA512 (patch-5.6-rc6-git2.xz) = bcf4b88390df78503b1ae4e3154d53e269ecdfc9fc6aeca2a9807a302409168b15988a3a4eafaa9ef94e1bba357dd6245eee9c53027e915a10522e58e7ab6698 +SHA512 (patch-5.6-rc7.xz) = 02ddf28d22d732bbf9dce161790b9aafcec120c22f3a1a158b4031a44388043ef38c0618fd5cc7ebb73d626293ad517c6e7c587f549f1aa2d626fca418af4a51 From 279120767f03dd4b6e8fc1b096227740e1843d2c Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 25 Mar 2020 12:26:55 +0000 Subject: [PATCH 021/191] Update RPi4 USB/pci quriks patch to latest upstream --- USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch | 274 +++++++++--------- 1 file changed, 139 insertions(+), 135 deletions(-) diff --git a/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch b/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch index 894a56a14..fb7c1afaf 100644 --- a/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch +++ b/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch @@ -1,27 +1,27 @@ -From patchwork Tue Mar 10 12:52:39 2020 +From patchwork Tue Mar 24 18:28:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11429251 +X-Patchwork-Id: 11456187 Return-Path: - + Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8D720924 + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 884BD1667 for ; - Tue, 10 Mar 2020 12:53:32 +0000 (UTC) + Tue, 24 Mar 2020 18:29:06 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 663C724693 + by mail.kernel.org (Postfix) with ESMTPS id 64FF0206F6 for ; - Tue, 10 Mar 2020 12:53:32 +0000 (UTC) + Tue, 24 Mar 2020 18:29:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="brxu2SSp" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 663C724693 + header.i=@lists.infradead.org header.b="G3ed3Qzw" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 64FF0206F6 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; @@ -33,50 +33,50 @@ DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=ZW8pFtwlUj3q7GZJotB4Rgjtfp9gMy+l74jJQcTab0w=; b=brxu2SSpvrhJNb - w5nIpDDyBZwSbCT9/lV2mTMlmQYmRJmzfp6qMUdidNb6M06u9vNMEUs7Ux1xhzZ+2kUiHMGdYmySb - 2ZTluMYsD0wDWn/cBbbQSTAVeWuM5loKbQx7f6YtApSP/BRhwHyQT2hOCH5FQsO4upkRzvyiu1oDy - RFlB4bVwhxeh0DLHk4treOY7PH07MfqozbH1deQqmRPbrtHmPfNqVfuLHJoWQUyHBobxUu8VcPdIN - hznwXAVJBLYVLiKMQQ+KFCAaj2Qhv5LbtahIMlTj8qx3PdD4LASzktKkD/iUYd358hJSk43gJpAIe - 812yC2v21Pex7ZCY06ag==; + List-Owner; bh=ZW8pFtwlUj3q7GZJotB4Rgjtfp9gMy+l74jJQcTab0w=; b=G3ed3QzwnvX3MD + lHn7XDGcdKtGCuuX/Xhmoz/5j7Rgw1hOz3+8tGJaH+BigLM7Kfms9kB2c3chHrDwTH5SW0LzlU8el + hxpbcJnVFy3VLdCMUrvQUXY0SmOcoSSN3NK032HxlqAKSa5HPE3dTBWheiUGKlZ6c3A9dGItYzD6I + M4WO+9b0wHM1KMMrsyVo51ysdAFEXtSym1xNN+pW/tE9ak+/bFHxMW1XcMNrVwo9R43U5JSvmcC0M + OKBYNAYFpFWx3n3wvAaFQkBEkmH3QmPBd0aiE8UTGk6CY0VHwjbVcE7u7daksOPLrZgsRgqmLRatE + 98WbgEKpzDu7mgvLn5zw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jBeO2-0004Ny-7z; Tue, 10 Mar 2020 12:53:30 +0000 + id 1jGoIP-0002bD-LX; Tue, 24 Mar 2020 18:29:01 +0000 Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jBeNk-00048F-6W; Tue, 10 Mar 2020 12:53:13 +0000 + id 1jGoHq-00024O-PS; Tue, 24 Mar 2020 18:28:29 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id DF3D2B149; - Tue, 10 Mar 2020 12:53:10 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 4A537ABD1; + Tue, 24 Mar 2020 18:28:22 +0000 (UTC) From: Nicolas Saenz Julienne To: linux-kernel@vger.kernel.org, Florian Fainelli , Ray Jui , Scott Branden , bcm-kernel-feedback-list@broadcom.com, Nicolas Saenz Julienne -Subject: [PATCH v5 1/4] soc: bcm2835: Sync xHCI reset firmware property with +Subject: [PATCH v6 1/4] soc: bcm2835: Sync xHCI reset firmware property with downstream -Date: Tue, 10 Mar 2020 13:52:39 +0100 -Message-Id: <20200310125243.25805-2-nsaenzjulienne@suse.de> +Date: Tue, 24 Mar 2020 19:28:09 +0100 +Message-Id: <20200324182812.20420-2-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200310125243.25805-1-nsaenzjulienne@suse.de> -References: <20200310125243.25805-1-nsaenzjulienne@suse.de> +In-Reply-To: <20200324182812.20420-1-nsaenzjulienne@suse.de> +References: <20200324182812.20420-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200310_055312_379726_E2DB0CE8 -X-CRM114-Status: GOOD ( 13.79 ) +X-CRM114-CacheID: sfid-20200324_112826_965603_11D899C2 +X-CRM114-Status: GOOD ( 13.71 ) X-Spam-Score: -2.3 (--) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (-2.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- - -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, - medium trust [195.135.220.15 listed in list.dnswl.org] 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [195.135.220.15 listed in wl.mailspike.net] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, + medium trust [195.135.220.15 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 @@ -123,30 +123,30 @@ index 7800e12ee042..cc9cdbc66403 100644 /* Dispmanx TAGS */ RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001, -From patchwork Tue Mar 10 12:52:40 2020 +From patchwork Tue Mar 24 18:28:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11429255 +X-Patchwork-Id: 11456191 Return-Path: - + Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D4796138D + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C4D571731 for ; - Tue, 10 Mar 2020 12:53:47 +0000 (UTC) + Tue, 24 Mar 2020 18:29:30 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id B22E52468F + by mail.kernel.org (Postfix) with ESMTPS id 9A787206F6 for ; - Tue, 10 Mar 2020 12:53:47 +0000 (UTC) + Tue, 24 Mar 2020 18:29:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="UnuFVkmk" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B22E52468F + header.i=@lists.infradead.org header.b="Z5B/3JRW" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9A787206F6 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; @@ -158,49 +158,50 @@ DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=eupkp4tsmm4bLugl948LTwuMnwmoAOiN5fj7gGg2GJM=; b=UnuFVkmkE9iLlT - dNztNBOsbtwlARvXfPvQbXyhiNZOH0emv3kmr+XxltWYeAiqH5UzUtJy0KwjF2KunmcjkiSOmBj0b - YDxYVIOUXPbof4UrgceWbINbqzOpy703aw8B2pWaXc2Fx+tkQI31pG+fHwB1TSaAXnCU0ClY85soE - suAOeomFWgZYxgZBIqem7oslnqdQ6KgACCkliCU3dEKd+XX/hZA9C2J0N/EgEwcNWXEmKB9PdwTli - 2lAYh1TlEnx1fuRLvs8UyVj+r4BpSYgTcvEoy1eI12XtX708NuiE57pnSZn3Xc+2EI2fzW/7FowQ/ - edW61tscKfv3VMYGGa4A==; + List-Owner; bh=kAIknZ2RVw6gB9CaOcG4KQjgkdNyrtcLcfH5XAGtITo=; b=Z5B/3JRWWCVYHI + AsxnYFEFit0NnrRvZDbi0ktp8wUbVrztmKRPQWvfaWSlelJEKdEpJhHItnpicKfR5JhfHFsPt3V3X + i29DtdYSOr/cjW/qeoakzXY0b1ApjrrK3MWjX/k0k9SVqGwkq6KT3T3qok969KInPAe0ERZ9bYkP1 + P2Jj1QT0QtCfcd0PsSjn4riMP09KNZVuviLm2bcg3Cr78qfIq6gDHHoS1nqPzdEt4gG+i/s66lTFY + Dd3vPgItuRBvzgAjWdT4Bvx41u82KONuYDshYftzUZX7pxh76o4PwtPoPt/A4hJT0pZZe9MB6pQlM + JwbBVC2fhM1afv00diOw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jBeOE-0004am-Pw; Tue, 10 Mar 2020 12:53:42 +0000 + id 1jGoIm-00032a-5v; Tue, 24 Mar 2020 18:29:24 +0000 Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jBeNl-00048m-7v; Tue, 10 Mar 2020 12:53:14 +0000 + id 1jGoHq-00024W-PL; Tue, 24 Mar 2020 18:28:29 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id EF846B18F; - Tue, 10 Mar 2020 12:53:11 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 3F0CFABE7; + Tue, 24 Mar 2020 18:28:23 +0000 (UTC) From: Nicolas Saenz Julienne -To: linux-kernel@vger.kernel.org, Florian Fainelli , - Ray Jui , Scott Branden , - bcm-kernel-feedback-list@broadcom.com, - Nicolas Saenz Julienne -Subject: [PATCH v5 2/4] firmware: raspberrypi: Introduce vl805 init routine -Date: Tue, 10 Mar 2020 13:52:40 +0100 -Message-Id: <20200310125243.25805-3-nsaenzjulienne@suse.de> +To: linux-kernel@vger.kernel.org, + Nicolas Saenz Julienne , + Florian Fainelli , Ray Jui , + Scott Branden , + bcm-kernel-feedback-list@broadcom.com +Subject: [PATCH v6 2/4] firmware: raspberrypi: Introduce vl805 init routine +Date: Tue, 24 Mar 2020 19:28:10 +0100 +Message-Id: <20200324182812.20420-3-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200310125243.25805-1-nsaenzjulienne@suse.de> -References: <20200310125243.25805-1-nsaenzjulienne@suse.de> +In-Reply-To: <20200324182812.20420-1-nsaenzjulienne@suse.de> +References: <20200324182812.20420-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200310_055313_564661_57DD1A42 -X-CRM114-Status: GOOD ( 15.58 ) +X-CRM114-CacheID: sfid-20200324_112827_110873_06144E1C +X-CRM114-Status: GOOD ( 15.67 ) X-Spam-Score: -2.3 (--) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (-2.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- - -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, - medium trust [195.135.220.15 listed in list.dnswl.org] 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [195.135.220.15 listed in wl.mailspike.net] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, + medium trust [195.135.220.15 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 @@ -233,7 +234,6 @@ Based on Tim Gover's downstream implementation. Signed-off-by: Nicolas Saenz Julienne Reviewed-by: Florian Fainelli --- - Changes since v4: - Inline function definition when RASPBERRYPI_FIRMWARE is not defined @@ -333,30 +333,30 @@ index cc9cdbc66403..3025aca3c358 100644 #endif /* __SOC_RASPBERRY_FIRMWARE_H__ */ -From patchwork Tue Mar 10 12:52:41 2020 +From patchwork Tue Mar 24 18:28:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11429257 +X-Patchwork-Id: 11456189 Return-Path: - + Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DB7DF924 + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 168CB1667 for ; - Tue, 10 Mar 2020 12:54:01 +0000 (UTC) + Tue, 24 Mar 2020 18:29:15 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id B8AF22468F + by mail.kernel.org (Postfix) with ESMTPS id EAB942076E for ; - Tue, 10 Mar 2020 12:54:01 +0000 (UTC) + Tue, 24 Mar 2020 18:29:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="Pukt5VBt" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B8AF22468F + header.i=@lists.infradead.org header.b="BOwwgdOE" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EAB942076E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; @@ -368,51 +368,52 @@ DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=BdoGeNn/NWcbYVlSIJeeADhjLPnS4htif3Z9tAGsAwY=; b=Pukt5VBtbAyyHT - Fl05OgBfjiC6FzMq3vCA9/PjIVGnDl7+C9Y63M8cdUbsobWVut0YWAFVbxQgaQz235gW9sfpGxt/V - mD8vzLqKf6uRRow1iQWGR7cZhKOwWGYd/zGoyQtwE5MR06gK9hYUwfDs7irt11GsjJaAH7uoWvpnV - 1st3tm/ScoO386zatdiMdGhSNU1I42NGKUCH6evFgkwPeoqs0P4NYMA3W2Xnb4VECrMGeEdZLG1bw - 5H3WNE1+8q3HSuXB/qNxf1kgajM102CNfhPWAm9FE9nh/PyRbe/6lrUEy+pFEKOXLWCp4sSHVRek5 - 57BW6iK719eKvyQ3iNbg==; + List-Owner; bh=CLmK04T+baw5jWu/lH2cJ3fygso/fqFgoMOSigkpvRw=; b=BOwwgdOEAmbVoa + /8AtILxDfcKBVhbig0LKPFd94roUQzY/SylcBG5jWceT90PE3BxYgomfaBA6U41LW9Xe5LZsfylId + /IP3RNq34yRDWPXo3WWkLFYEtwJB60SWZlD8BG+ApGeUJ9z6vXTL9h3K9ThLwhFycZOkSxtDMicCG + vkP4ErkYnvASxQ021+lq/VxFgdnvtKcw2OE+ghhRHgOn8dc+/dJHCp8vi33Qrk9DFhKSGnSX/A5vz + E84/rlt964N9kXLE2npw9hNrj6DdrQozcB9YTAEL9S/krTUmOLI/iWS/DZEUA50xy9wVBqD9Bm78x + TS0oeyfH49HaUmd10Y6w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jBeOV-0004sJ-68; Tue, 10 Mar 2020 12:53:59 +0000 + id 1jGoIa-0002oW-NS; Tue, 24 Mar 2020 18:29:12 +0000 Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jBeNm-00049C-8J; Tue, 10 Mar 2020 12:53:15 +0000 + id 1jGoHr-00024Z-2w; Tue, 24 Mar 2020 18:28:29 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id E5116B1B1; - Tue, 10 Mar 2020 12:53:12 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 1A1A0ABF4; + Tue, 24 Mar 2020 18:28:24 +0000 (UTC) From: Nicolas Saenz Julienne -To: linux-kernel@vger.kernel.org, Florian Fainelli , - bcm-kernel-feedback-list@broadcom.com, +To: linux-kernel@vger.kernel.org, Nicolas Saenz Julienne , + Florian Fainelli , + bcm-kernel-feedback-list@broadcom.com, Lorenzo Pieralisi , Andrew Murray -Subject: [PATCH v5 3/4] PCI: brcmstb: Wait for Raspberry Pi's firmware when +Subject: [PATCH v6 3/4] PCI: brcmstb: Wait for Raspberry Pi's firmware when present -Date: Tue, 10 Mar 2020 13:52:41 +0100 -Message-Id: <20200310125243.25805-4-nsaenzjulienne@suse.de> +Date: Tue, 24 Mar 2020 19:28:11 +0100 +Message-Id: <20200324182812.20420-4-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200310125243.25805-1-nsaenzjulienne@suse.de> -References: <20200310125243.25805-1-nsaenzjulienne@suse.de> +In-Reply-To: <20200324182812.20420-1-nsaenzjulienne@suse.de> +References: <20200324182812.20420-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200310_055314_439377_DE6EBA94 -X-CRM114-Status: GOOD ( 12.27 ) +X-CRM114-CacheID: sfid-20200324_112827_267470_0540B982 +X-CRM114-Status: GOOD ( 12.13 ) X-Spam-Score: -2.3 (--) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (-2.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- - -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, - medium trust [195.135.220.15 listed in list.dnswl.org] 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [195.135.220.15 listed in wl.mailspike.net] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, + medium trust [195.135.220.15 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 @@ -444,10 +445,6 @@ starting. Signed-off-by: Nicolas Saenz Julienne Reviewed-by: Florian Fainelli --- - -Changes since v4: - - Fixed typo in commit description - drivers/pci/controller/pcie-brcmstb.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) @@ -490,30 +487,30 @@ index 3a10e678c7f4..a3d3070a5832 100644 if (!bridge) return -ENOMEM; -From patchwork Tue Mar 10 12:52:42 2020 +From patchwork Tue Mar 24 18:28:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11429259 +X-Patchwork-Id: 11456185 Return-Path: - + Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9C04D924 + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AD453174A for ; - Tue, 10 Mar 2020 12:54:22 +0000 (UTC) + Tue, 24 Mar 2020 18:28:41 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 7966324698 + by mail.kernel.org (Postfix) with ESMTPS id 8690720789 for ; - Tue, 10 Mar 2020 12:54:22 +0000 (UTC) + Tue, 24 Mar 2020 18:28:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="QRTrew7I" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7966324698 + header.i=@lists.infradead.org header.b="BSDoMdbd" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8690720789 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; @@ -525,47 +522,47 @@ DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=aEzRVs2pg+6QbUDWQQN1yAPYlnW+XWVwKn2FDiv80JA=; b=QRTrew7IL9vbdM - mtuOZU1FJwi43+wuyjiempsm4CcD4i4E2/w4xlW2OIcLT1Grm9thTXmLQIoxXAfg40P9oIqWxPEtz - rhv86PkeJMnxEH8qF+wjIQKwccTJyUAhPdShbUZ/SivZsdsqI9hjcuaMW0rwR6cLriXBDt+0cakcT - lbhYuhaJVupUPuPdyFV7jiOnkgrBm6i6iXfFQicO3lZtICEl5jCZUl5BCEfIalnyYAqvlbF9gPgmb - pbeU1TQCw0Wal6Frhgd0SiHOdo6Q1sx3T/++jMOKa8+Gbk9Vwgi7jggC4L2Njz0PVUrjTdR9/s+jF - d2k8KmMvgAcbYk/oKJZQ==; + List-Owner; bh=YaBoM78lqEEmZOW4u4cO0fQ+Qpc7vocOU6aRT/EpQsk=; b=BSDoMdbdXfJNCB + Ccoti2K8Qk9NgAlOnVt60cLhw66HCbJPwZn1v08f/rr05ZIoPMToFkJt5krqew7Vd+jlZnzMxf8MC + lBfOqOev9hIjbyu19c646LbpbqVrtrtm9vmy6Lvd2GGuQuvybpM0RHDvc2wzv8a3fejGMgKStaQ/3 + Efne01FoiZvWBedWpTdsoGJbFzfSb4ua/8JT2Ki04i9itY4oTZs9itKK1Taqe3WfNDphluuFcmdGx + nNxQK/PkA6XCdpJHxaCz3DtyZj/2NhAqd8roXn+PUt5SG00Tfc6auERZQPLtTinW6m9ZaUkBhjJQ0 + GHUMyyLHvQ583h1ty9ow==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jBeOn-0005AX-Nk; Tue, 10 Mar 2020 12:54:17 +0000 + id 1jGoI3-0002Hl-Jz; Tue, 24 Mar 2020 18:28:39 +0000 Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jBeNn-0004A1-CM; Tue, 10 Mar 2020 12:53:16 +0000 + id 1jGoHq-00024d-Jc; Tue, 24 Mar 2020 18:28:28 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id D2329B134; - Tue, 10 Mar 2020 12:53:13 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id EE53FABF6; + Tue, 24 Mar 2020 18:28:24 +0000 (UTC) From: Nicolas Saenz Julienne To: linux-kernel@vger.kernel.org, Mathias Nyman -Subject: [PATCH v5 4/4] USB: pci-quirks: Add Raspberry Pi 4 quirk -Date: Tue, 10 Mar 2020 13:52:42 +0100 -Message-Id: <20200310125243.25805-5-nsaenzjulienne@suse.de> +Subject: [PATCH v6 4/4] USB: pci-quirks: Add Raspberry Pi 4 quirk +Date: Tue, 24 Mar 2020 19:28:12 +0100 +Message-Id: <20200324182812.20420-5-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200310125243.25805-1-nsaenzjulienne@suse.de> -References: <20200310125243.25805-1-nsaenzjulienne@suse.de> +In-Reply-To: <20200324182812.20420-1-nsaenzjulienne@suse.de> +References: <20200324182812.20420-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200310_055315_576152_512D1DE7 -X-CRM114-Status: GOOD ( 14.95 ) +X-CRM114-CacheID: sfid-20200324_112826_791336_2ABB38D1 +X-CRM114-Status: GOOD ( 16.34 ) X-Spam-Score: -2.3 (--) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (-2.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- - -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, - medium trust [195.135.220.15 listed in list.dnswl.org] 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [195.135.220.15 listed in wl.mailspike.net] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, + medium trust [195.135.220.15 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 @@ -594,12 +591,16 @@ On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be loaded directly from an EEPROM or, if not present, by the SoC's VideCore. Inform VideCore that VL805 was just reset. -Also, as this creates a dependency between XHCI_PCI and VideoCore's -firmware interface, reflect that on the firmware interface Kconfg. +Also, as this creates a dependency between USB_PCI and VideoCore's +firmware interface. Since USB_PCI can't be set as a module neither this +should. Signed-off-by: Nicolas Saenz Julienne --- +Changes since v5: + - Fix Kconfig issue with allmodconfig + Changes since v4: - Do not split up error message @@ -610,19 +611,22 @@ Changes since v1: - Make RASPBERRYPI_FIRMWARE dependent on this quirk to make sure it gets compiled when needed. - drivers/firmware/Kconfig | 1 + + drivers/firmware/Kconfig | 3 ++- drivers/usb/host/pci-quirks.c | 16 ++++++++++++++++ - 2 files changed, 17 insertions(+) + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig -index ea869addc89b..40a468d712a5 100644 +index ea869addc89b..78ab2ad6d3f0 100644 --- a/drivers/firmware/Kconfig +++ b/drivers/firmware/Kconfig -@@ -180,6 +180,7 @@ config ISCSI_IBFT +@@ -178,8 +178,9 @@ config ISCSI_IBFT + Otherwise, say N. + config RASPBERRYPI_FIRMWARE - tristate "Raspberry Pi Firmware Driver" +- tristate "Raspberry Pi Firmware Driver" ++ bool "Raspberry Pi Firmware Driver" depends on BCM2835_MBOX -+ default XHCI_PCI ++ default USB_PCI help This option enables support for communicating with the firmware on the Raspberry Pi. From 144643da8ca6c38ac053f7596b998824361f617d Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 26 Mar 2020 10:51:42 +0000 Subject: [PATCH 022/191] add patch to fix display on some tegra devices (TK1, TX1, Nano) --- ...MMU-support-on-Tegra124-and-Tegra210.patch | 320 ++++++++++++++++++ kernel.spec | 2 + 2 files changed, 322 insertions(+) create mode 100644 arm64-drm-tegra-Fix-SMMU-support-on-Tegra124-and-Tegra210.patch diff --git a/arm64-drm-tegra-Fix-SMMU-support-on-Tegra124-and-Tegra210.patch b/arm64-drm-tegra-Fix-SMMU-support-on-Tegra124-and-Tegra210.patch new file mode 100644 index 000000000..3d43cd710 --- /dev/null +++ b/arm64-drm-tegra-Fix-SMMU-support-on-Tegra124-and-Tegra210.patch @@ -0,0 +1,320 @@ +From patchwork Wed Mar 25 20:16:03 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Thierry Reding +X-Patchwork-Id: 1261638 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; spf=none (no SPF record) + smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; + helo=vger.kernel.org; + envelope-from=linux-tegra-owner@vger.kernel.org; + receiver=) +Authentication-Results: ozlabs.org; + dmarc=pass (p=none dis=none) header.from=gmail.com +Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; + unprotected) header.d=gmail.com header.i=@gmail.com + header.a=rsa-sha256 header.s=20161025 header.b=sj7XVrax; + dkim-atps=neutral +Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) + by ozlabs.org (Postfix) with ESMTP id 48nfWs1X7mz9sRf + for ; + Thu, 26 Mar 2020 07:16:09 +1100 (AEDT) +Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand + id S1727374AbgCYUQI (ORCPT ); + Wed, 25 Mar 2020 16:16:08 -0400 +Received: from mail-wm1-f68.google.com ([209.85.128.68]:50585 "EHLO + mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org + with ESMTP id S1727328AbgCYUQI (ORCPT + ); + Wed, 25 Mar 2020 16:16:08 -0400 +Received: by mail-wm1-f68.google.com with SMTP id d198so4073496wmd.0 + for ; + Wed, 25 Mar 2020 13:16:07 -0700 (PDT) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; + h=from:to:cc:subject:date:message-id:mime-version + :content-transfer-encoding; + bh=yPLnagV0XBnTWT+nGjtRaD+LnSq2BqmeAJnp8U+CWPw=; + b=sj7XVraxdwiyRAeepEQ0wy1nLUUH6vcloNotxoFwaAZmvU2GILePtp+OM8VZxzmSg1 + qVjos+BzgdtxI0QGYvlsRwZJmw1PdwfTDzM8kMKmP2AfXDgnFG7LZsGZnzTmdPqErqG6 + RfQwpZiPunHplEvI/epnPHACQlV9HoX+teAIWP9gyJkMYwBCVOirkfv4yGqGZWyEciZ2 + yM5mGeUZ/OprHtVVEEuF5yb50CJm8cBEHBMr2ooS+0jm+avVEG8DKe9QM2nWgJB7+TXH + 7+iryK1A4PDr9L6syw0p6sAbkFd2+P/p44d/rqsKPWTQG0lkd0cgRHx9fVPls/P4Snyr + JwCA== +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20161025; + h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version + :content-transfer-encoding; + bh=yPLnagV0XBnTWT+nGjtRaD+LnSq2BqmeAJnp8U+CWPw=; + b=HWu2t1YnW/GoMLlkfp6ZQha8CvUnfMi/OK1zsN3hDtTtMLwVQL9YBFPvXYfAASIGzA + qXmgdbIdQmwOXRxlDmgcXk8KcOJmvnJTSoE+GPeLrKGVq9h2c6XLINshs7RDWqY7//GM + /NMVkESX/sVh5qVQYVzsQOBWAsLkwpVAmt3lJ81XrCGdA/L5aN2FWOftTWJWoStgtHuB + 9N27ffBkV8/72gDCcGxM/lJlfxMBcfPIEMDGWlErsl2U/EPtF+e5AH1kF9/a+lImxa1h + vBlXvgfPKazfOLm1jA809U0QJrCy5bmTOJsaLqnkLPNJRyvlY6JZqk8a1Wc4u6l44uoI + 4l3g== +X-Gm-Message-State: ANhLgQ0GzmzHn/uC4G4GzXRW/D8i6fcQ7Y04Wxx+yBOvoeixp0lD9PYD + 9Q7E3Ezt7uCnfh5D41Ym8jY= +X-Google-Smtp-Source: ADFU+vvV+Qjqcd+wksczhsC9MSisSEM36LfhftNulFkmYxqwCfpDcq22YDEoWHYpgjaXwwZC4lgCyg== +X-Received: by 2002:a7b:c842:: with SMTP id c2mr5416219wml.154.1585167366416; + Wed, 25 Mar 2020 13:16:06 -0700 (PDT) +Received: from localhost + (p200300E41F4A9B0076D02BFFFE273F51.dip0.t-ipconnect.de. + [2003:e4:1f4a:9b00:76d0:2bff:fe27:3f51]) + by smtp.gmail.com with ESMTPSA id + i4sm132568wrm.32.2020.03.25.13.16.05 + (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); + Wed, 25 Mar 2020 13:16:05 -0700 (PDT) +From: Thierry Reding +To: Thierry Reding +Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org +Subject: [PATCH 1/2] drm/tegra: Fix SMMU support on Tegra124 and Tegra210 +Date: Wed, 25 Mar 2020 21:16:03 +0100 +Message-Id: <20200325201604.833898-1-thierry.reding@gmail.com> +X-Mailer: git-send-email 2.24.1 +MIME-Version: 1.0 +Sender: linux-tegra-owner@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-tegra@vger.kernel.org + +From: Thierry Reding + +When testing whether or not to enable the use of the SMMU, consult the +supported DMA mask rather than the actually configured DMA mask, since +the latter might already have been restricted. + +Fixes: 2d9384ff9177 ("drm/tegra: Relax IOMMU usage criteria on old Tegra") +Signed-off-by: Thierry Reding +Tested-by: Jon Hunter +--- + drivers/gpu/drm/tegra/drm.c | 3 ++- + drivers/gpu/host1x/dev.c | 13 +++++++++++++ + include/linux/host1x.h | 3 +++ + 3 files changed, 18 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c +index bd268028fb3d..583cd6e0ae27 100644 +--- a/drivers/gpu/drm/tegra/drm.c ++++ b/drivers/gpu/drm/tegra/drm.c +@@ -1039,6 +1039,7 @@ void tegra_drm_free(struct tegra_drm *tegra, size_t size, void *virt, + + static bool host1x_drm_wants_iommu(struct host1x_device *dev) + { ++ struct host1x *host1x = dev_get_drvdata(dev->dev.parent); + struct iommu_domain *domain; + + /* +@@ -1076,7 +1077,7 @@ static bool host1x_drm_wants_iommu(struct host1x_device *dev) + * sufficient and whether or not the host1x is attached to an IOMMU + * doesn't matter. + */ +- if (!domain && dma_get_mask(dev->dev.parent) <= DMA_BIT_MASK(32)) ++ if (!domain && host1x_get_dma_mask(host1x) <= DMA_BIT_MASK(32)) + return true; + + return domain != NULL; +diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c +index 388bcc2889aa..40a4b9f8b861 100644 +--- a/drivers/gpu/host1x/dev.c ++++ b/drivers/gpu/host1x/dev.c +@@ -502,6 +502,19 @@ static void __exit tegra_host1x_exit(void) + } + module_exit(tegra_host1x_exit); + ++/** ++ * host1x_get_dma_mask() - query the supported DMA mask for host1x ++ * @host1x: host1x instance ++ * ++ * Note that this returns the supported DMA mask for host1x, which can be ++ * different from the applicable DMA mask under certain circumstances. ++ */ ++u64 host1x_get_dma_mask(struct host1x *host1x) ++{ ++ return host1x->info->dma_mask; ++} ++EXPORT_SYMBOL(host1x_get_dma_mask); ++ + MODULE_AUTHOR("Thierry Reding "); + MODULE_AUTHOR("Terje Bergstrom "); + MODULE_DESCRIPTION("Host1x driver for Tegra products"); +diff --git a/include/linux/host1x.h b/include/linux/host1x.h +index 62d216ff1097..c230b4e70d75 100644 +--- a/include/linux/host1x.h ++++ b/include/linux/host1x.h +@@ -17,9 +17,12 @@ enum host1x_class { + HOST1X_CLASS_GR3D = 0x60, + }; + ++struct host1x; + struct host1x_client; + struct iommu_group; + ++u64 host1x_get_dma_mask(struct host1x *host1x); ++ + /** + * struct host1x_client_ops - host1x client operations + * @init: host1x client initialization code + +From patchwork Wed Mar 25 20:16:04 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Thierry Reding +X-Patchwork-Id: 1261639 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; spf=none (no SPF record) + smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; + helo=vger.kernel.org; + envelope-from=linux-tegra-owner@vger.kernel.org; + receiver=) +Authentication-Results: ozlabs.org; + dmarc=pass (p=none dis=none) header.from=gmail.com +Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; + unprotected) header.d=gmail.com header.i=@gmail.com + header.a=rsa-sha256 header.s=20161025 header.b=XXUz449u; + dkim-atps=neutral +Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) + by ozlabs.org (Postfix) with ESMTP id 48nfWw6NvSz9sPk + for ; + Thu, 26 Mar 2020 07:16:12 +1100 (AEDT) +Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand + id S1727316AbgCYUQM (ORCPT ); + Wed, 25 Mar 2020 16:16:12 -0400 +Received: from mail-wr1-f65.google.com ([209.85.221.65]:33914 "EHLO + mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org + with ESMTP id S1727328AbgCYUQM (ORCPT + ); + Wed, 25 Mar 2020 16:16:12 -0400 +Received: by mail-wr1-f65.google.com with SMTP id 65so4990084wrl.1 + for ; + Wed, 25 Mar 2020 13:16:09 -0700 (PDT) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; + h=from:to:cc:subject:date:message-id:in-reply-to:references + :mime-version:content-transfer-encoding; + bh=aW1zxIHiei+l8kDSE2lVXf/aMBDE/GtIkGFrQXvKkrY=; + b=XXUz449uJivXz+1lH6pKa9IvT3vUx61/skXaEyQxpkslFR268FwckKE0ryQDUx701N + hFN9ocSGCuE6bKpdgya8YmthXDASOYWZzKV0R5jms1rqgazVMF6jARv+kE4Jaj9Ek4tl + 4eTpmnHinx0xIrgGWCQbfltjb+zAE5XOGX8UCX1526r3yQQpu+OQlKZ70Tvq3pdw0zfT + URkTU8sfdTa9DCxUSsUukPcK9vKOk6XHkFleL6FisODDvXphdzzLa1TCv9UTGLrUsHSd + XDrukLto5efrUE03q5jP6ZN4xbnLDbhY6IkB7PAW1qwSPG/Eg0p0ivpJ58+QwwmBH6zF + ByDQ== +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20161025; + h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to + :references:mime-version:content-transfer-encoding; + bh=aW1zxIHiei+l8kDSE2lVXf/aMBDE/GtIkGFrQXvKkrY=; + b=DIWKPWCoYx1rnX34DSkRPm2K6lR1SurVvq+IIY5Nrc9uq+E3pmXQcActG0DDAHHK8a + SgnziEvuWTeROgrlwONYq+FUZRQ6s1TRR1+qDXqAlRtdebU/cEep+LRvdzJe/qJBpPqd + SnSTR3Xntgo7EcyLRj9YqSodasylPt3OzrhuDudfTSQtKZghElLfyJV/tzgwG+OC3TD4 + RJAykZ0tgWHy7Bc1UB+z6LovuT/sgcPUSLfNqDehQWqwQeqHqXgFAomUN0CCEr2YdjkT + sCpBZPqKtb22FdDWlDiNnEkEmMPA+K4MIWbZL9VuvArjFaaBn6fBxvnX4tAKEcOiKeUy + EZXw== +X-Gm-Message-State: ANhLgQ1Vj1gSFYKgV/7jV1T3UIwTE5jasGmLOhuuGuWvjBs2xXUgieyz + VhNVgYIYU/8R/0Vx9Hv44rw= +X-Google-Smtp-Source: ADFU+vtTfrVHW69I+ZhOz8qw8xUje/j42rKoNxAP2wTt+E5WQ5s6QhBcgeHzC4Bw5Q5NdWxjLUtZ/g== +X-Received: by 2002:adf:800e:: with SMTP id 14mr5104354wrk.369.1585167368929; + Wed, 25 Mar 2020 13:16:08 -0700 (PDT) +Received: from localhost + (p200300E41F4A9B0076D02BFFFE273F51.dip0.t-ipconnect.de. + [2003:e4:1f4a:9b00:76d0:2bff:fe27:3f51]) + by smtp.gmail.com with ESMTPSA id + e9sm151985wrw.30.2020.03.25.13.16.07 + (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); + Wed, 25 Mar 2020 13:16:07 -0700 (PDT) +From: Thierry Reding +To: Thierry Reding +Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org +Subject: [PATCH 2/2] gpu: host1x: Use SMMU on Tegra124 and Tegra210 +Date: Wed, 25 Mar 2020 21:16:04 +0100 +Message-Id: <20200325201604.833898-2-thierry.reding@gmail.com> +X-Mailer: git-send-email 2.24.1 +In-Reply-To: <20200325201604.833898-1-thierry.reding@gmail.com> +References: <20200325201604.833898-1-thierry.reding@gmail.com> +MIME-Version: 1.0 +Sender: linux-tegra-owner@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-tegra@vger.kernel.org + +From: Thierry Reding + +Tegra124 and Tegra210 support addressing more than 32 bits of physical +memory. However, since their host1x does not support the wide GATHER +opcode, they should use the SMMU if at all possible to ensure that all +the system memory can be used for command buffers, irrespective of +whether or not the host1x firewall is enabled. + +Signed-off-by: Thierry Reding +Tested-by: Jon Hunter +--- + drivers/gpu/host1x/dev.c | 46 ++++++++++++++++++++++++++++++++++++---- + 1 file changed, 42 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c +index 40a4b9f8b861..d24344e91922 100644 +--- a/drivers/gpu/host1x/dev.c ++++ b/drivers/gpu/host1x/dev.c +@@ -192,17 +192,55 @@ static void host1x_setup_sid_table(struct host1x *host) + } + } + ++static bool host1x_wants_iommu(struct host1x *host1x) ++{ ++ /* ++ * If we support addressing a maximum of 32 bits of physical memory ++ * and if the host1x firewall is enabled, there's no need to enable ++ * IOMMU support. This can happen for example on Tegra20, Tegra30 ++ * and Tegra114. ++ * ++ * Tegra124 and later can address up to 34 bits of physical memory and ++ * many platforms come equipped with more than 2 GiB of system memory, ++ * which requires crossing the 4 GiB boundary. But there's a catch: on ++ * SoCs before Tegra186 (i.e. Tegra124 and Tegra210), the host1x can ++ * only address up to 32 bits of memory in GATHER opcodes, which means ++ * that command buffers need to either be in the first 2 GiB of system ++ * memory (which could quickly lead to memory exhaustion), or command ++ * buffers need to be treated differently from other buffers (which is ++ * not possible with the current ABI). ++ * ++ * A third option is to use the IOMMU in these cases to make sure all ++ * buffers will be mapped into a 32-bit IOVA space that host1x can ++ * address. This allows all of the system memory to be used and works ++ * within the limitations of the host1x on these SoCs. ++ * ++ * In summary, default to enable IOMMU on Tegra124 and later. For any ++ * of the earlier SoCs, only use the IOMMU for additional safety when ++ * the host1x firewall is disabled. ++ */ ++ if (host1x->info->dma_mask <= DMA_BIT_MASK(32)) { ++ if (IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL)) ++ return false; ++ } ++ ++ return true; ++} ++ + static struct iommu_domain *host1x_iommu_attach(struct host1x *host) + { + struct iommu_domain *domain = iommu_get_domain_for_dev(host->dev); + int err; + + /* +- * If the host1x firewall is enabled, there's no need to enable IOMMU +- * support. Similarly, if host1x is already attached to an IOMMU (via +- * the DMA API), don't try to attach again. ++ * We may not always want to enable IOMMU support (for example if the ++ * host1x firewall is already enabled and we don't support addressing ++ * more than 32 bits of physical memory), so check for that first. ++ * ++ * Similarly, if host1x is already attached to an IOMMU (via the DMA ++ * API), don't try to attach again. + */ +- if (IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL) || domain) ++ if (!host1x_wants_iommu(host) || domain) + return domain; + + host->group = iommu_group_get(host->dev); diff --git a/kernel.spec b/kernel.spec index 26da3ded6..ec1178a62 100644 --- a/kernel.spec +++ b/kernel.spec @@ -840,6 +840,8 @@ Patch323: arm64-tegra-fix-pcie.patch Patch324: regulator-pwm-Don-t-warn-on-probe-deferral.patch # http://patchwork.ozlabs.org/patch/1243112/ Patch325: backlight-lp855x-Ensure-regulators-are-disabled-on-probe-failure.patch +# https://patchwork.ozlabs.org/patch/1261638/ +Patch326: arm64-drm-tegra-Fix-SMMU-support-on-Tegra124-and-Tegra210.patch # Coral Patch330: arm64-dts-imx8mq-phanbell-Add-support-for-ethernet.patch From 5444738dc2b1096e6c9bcaf43264d16ed4b30db8 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Fri, 27 Mar 2020 11:47:16 -0400 Subject: [PATCH 023/191] Reenable debugging options. --- kernel.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index ec1178a62..fc4a1170c 100644 --- a/kernel.spec +++ b/kernel.spec @@ -200,7 +200,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 1 +%define debugbuildsenabled 0 %if 0%{?fedora} # Kernel headers are being split out into a separate package @@ -2984,6 +2984,9 @@ fi # # %changelog +* Fri Mar 27 2020 Jeremy Cline +- Reenable debugging options. + * Mon Mar 23 2020 Peter Robinson - 5.6.0-0.rc7.git0.1 - Linux v5.6-rc7 From c6d05afe539cb3c6202a9f60dccbd240f936c00b Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Fri, 27 Mar 2020 11:49:59 -0400 Subject: [PATCH 024/191] Linux v5.6-rc7-227-gf3e69428b5e2 --- gitrev | 2 +- kernel.spec | 5 ++++- sources | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gitrev b/gitrev index 22fff2bf7..e8d8c100c 100644 --- a/gitrev +++ b/gitrev @@ -1 +1 @@ -5ad0ec0b86525d0c5d3d250d3cfad7f183b00cfa +f3e69428b5e26b0851d7ef4c15859cffebf2b9de diff --git a/kernel.spec b/kernel.spec index fc4a1170c..2ea63fce5 100644 --- a/kernel.spec +++ b/kernel.spec @@ -107,7 +107,7 @@ Summary: The Linux kernel # The rc snapshot level %global rcrev 7 # The git snapshot level -%define gitrev 0 +%define gitrev 1 # Set rpm version accordingly %define rpmversion 5.%{upstream_sublevel}.0 %endif @@ -2984,6 +2984,9 @@ fi # # %changelog +* Fri Mar 27 2020 Jeremy Cline - 5.6.0-0.rc7.git1.1 +- Linux v5.6-rc7-227-gf3e69428b5e2 + * Fri Mar 27 2020 Jeremy Cline - Reenable debugging options. diff --git a/sources b/sources index 23c2b2153..04099fbe3 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ SHA512 (linux-5.5.tar.xz) = fa74fdabb5e63384a39e54da05b86a9ae9ea16179524b041fbbdffc7177e80b53600ae98d76be127ba216148f9dc55fe07ab20637e22c6d6030cb4aa09eb2f86 SHA512 (patch-5.6-rc7.xz) = 02ddf28d22d732bbf9dce161790b9aafcec120c22f3a1a158b4031a44388043ef38c0618fd5cc7ebb73d626293ad517c6e7c587f549f1aa2d626fca418af4a51 +SHA512 (patch-5.6-rc7-git1.xz) = 794ee17cb0930875a0d33de8f70fda3065ed94ea0ae7d361f05768345cedc7a6c8ca6329e8a39e43594d200f2c16d9f193a201ccdf9fb31c31e6bc34c118c2b7 From 7ffc6f43770c8af7d733c131d2bed274b7baec9a Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Mon, 30 Mar 2020 11:19:10 -0400 Subject: [PATCH 025/191] Backport iwlwifi authentication fix --- ...-fix-authentication-with-iwlwifi-mvm.patch | 35 +++++++++++++++++++ kernel.spec | 2 ++ 2 files changed, 37 insertions(+) create mode 100644 0001-mac80211-fix-authentication-with-iwlwifi-mvm.patch diff --git a/0001-mac80211-fix-authentication-with-iwlwifi-mvm.patch b/0001-mac80211-fix-authentication-with-iwlwifi-mvm.patch new file mode 100644 index 000000000..fb8319ecf --- /dev/null +++ b/0001-mac80211-fix-authentication-with-iwlwifi-mvm.patch @@ -0,0 +1,35 @@ +From b8b93985bfe32da1230ec77c75dde398a0c3b142 Mon Sep 17 00:00:00 2001 +From: Johannes Berg +Date: Sun, 29 Mar 2020 22:50:06 +0200 +Subject: [PATCH] mac80211: fix authentication with iwlwifi/mvm + +The original patch didn't copy the ieee80211_is_data() condition +because on most drivers the management frames don't go through +this path. However, they do on iwlwifi/mvm, so we do need to keep +the condition here. + +Cc: stable@vger.kernel.org +Fixes: ce2e1ca70307 ("mac80211: Check port authorization in the ieee80211_tx_dequeue() case") +Signed-off-by: Johannes Berg +Signed-off-by: David S. Miller +--- + net/mac80211/tx.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c +index d9cca6dbd870..efe4c1fc68e5 100644 +--- a/net/mac80211/tx.c ++++ b/net/mac80211/tx.c +@@ -3610,7 +3610,8 @@ struct sk_buff *ieee80211_tx_dequeue(struct ieee80211_hw *hw, + * Drop unicast frames to unauthorised stations unless they are + * EAPOL frames from the local station. + */ +- if (unlikely(!ieee80211_vif_is_mesh(&tx.sdata->vif) && ++ if (unlikely(ieee80211_is_data(hdr->frame_control) && ++ !ieee80211_vif_is_mesh(&tx.sdata->vif) && + tx.sdata->vif.type != NL80211_IFTYPE_OCB && + !is_multicast_ether_addr(hdr->addr1) && + !test_sta_flag(tx.sta, WLAN_STA_AUTHORIZED) && +-- +2.26.0 + diff --git a/kernel.spec b/kernel.spec index 2ea63fce5..b07e34257 100644 --- a/kernel.spec +++ b/kernel.spec @@ -889,6 +889,8 @@ Patch507: drm-dp-mst-error-handling-improvements.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1811850 Patch509: drm-i915-backports.patch +Patch510: 0001-mac80211-fix-authentication-with-iwlwifi-mvm.patch + # END OF PATCH DEFINITIONS %endif From 935bd511d52bc62da21138a4e4f5fc778cfc5104 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Mon, 30 Mar 2020 10:23:35 -0400 Subject: [PATCH 026/191] Linux v5.6 --- gitrev | 2 +- kernel.spec | 13 ++++++++----- sources | 4 +--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/gitrev b/gitrev index e8d8c100c..172be15cc 100644 --- a/gitrev +++ b/gitrev @@ -1 +1 @@ -f3e69428b5e26b0851d7ef4c15859cffebf2b9de +7111951b8d4973bda27ff663f2cf18b663d15b48 diff --git a/kernel.spec b/kernel.spec index b07e34257..b020535ce 100644 --- a/kernel.spec +++ b/kernel.spec @@ -27,7 +27,7 @@ Summary: The Linux kernel # For rawhide and/or a kernel built from an rc or git snapshot, # released_kernel should be 0. # For a stable, released kernel, released_kernel should be 1. -%global released_kernel 0 +%global released_kernel 1 %if 0%{?fedora} %define secure_boot_arch x86_64 @@ -86,7 +86,7 @@ Summary: The Linux kernel # base_sublevel is the kernel version we're starting with and patching # on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base, # which yields a base_sublevel of 0. -%define base_sublevel 5 +%define base_sublevel 6 ## If this is a released kernel ## %if 0%{?released_kernel} @@ -105,9 +105,9 @@ Summary: The Linux kernel # The next upstream release sublevel (base_sublevel+1) %define upstream_sublevel %(echo $((%{base_sublevel} + 1))) # The rc snapshot level -%global rcrev 7 +%global rcrev 0 # The git snapshot level -%define gitrev 1 +%define gitrev 0 # Set rpm version accordingly %define rpmversion 5.%{upstream_sublevel}.0 %endif @@ -200,7 +200,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 0 +%define debugbuildsenabled 1 %if 0%{?fedora} # Kernel headers are being split out into a separate package @@ -2986,6 +2986,9 @@ fi # # %changelog +* Mon Mar 30 2020 Jeremy Cline - 5.6.0-1 +- Linux v5.6 + * Fri Mar 27 2020 Jeremy Cline - 5.6.0-0.rc7.git1.1 - Linux v5.6-rc7-227-gf3e69428b5e2 diff --git a/sources b/sources index 04099fbe3..7fec56dfa 100644 --- a/sources +++ b/sources @@ -1,3 +1 @@ -SHA512 (linux-5.5.tar.xz) = fa74fdabb5e63384a39e54da05b86a9ae9ea16179524b041fbbdffc7177e80b53600ae98d76be127ba216148f9dc55fe07ab20637e22c6d6030cb4aa09eb2f86 -SHA512 (patch-5.6-rc7.xz) = 02ddf28d22d732bbf9dce161790b9aafcec120c22f3a1a158b4031a44388043ef38c0618fd5cc7ebb73d626293ad517c6e7c587f549f1aa2d626fca418af4a51 -SHA512 (patch-5.6-rc7-git1.xz) = 794ee17cb0930875a0d33de8f70fda3065ed94ea0ae7d361f05768345cedc7a6c8ca6329e8a39e43594d200f2c16d9f193a201ccdf9fb31c31e6bc34c118c2b7 +SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 From 73fe8f35076d6b7cd09442b8a212687de73692b0 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Mon, 30 Mar 2020 11:27:48 -0400 Subject: [PATCH 027/191] Bump the release up to 300 --- kernel.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index b020535ce..5eeb0d074 100644 --- a/kernel.spec +++ b/kernel.spec @@ -80,7 +80,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 300 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -2986,7 +2986,7 @@ fi # # %changelog -* Mon Mar 30 2020 Jeremy Cline - 5.6.0-1 +* Mon Mar 30 2020 Jeremy Cline - 5.6.0-300 - Linux v5.6 * Fri Mar 27 2020 Jeremy Cline - 5.6.0-0.rc7.git1.1 From 5564a81116cada0ebe7d49cffec6efae840ee8cc Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 1 Apr 2020 21:44:04 +0100 Subject: [PATCH 028/191] arm: tegra: pci quirk for tegra194 --- ...quirks-for-Tegra194-host-controllers.patch | 481 ++++++++++++++++++ kernel.spec | 2 + 2 files changed, 483 insertions(+) create mode 100644 PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch diff --git a/PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch b/PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch new file mode 100644 index 000000000..6b1090083 --- /dev/null +++ b/PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch @@ -0,0 +1,481 @@ +From patchwork Fri Jan 10 19:14:59 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Vidya Sagar +X-Patchwork-Id: 1221384 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; spf=none (no SPF record) + smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; + helo=vger.kernel.org; + envelope-from=linux-pci-owner@vger.kernel.org; + receiver=) +Authentication-Results: ozlabs.org; + dmarc=pass (p=none dis=none) header.from=nvidia.com +Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; + unprotected) header.d=nvidia.com header.i=@nvidia.com + header.a=rsa-sha256 header.s=n1 header.b=gf35ja2k; + dkim-atps=neutral +Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) + by ozlabs.org (Postfix) with ESMTP id 47vXkJ2PJMz9sPJ + for ; + Sat, 11 Jan 2020 06:15:20 +1100 (AEDT) +Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand + id S1728167AbgAJTPQ (ORCPT ); + Fri, 10 Jan 2020 14:15:16 -0500 +Received: from hqnvemgate26.nvidia.com ([216.228.121.65]:1668 "EHLO + hqnvemgate26.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org + with ESMTP id S1727612AbgAJTPQ (ORCPT + ); Fri, 10 Jan 2020 14:15:16 -0500 +Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by + hqnvemgate26.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) + id ; Fri, 10 Jan 2020 11:14:57 -0800 +Received: from hqmail.nvidia.com ([172.20.161.6]) + by hqpgpgate101.nvidia.com (PGP Universal service); + Fri, 10 Jan 2020 11:15:15 -0800 +X-PGP-Universal: processed; + by hqpgpgate101.nvidia.com on Fri, 10 Jan 2020 11:15:15 -0800 +Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL101.nvidia.com + (172.20.187.10) with Microsoft SMTP Server (TLS) id 15.0.1473.3; + Fri, 10 Jan 2020 19:15:15 +0000 +Received: from HQMAIL107.nvidia.com (172.20.187.13) by HQMAIL109.nvidia.com + (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; + Fri, 10 Jan 2020 19:15:14 +0000 +Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL107.nvidia.com + (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via + Frontend Transport; Fri, 10 Jan 2020 19:15:14 +0000 +Received: from vidyas-desktop.nvidia.com (Not Verified[10.24.37.48]) by + rnnvemgw01.nvidia.com with Trustwave SEG (v7, 5, 8, 10121) + id ; Fri, 10 Jan 2020 11:15:14 -0800 +From: Vidya Sagar +To: , , + , , , + , +CC: , , + , , + , , , + +Subject: [PATCH V3 1/2] arm64: tegra: Re-order PCIe aperture mappings to + support ACPI boot +Date: Sat, 11 Jan 2020 00:44:59 +0530 +Message-ID: <20200110191500.9538-2-vidyas@nvidia.com> +X-Mailer: git-send-email 2.17.1 +In-Reply-To: <20200110191500.9538-1-vidyas@nvidia.com> +References: <20200106082709.14370-1-vidyas@nvidia.com> + <20200110191500.9538-1-vidyas@nvidia.com> +X-NVConfidentiality: public +MIME-Version: 1.0 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; + t=1578683697; bh=A9295dTyR+j2yr8EqSviqtTgED4nGyVgvOv0oWR2ueU=; + h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: + In-Reply-To:References:X-NVConfidentiality:MIME-Version: + Content-Type; + b=gf35ja2k7JnAqX+jyF1OxPVsYL5Fk4U+zYrMvTudBnjv0lLjB+7vnkXuO5FnSX28a + o2Mvk9yks+a7NYLZkVfmKCXKbeDNoGPlPSy+g8CAyeAd5u7leSGONsy5awV83vmud7 + /KuuExw/Ko4JihAJdQ57/4EaaohgPWUNbodkmI5Wo0e7qyfgf5PvkAkwe1PdtgEKls + t9tsBwoqjGJn5WWPiQMaUZ8OHdSvPrUDuyKEFPjjr9IpczNvMzJE8SyHDZci42N+s+ + f0iCjfLLhugetglYqrGi5j8eknYwfvMIV+vnkZj0dSmiS70Y1G31dVfgR/s3ueHnRy + jBNjNRTUtey9w== +Sender: linux-pci-owner@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-pci@vger.kernel.org + +Re-order Tegra194's PCIe aperture mappings to have IO window moved to +64-bit aperture and have the entire 32-bit aperture used for accessing +the configuration space. This makes it to use the entire 32MB of the 32-bit +aperture for ECAM purpose while booting through ACPI. + +Signed-off-by: Vidya Sagar +--- +V3: +* New change in this series + + arch/arm64/boot/dts/nvidia/tegra194.dtsi | 36 ++++++++++++------------ + 1 file changed, 18 insertions(+), 18 deletions(-) + +diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi +index ccac43be12ac..5d790ec5bdef 100644 +--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi ++++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi +@@ -1247,9 +1247,9 @@ + nvidia,aspm-l0s-entrance-latency-us = <3>; + + bus-range = <0x0 0xff>; +- ranges = <0x81000000 0x0 0x30100000 0x0 0x30100000 0x0 0x00100000 /* downstream I/O (1MB) */ +- 0xc2000000 0x12 0x00000000 0x12 0x00000000 0x0 0x30000000 /* prefetchable memory (768MB) */ +- 0x82000000 0x0 0x40000000 0x12 0x30000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */ ++ ranges = <0xc2000000 0x12 0x00000000 0x12 0x00000000 0x0 0x30000000 /* prefetchable memory (768MB) */ ++ 0x82000000 0x00 0x40000000 0x12 0x30000000 0x0 0x0fff0000 /* non-prefetchable memory (256MB - 64KB) */ ++ 0x81000000 0x00 0x00000000 0x12 0x3fff0000 0x0 0x00010000>; /* downstream I/O (64KB) */ + }; + + pcie@14120000 { +@@ -1292,9 +1292,9 @@ + nvidia,aspm-l0s-entrance-latency-us = <3>; + + bus-range = <0x0 0xff>; +- ranges = <0x81000000 0x0 0x32100000 0x0 0x32100000 0x0 0x00100000 /* downstream I/O (1MB) */ +- 0xc2000000 0x12 0x40000000 0x12 0x40000000 0x0 0x30000000 /* prefetchable memory (768MB) */ +- 0x82000000 0x0 0x40000000 0x12 0x70000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */ ++ ranges = <0xc2000000 0x12 0x40000000 0x12 0x40000000 0x0 0x30000000 /* prefetchable memory (768MB) */ ++ 0x82000000 0x00 0x40000000 0x12 0x70000000 0x0 0x0fff0000 /* non-prefetchable memory (256MB - 64KB) */ ++ 0x81000000 0x00 0x00000000 0x12 0x7fff0000 0x0 0x00010000>; /* downstream I/O (64KB) */ + }; + + pcie@14140000 { +@@ -1337,9 +1337,9 @@ + nvidia,aspm-l0s-entrance-latency-us = <3>; + + bus-range = <0x0 0xff>; +- ranges = <0x81000000 0x0 0x34100000 0x0 0x34100000 0x0 0x00100000 /* downstream I/O (1MB) */ +- 0xc2000000 0x12 0x80000000 0x12 0x80000000 0x0 0x30000000 /* prefetchable memory (768MB) */ +- 0x82000000 0x0 0x40000000 0x12 0xb0000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */ ++ ranges = <0xc2000000 0x12 0x80000000 0x12 0x80000000 0x0 0x30000000 /* prefetchable memory (768MB) */ ++ 0x82000000 0x00 0x40000000 0x12 0xb0000000 0x0 0x0fff0000 /* non-prefetchable memory (256MB - 64KB) */ ++ 0x81000000 0x00 0x00000000 0x12 0xbfff0000 0x0 0x00010000>; /* downstream I/O (64KB) */ + }; + + pcie@14160000 { +@@ -1382,9 +1382,9 @@ + nvidia,aspm-l0s-entrance-latency-us = <3>; + + bus-range = <0x0 0xff>; +- ranges = <0x81000000 0x0 0x36100000 0x0 0x36100000 0x0 0x00100000 /* downstream I/O (1MB) */ +- 0xc2000000 0x14 0x00000000 0x14 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */ +- 0x82000000 0x0 0x40000000 0x17 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */ ++ ranges = <0xc2000000 0x14 0x00000000 0x14 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */ ++ 0x82000000 0x00 0x40000000 0x17 0x40000000 0x0 0xbfff0000 /* non-prefetchable memory (3GB - 64KB) */ ++ 0x81000000 0x00 0x00000000 0x17 0xffff0000 0x0 0x00010000>; /* downstream I/O (64KB) */ + }; + + pcie@14180000 { +@@ -1427,9 +1427,9 @@ + nvidia,aspm-l0s-entrance-latency-us = <3>; + + bus-range = <0x0 0xff>; +- ranges = <0x81000000 0x0 0x38100000 0x0 0x38100000 0x0 0x00100000 /* downstream I/O (1MB) */ +- 0xc2000000 0x18 0x00000000 0x18 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */ +- 0x82000000 0x0 0x40000000 0x1b 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */ ++ ranges = <0xc2000000 0x18 0x00000000 0x18 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */ ++ 0x82000000 0x00 0x40000000 0x1b 0x40000000 0x0 0xbfff0000 /* non-prefetchable memory (3GB - 64KB) */ ++ 0x81000000 0x00 0x00000000 0x1b 0xffff0000 0x0 0x00010000>; /* downstream I/O (64KB) */ + }; + + pcie@141a0000 { +@@ -1476,9 +1476,9 @@ + nvidia,aspm-l0s-entrance-latency-us = <3>; + + bus-range = <0x0 0xff>; +- ranges = <0x81000000 0x0 0x3a100000 0x0 0x3a100000 0x0 0x00100000 /* downstream I/O (1MB) */ +- 0xc2000000 0x1c 0x00000000 0x1c 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */ +- 0x82000000 0x0 0x40000000 0x1f 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */ ++ ranges = <0xc2000000 0x1c 0x00000000 0x1c 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */ ++ 0x82000000 0x00 0x40000000 0x1f 0x40000000 0x0 0xbfff0000 /* non-prefetchable memory (3GB - 64KB) */ ++ 0x81000000 0x00 0x00000000 0x1f 0xffff0000 0x0 0x00010000>; /* downstream I/O (64KB) */ + }; + + sysram@40000000 { + +From patchwork Fri Jan 10 19:15:00 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Vidya Sagar +X-Patchwork-Id: 1221385 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; spf=none (no SPF record) + smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; + helo=vger.kernel.org; + envelope-from=linux-pci-owner@vger.kernel.org; + receiver=) +Authentication-Results: ozlabs.org; + dmarc=pass (p=none dis=none) header.from=nvidia.com +Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; + unprotected) header.d=nvidia.com header.i=@nvidia.com + header.a=rsa-sha256 header.s=n1 header.b=KDh6KAfT; + dkim-atps=neutral +Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) + by ozlabs.org (Postfix) with ESMTP id 47vXkS04dtz9sR0 + for ; + Sat, 11 Jan 2020 06:15:28 +1100 (AEDT) +Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand + id S1728451AbgAJTPX (ORCPT ); + Fri, 10 Jan 2020 14:15:23 -0500 +Received: from hqnvemgate24.nvidia.com ([216.228.121.143]:9177 "EHLO + hqnvemgate24.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org + with ESMTP id S1727612AbgAJTPX (ORCPT + ); Fri, 10 Jan 2020 14:15:23 -0500 +Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by + hqnvemgate24.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) + id ; Fri, 10 Jan 2020 11:14:30 -0800 +Received: from hqmail.nvidia.com ([172.20.161.6]) + by hqpgpgate101.nvidia.com (PGP Universal service); + Fri, 10 Jan 2020 11:15:21 -0800 +X-PGP-Universal: processed; + by hqpgpgate101.nvidia.com on Fri, 10 Jan 2020 11:15:21 -0800 +Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL111.nvidia.com + (172.20.187.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3; + Fri, 10 Jan 2020 19:15:21 +0000 +Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL109.nvidia.com + (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; + Fri, 10 Jan 2020 19:15:21 +0000 +Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL109.nvidia.com + (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via + Frontend Transport; Fri, 10 Jan 2020 19:15:20 +0000 +Received: from vidyas-desktop.nvidia.com (Not Verified[10.24.37.48]) by + rnnvemgw01.nvidia.com with Trustwave SEG (v7, 5, 8, 10121) + id ; Fri, 10 Jan 2020 11:15:20 -0800 +From: Vidya Sagar +To: , , + , , , + , +CC: , , + , , + , , , + +Subject: [PATCH V3 2/2] PCI: Add MCFG quirks for Tegra194 host controllers +Date: Sat, 11 Jan 2020 00:45:00 +0530 +Message-ID: <20200110191500.9538-3-vidyas@nvidia.com> +X-Mailer: git-send-email 2.17.1 +In-Reply-To: <20200110191500.9538-1-vidyas@nvidia.com> +References: <20200106082709.14370-1-vidyas@nvidia.com> + <20200110191500.9538-1-vidyas@nvidia.com> +X-NVConfidentiality: public +MIME-Version: 1.0 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; + t=1578683671; bh=6wJT/II+S2upRtJe41MS3kcnFzRRB57EIPkoU3txnnc=; + h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: + In-Reply-To:References:X-NVConfidentiality:MIME-Version: + Content-Type; + b=KDh6KAfT+xBJE0n0yRibTvav8qocX0wdxtjjCMNH+VNrt1Gvwgt8htMQvTCpi08Hz + OLS6piubtsXb2Fk+J0rDcwmB2QM0YMKe6eA3DQkuJTPhl6PRxtvXdAYPfl/Z2pvG38 + dq6SIor6Yw4e76ncsvt69w6UXoLZHF7AywICq0jGnmPjWoKDnjID3qKSj5/u7tE+/L + 6hJUZ2QQebXRI17dRdfleyir+rRCS0wMl9tVNiAHplY3Wlxw895LJqvmVRZDVA+kg5 + 8DPKJY2JbazS6P4QcywESwuhDfejJGaJUz+1/6oSiHBMCI5OhfhFZ/lyTf0iZycdTQ + gnZUMkPu2QZOg== +Sender: linux-pci-owner@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-pci@vger.kernel.org + +The PCIe controller in Tegra194 SoC is not completely ECAM-compliant. +With the current hardware design limitations in place, ECAM can be enabled +only for one controller (C5 controller to be precise) with bus numbers +starting from 160 instead of 0. A different approach is taken to avoid this +abnormal way of enabling ECAM for just one controller but to enable +configuration space access for all the other controllers. In this approach, +ops are added through MCFG quirk mechanism which access the configuration +spaces by dynamically programming iATU (internal AddressTranslation Unit) +to generate respective configuration accesses just like the way it is +done in DesignWare core sub-system. + +Signed-off-by: Vidya Sagar +Reported-by: kbuild test robot +Acked-by: Thierry Reding +--- +V3: +* Removed MCFG address hardcoding in pci_mcfg.c file +* Started using 'dbi_base' for accessing root port's own config space +* and using 'config_base' for accessing config space of downstream hierarchy + +V2: +* Fixed build issues reported by kbuild test bot + + drivers/acpi/pci_mcfg.c | 7 ++ + drivers/pci/controller/dwc/Kconfig | 3 +- + drivers/pci/controller/dwc/Makefile | 2 +- + drivers/pci/controller/dwc/pcie-tegra194.c | 102 +++++++++++++++++++++ + include/linux/pci-ecam.h | 1 + + 5 files changed, 113 insertions(+), 2 deletions(-) + +diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c +index 6b347d9920cc..707181408173 100644 +--- a/drivers/acpi/pci_mcfg.c ++++ b/drivers/acpi/pci_mcfg.c +@@ -116,6 +116,13 @@ static struct mcfg_fixup mcfg_quirks[] = { + THUNDER_ECAM_QUIRK(2, 12), + THUNDER_ECAM_QUIRK(2, 13), + ++ { "NVIDIA", "TEGRA194", 1, 0, MCFG_BUS_ANY, &tegra194_pcie_ops}, ++ { "NVIDIA", "TEGRA194", 1, 1, MCFG_BUS_ANY, &tegra194_pcie_ops}, ++ { "NVIDIA", "TEGRA194", 1, 2, MCFG_BUS_ANY, &tegra194_pcie_ops}, ++ { "NVIDIA", "TEGRA194", 1, 3, MCFG_BUS_ANY, &tegra194_pcie_ops}, ++ { "NVIDIA", "TEGRA194", 1, 4, MCFG_BUS_ANY, &tegra194_pcie_ops}, ++ { "NVIDIA", "TEGRA194", 1, 5, MCFG_BUS_ANY, &tegra194_pcie_ops}, ++ + #define XGENE_V1_ECAM_MCFG(rev, seg) \ + {"APM ", "XGENE ", rev, seg, MCFG_BUS_ANY, \ + &xgene_v1_pcie_ecam_ops } +diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig +index 0830dfcfa43a..f5b9e75aceed 100644 +--- a/drivers/pci/controller/dwc/Kconfig ++++ b/drivers/pci/controller/dwc/Kconfig +@@ -255,7 +255,8 @@ config PCIE_TEGRA194 + select PHY_TEGRA194_P2U + help + Say Y here if you want support for DesignWare core based PCIe host +- controller found in NVIDIA Tegra194 SoC. ++ controller found in NVIDIA Tegra194 SoC. ACPI platforms with Tegra194 ++ don't need to enable this. + + config PCIE_UNIPHIER + bool "Socionext UniPhier PCIe controllers" +diff --git a/drivers/pci/controller/dwc/Makefile b/drivers/pci/controller/dwc/Makefile +index 8a637cfcf6e9..76a6c52b8500 100644 +--- a/drivers/pci/controller/dwc/Makefile ++++ b/drivers/pci/controller/dwc/Makefile +@@ -17,7 +17,6 @@ obj-$(CONFIG_PCIE_INTEL_GW) += pcie-intel-gw.o + obj-$(CONFIG_PCIE_KIRIN) += pcie-kirin.o + obj-$(CONFIG_PCIE_HISI_STB) += pcie-histb.o + obj-$(CONFIG_PCI_MESON) += pci-meson.o +-obj-$(CONFIG_PCIE_TEGRA194) += pcie-tegra194.o + obj-$(CONFIG_PCIE_UNIPHIER) += pcie-uniphier.o + + # The following drivers are for devices that use the generic ACPI +@@ -33,4 +32,5 @@ obj-$(CONFIG_PCIE_UNIPHIER) += pcie-uniphier.o + ifdef CONFIG_PCI + obj-$(CONFIG_ARM64) += pcie-al.o + obj-$(CONFIG_ARM64) += pcie-hisi.o ++obj-$(CONFIG_ARM64) += pcie-tegra194.o + endif +diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c +index cbe95f0ea0ca..660f55caa8be 100644 +--- a/drivers/pci/controller/dwc/pcie-tegra194.c ++++ b/drivers/pci/controller/dwc/pcie-tegra194.c +@@ -21,6 +21,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -285,6 +287,103 @@ struct tegra_pcie_dw { + struct dentry *debugfs; + }; + ++#if defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS) ++struct tegra194_pcie_acpi { ++ void __iomem *config_base; ++ void __iomem *iatu_base; ++ void __iomem *dbi_base; ++}; ++ ++static int tegra194_acpi_init(struct pci_config_window *cfg) ++{ ++ struct device *dev = cfg->parent; ++ struct tegra194_pcie_acpi *pcie; ++ ++ pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); ++ if (!pcie) ++ return -ENOMEM; ++ ++ pcie->config_base = cfg->win; ++ pcie->iatu_base = cfg->win + SZ_256K; ++ pcie->dbi_base = cfg->win + SZ_512K; ++ cfg->priv = pcie; ++ ++ return 0; ++} ++ ++static inline void atu_reg_write(struct tegra194_pcie_acpi *pcie, int index, ++ u32 val, u32 reg) ++{ ++ u32 offset = PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index); ++ ++ writel(val, pcie->iatu_base + offset + reg); ++} ++ ++static void program_outbound_atu(struct tegra194_pcie_acpi *pcie, int index, ++ int type, u64 cpu_addr, u64 pci_addr, u64 size) ++{ ++ atu_reg_write(pcie, index, lower_32_bits(cpu_addr), ++ PCIE_ATU_LOWER_BASE); ++ atu_reg_write(pcie, index, upper_32_bits(cpu_addr), ++ PCIE_ATU_UPPER_BASE); ++ atu_reg_write(pcie, index, lower_32_bits(pci_addr), ++ PCIE_ATU_LOWER_TARGET); ++ atu_reg_write(pcie, index, lower_32_bits(cpu_addr + size - 1), ++ PCIE_ATU_LIMIT); ++ atu_reg_write(pcie, index, upper_32_bits(pci_addr), ++ PCIE_ATU_UPPER_TARGET); ++ atu_reg_write(pcie, index, type, PCIE_ATU_CR1); ++ atu_reg_write(pcie, index, PCIE_ATU_ENABLE, PCIE_ATU_CR2); ++} ++ ++static void __iomem *tegra194_map_bus(struct pci_bus *bus, ++ unsigned int devfn, int where) ++{ ++ struct pci_config_window *cfg = bus->sysdata; ++ struct tegra194_pcie_acpi *pcie = cfg->priv; ++ u32 busdev; ++ int type; ++ ++ if (bus->number < cfg->busr.start || bus->number > cfg->busr.end) ++ return NULL; ++ ++ if (bus->number == cfg->busr.start) { ++ if (PCI_SLOT(devfn) == 0) ++ return pcie->dbi_base + where; ++ else ++ return NULL; ++ } ++ ++ busdev = PCIE_ATU_BUS(bus->number) | PCIE_ATU_DEV(PCI_SLOT(devfn)) | ++ PCIE_ATU_FUNC(PCI_FUNC(devfn)); ++ ++ if (bus->parent->number == cfg->busr.start) { ++ if (PCI_SLOT(devfn) == 0) ++ type = PCIE_ATU_TYPE_CFG0; ++ else ++ return NULL; ++ } else { ++ type = PCIE_ATU_TYPE_CFG1; ++ } ++ ++ program_outbound_atu(pcie, PCIE_ATU_REGION_INDEX0, type, ++ cfg->res.start, busdev, SZ_256K); ++ return (void __iomem *)(pcie->config_base + where); ++} ++ ++struct pci_ecam_ops tegra194_pcie_ops = { ++ .bus_shift = 20, ++ .init = tegra194_acpi_init, ++ .pci_ops = { ++ .map_bus = tegra194_map_bus, ++ .read = pci_generic_config_read, ++ .write = pci_generic_config_write, ++ } ++}; ++#endif /* defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS) */ ++ ++#ifdef CONFIG_PCIE_TEGRA194 ++ + static inline struct tegra_pcie_dw *to_tegra_pcie(struct dw_pcie *pci) + { + return container_of(pci, struct tegra_pcie_dw, pci); +@@ -1728,3 +1827,6 @@ MODULE_DEVICE_TABLE(of, tegra_pcie_dw_of_match); + MODULE_AUTHOR("Vidya Sagar "); + MODULE_DESCRIPTION("NVIDIA PCIe host controller driver"); + MODULE_LICENSE("GPL v2"); ++ ++#endif /* CONFIG_PCIE_TEGRA194 */ ++ +diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h +index a73164c85e78..6156140dcbb6 100644 +--- a/include/linux/pci-ecam.h ++++ b/include/linux/pci-ecam.h +@@ -57,6 +57,7 @@ extern struct pci_ecam_ops pci_thunder_ecam_ops; /* Cavium ThunderX 1.x */ + extern struct pci_ecam_ops xgene_v1_pcie_ecam_ops; /* APM X-Gene PCIe v1 */ + extern struct pci_ecam_ops xgene_v2_pcie_ecam_ops; /* APM X-Gene PCIe v2.x */ + extern struct pci_ecam_ops al_pcie_ops; /* Amazon Annapurna Labs PCIe */ ++extern struct pci_ecam_ops tegra194_pcie_ops; /* Tegra194 PCIe */ + #endif + + #ifdef CONFIG_PCI_HOST_COMMON diff --git a/kernel.spec b/kernel.spec index 5eeb0d074..d5b73255a 100644 --- a/kernel.spec +++ b/kernel.spec @@ -842,6 +842,8 @@ Patch324: regulator-pwm-Don-t-warn-on-probe-deferral.patch Patch325: backlight-lp855x-Ensure-regulators-are-disabled-on-probe-failure.patch # https://patchwork.ozlabs.org/patch/1261638/ Patch326: arm64-drm-tegra-Fix-SMMU-support-on-Tegra124-and-Tegra210.patch +# http://patchwork.ozlabs.org/patch/1221384/ +Patch327: PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch # Coral Patch330: arm64-dts-imx8mq-phanbell-Add-support-for-ethernet.patch From 3263eacd00273eba18e112d19d75627f0929356c Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Wed, 1 Apr 2020 19:54:33 -0400 Subject: [PATCH 029/191] Linux v5.6.1 --- kernel.spec | 6 +++++- sources | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index d5b73255a..a722d5a32 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 0 +%define stable_update 1 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -2988,6 +2988,10 @@ fi # # %changelog +* Wed Apr 01 2020 Jeremy Cline - 5.6.1-300 +- Linux v5.6.1 +- Fixes CVE-2020-8835 (rhbz 1818941 1817350) + * Mon Mar 30 2020 Jeremy Cline - 5.6.0-300 - Linux v5.6 diff --git a/sources b/sources index 7fec56dfa..efdc6667b 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 +SHA512 (patch-5.6.1.xz) = 12e4b57d27d4fb650f70abdaa553bb15fdc6c2cb35dd7ec657fe8c6ab4073736227491392e1d8d3b2443efb0a12927f7806891f94a9c793ea7af2c7babcbbb70 From 9093977089692262d1f802cdbf0b70a0081746f6 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 2 Apr 2020 15:44:07 +0200 Subject: [PATCH 030/191] Add patch fixing Lenovo X1 7th and 8th gen not suspending (rhbz 1816621) --- ...o-wait-when-ME-un-configure-ULP-mode.patch | 112 ++++++++++++++++++ kernel.spec | 7 ++ 2 files changed, 119 insertions(+) create mode 100644 e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch diff --git a/e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch b/e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch new file mode 100644 index 000000000..921228c2b --- /dev/null +++ b/e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch @@ -0,0 +1,112 @@ +From patchwork Mon Mar 23 19:16:39 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Aaron Ma +X-Patchwork-Id: 1260523 +X-Patchwork-Delegate: jeffrey.t.kirsher@intel.com +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) + smtp.mailfrom=osuosl.org (client-ip=140.211.166.137; + helo=fraxinus.osuosl.org; + envelope-from=intel-wired-lan-bounces@osuosl.org; + receiver=) +Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) + header.from=canonical.com +Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) + (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 + bits)) (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 48ml8T0lZVz9sRf + for ; + Tue, 24 Mar 2020 19:41:11 +1100 (AEDT) +Received: from localhost (localhost [127.0.0.1]) + by fraxinus.osuosl.org (Postfix) with ESMTP id 3FD71861C9; + Tue, 24 Mar 2020 08:41:10 +0000 (UTC) +X-Virus-Scanned: amavisd-new at osuosl.org +Received: from fraxinus.osuosl.org ([127.0.0.1]) + by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id Z-iCoXjZ6uPi; Tue, 24 Mar 2020 08:41:09 +0000 (UTC) +Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) + by fraxinus.osuosl.org (Postfix) with ESMTP id 9184E860D1; + Tue, 24 Mar 2020 08:41:09 +0000 (UTC) +X-Original-To: intel-wired-lan@lists.osuosl.org +Delivered-To: intel-wired-lan@lists.osuosl.org +Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) + by ash.osuosl.org (Postfix) with ESMTP id 522811BF2B6 + for ; + Mon, 23 Mar 2020 19:17:15 +0000 (UTC) +Received: from localhost (localhost [127.0.0.1]) + by whitealder.osuosl.org (Postfix) with ESMTP id 4BD3187D15 + for ; + Mon, 23 Mar 2020 19:17:15 +0000 (UTC) +X-Virus-Scanned: amavisd-new at osuosl.org +Received: from whitealder.osuosl.org ([127.0.0.1]) + by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id Cyxj7lfnvPR6 for ; + Mon, 23 Mar 2020 19:17:12 +0000 (UTC) +X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 +Received: from youngberry.canonical.com (youngberry.canonical.com + [91.189.89.112]) + by whitealder.osuosl.org (Postfix) with ESMTP id 68B4087EBD + for ; + Mon, 23 Mar 2020 19:17:12 +0000 (UTC) +Received: from [222.129.50.174] (helo=localhost.localdomain) + by youngberry.canonical.com with esmtpsa + (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) + (envelope-from ) + id 1jGSZN-00031K-JS; Mon, 23 Mar 2020 19:17:06 +0000 +From: Aaron Ma +To: jeffrey.t.kirsher@intel.com, aaron.ma@canonical.com, davem@davemloft.net, + intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, + linux-kernel@vger.kernel.org, sasha.neftin@intel.com +Date: Tue, 24 Mar 2020 03:16:39 +0800 +Message-Id: <20200323191639.48826-1-aaron.ma@canonical.com> +X-Mailer: git-send-email 2.25.2 +MIME-Version: 1.0 +X-Mailman-Approved-At: Tue, 24 Mar 2020 08:41:05 +0000 +Subject: [Intel-wired-lan] [PATCH] e1000e: bump up timeout to wait when ME + un-configure ULP mode +X-BeenThere: intel-wired-lan@osuosl.org +X-Mailman-Version: 2.1.29 +Precedence: list +List-Id: Intel Wired Ethernet Linux Kernel Driver Development + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: intel-wired-lan-bounces@osuosl.org +Sender: "Intel-wired-lan" + +ME takes 2+ seconds to un-configure ULP mode done after resume +from s2idle on some ThinkPad laptops. +Without enough wait, reset and re-init will fail with error. + +Fixes: f15bb6dde738cc8fa0 ("e1000e: Add support for S0ix") +BugLink: https://bugs.launchpad.net/bugs/1865570 +Signed-off-by: Aaron Ma +--- + drivers/net/ethernet/intel/e1000e/ich8lan.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c +index b4135c50e905..147b15a2f8b3 100644 +--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c ++++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c +@@ -1240,9 +1240,9 @@ static s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force) + ew32(H2ME, mac_reg); + } + +- /* Poll up to 300msec for ME to clear ULP_CFG_DONE. */ ++ /* Poll up to 2.5sec for ME to clear ULP_CFG_DONE. */ + while (er32(FWSM) & E1000_FWSM_ULP_CFG_DONE) { +- if (i++ == 30) { ++ if (i++ == 250) { + ret_val = -E1000_ERR_PHY; + goto out; + } diff --git a/kernel.spec b/kernel.spec index a722d5a32..2e3227ba7 100644 --- a/kernel.spec +++ b/kernel.spec @@ -893,6 +893,10 @@ Patch509: drm-i915-backports.patch Patch510: 0001-mac80211-fix-authentication-with-iwlwifi-mvm.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1816621 +# https://patchwork.ozlabs.org/patch/1260523/ +Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch + # END OF PATCH DEFINITIONS %endif @@ -2988,6 +2992,9 @@ fi # # %changelog +* Thu Apr 02 2020 Hans de Goede +- Add patch fixing Lenovo X1 7th and 8th gen not suspending (rhbz 1816621) + * Wed Apr 01 2020 Jeremy Cline - 5.6.1-300 - Linux v5.6.1 - Fixes CVE-2020-8835 (rhbz 1818941 1817350) From 1e34012f4ca47475823fac26e20fe38dac09a11d Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 2 Apr 2020 19:55:00 +0200 Subject: [PATCH 031/191] Add patch fixing Lenovo X1 7th and 8th gen not suspending (rhbz 1816621) Add patch fixing Lenovo X1 8th gen speaker volume control (rhbz 1820196) --- ...-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch | 34 +++++++++++++++++++ kernel.spec | 4 +++ 2 files changed, 38 insertions(+) create mode 100644 0001-ALSA-hda-realtek-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch diff --git a/0001-ALSA-hda-realtek-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch b/0001-ALSA-hda-realtek-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch new file mode 100644 index 000000000..9c482f90c --- /dev/null +++ b/0001-ALSA-hda-realtek-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch @@ -0,0 +1,34 @@ +From 672798e7b896ad659009882b7fd3242935c8fcdf Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Thu, 2 Apr 2020 18:02:05 +0200 +Subject: [PATCH] ALSA: hda/realtek - Add quirk for Lenovo Carbon X1 8th gen + +The audio setup on the Lenovo Carbon X1 8th gen is the same as that on +the Lenovo Carbon X1 7th gen, as such it needs the same +ALC285_FIXUP_THINKPAD_HEADSET_JACK quirk. + +This fixes volume control of the speaker not working among other things. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1820196 +Cc: stable@vger.kernel.org +Suggested-by: Jaroslav Kysela +Signed-off-by: Hans de Goede +--- + sound/pci/hda/patch_realtek.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c +index 63e1a56f705b..9c3bbf1df93e 100644 +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -7299,6 +7299,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { + SND_PCI_QUIRK(0x17aa, 0x225d, "Thinkpad T480", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), + SND_PCI_QUIRK(0x17aa, 0x2292, "Thinkpad X1 Yoga 7th", ALC285_FIXUP_THINKPAD_HEADSET_JACK), + SND_PCI_QUIRK(0x17aa, 0x2293, "Thinkpad X1 Carbon 7th", ALC285_FIXUP_THINKPAD_HEADSET_JACK), ++ SND_PCI_QUIRK(0x17aa, 0x22be, "Thinkpad X1 Carbon 8th", ALC285_FIXUP_THINKPAD_HEADSET_JACK), + SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), + SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), + SND_PCI_QUIRK(0x17aa, 0x310c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION), +-- +2.26.0 + diff --git a/kernel.spec b/kernel.spec index 2e3227ba7..57a5ee5d5 100644 --- a/kernel.spec +++ b/kernel.spec @@ -897,6 +897,9 @@ Patch510: 0001-mac80211-fix-authentication-with-iwlwifi-mvm.patch # https://patchwork.ozlabs.org/patch/1260523/ Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1820196 +Patch512: 0001-ALSA-hda-realtek-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch + # END OF PATCH DEFINITIONS %endif @@ -2994,6 +2997,7 @@ fi %changelog * Thu Apr 02 2020 Hans de Goede - Add patch fixing Lenovo X1 7th and 8th gen not suspending (rhbz 1816621) +- Add patch fixing Lenovo X1 8th gen speaker volume control (rhbz 1820196) * Wed Apr 01 2020 Jeremy Cline - 5.6.1-300 - Linux v5.6.1 From a17a09f6bc6562051c5cc9f0161d0d929b552cf3 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Thu, 2 Apr 2020 14:15:03 -0400 Subject: [PATCH 032/191] Linux v5.6.2 --- ...-fix-authentication-with-iwlwifi-mvm.patch | 35 ------------------- kernel.spec | 7 ++-- sources | 2 +- 3 files changed, 5 insertions(+), 39 deletions(-) delete mode 100644 0001-mac80211-fix-authentication-with-iwlwifi-mvm.patch diff --git a/0001-mac80211-fix-authentication-with-iwlwifi-mvm.patch b/0001-mac80211-fix-authentication-with-iwlwifi-mvm.patch deleted file mode 100644 index fb8319ecf..000000000 --- a/0001-mac80211-fix-authentication-with-iwlwifi-mvm.patch +++ /dev/null @@ -1,35 +0,0 @@ -From b8b93985bfe32da1230ec77c75dde398a0c3b142 Mon Sep 17 00:00:00 2001 -From: Johannes Berg -Date: Sun, 29 Mar 2020 22:50:06 +0200 -Subject: [PATCH] mac80211: fix authentication with iwlwifi/mvm - -The original patch didn't copy the ieee80211_is_data() condition -because on most drivers the management frames don't go through -this path. However, they do on iwlwifi/mvm, so we do need to keep -the condition here. - -Cc: stable@vger.kernel.org -Fixes: ce2e1ca70307 ("mac80211: Check port authorization in the ieee80211_tx_dequeue() case") -Signed-off-by: Johannes Berg -Signed-off-by: David S. Miller ---- - net/mac80211/tx.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c -index d9cca6dbd870..efe4c1fc68e5 100644 ---- a/net/mac80211/tx.c -+++ b/net/mac80211/tx.c -@@ -3610,7 +3610,8 @@ struct sk_buff *ieee80211_tx_dequeue(struct ieee80211_hw *hw, - * Drop unicast frames to unauthorised stations unless they are - * EAPOL frames from the local station. - */ -- if (unlikely(!ieee80211_vif_is_mesh(&tx.sdata->vif) && -+ if (unlikely(ieee80211_is_data(hdr->frame_control) && -+ !ieee80211_vif_is_mesh(&tx.sdata->vif) && - tx.sdata->vif.type != NL80211_IFTYPE_OCB && - !is_multicast_ether_addr(hdr->addr1) && - !test_sta_flag(tx.sta, WLAN_STA_AUTHORIZED) && --- -2.26.0 - diff --git a/kernel.spec b/kernel.spec index 57a5ee5d5..768f59205 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 1 +%define stable_update 2 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -891,8 +891,6 @@ Patch507: drm-dp-mst-error-handling-improvements.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1811850 Patch509: drm-i915-backports.patch -Patch510: 0001-mac80211-fix-authentication-with-iwlwifi-mvm.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1816621 # https://patchwork.ozlabs.org/patch/1260523/ Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch @@ -2995,6 +2993,9 @@ fi # # %changelog +* Thu Apr 02 2020 Jeremy Cline - 5.6.2-300 +- Linux v5.6.2 + * Thu Apr 02 2020 Hans de Goede - Add patch fixing Lenovo X1 7th and 8th gen not suspending (rhbz 1816621) - Add patch fixing Lenovo X1 8th gen speaker volume control (rhbz 1820196) diff --git a/sources b/sources index efdc6667b..cf382b093 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.1.xz) = 12e4b57d27d4fb650f70abdaa553bb15fdc6c2cb35dd7ec657fe8c6ab4073736227491392e1d8d3b2443efb0a12927f7806891f94a9c793ea7af2c7babcbbb70 +SHA512 (patch-5.6.2.xz) = 37997dfaa8fe20d239660e466e424a102683dda5ea57770161a270a39b7796207bebfb958103a2844d8e8ae0949c6d15064bdb721b72550dd0c35c0f31ad6d55 From 49ac3a29168c35996898d1ea3feee70d4d0952aa Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 3 Apr 2020 12:42:34 +0100 Subject: [PATCH 033/191] Raspberry Pi HDMI mode validation fix --- drm-vc4-Fix-HDMI-mode-validation.patch | 65 ++++++++++++++++++++++++++ kernel.spec | 5 ++ 2 files changed, 70 insertions(+) create mode 100644 drm-vc4-Fix-HDMI-mode-validation.patch diff --git a/drm-vc4-Fix-HDMI-mode-validation.patch b/drm-vc4-Fix-HDMI-mode-validation.patch new file mode 100644 index 000000000..224c8fa27 --- /dev/null +++ b/drm-vc4-Fix-HDMI-mode-validation.patch @@ -0,0 +1,65 @@ +From patchwork Thu Mar 26 12:20:01 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: drm/vc4: Fix HDMI mode validation +From: Nicolas Saenz Julienne +X-Patchwork-Id: 358980 +Message-Id: <20200326122001.22215-1-nsaenzjulienne@suse.de> +To: Eric Anholt , + Daniel Vetter +Cc: Stefan Wahren , f.fainelli@gmail.com, + Dave Stevenson , + David Airlie , linux-kernel@vger.kernel.org, + dri-devel@lists.freedesktop.org, maxime@cerno.tech, + Nicolas Saenz Julienne , + linux-rpi-kernel@lists.infradead.org +Date: Thu, 26 Mar 2020 13:20:01 +0100 + +Current mode validation impedes setting up some video modes which should +be supported otherwise. Namely 1920x1200@60Hz. + +Fix this by lowering the minimum HDMI state machine clock to pixel clock +ratio allowed. + +Fixes: 32e823c63e90 ("drm/vc4: Reject HDMI modes with too high of clocks") +Reported-by: Stefan Wahren +Suggested-by: Dave Stevenson +Signed-off-by: Nicolas Saenz Julienne +Reviewed-by: Maxime Ripard +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 20 ++++++++++++++++---- + 1 file changed, 16 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index cea18dc15f77..340719238753 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -681,11 +681,23 @@ static enum drm_mode_status + vc4_hdmi_encoder_mode_valid(struct drm_encoder *crtc, + const struct drm_display_mode *mode) + { +- /* HSM clock must be 108% of the pixel clock. Additionally, +- * the AXI clock needs to be at least 25% of pixel clock, but +- * HSM ends up being the limiting factor. ++ /* ++ * As stated in RPi's vc4 firmware "HDMI state machine (HSM) clock must ++ * be faster than pixel clock, infinitesimally faster, tested in ++ * simulation. Otherwise, exact value is unimportant for HDMI ++ * operation." This conflicts with bcm2835's vc4 documentation, which ++ * states HSM's clock has to be at least 108% of the pixel clock. ++ * ++ * Real life tests reveal that vc4's firmware statement holds up, and ++ * users are able to use pixel clocks closer to HSM's, namely for ++ * 1920x1200@60Hz. So it was decided to have leave a 1% margin between ++ * both clocks. Which, for RPi0-3 implies a maximum pixel clock of ++ * 162MHz. ++ * ++ * Additionally, the AXI clock needs to be at least 25% of ++ * pixel clock, but HSM ends up being the limiting factor. + */ +- if (mode->clock > HSM_CLOCK_FREQ / (1000 * 108 / 100)) ++ if (mode->clock > HSM_CLOCK_FREQ / (1000 * 101 / 100)) + return MODE_CLOCK_HIGH; + + return MODE_OK; diff --git a/kernel.spec b/kernel.spec index 768f59205..281fc8849 100644 --- a/kernel.spec +++ b/kernel.spec @@ -828,6 +828,8 @@ Patch311: USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch Patch312: bcm2835-irqchip-Quiesce-IRQs-left-enabled-by-bootloader.patch # https://patchwork.kernel.org/patch/11420129/ Patch313: ARM-dts-bcm2711-Move-emmc2-into-its-own-bus.patch +# https://patchwork.freedesktop.org/patch/358980/ +Patch314: drm-vc4-Fix-HDMI-mode-validation.patch # Tegra bits # https://www.spinics.net/lists/linux-tegra/msg48152.html @@ -2993,6 +2995,9 @@ fi # # %changelog +* Fri Apr 3 2020 Peter Robinson +- Raspberry Pi HDMI mode validation fix + * Thu Apr 02 2020 Jeremy Cline - 5.6.2-300 - Linux v5.6.2 From 52af994213ceed8277caaff2b31bcc43663f03b0 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 6 Apr 2020 19:39:32 +0100 Subject: [PATCH 034/191] Raspberry Pi 4 rev 1.2 mmc fix --- ...-iproc-Add-custom-set_power-callback.patch | 374 ++++++++++++++++++ ...5-serial-8250_early-support-aux-uart.patch | 47 +++ kernel.spec | 7 +- 3 files changed, 427 insertions(+), 1 deletion(-) create mode 100644 arm-bcm2711-mmc-sdhci-iproc-Add-custom-set_power-callback.patch create mode 100644 arm-bcm2835-serial-8250_early-support-aux-uart.patch diff --git a/arm-bcm2711-mmc-sdhci-iproc-Add-custom-set_power-callback.patch b/arm-bcm2711-mmc-sdhci-iproc-Add-custom-set_power-callback.patch new file mode 100644 index 000000000..8c7a43185 --- /dev/null +++ b/arm-bcm2711-mmc-sdhci-iproc-Add-custom-set_power-callback.patch @@ -0,0 +1,374 @@ +From 6c92ae1e452ff3f4648b1450c9a3233a2ca53feb Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne +Date: Fri, 6 Mar 2020 18:44:03 +0100 +Subject: mmc: sdhci: Introduce sdhci_set_power_and_bus_voltage() + +Some controllers diverge from the standard way of setting power and need +their bus voltage register to be configured regardless of the whether +they use regulators. As this is a common pattern across sdhci hosts, +create a helper function. + +Signed-off-by: Nicolas Saenz Julienne +Acked-by: Adrian Hunter +Link: https://lore.kernel.org/r/20200306174413.20634-2-nsaenzjulienne@suse.de +Signed-off-by: Ulf Hansson +--- + drivers/mmc/host/sdhci.c | 19 +++++++++++++++++++ + drivers/mmc/host/sdhci.h | 3 +++ + 2 files changed, 22 insertions(+) + +diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c +index c59566363a42..525e0c971c6a 100644 +--- a/drivers/mmc/host/sdhci.c ++++ b/drivers/mmc/host/sdhci.c +@@ -2010,6 +2010,25 @@ void sdhci_set_power(struct sdhci_host *host, unsigned char mode, + } + EXPORT_SYMBOL_GPL(sdhci_set_power); + ++/* ++ * Some controllers need to configure a valid bus voltage on their power ++ * register regardless of whether an external regulator is taking care of power ++ * supply. This helper function takes care of it if set as the controller's ++ * sdhci_ops.set_power callback. ++ */ ++void sdhci_set_power_and_bus_voltage(struct sdhci_host *host, ++ unsigned char mode, ++ unsigned short vdd) ++{ ++ if (!IS_ERR(host->mmc->supply.vmmc)) { ++ struct mmc_host *mmc = host->mmc; ++ ++ mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, vdd); ++ } ++ sdhci_set_power_noreg(host, mode, vdd); ++} ++EXPORT_SYMBOL_GPL(sdhci_set_power_and_bus_voltage); ++ + /*****************************************************************************\ + * * + * MMC callbacks * +diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h +index 249635692112..851b81565f46 100644 +--- a/drivers/mmc/host/sdhci.h ++++ b/drivers/mmc/host/sdhci.h +@@ -772,6 +772,9 @@ void sdhci_set_clock(struct sdhci_host *host, unsigned int clock); + void sdhci_enable_clk(struct sdhci_host *host, u16 clk); + void sdhci_set_power(struct sdhci_host *host, unsigned char mode, + unsigned short vdd); ++void sdhci_set_power_and_bus_voltage(struct sdhci_host *host, ++ unsigned char mode, ++ unsigned short vdd); + void sdhci_set_power_noreg(struct sdhci_host *host, unsigned char mode, + unsigned short vdd); + void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq); +-- +cgit 1.2-0.3.lf.el7 +From f87391eec2c5f54269e64d655da19f2c32515e4c Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne +Date: Fri, 6 Mar 2020 18:44:11 +0100 +Subject: mmc: sdhci: iproc: Add custom set_power() callback for bcm2711 + +The controller needs a valid bus voltage in its power register +regardless of whether an external regulator is taking care of the power +supply. + +The sdhci core already provides a helper function for this, +sdhci_set_power_and_bus_voltage(), so create a bcm2711 specific 'struct +sdhci_ops' which makes use of it. + +Signed-off-by: Nicolas Saenz Julienne +Acked-by: Adrian Hunter +Link: https://lore.kernel.org/r/20200306174413.20634-10-nsaenzjulienne@suse.de +Signed-off-by: Ulf Hansson +--- + drivers/mmc/host/sdhci-iproc.c | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c +index f4f5f0a70cda..225603148d7d 100644 +--- a/drivers/mmc/host/sdhci-iproc.c ++++ b/drivers/mmc/host/sdhci-iproc.c +@@ -261,9 +261,24 @@ static const struct sdhci_iproc_data bcm2835_data = { + .mmc_caps = 0x00000000, + }; + ++static const struct sdhci_ops sdhci_iproc_bcm2711_ops = { ++ .read_l = sdhci_iproc_readl, ++ .read_w = sdhci_iproc_readw, ++ .read_b = sdhci_iproc_readb, ++ .write_l = sdhci_iproc_writel, ++ .write_w = sdhci_iproc_writew, ++ .write_b = sdhci_iproc_writeb, ++ .set_clock = sdhci_set_clock, ++ .set_power = sdhci_set_power_and_bus_voltage, ++ .get_max_clock = sdhci_iproc_get_max_clock, ++ .set_bus_width = sdhci_set_bus_width, ++ .reset = sdhci_reset, ++ .set_uhs_signaling = sdhci_set_uhs_signaling, ++}; ++ + static const struct sdhci_pltfm_data sdhci_bcm2711_pltfm_data = { + .quirks = SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12, +- .ops = &sdhci_iproc_32only_ops, ++ .ops = &sdhci_iproc_bcm2711_ops, + }; + + static const struct sdhci_iproc_data bcm2711_data = { +-- +cgit 1.2-0.3.lf.el7 +From patchwork Fri Mar 6 17:44:12 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Nicolas Saenz Julienne +X-Patchwork-Id: 11424593 +Return-Path: + +Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org + [172.30.200.123]) + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9D86014E3 + for ; + Fri, 6 Mar 2020 17:46:55 +0000 (UTC) +Received: from bombadil.infradead.org (bombadil.infradead.org + [198.137.202.133]) + (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by mail.kernel.org (Postfix) with ESMTPS id 7BFCB2072A + for ; + Fri, 6 Mar 2020 17:46:55 +0000 (UTC) +Authentication-Results: mail.kernel.org; + dkim=pass (2048-bit key) header.d=lists.infradead.org + header.i=@lists.infradead.org header.b="YjdlKV21" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7BFCB2072A +Authentication-Results: mail.kernel.org; + dmarc=none (p=none dis=none) header.from=suse.de +Authentication-Results: mail.kernel.org; + spf=none + smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org +DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; + d=lists.infradead.org; s=bombadil.20170209; h=Sender: + Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: + List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: + Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: + Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: + List-Owner; bh=uwmoUBe7WYtSPXJudhI4GM1SShwysP2rkzh9oA/iygA=; b=YjdlKV21P2YnYd + uFZk/zUDicQRMv6kHWHSeOubxKYNNZjuVUmkI6PWtCuEt37bz+3qPjaDWjY6QO0qR9wHKzxaPikjZ + upSKvBHf9jcYSON0gQhjCxZEGnfO3zrdObtnjdQFTTE9rJPiUXe+bIsvhqlNCO/5Xq4pXjSVR81Fw + IVfXtxtw0tmDjrN7VDqH+dhvUPrvLDRnXOHnolvQfQyuvyvSZ9I7Wn/c4fFJsZemBA7mjvORI7cTd + lVRuIqACikY2bT4Zh+ZtglOCFxtlNjCe60Dj94AnA/j51dvC8MHQOOD+HGKjGzKBwk5FONXjvKeUZ + kR8WGaZiQsG3hj3hzxyw==; +Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) + by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) + id 1jAH3k-0003wN-91; Fri, 06 Mar 2020 17:46:52 +0000 +Received: from mx2.suse.de ([195.135.220.15]) + by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) + id 1jAH1V-00085X-Ut; Fri, 06 Mar 2020 17:44:35 +0000 +X-Virus-Scanned: by amavisd-new at test-mx.suse.de +Received: from relay2.suse.de (unknown [195.135.220.254]) + by mx2.suse.de (Postfix) with ESMTP id 8906AACC2; + Fri, 6 Mar 2020 17:44:32 +0000 (UTC) +From: Nicolas Saenz Julienne +To: adrian.hunter@intel.com, linux-kernel@vger.kernel.org, + Rob Herring , + Nicolas Saenz Julienne +Subject: [PATCH v2 10/11] ARM: dts: bcm2711: Update expgpio's GPIO labels +Date: Fri, 6 Mar 2020 18:44:12 +0100 +Message-Id: <20200306174413.20634-11-nsaenzjulienne@suse.de> +X-Mailer: git-send-email 2.25.1 +In-Reply-To: <20200306174413.20634-1-nsaenzjulienne@suse.de> +References: <20200306174413.20634-1-nsaenzjulienne@suse.de> +MIME-Version: 1.0 +X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 +X-CRM114-CacheID: sfid-20200306_094434_171925_0978A2DC +X-CRM114-Status: GOOD ( 11.64 ) +X-Spam-Score: -2.3 (--) +X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: + Content analysis details: (-2.3 points) + pts rule name description + ---- ---------------------- + -------------------------------------------------- + 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) + [195.135.220.15 listed in wl.mailspike.net] + -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, + medium trust [195.135.220.15 listed in list.dnswl.org] + 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders +X-BeenThere: linux-arm-kernel@lists.infradead.org +X-Mailman-Version: 2.1.29 +Precedence: list +List-Id: +List-Unsubscribe: + , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: + , + +Cc: stefan.wahren@i2se.com, devicetree@vger.kernel.org, f.fainelli@gmail.com, + linux-mmc@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, + linux-rpi-kernel@lists.infradead.org, phil@raspberrypi.com, + linux-arm-kernel@lists.infradead.org +Sender: "linux-arm-kernel" +Errors-To: + linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org + +The 6th line of the GPIO expander is used to power the board's SD card. + +Signed-off-by: Nicolas Saenz Julienne +--- + arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +index 1d4b589fe233..b0ea8233b636 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +@@ -68,7 +68,7 @@ expgpio: gpio { + "GLOBAL_RESET", + "VDD_SD_IO_SEL", + "CAM_GPIO", +- "", ++ "SD_PWR_ON", + ""; + status = "okay"; + }; +From patchwork Fri Mar 6 17:44:13 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Nicolas Saenz Julienne +X-Patchwork-Id: 11424599 +Return-Path: + +Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org + [172.30.200.123]) + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A9E8E14BC + for ; + Fri, 6 Mar 2020 17:47:49 +0000 (UTC) +Received: from bombadil.infradead.org (bombadil.infradead.org + [198.137.202.133]) + (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) + (No client certificate requested) + by mail.kernel.org (Postfix) with ESMTPS id 86F7120656 + for ; + Fri, 6 Mar 2020 17:47:49 +0000 (UTC) +Authentication-Results: mail.kernel.org; + dkim=pass (2048-bit key) header.d=lists.infradead.org + header.i=@lists.infradead.org header.b="nK9IFX75" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 86F7120656 +Authentication-Results: mail.kernel.org; + dmarc=none (p=none dis=none) header.from=suse.de +Authentication-Results: mail.kernel.org; + spf=none + smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org +DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; + d=lists.infradead.org; s=bombadil.20170209; h=Sender: + Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: + List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: + Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: + Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: + List-Owner; bh=yrr+wQNcWoBzz3a/8/AcMlS2enrwpsgYIWUpL8bLv8o=; b=nK9IFX75hVaG6g + t8PhPIHJnIGtQxqZ65valF8dAq8JXeUle2mgnW5xdfa/YWcgzajD9/LaS1qMXKW7wDU/rQ0GbSW9t + +8F8v8NQzCf34sfHmFBEl30S1pJN/dQVJKJk0kmx6/P9N+ig3vAyMVsPsXq1Xij+OU0aU8SU1V+mE + nZnwLti9oSRWY6sNhg1MoHB2DNBt/FBNtROGqiXh13ngQTg8C/HgYapnJnXb+GjrutVM2DzH+i/tG + OtgGRm0XoLRz5QjavZZHPmlHUm8pMxfgllYbUvrESNgDT06vBiPj4idCN7X1XXxxoqPsP3/k8kido + Py713+dNVA1gqQEWqG1g==; +Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) + by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) + id 1jAH4a-0004vA-Os; Fri, 06 Mar 2020 17:47:44 +0000 +Received: from mx2.suse.de ([195.135.220.15]) + by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) + id 1jAH1W-00086J-W9; Fri, 06 Mar 2020 17:44:36 +0000 +X-Virus-Scanned: by amavisd-new at test-mx.suse.de +Received: from relay2.suse.de (unknown [195.135.220.254]) + by mx2.suse.de (Postfix) with ESMTP id 8D8E5AEC5; + Fri, 6 Mar 2020 17:44:33 +0000 (UTC) +From: Nicolas Saenz Julienne +To: adrian.hunter@intel.com, linux-kernel@vger.kernel.org, + Rob Herring , + Nicolas Saenz Julienne +Subject: [PATCH v2 11/11] ARM: dts: bcm2711: Add vmmc regulator in emmc2 +Date: Fri, 6 Mar 2020 18:44:13 +0100 +Message-Id: <20200306174413.20634-12-nsaenzjulienne@suse.de> +X-Mailer: git-send-email 2.25.1 +In-Reply-To: <20200306174413.20634-1-nsaenzjulienne@suse.de> +References: <20200306174413.20634-1-nsaenzjulienne@suse.de> +MIME-Version: 1.0 +X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 +X-CRM114-CacheID: sfid-20200306_094435_205829_20FE02CB +X-CRM114-Status: GOOD ( 10.34 ) +X-Spam-Score: -2.3 (--) +X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: + Content analysis details: (-2.3 points) + pts rule name description + ---- ---------------------- + -------------------------------------------------- + 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) + [195.135.220.15 listed in wl.mailspike.net] + -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, + medium trust [195.135.220.15 listed in list.dnswl.org] + 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders +X-BeenThere: linux-arm-kernel@lists.infradead.org +X-Mailman-Version: 2.1.29 +Precedence: list +List-Id: +List-Unsubscribe: + , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: + , + +Cc: stefan.wahren@i2se.com, devicetree@vger.kernel.org, f.fainelli@gmail.com, + linux-mmc@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, + linux-rpi-kernel@lists.infradead.org, phil@raspberrypi.com, + linux-arm-kernel@lists.infradead.org +Sender: "linux-arm-kernel" +Errors-To: + linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org + +The SD card power can be controlled trough a pin routed into the board's +external GPIO expander. Turn that into a regulator and provide it to +emmc2. + +Signed-off-by: Nicolas Saenz Julienne +--- + arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +index b0ea8233b636..a2da058396fe 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +@@ -55,6 +55,16 @@ sd_io_1v8_reg: sd_io_1v8_reg { + 3300000 0x0>; + status = "okay"; + }; ++ ++ sd_vcc_reg: sd_vcc_reg { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc-sd"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-boot-on; ++ enable-active-high; ++ gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>; ++ }; + }; + + &firmware { +@@ -173,6 +183,7 @@ brcmf: wifi@1 { + /* EMMC2 is used to drive the SD card */ + &emmc2 { + vqmmc-supply = <&sd_io_1v8_reg>; ++ vmmc-supply = <&sd_vcc_reg>; + broken-cd; + status = "okay"; + }; diff --git a/arm-bcm2835-serial-8250_early-support-aux-uart.patch b/arm-bcm2835-serial-8250_early-support-aux-uart.patch new file mode 100644 index 000000000..5ab954996 --- /dev/null +++ b/arm-bcm2835-serial-8250_early-support-aux-uart.patch @@ -0,0 +1,47 @@ +From 57b76faf1d7860f070a1ee2d0b7eccd9f37ecc55 Mon Sep 17 00:00:00 2001 +From: Matthias Brugger +Date: Sun, 26 Jan 2020 13:33:14 +0100 +Subject: serial: 8250_early: Add earlycon for BCM2835 aux uart + +Define the OF early console for BCM2835 aux UART, which can be enabled +by passing "earlycon" on the boot command line. This UART is found on +BCM283x and BCM27xx SoCs, a.k.a. Raspberry Pi in its variants. + +Signed-off-by: Matthias Brugger +Link: https://lore.kernel.org/r/20200126123314.3558-1-matthias.bgg@kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/tty/serial/8250/8250_bcm2835aux.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/drivers/tty/serial/8250/8250_bcm2835aux.c b/drivers/tty/serial/8250/8250_bcm2835aux.c +index e70e3cc30050..5cc03bf24f85 100644 +--- a/drivers/tty/serial/8250/8250_bcm2835aux.c ++++ b/drivers/tty/serial/8250/8250_bcm2835aux.c +@@ -137,6 +137,24 @@ static struct platform_driver bcm2835aux_serial_driver = { + }; + module_platform_driver(bcm2835aux_serial_driver); + ++#ifdef CONFIG_SERIAL_8250_CONSOLE ++ ++static int __init early_bcm2835aux_setup(struct earlycon_device *device, ++ const char *options) ++{ ++ if (!device->port.membase) ++ return -ENODEV; ++ ++ device->port.iotype = UPIO_MEM32; ++ device->port.regshift = 2; ++ ++ return early_serial8250_setup(device, NULL); ++} ++ ++OF_EARLYCON_DECLARE(bcm2835aux, "brcm,bcm2835-aux-uart", ++ early_bcm2835aux_setup); ++#endif ++ + MODULE_DESCRIPTION("BCM2835 auxiliar UART driver"); + MODULE_AUTHOR("Martin Sperl "); + MODULE_LICENSE("GPL v2"); +-- +cgit 1.2-0.3.lf.el7 diff --git a/kernel.spec b/kernel.spec index 281fc8849..5e9abbc58 100644 --- a/kernel.spec +++ b/kernel.spec @@ -828,8 +828,12 @@ Patch311: USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch Patch312: bcm2835-irqchip-Quiesce-IRQs-left-enabled-by-bootloader.patch # https://patchwork.kernel.org/patch/11420129/ Patch313: ARM-dts-bcm2711-Move-emmc2-into-its-own-bus.patch +# Upstream commit f87391eec2c5 thread: https://www.spinics.net/lists/linux-mmc/msg58036.html +Patch314: arm-bcm2711-mmc-sdhci-iproc-Add-custom-set_power-callback.patch # https://patchwork.freedesktop.org/patch/358980/ -Patch314: drm-vc4-Fix-HDMI-mode-validation.patch +Patch315: drm-vc4-Fix-HDMI-mode-validation.patch +# Upstream commit 57b76faf1d78 +Patch316: arm-bcm2835-serial-8250_early-support-aux-uart.patch # Tegra bits # https://www.spinics.net/lists/linux-tegra/msg48152.html @@ -2997,6 +3001,7 @@ fi %changelog * Fri Apr 3 2020 Peter Robinson - Raspberry Pi HDMI mode validation fix +- Raspberry Pi 4 rev 1.2 mmc fix * Thu Apr 02 2020 Jeremy Cline - 5.6.2-300 - Linux v5.6.2 From 939ceca29c33a6227030b2fe405551247ccab197 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Tue, 7 Apr 2020 08:37:17 -0500 Subject: [PATCH 035/191] Add patches to fix nouveau issues preventing booting the installer or system --- ...around-runpm-fail-by-disabling-PCI-p.patch | 141 ++++++++++++++++++ ...p107-gp108-implement-workaround-for-.patch | 68 +++++++++ kernel.spec | 9 ++ 3 files changed, 218 insertions(+) create mode 100644 0001-drm-nouveau-workaround-runpm-fail-by-disabling-PCI-p.patch create mode 100644 0002-drm-nouveau-gr-gp107-gp108-implement-workaround-for-.patch diff --git a/0001-drm-nouveau-workaround-runpm-fail-by-disabling-PCI-p.patch b/0001-drm-nouveau-workaround-runpm-fail-by-disabling-PCI-p.patch new file mode 100644 index 000000000..1511e4a7a --- /dev/null +++ b/0001-drm-nouveau-workaround-runpm-fail-by-disabling-PCI-p.patch @@ -0,0 +1,141 @@ +From 7a7662fe09eb2ccd2eb93ce7261aa47c86111b4d Mon Sep 17 00:00:00 2001 +From: Karol Herbst +Date: Tue, 24 Mar 2020 21:29:23 +0100 +Subject: [PATCH 1/2] drm/nouveau: workaround runpm fail by disabling PCI power + management on certain intel bridges + +Fixes the infamous 'runtime PM' bug many users are facing on Laptops with +Nvidia Pascal GPUs by skipping said PCI power state changes on the GPU. + +Depending on the used kernel there might be messages like those in demsg: + +"nouveau 0000:01:00.0: Refused to change power state, currently in D3" +"nouveau 0000:01:00.0: can't change power state from D3cold to D0 (config +space inaccessible)" +followed by backtraces of kernel crashes or timeouts within nouveau. + +It's still unkown why this issue exists, but this is a reliable workaround +and solves a very annoying issue for user having to choose between a +crashing kernel or higher power consumption of their Laptops. + +Signed-off-by: Karol Herbst +Cc: Bjorn Helgaas +Cc: Lyude Paul +Cc: Rafael J. Wysocki +Cc: Mika Westerberg +Cc: linux-pci@vger.kernel.org +Cc: linux-pm@vger.kernel.org +Cc: dri-devel@lists.freedesktop.org +Cc: nouveau@lists.freedesktop.org +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=205623 +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/nouveau_drm.c | 63 +++++++++++++++++++++++++++ + drivers/gpu/drm/nouveau/nouveau_drv.h | 2 + + 2 files changed, 65 insertions(+) + +diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c +index 6b1629c14dd7..ca4087f5a15b 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_drm.c ++++ b/drivers/gpu/drm/nouveau/nouveau_drm.c +@@ -618,6 +618,64 @@ nouveau_drm_device_fini(struct drm_device *dev) + kfree(drm); + } + ++/* ++ * On some Intel PCIe bridge controllers doing a ++ * D0 -> D3hot -> D3cold -> D0 sequence causes Nvidia GPUs to not reappear. ++ * Skipping the intermediate D3hot step seems to make it work again. This is ++ * probably caused by not meeting the expectation the involved AML code has ++ * when the GPU is put into D3hot state before invoking it. ++ * ++ * This leads to various manifestations of this issue: ++ * - AML code execution to power on the GPU hits an infinite loop (as the ++ * code waits on device memory to change). ++ * - kernel crashes, as all PCI reads return -1, which most code isn't able ++ * to handle well enough. ++ * ++ * In all cases dmesg will contain at least one line like this: ++ * 'nouveau 0000:01:00.0: Refused to change power state, currently in D3' ++ * followed by a lot of nouveau timeouts. ++ * ++ * In the \_SB.PCI0.PEG0.PG00._OFF code deeper down writes bit 0x80 to the not ++ * documented PCI config space register 0x248 of the Intel PCIe bridge ++ * controller (0x1901) in order to change the state of the PCIe link between ++ * the PCIe port and the GPU. There are alternative code paths using other ++ * registers, which seem to work fine (executed pre Windows 8): ++ * - 0xbc bit 0x20 (publicly available documentation claims 'reserved') ++ * - 0xb0 bit 0x10 (link disable) ++ * Changing the conditions inside the firmware by poking into the relevant ++ * addresses does resolve the issue, but it seemed to be ACPI private memory ++ * and not any device accessible memory at all, so there is no portable way of ++ * changing the conditions. ++ * On a XPS 9560 that means bits [0,3] on \CPEX need to be cleared. ++ * ++ * The only systems where this behavior can be seen are hybrid graphics laptops ++ * with a secondary Nvidia Maxwell, Pascal or Turing GPU. It's unclear whether ++ * this issue only occurs in combination with listed Intel PCIe bridge ++ * controllers and the mentioned GPUs or other devices as well. ++ * ++ * documentation on the PCIe bridge controller can be found in the ++ * "7th Generation Intel® Processor Families for H Platforms Datasheet Volume 2" ++ * Section "12 PCI Express* Controller (x16) Registers" ++ */ ++ ++static void quirk_broken_nv_runpm(struct pci_dev *pdev) ++{ ++ struct drm_device *dev = pci_get_drvdata(pdev); ++ struct nouveau_drm *drm = nouveau_drm(dev); ++ struct pci_dev *bridge = pci_upstream_bridge(pdev); ++ ++ if (!bridge || bridge->vendor != PCI_VENDOR_ID_INTEL) ++ return; ++ ++ switch (bridge->device) { ++ case 0x1901: ++ drm->old_pm_cap = pdev->pm_cap; ++ pdev->pm_cap = 0; ++ NV_INFO(drm, "Disabling PCI power management to avoid bug\n"); ++ break; ++ } ++} ++ + static int nouveau_drm_probe(struct pci_dev *pdev, + const struct pci_device_id *pent) + { +@@ -699,6 +757,7 @@ static int nouveau_drm_probe(struct pci_dev *pdev, + if (ret) + goto fail_drm_dev_init; + ++ quirk_broken_nv_runpm(pdev); + return 0; + + fail_drm_dev_init: +@@ -734,7 +793,11 @@ static void + nouveau_drm_remove(struct pci_dev *pdev) + { + struct drm_device *dev = pci_get_drvdata(pdev); ++ struct nouveau_drm *drm = nouveau_drm(dev); + ++ /* revert our workaround */ ++ if (drm->old_pm_cap) ++ pdev->pm_cap = drm->old_pm_cap; + nouveau_drm_device_remove(dev); + pci_disable_device(pdev); + } +diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h +index c2c332fbde97..2a6519737800 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_drv.h ++++ b/drivers/gpu/drm/nouveau/nouveau_drv.h +@@ -140,6 +140,8 @@ struct nouveau_drm { + + struct list_head clients; + ++ u8 old_pm_cap; ++ + struct { + struct agp_bridge_data *bridge; + u32 base; +-- +2.25.1 + diff --git a/0002-drm-nouveau-gr-gp107-gp108-implement-workaround-for-.patch b/0002-drm-nouveau-gr-gp107-gp108-implement-workaround-for-.patch new file mode 100644 index 000000000..554800010 --- /dev/null +++ b/0002-drm-nouveau-gr-gp107-gp108-implement-workaround-for-.patch @@ -0,0 +1,68 @@ +From 37b556606d1217b4367e622d88cef11c65764386 Mon Sep 17 00:00:00 2001 +From: Ben Skeggs +Date: Tue, 31 Mar 2020 16:08:44 +1000 +Subject: [PATCH 2/2] drm/nouveau/gr/gp107,gp108: implement workaround for HW + hanging during init + +Certain boards with GP107/GP108 chipsets hang (often, but randomly) for +unknown reasons during GR initialisation. + +The first tell-tale symptom of this issue is: + +nouveau 0000:01:00.0: bus: MMIO read of 00000000 FAULT at 409800 [ TIMEOUT ] + +appearing in dmesg, likely followed by many other failures being logged. + +Karol found this WAR for the issue a while back, but efforts to isolate +the root cause and proper fix have not yielded success so far. I've +modified the original patch to include a few more details, limit it to +GP107/GP108 by default, and added a config option to override this choice. + +Signed-off-by: Ben Skeggs +Reviewed-by: Karol Herbst +--- + .../gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 26 +++++++++++++++++++ + 1 file changed, 26 insertions(+) + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c +index dd8f85b8b3a7..f2f5636efac4 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c +@@ -1981,8 +1981,34 @@ gf100_gr_init_(struct nvkm_gr *base) + { + struct gf100_gr *gr = gf100_gr(base); + struct nvkm_subdev *subdev = &base->engine.subdev; ++ struct nvkm_device *device = subdev->device; ++ bool reset = device->chipset == 0x137 || device->chipset == 0x138; + u32 ret; + ++ /* On certain GP107/GP108 boards, we trigger a weird issue where ++ * GR will stop responding to PRI accesses after we've asked the ++ * SEC2 RTOS to boot the GR falcons. This happens with far more ++ * frequency when cold-booting a board (ie. returning from D3). ++ * ++ * The root cause for this is not known and has proven difficult ++ * to isolate, with many avenues being dead-ends. ++ * ++ * A workaround was discovered by Karol, whereby putting GR into ++ * reset for an extended period right before initialisation ++ * prevents the problem from occuring. ++ * ++ * XXX: As RM does not require any such workaround, this is more ++ * of a hack than a true fix. ++ */ ++ reset = nvkm_boolopt(device->cfgopt, "NvGrResetWar", reset); ++ if (reset) { ++ nvkm_mask(device, 0x000200, 0x00001000, 0x00000000); ++ nvkm_rd32(device, 0x000200); ++ msleep(50); ++ nvkm_mask(device, 0x000200, 0x00001000, 0x00001000); ++ nvkm_rd32(device, 0x000200); ++ } ++ + nvkm_pmu_pgob(gr->base.engine.subdev.device->pmu, false); + + ret = nvkm_falcon_get(&gr->fecs.falcon, subdev); +-- +2.25.1 + diff --git a/kernel.spec b/kernel.spec index 5e9abbc58..5632562de 100644 --- a/kernel.spec +++ b/kernel.spec @@ -904,6 +904,12 @@ Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1820196 Patch512: 0001-ALSA-hda-realtek-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch +# nouveau runpm and secboot fixes +# Accepted nouveau upstream https://github.com/skeggsb/nouveau/commit/f5755e7069d4acbcce1a93692421f358241ead7b +Patch513: 0001-drm-nouveau-workaround-runpm-fail-by-disabling-PCI-p.patch +# Accepted nouveau upstream https://github.com/skeggsb/nouveau/commit/41c6a13e8143af71928749ea9895d2ebc2fb4ffd +Patch514: 0002-drm-nouveau-gr-gp107-gp108-implement-workaround-for-.patch + # END OF PATCH DEFINITIONS %endif @@ -2999,6 +3005,9 @@ fi # # %changelog +* Tue Apr 07 2020 Karol Herbst +- Add patches to fix nouveau issues preventing booting the installer or system + * Fri Apr 3 2020 Peter Robinson - Raspberry Pi HDMI mode validation fix - Raspberry Pi 4 rev 1.2 mmc fix From 7c60344ea2ba58aab726859aa316533ae12a08bf Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Tue, 7 Apr 2020 13:59:42 -0400 Subject: [PATCH 036/191] Bump the release --- kernel.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 5632562de..21e5fc11a 100644 --- a/kernel.spec +++ b/kernel.spec @@ -80,7 +80,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 300 +%global baserelease 301 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -3005,7 +3005,7 @@ fi # # %changelog -* Tue Apr 07 2020 Karol Herbst +* Tue Apr 07 2020 Karol Herbst - 5.6.2-301 - Add patches to fix nouveau issues preventing booting the installer or system * Fri Apr 3 2020 Peter Robinson From c15f4eec8a9df6febec307872718dabeb3c1a1fe Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Wed, 8 Apr 2020 11:12:44 -0400 Subject: [PATCH 037/191] Linux v5.6.3 --- ...CD-support-for-Pine64-Pinebook-1080p.patch | 185 ------------------ kernel.spec | 7 +- sources | 2 +- 3 files changed, 6 insertions(+), 188 deletions(-) diff --git a/Add-LCD-support-for-Pine64-Pinebook-1080p.patch b/Add-LCD-support-for-Pine64-Pinebook-1080p.patch index 2247358cf..632601e4c 100644 --- a/Add-LCD-support-for-Pine64-Pinebook-1080p.patch +++ b/Add-LCD-support-for-Pine64-Pinebook-1080p.patch @@ -1,188 +1,3 @@ -From patchwork Wed Feb 26 08:10:06 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Vasily Khoruzhick -X-Patchwork-Id: 11405523 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 02E1C138D - for ; - Wed, 26 Feb 2020 08:11:21 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 8290920714 - for ; - Wed, 26 Feb 2020 08:11:20 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="NC4UyvmJ"; - dkim=fail reason="signature verification failed" (2048-bit key) - header.d=gmail.com header.i=@gmail.com header.b="dgRS/obe" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8290920714 -Authentication-Results: mail.kernel.org; - dmarc=fail (p=none dis=none) header.from=gmail.com -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=ifkHwwwyIAcS8LX6zs1w9giDBKxk8pj28d5xFaSqglI=; b=NC4UyvmJVZ+ONg - /A8ilsjAqJhTC8MaSgpoj5PtQJbjPjlGZbanGvdYADstThCTcDhB3JaTr2OpYD33lkNLcdv3ZAFU1 - AnTRQtFkgWzjhjePM/+S5KOVHoA+qgME1ZirVrirqulkCrnzlqwzoiHVRrDfuHasnmHQwywjthV7j - YdAJTaGBt4B1YcxalS0NJ/TxVgp9YQPaYDxGqSOsNp47p74ZAcpJDWq97X+gphoM7A12wMy26ox/j - WPKddrvS+kU9biyMlV3E+7B7WhC9rsjcoKV06vcNFxG9AOkucLtbaYHij3lcWbV4LiBm9CvzrzZch - l27BRKyW2mKvnJLBHRvA==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j6rmm-0001N1-2G; Wed, 26 Feb 2020 08:11:16 +0000 -Received: from mail-pg1-x543.google.com ([2607:f8b0:4864:20::543]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j6rmH-0000rr-Ht - for linux-arm-kernel@lists.infradead.org; Wed, 26 Feb 2020 08:10:47 +0000 -Received: by mail-pg1-x543.google.com with SMTP id y30so910400pga.13 - for ; - Wed, 26 Feb 2020 00:10:43 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; - h=from:to:cc:subject:date:message-id:in-reply-to:references - :mime-version:content-transfer-encoding; - bh=4KM0r5uD7rljHPdtJuNxVsZCmDnwVuLvCzxfAh27Klw=; - b=dgRS/obec3aOByr8PTKvXVfLFPdY1OXcSqqEUuyzPCu3aykdzkVOJ72/vImDdDvwYy - u6HGV4iMY1+UU+6DDHioTxtUmpb4PL1lZF9mvbpeFOT35Mv2rS6loQXlTy5PFr/ULB4B - lWV4RthTKBuPwRIoUJkcrsrmXJSZo5zuYr9Oo1NFcrbFmqPY68uGSvIhMKxSZsO769hX - ujP/inLHS1BnYoTZvXdKpMKWCie+TcW+f6ic+DwM5gEVUlvh2oZnE/KN+Mq3UuB1youB - dUl46XZqucP07YZ37nkUhsXFZn5UiopzPt1a6mWynNd4vdD+LEgxQgd3WURCof44zIb4 - ifRQ== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20161025; - h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to - :references:mime-version:content-transfer-encoding; - bh=4KM0r5uD7rljHPdtJuNxVsZCmDnwVuLvCzxfAh27Klw=; - b=LMuXV8i7l22WzitvvRZD61Yrkp8uF0h/+ejHJuZCCukaTOB+9bsZ6+6Gh4N2P1IrBu - nKDyKfhOFo28xZ56hDPQH1/OkI8LwHx/uVFrbpJYszeamkklpekkRGKRK/5RpRk81oXd - fxUgtGCJouVC9bdOFBbRecr5EaD6j0hRl+hHzXwNsO68r0z0xtmTprbGHHjgJCjQ37ur - eNaxd2pBwU6H8OtmXgRNzLbKnmqv+E8P125dUWGYfLLS53dGM1WiQZsaDY1s8fbeI28J - mRFdXfpF9fU5HDIdzp3TUSTV5OiPKIB/7J1z191AHWnqQ3DZQaaFkMpdInNTq3tBZNxf - bsMQ== -X-Gm-Message-State: APjAAAXRf2LNxHyoVBoE3gnXd8gwgTMib7VQTV+LLhFEVvw+kWaBJjVB - ANMsOuSPjpCbvB3mXZuD+oc= -X-Google-Smtp-Source: - APXvYqyQjLc15uh0MUo/Upb22dso+icknd9LfH39mfhW5X2d4U/9EURWB7pcI9luJw0/E5sOA2wZ5Q== -X-Received: by 2002:a62:3304:: with SMTP id z4mr2893899pfz.79.1582704643017; - Wed, 26 Feb 2020 00:10:43 -0800 (PST) -Received: from anarsoul-thinkpad.lan (216-71-213-236.dyn.novuscom.net. - [216.71.213.236]) - by smtp.gmail.com with ESMTPSA id v7sm1679230pfn.61.2020.02.26.00.10.41 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Wed, 26 Feb 2020 00:10:42 -0800 (PST) -From: Vasily Khoruzhick -To: Thierry Reding , - Sam Ravnborg , - David Airlie , Daniel Vetter , - Rob Herring , Mark Rutland , - Maxime Ripard , Chen-Yu Tsai , - Andrzej Hajda , - Neil Armstrong , - Laurent Pinchart , - Jonas Karlman , Jernej Skrabec , - Torsten Duwe , Icenowy Zheng , - Heiko Stuebner , - Stephan Gerhold , Mark Brown , - Stephen Rothwell , - Samuel Holland , dri-devel@lists.freedesktop.org, - devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, - linux-arm-kernel@lists.infradead.org -Subject: [PATCH v2 1/6] drm/bridge: anx6345: Fix getting anx6345 regulators -Date: Wed, 26 Feb 2020 00:10:06 -0800 -Message-Id: <20200226081011.1347245-2-anarsoul@gmail.com> -X-Mailer: git-send-email 2.25.0 -In-Reply-To: <20200226081011.1347245-1-anarsoul@gmail.com> -References: <20200226081011.1347245-1-anarsoul@gmail.com> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200226_001045_589863_8FCB25B5 -X-CRM114-Status: GOOD ( 12.63 ) -X-Spam-Score: -0.2 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-0.2 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [2607:f8b0:4864:20:0:0:0:543 listed in] - [list.dnswl.org] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail - provider [anarsoul[at]gmail.com] - -0.0 SPF_PASS SPF: sender matches SPF record - -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from - envelope-from domain - 0.1 DKIM_SIGNED Message has a DKIM or DK signature, - not necessarily - valid - -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from - author's domain - -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: Laurent Pinchart -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -From: Samuel Holland - -We don't need to pass '-supply' suffix to devm_regulator_get() - -Fixes: 6aa192698089 ("drm/bridge: Add Analogix anx6345 support") -Reviewed-by: Laurent Pinchart -Signed-off-by: Samuel Holland -Signed-off-by: Vasily Khoruzhick ---- - drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c -index 56f55c53abfd..0d8d083b0207 100644 ---- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c -+++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c -@@ -712,14 +712,14 @@ static int anx6345_i2c_probe(struct i2c_client *client, - DRM_DEBUG("No panel found\n"); - - /* 1.2V digital core power regulator */ -- anx6345->dvdd12 = devm_regulator_get(dev, "dvdd12-supply"); -+ anx6345->dvdd12 = devm_regulator_get(dev, "dvdd12"); - if (IS_ERR(anx6345->dvdd12)) { - DRM_ERROR("dvdd12-supply not found\n"); - return PTR_ERR(anx6345->dvdd12); - } - - /* 2.5V digital core power regulator */ -- anx6345->dvdd25 = devm_regulator_get(dev, "dvdd25-supply"); -+ anx6345->dvdd25 = devm_regulator_get(dev, "dvdd25"); - if (IS_ERR(anx6345->dvdd25)) { - DRM_ERROR("dvdd25-supply not found\n"); - return PTR_ERR(anx6345->dvdd25); - From patchwork Wed Feb 26 08:10:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 diff --git a/kernel.spec b/kernel.spec index 21e5fc11a..a0cdb8568 100644 --- a/kernel.spec +++ b/kernel.spec @@ -80,7 +80,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 301 +%global baserelease 300 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 2 +%define stable_update 3 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -3005,6 +3005,9 @@ fi # # %changelog +* Wed Apr 08 2020 Jeremy Cline - 5.6.3-300 +- Linux v5.6.3 + * Tue Apr 07 2020 Karol Herbst - 5.6.2-301 - Add patches to fix nouveau issues preventing booting the installer or system diff --git a/sources b/sources index cf382b093..f6f2b120c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.2.xz) = 37997dfaa8fe20d239660e466e424a102683dda5ea57770161a270a39b7796207bebfb958103a2844d8e8ae0949c6d15064bdb721b72550dd0c35c0f31ad6d55 +SHA512 (patch-5.6.3.xz) = 46fa5bb031f25e10e13c7fc9249bbe5610b7f6a2c2141d2acbd4cca75cab7aa70751d9aef72265f5699a1d6cf7252831970aad93eb1f78a6a76a68628ed5fa24 From 0ec123e28a91637ad542f5a59cc8946107340f40 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Mon, 13 Apr 2020 10:11:15 -0400 Subject: [PATCH 038/191] Linux v5.6.4 --- kernel.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index a0cdb8568..6f78aeced 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 3 +%define stable_update 4 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -3005,6 +3005,9 @@ fi # # %changelog +* Mon Apr 13 2020 Jeremy Cline - 5.6.4-300 +- Linux v5.6.4 + * Wed Apr 08 2020 Jeremy Cline - 5.6.3-300 - Linux v5.6.3 diff --git a/sources b/sources index f6f2b120c..e2407159c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.3.xz) = 46fa5bb031f25e10e13c7fc9249bbe5610b7f6a2c2141d2acbd4cca75cab7aa70751d9aef72265f5699a1d6cf7252831970aad93eb1f78a6a76a68628ed5fa24 +SHA512 (patch-5.6.4.xz) = 05607a47ee72af4a7b4d8424a3995d92d0cf358902459993908df0e95643cbfa9eec7ed56779d254b7b75ec1c8dbec5eea5e2e845f40f5511533d53b90b1c02e From e419322aff4d8e0a5f8c02d32f3d38d84766878a Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 16 Apr 2020 17:52:54 -0500 Subject: [PATCH 039/191] Add missing MODULE_FIRMWARE() lines for initramfs generators --- kernel.spec | 4 ++ nouveau-add-missing-MODULE_FIRMWARE.patch | 59 +++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 nouveau-add-missing-MODULE_FIRMWARE.patch diff --git a/kernel.spec b/kernel.spec index 6f78aeced..3b84ddd4b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -909,6 +909,7 @@ Patch512: 0001-ALSA-hda-realtek-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch Patch513: 0001-drm-nouveau-workaround-runpm-fail-by-disabling-PCI-p.patch # Accepted nouveau upstream https://github.com/skeggsb/nouveau/commit/41c6a13e8143af71928749ea9895d2ebc2fb4ffd Patch514: 0002-drm-nouveau-gr-gp107-gp108-implement-workaround-for-.patch +Patch515: nouveau-add-missing-MODULE_FIRMWARE.patch # END OF PATCH DEFINITIONS @@ -3005,6 +3006,9 @@ fi # # %changelog +* Thu Apr 16 2020 Justin M. Forbes +- Nouveau Add missing MODULE_FIRMWARE() lines for initramfs generators + * Mon Apr 13 2020 Jeremy Cline - 5.6.4-300 - Linux v5.6.4 diff --git a/nouveau-add-missing-MODULE_FIRMWARE.patch b/nouveau-add-missing-MODULE_FIRMWARE.patch new file mode 100644 index 000000000..1195b95d3 --- /dev/null +++ b/nouveau-add-missing-MODULE_FIRMWARE.patch @@ -0,0 +1,59 @@ +From 92f673a12d14b5393138d2b1cfeb41d72b47362d Mon Sep 17 00:00:00 2001 +From: Ben Skeggs +Date: Thu, 16 Apr 2020 15:26:01 +1000 +Subject: [PATCH] drm/nouveau/sec2/gv100-: add missing MODULE_FIRMWARE() + +ASB was failing to load on Turing GPUs when firmware is being loaded +from initramfs, leaving the GPU in an odd state and causing suspend/ +resume to fail. + +Add missing MODULE_FIRMWARE() lines for initramfs generators. + +Signed-off-by: Ben Skeggs +Cc: # 5.6 +--- + drivers/gpu/drm/nouveau/nvkm/engine/sec2/gp108.c | 3 +++ + drivers/gpu/drm/nouveau/nvkm/engine/sec2/tu102.c | 16 ++++++++++++++++ + 2 files changed, 19 insertions(+) + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sec2/gp108.c b/drivers/gpu/drm/nouveau/nvkm/engine/sec2/gp108.c +index 232a9d7c51e5d..e770c9497871b 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/sec2/gp108.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/sec2/gp108.c +@@ -25,6 +25,9 @@ + MODULE_FIRMWARE("nvidia/gp108/sec2/desc.bin"); + MODULE_FIRMWARE("nvidia/gp108/sec2/image.bin"); + MODULE_FIRMWARE("nvidia/gp108/sec2/sig.bin"); ++MODULE_FIRMWARE("nvidia/gv100/sec2/desc.bin"); ++MODULE_FIRMWARE("nvidia/gv100/sec2/image.bin"); ++MODULE_FIRMWARE("nvidia/gv100/sec2/sig.bin"); + + static const struct nvkm_sec2_fwif + gp108_sec2_fwif[] = { +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sec2/tu102.c b/drivers/gpu/drm/nouveau/nvkm/engine/sec2/tu102.c +index b6ebd95c9ba1e..a8295653ceab1 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/sec2/tu102.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/sec2/tu102.c +@@ -56,6 +56,22 @@ tu102_sec2_nofw(struct nvkm_sec2 *sec2, int ver, + return 0; + } + ++MODULE_FIRMWARE("nvidia/tu102/sec2/desc.bin"); ++MODULE_FIRMWARE("nvidia/tu102/sec2/image.bin"); ++MODULE_FIRMWARE("nvidia/tu102/sec2/sig.bin"); ++MODULE_FIRMWARE("nvidia/tu104/sec2/desc.bin"); ++MODULE_FIRMWARE("nvidia/tu104/sec2/image.bin"); ++MODULE_FIRMWARE("nvidia/tu104/sec2/sig.bin"); ++MODULE_FIRMWARE("nvidia/tu106/sec2/desc.bin"); ++MODULE_FIRMWARE("nvidia/tu106/sec2/image.bin"); ++MODULE_FIRMWARE("nvidia/tu106/sec2/sig.bin"); ++MODULE_FIRMWARE("nvidia/tu116/sec2/desc.bin"); ++MODULE_FIRMWARE("nvidia/tu116/sec2/image.bin"); ++MODULE_FIRMWARE("nvidia/tu116/sec2/sig.bin"); ++MODULE_FIRMWARE("nvidia/tu117/sec2/desc.bin"); ++MODULE_FIRMWARE("nvidia/tu117/sec2/image.bin"); ++MODULE_FIRMWARE("nvidia/tu117/sec2/sig.bin"); ++ + static const struct nvkm_sec2_fwif + tu102_sec2_fwif[] = { + { 0, gp102_sec2_load, &tu102_sec2, &gp102_sec2_acr_1 }, From 3cb1fbae591ce78ab90422a0d90667ca05b2b066 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 16 Apr 2020 18:03:55 -0500 Subject: [PATCH 040/191] Notate bz for nouveau issue --- kernel.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index 3b84ddd4b..224d0cabc 100644 --- a/kernel.spec +++ b/kernel.spec @@ -3007,7 +3007,7 @@ fi # %changelog * Thu Apr 16 2020 Justin M. Forbes -- Nouveau Add missing MODULE_FIRMWARE() lines for initramfs generators +- Nouveau Add missing MODULE_FIRMWARE() lines for initramfs generators (rhbz 1825046) * Mon Apr 13 2020 Jeremy Cline - 5.6.4-300 - Linux v5.6.4 From 46596990b38e587bc797bef7a775040c41c430d5 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Fri, 17 Apr 2020 11:10:38 -0500 Subject: [PATCH 041/191] Linux v5.6.5 --- ...-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch | 34 ------------------- kernel.spec | 8 ++--- sources | 2 +- 3 files changed, 5 insertions(+), 39 deletions(-) delete mode 100644 0001-ALSA-hda-realtek-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch diff --git a/0001-ALSA-hda-realtek-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch b/0001-ALSA-hda-realtek-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch deleted file mode 100644 index 9c482f90c..000000000 --- a/0001-ALSA-hda-realtek-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 672798e7b896ad659009882b7fd3242935c8fcdf Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Thu, 2 Apr 2020 18:02:05 +0200 -Subject: [PATCH] ALSA: hda/realtek - Add quirk for Lenovo Carbon X1 8th gen - -The audio setup on the Lenovo Carbon X1 8th gen is the same as that on -the Lenovo Carbon X1 7th gen, as such it needs the same -ALC285_FIXUP_THINKPAD_HEADSET_JACK quirk. - -This fixes volume control of the speaker not working among other things. - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1820196 -Cc: stable@vger.kernel.org -Suggested-by: Jaroslav Kysela -Signed-off-by: Hans de Goede ---- - sound/pci/hda/patch_realtek.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c -index 63e1a56f705b..9c3bbf1df93e 100644 ---- a/sound/pci/hda/patch_realtek.c -+++ b/sound/pci/hda/patch_realtek.c -@@ -7299,6 +7299,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { - SND_PCI_QUIRK(0x17aa, 0x225d, "Thinkpad T480", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), - SND_PCI_QUIRK(0x17aa, 0x2292, "Thinkpad X1 Yoga 7th", ALC285_FIXUP_THINKPAD_HEADSET_JACK), - SND_PCI_QUIRK(0x17aa, 0x2293, "Thinkpad X1 Carbon 7th", ALC285_FIXUP_THINKPAD_HEADSET_JACK), -+ SND_PCI_QUIRK(0x17aa, 0x22be, "Thinkpad X1 Carbon 8th", ALC285_FIXUP_THINKPAD_HEADSET_JACK), - SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), - SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), - SND_PCI_QUIRK(0x17aa, 0x310c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION), --- -2.26.0 - diff --git a/kernel.spec b/kernel.spec index 224d0cabc..a2224af2a 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 4 +%define stable_update 5 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -901,9 +901,6 @@ Patch509: drm-i915-backports.patch # https://patchwork.ozlabs.org/patch/1260523/ Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1820196 -Patch512: 0001-ALSA-hda-realtek-Add-quirk-for-Lenovo-Carbon-X1-8th-.patch - # nouveau runpm and secboot fixes # Accepted nouveau upstream https://github.com/skeggsb/nouveau/commit/f5755e7069d4acbcce1a93692421f358241ead7b Patch513: 0001-drm-nouveau-workaround-runpm-fail-by-disabling-PCI-p.patch @@ -3006,6 +3003,9 @@ fi # # %changelog +* Fri Apr 17 2020 Justin M. Forbes - 5.6.5-300 +- Linux v5.6.5 + * Thu Apr 16 2020 Justin M. Forbes - Nouveau Add missing MODULE_FIRMWARE() lines for initramfs generators (rhbz 1825046) diff --git a/sources b/sources index e2407159c..f77958e48 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.4.xz) = 05607a47ee72af4a7b4d8424a3995d92d0cf358902459993908df0e95643cbfa9eec7ed56779d254b7b75ec1c8dbec5eea5e2e845f40f5511533d53b90b1c02e +SHA512 (patch-5.6.5.xz) = 07b86b6291c6ca99a41c4d507911a9c123839fd3f2ea1770fc3e249913876198f96692dff2453f8c0a89355a238cf9ef9bbc00270c1b87778dd1750ff9184b59 From 534ab91fcf63d7c2a359ef0f8d605bacfc4df79b Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 20 Apr 2020 11:48:23 +0100 Subject: [PATCH 042/191] Rockchips fixes --- ...-Fix-some-GPIO-setup-on-Pinebook-Pro.patch | 50 ++++++ .../fedora/generic/arm/CONFIG_ROCKCHIP_CDN_DP | 2 +- kernel-aarch64-debug-fedora.config | 2 +- kernel-aarch64-fedora.config | 2 +- kernel-armv7hl-debug-fedora.config | 2 +- kernel-armv7hl-fedora.config | 2 +- kernel-armv7hl-lpae-debug-fedora.config | 2 +- kernel-armv7hl-lpae-fedora.config | 2 +- kernel.spec | 4 + ...b302-Convert-to-use-GPIO-descriptors.patch | 155 ++++++++++++++++++ 10 files changed, 216 insertions(+), 7 deletions(-) create mode 100644 arm64-Fix-some-GPIO-setup-on-Pinebook-Pro.patch create mode 100644 usb-fusb302-Convert-to-use-GPIO-descriptors.patch diff --git a/arm64-Fix-some-GPIO-setup-on-Pinebook-Pro.patch b/arm64-Fix-some-GPIO-setup-on-Pinebook-Pro.patch new file mode 100644 index 000000000..7bfd204b5 --- /dev/null +++ b/arm64-Fix-some-GPIO-setup-on-Pinebook-Pro.patch @@ -0,0 +1,50 @@ +From c45fbddb2cd7ce6198e33ebe6dc4c1301d7875d4 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Sun, 19 Apr 2020 20:50:08 +0100 +Subject: [PATCH] Fix some GPIO setup on Pinebook Pro + +This patchset contains two small fixes for the dts of the Pinebook Pro. +The first fixes inverted logic on the headphone detect GPIO. +The second patch fixes unreliable DC charger detection. + +Tobias Schramm (2): + arm64: dts: rockchip: fix inverted headphone detection + arm64: dts: rockchip: enable DC charger detection pullup + +Signed-off-by: Peter Robinson +--- + arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts +index 5ea281b55fe2..294d21bf45f5 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts +@@ -147,7 +147,7 @@ es8316-sound { + "Speaker", "Speaker Amplifier OUTL", + "Speaker", "Speaker Amplifier OUTR"; + +- simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_LOW>; ++ simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; + simple-audio-card,aux-devs = <&speaker_amp>; + simple-audio-card,pin-switches = "Speaker"; + +@@ -788,13 +788,13 @@ lidbtn_gpio: lidbtn-gpio { + + dc-charger { + dc_det_gpio: dc-det-gpio { +- rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; ++ rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + es8316 { + hp_det_gpio: hp-det-gpio { +- rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>; ++ rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + +-- +2.26.1 + diff --git a/configs/fedora/generic/arm/CONFIG_ROCKCHIP_CDN_DP b/configs/fedora/generic/arm/CONFIG_ROCKCHIP_CDN_DP index 86d2137bd..98a696d76 100644 --- a/configs/fedora/generic/arm/CONFIG_ROCKCHIP_CDN_DP +++ b/configs/fedora/generic/arm/CONFIG_ROCKCHIP_CDN_DP @@ -1 +1 @@ -CONFIG_ROCKCHIP_CDN_DP=y +# CONFIG_ROCKCHIP_CDN_DP is not set diff --git a/kernel-aarch64-debug-fedora.config b/kernel-aarch64-debug-fedora.config index 77b4f910a..0a2eab1f2 100644 --- a/kernel-aarch64-debug-fedora.config +++ b/kernel-aarch64-debug-fedora.config @@ -5148,7 +5148,7 @@ CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m # CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y -CONFIG_ROCKCHIP_CDN_DP=y +# CONFIG_ROCKCHIP_CDN_DP is not set CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y CONFIG_ROCKCHIP_EFUSE=m diff --git a/kernel-aarch64-fedora.config b/kernel-aarch64-fedora.config index 81f59f036..7532f0f4b 100644 --- a/kernel-aarch64-fedora.config +++ b/kernel-aarch64-fedora.config @@ -5127,7 +5127,7 @@ CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m # CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y -CONFIG_ROCKCHIP_CDN_DP=y +# CONFIG_ROCKCHIP_CDN_DP is not set CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y CONFIG_ROCKCHIP_EFUSE=m diff --git a/kernel-armv7hl-debug-fedora.config b/kernel-armv7hl-debug-fedora.config index c3994369d..908fe1217 100644 --- a/kernel-armv7hl-debug-fedora.config +++ b/kernel-armv7hl-debug-fedora.config @@ -5247,7 +5247,7 @@ CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m # CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y -CONFIG_ROCKCHIP_CDN_DP=y +# CONFIG_ROCKCHIP_CDN_DP is not set CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y CONFIG_ROCKCHIP_EFUSE=m diff --git a/kernel-armv7hl-fedora.config b/kernel-armv7hl-fedora.config index ccc05f00a..c56bd894e 100644 --- a/kernel-armv7hl-fedora.config +++ b/kernel-armv7hl-fedora.config @@ -5227,7 +5227,7 @@ CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m # CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y -CONFIG_ROCKCHIP_CDN_DP=y +# CONFIG_ROCKCHIP_CDN_DP is not set CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y CONFIG_ROCKCHIP_EFUSE=m diff --git a/kernel-armv7hl-lpae-debug-fedora.config b/kernel-armv7hl-lpae-debug-fedora.config index 1dd79f5fa..bb077007b 100644 --- a/kernel-armv7hl-lpae-debug-fedora.config +++ b/kernel-armv7hl-lpae-debug-fedora.config @@ -5074,7 +5074,7 @@ CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m # CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y -CONFIG_ROCKCHIP_CDN_DP=y +# CONFIG_ROCKCHIP_CDN_DP is not set CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y CONFIG_ROCKCHIP_EFUSE=m diff --git a/kernel-armv7hl-lpae-fedora.config b/kernel-armv7hl-lpae-fedora.config index ad95f951f..d06900a42 100644 --- a/kernel-armv7hl-lpae-fedora.config +++ b/kernel-armv7hl-lpae-fedora.config @@ -5054,7 +5054,7 @@ CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m # CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y -CONFIG_ROCKCHIP_CDN_DP=y +# CONFIG_ROCKCHIP_CDN_DP is not set CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y CONFIG_ROCKCHIP_EFUSE=m diff --git a/kernel.spec b/kernel.spec index a2224af2a..6be5edf28 100644 --- a/kernel.spec +++ b/kernel.spec @@ -868,6 +868,10 @@ Patch344: arm64-pine64-pinetab.patch Patch345: arm64-pine64-pinephone.patch # https://patchwork.kernel.org/cover/11440399/ Patch346: Add-support-for-PinePhone-LCD-panel.patch +# https://www.spinics.net/lists/devicetree/msg346446.html +Patch347: arm64-Fix-some-GPIO-setup-on-Pinebook-Pro.patch +# https://www.spinics.net/lists/devicetree/msg347052.html +Patch348: usb-fusb302-Convert-to-use-GPIO-descriptors.patch # 400 - IBM (ppc/s390x) patches diff --git a/usb-fusb302-Convert-to-use-GPIO-descriptors.patch b/usb-fusb302-Convert-to-use-GPIO-descriptors.patch new file mode 100644 index 000000000..8ba00ea69 --- /dev/null +++ b/usb-fusb302-Convert-to-use-GPIO-descriptors.patch @@ -0,0 +1,155 @@ +From 619bb30cc0fe1754f8dfa0fa4ea94fd937857fbd Mon Sep 17 00:00:00 2001 +From: Linus Walleij +Date: Mon, 20 Apr 2020 09:55:38 +0100 +Subject: [PATCH] usb: fusb302: Convert to use GPIO descriptors + +This converts the FUSB302 driver to use GPIO descriptors. +The conversion to descriptors per se is pretty straight-forward. + +In the process I discovered that: + +1. The driver uses a completely undocumented device tree binding + for the interrupt GPIO line, "fcs,int_n". Ooops. + +2. The undocumented binding, presumably since it has not seen + review, is just "fcs,int_n", lacking the compulsory "-gpios" + suffix and also something that is not a good name because + the "_n" implies the line is inverted which is something we + handle with flags in the device tree. Ooops. + +3. Possibly the driver should not be requesting the line as a + GPIO and request the corresponding interrupt line by open + coding, the GPIO chip is very likely doubleing as an IRQ + controller and can probably provide an interrupt directly + for this line with interrupts-extended = <&gpio0 ...>; + +4. Possibly the IRQ should just be tagged on the I2C client node + in the device tree like apparently ACPI does, as it overrides + this IRQ with client->irq if that exists. + +But now it is too late to do much about that and as I can see +this is used like this in the Pinebook which is a shipping product +so let'a just contain the mess and move on. + +The property currently appears in: +arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts + +Create a quirk in the GPIO OF library to allow this property +specifically to be specified without the "-gpios" suffix, we have +other such bindings already. + +Signed-off-by: Linus Walleij +--- + drivers/gpio/gpiolib-of.c | 21 +++++++++++++++++++++ + drivers/usb/typec/tcpm/fusb302.c | 32 +++++++++----------------------- + 2 files changed, 30 insertions(+), 23 deletions(-) + +diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c +index ccc449df3792..20c2c428168e 100644 +--- a/drivers/gpio/gpiolib-of.c ++++ b/drivers/gpio/gpiolib-of.c +@@ -460,6 +460,24 @@ static struct gpio_desc *of_find_arizona_gpio(struct device *dev, + return of_get_named_gpiod_flags(dev->of_node, con_id, 0, of_flags); + } + ++static struct gpio_desc *of_find_usb_gpio(struct device *dev, ++ const char *con_id, ++ enum of_gpio_flags *of_flags) ++{ ++ /* ++ * Currently this USB quirk is only for the Fairchild FUSB302 host which is using ++ * an undocumented DT GPIO line named "fcs,int_n" without the compulsory "-gpios" ++ * suffix. ++ */ ++ if (!IS_ENABLED(CONFIG_TYPEC_FUSB302)) ++ return ERR_PTR(-ENOENT); ++ ++ if (!con_id || strcmp(con_id, "fcs,int_n")) ++ return ERR_PTR(-ENOENT); ++ ++ return of_get_named_gpiod_flags(dev->of_node, con_id, 0, of_flags); ++} ++ + struct gpio_desc *of_find_gpio(struct device *dev, const char *con_id, + unsigned int idx, unsigned long *flags) + { +@@ -504,6 +522,9 @@ struct gpio_desc *of_find_gpio(struct device *dev, const char *con_id, + if (PTR_ERR(desc) == -ENOENT) + desc = of_find_arizona_gpio(dev, con_id, &of_flags); + ++ if (PTR_ERR(desc) == -ENOENT) ++ desc = of_find_usb_gpio(dev, con_id, &of_flags); ++ + if (IS_ERR(desc)) + return desc; + +diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c +index b498960ff72b..b28facece43c 100644 +--- a/drivers/usb/typec/tcpm/fusb302.c ++++ b/drivers/usb/typec/tcpm/fusb302.c +@@ -9,14 +9,13 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include + #include + #include + #include +-#include + #include + #include + #include +@@ -83,7 +82,7 @@ struct fusb302_chip { + struct work_struct irq_work; + bool irq_suspended; + bool irq_while_suspended; +- int gpio_int_n; ++ struct gpio_desc *gpio_int_n; + int gpio_int_n_irq; + struct extcon_dev *extcon; + +@@ -1618,30 +1617,17 @@ static void fusb302_irq_work(struct work_struct *work) + + static int init_gpio(struct fusb302_chip *chip) + { +- struct device_node *node; ++ struct device *dev = chip->dev; + int ret = 0; + +- node = chip->dev->of_node; +- chip->gpio_int_n = of_get_named_gpio(node, "fcs,int_n", 0); +- if (!gpio_is_valid(chip->gpio_int_n)) { +- ret = chip->gpio_int_n; +- dev_err(chip->dev, "cannot get named GPIO Int_N, ret=%d", ret); +- return ret; +- } +- ret = devm_gpio_request(chip->dev, chip->gpio_int_n, "fcs,int_n"); +- if (ret < 0) { +- dev_err(chip->dev, "cannot request GPIO Int_N, ret=%d", ret); +- return ret; +- } +- ret = gpio_direction_input(chip->gpio_int_n); +- if (ret < 0) { +- dev_err(chip->dev, +- "cannot set GPIO Int_N to input, ret=%d", ret); +- return ret; ++ chip->gpio_int_n = devm_gpiod_get(dev, "fcs,int_n", GPIOD_IN); ++ if (IS_ERR(chip->gpio_int_n)) { ++ dev_err(dev, "failed to request gpio_int_n\n"); ++ return PTR_ERR(chip->gpio_int_n); + } +- ret = gpio_to_irq(chip->gpio_int_n); ++ ret = gpiod_to_irq(chip->gpio_int_n); + if (ret < 0) { +- dev_err(chip->dev, ++ dev_err(dev, + "cannot request IRQ for GPIO Int_N, ret=%d", ret); + return ret; + } +-- +2.26.1 + From 44315f3e62275ea75b26b744e731b7352fe3a8bc Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Tue, 21 Apr 2020 08:19:56 -0500 Subject: [PATCH 043/191] Linux v5.6.6 --- kernel.spec | 6 ++++-- sources | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/kernel.spec b/kernel.spec index 6be5edf28..61407222f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 5 +%define stable_update 6 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -910,7 +910,6 @@ Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch Patch513: 0001-drm-nouveau-workaround-runpm-fail-by-disabling-PCI-p.patch # Accepted nouveau upstream https://github.com/skeggsb/nouveau/commit/41c6a13e8143af71928749ea9895d2ebc2fb4ffd Patch514: 0002-drm-nouveau-gr-gp107-gp108-implement-workaround-for-.patch -Patch515: nouveau-add-missing-MODULE_FIRMWARE.patch # END OF PATCH DEFINITIONS @@ -3007,6 +3006,9 @@ fi # # %changelog +* Tue Apr 21 2020 Justin M. Forbes - 5.6.6-300 +- Linux v5.6.6 + * Fri Apr 17 2020 Justin M. Forbes - 5.6.5-300 - Linux v5.6.5 diff --git a/sources b/sources index f77958e48..c724f6ac8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.5.xz) = 07b86b6291c6ca99a41c4d507911a9c123839fd3f2ea1770fc3e249913876198f96692dff2453f8c0a89355a238cf9ef9bbc00270c1b87778dd1750ff9184b59 +SHA512 (patch-5.6.6.xz) = 63edddca606957ec85114ec76c45fc33a763378ec0ccc2e05af7550ffc3578df832dd5fff8106292aad40faa9d3c0c3d1082274aca14262df23a8040c2067ba0 From 81203d2e5f1c0aaab76584f04d51647c6efc736d Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 23 Apr 2020 08:44:39 -0500 Subject: [PATCH 044/191] Linux v5.6.7 --- ...around-runpm-fail-by-disabling-PCI-p.patch | 141 ------------------ ...p107-gp108-implement-workaround-for-.patch | 68 --------- ...quirks-for-Tegra194-host-controllers.patch | 2 +- arm64-tegra-fix-pcie.patch | 101 ------------- drm-vc4-Fix-HDMI-mode-validation.patch | 65 -------- kernel.spec | 15 +- sources | 2 +- 7 files changed, 6 insertions(+), 388 deletions(-) delete mode 100644 0001-drm-nouveau-workaround-runpm-fail-by-disabling-PCI-p.patch delete mode 100644 0002-drm-nouveau-gr-gp107-gp108-implement-workaround-for-.patch delete mode 100644 arm64-tegra-fix-pcie.patch delete mode 100644 drm-vc4-Fix-HDMI-mode-validation.patch diff --git a/0001-drm-nouveau-workaround-runpm-fail-by-disabling-PCI-p.patch b/0001-drm-nouveau-workaround-runpm-fail-by-disabling-PCI-p.patch deleted file mode 100644 index 1511e4a7a..000000000 --- a/0001-drm-nouveau-workaround-runpm-fail-by-disabling-PCI-p.patch +++ /dev/null @@ -1,141 +0,0 @@ -From 7a7662fe09eb2ccd2eb93ce7261aa47c86111b4d Mon Sep 17 00:00:00 2001 -From: Karol Herbst -Date: Tue, 24 Mar 2020 21:29:23 +0100 -Subject: [PATCH 1/2] drm/nouveau: workaround runpm fail by disabling PCI power - management on certain intel bridges - -Fixes the infamous 'runtime PM' bug many users are facing on Laptops with -Nvidia Pascal GPUs by skipping said PCI power state changes on the GPU. - -Depending on the used kernel there might be messages like those in demsg: - -"nouveau 0000:01:00.0: Refused to change power state, currently in D3" -"nouveau 0000:01:00.0: can't change power state from D3cold to D0 (config -space inaccessible)" -followed by backtraces of kernel crashes or timeouts within nouveau. - -It's still unkown why this issue exists, but this is a reliable workaround -and solves a very annoying issue for user having to choose between a -crashing kernel or higher power consumption of their Laptops. - -Signed-off-by: Karol Herbst -Cc: Bjorn Helgaas -Cc: Lyude Paul -Cc: Rafael J. Wysocki -Cc: Mika Westerberg -Cc: linux-pci@vger.kernel.org -Cc: linux-pm@vger.kernel.org -Cc: dri-devel@lists.freedesktop.org -Cc: nouveau@lists.freedesktop.org -Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=205623 -Signed-off-by: Ben Skeggs ---- - drivers/gpu/drm/nouveau/nouveau_drm.c | 63 +++++++++++++++++++++++++++ - drivers/gpu/drm/nouveau/nouveau_drv.h | 2 + - 2 files changed, 65 insertions(+) - -diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c -index 6b1629c14dd7..ca4087f5a15b 100644 ---- a/drivers/gpu/drm/nouveau/nouveau_drm.c -+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c -@@ -618,6 +618,64 @@ nouveau_drm_device_fini(struct drm_device *dev) - kfree(drm); - } - -+/* -+ * On some Intel PCIe bridge controllers doing a -+ * D0 -> D3hot -> D3cold -> D0 sequence causes Nvidia GPUs to not reappear. -+ * Skipping the intermediate D3hot step seems to make it work again. This is -+ * probably caused by not meeting the expectation the involved AML code has -+ * when the GPU is put into D3hot state before invoking it. -+ * -+ * This leads to various manifestations of this issue: -+ * - AML code execution to power on the GPU hits an infinite loop (as the -+ * code waits on device memory to change). -+ * - kernel crashes, as all PCI reads return -1, which most code isn't able -+ * to handle well enough. -+ * -+ * In all cases dmesg will contain at least one line like this: -+ * 'nouveau 0000:01:00.0: Refused to change power state, currently in D3' -+ * followed by a lot of nouveau timeouts. -+ * -+ * In the \_SB.PCI0.PEG0.PG00._OFF code deeper down writes bit 0x80 to the not -+ * documented PCI config space register 0x248 of the Intel PCIe bridge -+ * controller (0x1901) in order to change the state of the PCIe link between -+ * the PCIe port and the GPU. There are alternative code paths using other -+ * registers, which seem to work fine (executed pre Windows 8): -+ * - 0xbc bit 0x20 (publicly available documentation claims 'reserved') -+ * - 0xb0 bit 0x10 (link disable) -+ * Changing the conditions inside the firmware by poking into the relevant -+ * addresses does resolve the issue, but it seemed to be ACPI private memory -+ * and not any device accessible memory at all, so there is no portable way of -+ * changing the conditions. -+ * On a XPS 9560 that means bits [0,3] on \CPEX need to be cleared. -+ * -+ * The only systems where this behavior can be seen are hybrid graphics laptops -+ * with a secondary Nvidia Maxwell, Pascal or Turing GPU. It's unclear whether -+ * this issue only occurs in combination with listed Intel PCIe bridge -+ * controllers and the mentioned GPUs or other devices as well. -+ * -+ * documentation on the PCIe bridge controller can be found in the -+ * "7th Generation Intel® Processor Families for H Platforms Datasheet Volume 2" -+ * Section "12 PCI Express* Controller (x16) Registers" -+ */ -+ -+static void quirk_broken_nv_runpm(struct pci_dev *pdev) -+{ -+ struct drm_device *dev = pci_get_drvdata(pdev); -+ struct nouveau_drm *drm = nouveau_drm(dev); -+ struct pci_dev *bridge = pci_upstream_bridge(pdev); -+ -+ if (!bridge || bridge->vendor != PCI_VENDOR_ID_INTEL) -+ return; -+ -+ switch (bridge->device) { -+ case 0x1901: -+ drm->old_pm_cap = pdev->pm_cap; -+ pdev->pm_cap = 0; -+ NV_INFO(drm, "Disabling PCI power management to avoid bug\n"); -+ break; -+ } -+} -+ - static int nouveau_drm_probe(struct pci_dev *pdev, - const struct pci_device_id *pent) - { -@@ -699,6 +757,7 @@ static int nouveau_drm_probe(struct pci_dev *pdev, - if (ret) - goto fail_drm_dev_init; - -+ quirk_broken_nv_runpm(pdev); - return 0; - - fail_drm_dev_init: -@@ -734,7 +793,11 @@ static void - nouveau_drm_remove(struct pci_dev *pdev) - { - struct drm_device *dev = pci_get_drvdata(pdev); -+ struct nouveau_drm *drm = nouveau_drm(dev); - -+ /* revert our workaround */ -+ if (drm->old_pm_cap) -+ pdev->pm_cap = drm->old_pm_cap; - nouveau_drm_device_remove(dev); - pci_disable_device(pdev); - } -diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h -index c2c332fbde97..2a6519737800 100644 ---- a/drivers/gpu/drm/nouveau/nouveau_drv.h -+++ b/drivers/gpu/drm/nouveau/nouveau_drv.h -@@ -140,6 +140,8 @@ struct nouveau_drm { - - struct list_head clients; - -+ u8 old_pm_cap; -+ - struct { - struct agp_bridge_data *bridge; - u32 base; --- -2.25.1 - diff --git a/0002-drm-nouveau-gr-gp107-gp108-implement-workaround-for-.patch b/0002-drm-nouveau-gr-gp107-gp108-implement-workaround-for-.patch deleted file mode 100644 index 554800010..000000000 --- a/0002-drm-nouveau-gr-gp107-gp108-implement-workaround-for-.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 37b556606d1217b4367e622d88cef11c65764386 Mon Sep 17 00:00:00 2001 -From: Ben Skeggs -Date: Tue, 31 Mar 2020 16:08:44 +1000 -Subject: [PATCH 2/2] drm/nouveau/gr/gp107,gp108: implement workaround for HW - hanging during init - -Certain boards with GP107/GP108 chipsets hang (often, but randomly) for -unknown reasons during GR initialisation. - -The first tell-tale symptom of this issue is: - -nouveau 0000:01:00.0: bus: MMIO read of 00000000 FAULT at 409800 [ TIMEOUT ] - -appearing in dmesg, likely followed by many other failures being logged. - -Karol found this WAR for the issue a while back, but efforts to isolate -the root cause and proper fix have not yielded success so far. I've -modified the original patch to include a few more details, limit it to -GP107/GP108 by default, and added a config option to override this choice. - -Signed-off-by: Ben Skeggs -Reviewed-by: Karol Herbst ---- - .../gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 26 +++++++++++++++++++ - 1 file changed, 26 insertions(+) - -diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c -index dd8f85b8b3a7..f2f5636efac4 100644 ---- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c -+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c -@@ -1981,8 +1981,34 @@ gf100_gr_init_(struct nvkm_gr *base) - { - struct gf100_gr *gr = gf100_gr(base); - struct nvkm_subdev *subdev = &base->engine.subdev; -+ struct nvkm_device *device = subdev->device; -+ bool reset = device->chipset == 0x137 || device->chipset == 0x138; - u32 ret; - -+ /* On certain GP107/GP108 boards, we trigger a weird issue where -+ * GR will stop responding to PRI accesses after we've asked the -+ * SEC2 RTOS to boot the GR falcons. This happens with far more -+ * frequency when cold-booting a board (ie. returning from D3). -+ * -+ * The root cause for this is not known and has proven difficult -+ * to isolate, with many avenues being dead-ends. -+ * -+ * A workaround was discovered by Karol, whereby putting GR into -+ * reset for an extended period right before initialisation -+ * prevents the problem from occuring. -+ * -+ * XXX: As RM does not require any such workaround, this is more -+ * of a hack than a true fix. -+ */ -+ reset = nvkm_boolopt(device->cfgopt, "NvGrResetWar", reset); -+ if (reset) { -+ nvkm_mask(device, 0x000200, 0x00001000, 0x00000000); -+ nvkm_rd32(device, 0x000200); -+ msleep(50); -+ nvkm_mask(device, 0x000200, 0x00001000, 0x00001000); -+ nvkm_rd32(device, 0x000200); -+ } -+ - nvkm_pmu_pgob(gr->base.engine.subdev.device->pmu, false); - - ret = nvkm_falcon_get(&gr->fecs.falcon, subdev); --- -2.25.1 - diff --git a/PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch b/PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch index 6b1090083..1d859bb57 100644 --- a/PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch +++ b/PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch @@ -177,7 +177,7 @@ index ccac43be12ac..5d790ec5bdef 100644 + 0x81000000 0x00 0x00000000 0x1f 0xffff0000 0x0 0x00010000>; /* downstream I/O (64KB) */ }; - sysram@40000000 { + pcie_ep@14160000 { From patchwork Fri Jan 10 19:15:00 2020 Content-Type: text/plain; charset="utf-8" diff --git a/arm64-tegra-fix-pcie.patch b/arm64-tegra-fix-pcie.patch deleted file mode 100644 index 3e93a913c..000000000 --- a/arm64-tegra-fix-pcie.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 5fc5158c547fc3a2b46cbc6f73b926d8b78cd6e2 Mon Sep 17 00:00:00 2001 -From: "Signed-off-by: Jon Hunter" -Date: Fri, 14 Feb 2020 13:53:53 +0000 -Subject: [PATCH] ARM64: tegra: Fix Tegra194 PCIe compatible string - -If the kernel configuration option CONFIG_PCIE_DW_PLAT_HOST is enabled -then this can cause the kernel to incorrectly probe the generic -designware PCIe platform driver instead of the Tegra194 designware PCIe -driver. This causes a boot failure on Tegra194 because the necessary -configuration to access the hardware is not performed. - -The order in which the compatible strings are populated in Device-Tree -is not relevant in this case, because the kernel will attempt to probe -the device as soon as a driver is loaded and if the generic designware -PCIe driver is loaded first, then this driver will be probed first. -Therefore, to fix this problem, remove the "snps,dw-pcie" string from -the compatible string as we never want this driver to be probe on -Tegra194. - -Fixes: 2602c32f15e7 ("arm64: tegra: Add P2U and PCIe controller nodes to Tegra194 DT") - -Signed-off-by: Jon Hunter ---- - .../devicetree/bindings/pci/nvidia,tegra194-pcie.txt | 2 +- - arch/arm64/boot/dts/nvidia/tegra194.dtsi | 12 ++++++------ - 2 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt b/Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt -index b739f92da58e..1f90eb39870b 100644 ---- a/Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt -+++ b/Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt -@@ -118,7 +118,7 @@ Tegra194: - -------- - - pcie@14180000 { -- compatible = "nvidia,tegra194-pcie", "snps,dw-pcie"; -+ compatible = "nvidia,tegra194-pcie"; - power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>; - reg = <0x00 0x14180000 0x0 0x00020000 /* appl registers (128K) */ - 0x00 0x38000000 0x0 0x00040000 /* configuration space (256K) */ -diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi -index ccac43be12ac..4c58cb10fb9c 100644 ---- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi -+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi -@@ -1208,7 +1208,7 @@ sor3: sor@15bc0000 { - }; - - pcie@14100000 { -- compatible = "nvidia,tegra194-pcie", "snps,dw-pcie"; -+ compatible = "nvidia,tegra194-pcie"; - power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>; - reg = <0x00 0x14100000 0x0 0x00020000 /* appl registers (128K) */ - 0x00 0x30000000 0x0 0x00040000 /* configuration space (256K) */ -@@ -1253,7 +1253,7 @@ pcie@14100000 { - }; - - pcie@14120000 { -- compatible = "nvidia,tegra194-pcie", "snps,dw-pcie"; -+ compatible = "nvidia,tegra194-pcie"; - power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>; - reg = <0x00 0x14120000 0x0 0x00020000 /* appl registers (128K) */ - 0x00 0x32000000 0x0 0x00040000 /* configuration space (256K) */ -@@ -1298,7 +1298,7 @@ pcie@14120000 { - }; - - pcie@14140000 { -- compatible = "nvidia,tegra194-pcie", "snps,dw-pcie"; -+ compatible = "nvidia,tegra194-pcie"; - power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX1A>; - reg = <0x00 0x14140000 0x0 0x00020000 /* appl registers (128K) */ - 0x00 0x34000000 0x0 0x00040000 /* configuration space (256K) */ -@@ -1343,7 +1343,7 @@ pcie@14140000 { - }; - - pcie@14160000 { -- compatible = "nvidia,tegra194-pcie", "snps,dw-pcie"; -+ compatible = "nvidia,tegra194-pcie"; - power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX4A>; - reg = <0x00 0x14160000 0x0 0x00020000 /* appl registers (128K) */ - 0x00 0x36000000 0x0 0x00040000 /* configuration space (256K) */ -@@ -1388,7 +1388,7 @@ pcie@14160000 { - }; - - pcie@14180000 { -- compatible = "nvidia,tegra194-pcie", "snps,dw-pcie"; -+ compatible = "nvidia,tegra194-pcie"; - power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>; - reg = <0x00 0x14180000 0x0 0x00020000 /* appl registers (128K) */ - 0x00 0x38000000 0x0 0x00040000 /* configuration space (256K) */ -@@ -1433,7 +1433,7 @@ pcie@14180000 { - }; - - pcie@141a0000 { -- compatible = "nvidia,tegra194-pcie", "snps,dw-pcie"; -+ compatible = "nvidia,tegra194-pcie"; - power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>; - reg = <0x00 0x141a0000 0x0 0x00020000 /* appl registers (128K) */ - 0x00 0x3a000000 0x0 0x00040000 /* configuration space (256K) */ --- -2.24.1 - diff --git a/drm-vc4-Fix-HDMI-mode-validation.patch b/drm-vc4-Fix-HDMI-mode-validation.patch deleted file mode 100644 index 224c8fa27..000000000 --- a/drm-vc4-Fix-HDMI-mode-validation.patch +++ /dev/null @@ -1,65 +0,0 @@ -From patchwork Thu Mar 26 12:20:01 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: drm/vc4: Fix HDMI mode validation -From: Nicolas Saenz Julienne -X-Patchwork-Id: 358980 -Message-Id: <20200326122001.22215-1-nsaenzjulienne@suse.de> -To: Eric Anholt , - Daniel Vetter -Cc: Stefan Wahren , f.fainelli@gmail.com, - Dave Stevenson , - David Airlie , linux-kernel@vger.kernel.org, - dri-devel@lists.freedesktop.org, maxime@cerno.tech, - Nicolas Saenz Julienne , - linux-rpi-kernel@lists.infradead.org -Date: Thu, 26 Mar 2020 13:20:01 +0100 - -Current mode validation impedes setting up some video modes which should -be supported otherwise. Namely 1920x1200@60Hz. - -Fix this by lowering the minimum HDMI state machine clock to pixel clock -ratio allowed. - -Fixes: 32e823c63e90 ("drm/vc4: Reject HDMI modes with too high of clocks") -Reported-by: Stefan Wahren -Suggested-by: Dave Stevenson -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Maxime Ripard ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 20 ++++++++++++++++---- - 1 file changed, 16 insertions(+), 4 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index cea18dc15f77..340719238753 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -681,11 +681,23 @@ static enum drm_mode_status - vc4_hdmi_encoder_mode_valid(struct drm_encoder *crtc, - const struct drm_display_mode *mode) - { -- /* HSM clock must be 108% of the pixel clock. Additionally, -- * the AXI clock needs to be at least 25% of pixel clock, but -- * HSM ends up being the limiting factor. -+ /* -+ * As stated in RPi's vc4 firmware "HDMI state machine (HSM) clock must -+ * be faster than pixel clock, infinitesimally faster, tested in -+ * simulation. Otherwise, exact value is unimportant for HDMI -+ * operation." This conflicts with bcm2835's vc4 documentation, which -+ * states HSM's clock has to be at least 108% of the pixel clock. -+ * -+ * Real life tests reveal that vc4's firmware statement holds up, and -+ * users are able to use pixel clocks closer to HSM's, namely for -+ * 1920x1200@60Hz. So it was decided to have leave a 1% margin between -+ * both clocks. Which, for RPi0-3 implies a maximum pixel clock of -+ * 162MHz. -+ * -+ * Additionally, the AXI clock needs to be at least 25% of -+ * pixel clock, but HSM ends up being the limiting factor. - */ -- if (mode->clock > HSM_CLOCK_FREQ / (1000 * 108 / 100)) -+ if (mode->clock > HSM_CLOCK_FREQ / (1000 * 101 / 100)) - return MODE_CLOCK_HIGH; - - return MODE_OK; diff --git a/kernel.spec b/kernel.spec index 61407222f..981f7a1f3 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 6 +%define stable_update 7 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -830,8 +830,6 @@ Patch312: bcm2835-irqchip-Quiesce-IRQs-left-enabled-by-bootloader.patch Patch313: ARM-dts-bcm2711-Move-emmc2-into-its-own-bus.patch # Upstream commit f87391eec2c5 thread: https://www.spinics.net/lists/linux-mmc/msg58036.html Patch314: arm-bcm2711-mmc-sdhci-iproc-Add-custom-set_power-callback.patch -# https://patchwork.freedesktop.org/patch/358980/ -Patch315: drm-vc4-Fix-HDMI-mode-validation.patch # Upstream commit 57b76faf1d78 Patch316: arm-bcm2835-serial-8250_early-support-aux-uart.patch @@ -840,8 +838,6 @@ Patch316: arm-bcm2835-serial-8250_early-support-aux-uart.patch Patch320: ARM64-Tegra-fixes.patch # http://patchwork.ozlabs.org/patch/1230891/ Patch321: arm64-serial-8250_tegra-Create-Tegra-specific-8250-driver.patch -# https://lkml.org/lkml/2020/2/14/401 -Patch323: arm64-tegra-fix-pcie.patch # http://patchwork.ozlabs.org/patch/1243162/ Patch324: regulator-pwm-Don-t-warn-on-probe-deferral.patch # http://patchwork.ozlabs.org/patch/1243112/ @@ -905,12 +901,6 @@ Patch509: drm-i915-backports.patch # https://patchwork.ozlabs.org/patch/1260523/ Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch -# nouveau runpm and secboot fixes -# Accepted nouveau upstream https://github.com/skeggsb/nouveau/commit/f5755e7069d4acbcce1a93692421f358241ead7b -Patch513: 0001-drm-nouveau-workaround-runpm-fail-by-disabling-PCI-p.patch -# Accepted nouveau upstream https://github.com/skeggsb/nouveau/commit/41c6a13e8143af71928749ea9895d2ebc2fb4ffd -Patch514: 0002-drm-nouveau-gr-gp107-gp108-implement-workaround-for-.patch - # END OF PATCH DEFINITIONS %endif @@ -3006,6 +2996,9 @@ fi # # %changelog +* Thu Apr 23 2020 Justin M. Forbes - 5.6.7-300 +- Linux v5.6.7 + * Tue Apr 21 2020 Justin M. Forbes - 5.6.6-300 - Linux v5.6.6 diff --git a/sources b/sources index c724f6ac8..63e07ca91 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.6.xz) = 63edddca606957ec85114ec76c45fc33a763378ec0ccc2e05af7550ffc3578df832dd5fff8106292aad40faa9d3c0c3d1082274aca14262df23a8040c2067ba0 +SHA512 (patch-5.6.7.xz) = 1d8835bc1b90841a08eaed15202c65e27a584d036c6ea59869a87707bf71521bf3796321e0e730df2fe28b45ad0e19301d53add4d7e2f7fd7371b5061552c86f From 3abb828534efb18b6c5002f944a93e3bd68d868e Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Tue, 28 Apr 2020 10:25:47 -0500 Subject: [PATCH 045/191] Fix drm_dp_send_dpcd_write() return code --- ...x-drm_dp_send_dpcd_write-return-code.patch | 47 +++++++++++++++++++ kernel.spec | 5 ++ 2 files changed, 52 insertions(+) create mode 100644 drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch diff --git a/drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch b/drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch new file mode 100644 index 000000000..d5b7f003f --- /dev/null +++ b/drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch @@ -0,0 +1,47 @@ +From: Lyude Paul +Date: Fri, 24 Apr 2020 15:07:22 -0400 +Subject: drm/dp_mst: Fix drm_dp_send_dpcd_write() return code + +drm_dp_mst_wait_tx_reply() returns > 1 if time elapsed in +wait_event_timeout() before check_txmsg_state(mgr, txmsg) evaluated to +true. However, we make the mistake of returning this time from +drm_dp_send_dpcd_write() on success instead of returning the number of +bytes written - causing spontaneous failures during link probing: + +[drm:drm_dp_send_link_address [drm_kms_helper]] *ERROR* GUID check on +10:01 failed: 3975 + +Yikes! So, fix this by returning the number of bytes written on success +instead. + +Signed-off-by: Lyude Paul +Fixes: cb897542c6d2 ("drm/dp_mst: Fix W=1 warnings") +Cc: Benjamin Gaignard +Cc: Sean Paul +Acked-by: Alex Deucher +Reviewed-by: Sean Paul +Link: https://patchwork.freedesktop.org/patch/msgid/20200424190722.775284-1-lyude@redhat.com +--- + drivers/gpu/drm/drm_dp_mst_topology.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + + +diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c +index 03a1496f6120..21dc78cb4ba6 100644 +--- a/drivers/gpu/drm/drm_dp_mst_topology.c ++++ b/drivers/gpu/drm/drm_dp_mst_topology.c +@@ -3436,8 +3436,12 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr, + drm_dp_queue_down_tx(mgr, txmsg); + + ret = drm_dp_mst_wait_tx_reply(mstb, txmsg); +- if (ret > 0 && txmsg->reply.reply_type == DP_SIDEBAND_REPLY_NAK) +- ret = -EIO; ++ if (ret > 0) { ++ if (txmsg->reply.reply_type == DP_SIDEBAND_REPLY_NAK) ++ ret = -EIO; ++ else ++ ret = size; ++ } + + kfree(txmsg); + fail_put: diff --git a/kernel.spec b/kernel.spec index 981f7a1f3..55ae33832 100644 --- a/kernel.spec +++ b/kernel.spec @@ -901,6 +901,8 @@ Patch509: drm-i915-backports.patch # https://patchwork.ozlabs.org/patch/1260523/ Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch +Patch512: drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch + # END OF PATCH DEFINITIONS %endif @@ -2996,6 +2998,9 @@ fi # # %changelog +* Tue Apr 28 2020 Justin M. Forbes +- MST Fix from Lyude Paul + * Thu Apr 23 2020 Justin M. Forbes - 5.6.7-300 - Linux v5.6.7 From 0cf61a1cdf691755b88bc3a13eb7cab638b3f1ef Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Tue, 28 Apr 2020 14:48:43 -0500 Subject: [PATCH 046/191] drm/i915/gem: Hold obj->vma.lock over for_each_ggtt_vma() (airlied request) --- ...d-obj-vma.lock-over-for_each_ggtt_vm.patch | 187 ++++++++++++++++++ kernel.spec | 2 + 2 files changed, 189 insertions(+) create mode 100644 0001-drm-i915-gem-Hold-obj-vma.lock-over-for_each_ggtt_vm.patch diff --git a/0001-drm-i915-gem-Hold-obj-vma.lock-over-for_each_ggtt_vm.patch b/0001-drm-i915-gem-Hold-obj-vma.lock-over-for_each_ggtt_vm.patch new file mode 100644 index 000000000..1e7cf51ee --- /dev/null +++ b/0001-drm-i915-gem-Hold-obj-vma.lock-over-for_each_ggtt_vm.patch @@ -0,0 +1,187 @@ +From MAILER-DAEMON Tue Apr 28 19:41:24 2020 +From: Chris Wilson +To: intel-gfx@lists.freedesktop.org +Date: Wed, 22 Apr 2020 08:28:05 +0100 +Message-Id: <20200422072805.17340-1-chris@chris-wilson.co.uk> +In-Reply-To: <20200422072037.17163-1-chris@chris-wilson.co.uk> +References: <20200422072037.17163-1-chris@chris-wilson.co.uk> +Subject: [Intel-gfx] [PATCH] drm/i915/gem: Hold obj->vma.lock over for_each_ggtt_vma() +List-Id: Intel graphics driver community testing & development +Cc: Dave Airlie , stable@vger.kernel.org, Chris Wilson +Errors-To: intel-gfx-bounces@lists.freedesktop.org +Sender: "Intel-gfx" +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 7bit + +While the ggtt vma are protected by their object lifetime, the list +continues until it hits a non-ggtt vma, and that vma is not protected +and may be freed as we inspect it. Hence, we require the obj->vma.lock +to protect the list as we iterate. + +An example of forgetting to hold the obj->vma.lock is + +[1642834.464973] general protection fault, probably for non-canonical address 0xdead000000000122: 0000 [#1] SMP PTI +[1642834.464977] CPU: 3 PID: 1954 Comm: Xorg Not tainted 5.6.0-300.fc32.x86_64 #1 +[1642834.464979] Hardware name: LENOVO 20ARS25701/20ARS25701, BIOS GJET94WW (2.44 ) 09/14/2017 +[1642834.465021] RIP: 0010:i915_gem_object_set_tiling+0x2c0/0x3e0 [i915] +[1642834.465024] Code: 8b 84 24 18 01 00 00 f6 c4 80 74 59 49 8b 94 24 a0 00 00 00 49 8b 84 24 e0 00 00 00 49 8b 74 24 10 48 8b 92 30 01 00 00 89 c7 <80> ba 0a 06 00 00 03 0f 87 86 00 00 00 ba 00 00 08 00 b9 00 00 10 +[1642834.465025] RSP: 0018:ffffa98780c77d60 EFLAGS: 00010282 +[1642834.465028] RAX: ffff8d232bfb2578 RBX: 0000000000000002 RCX: ffff8d25873a0000 +[1642834.465029] RDX: dead000000000122 RSI: fffff0af8ac6e408 RDI: 000000002bfb2578 +[1642834.465030] RBP: ffff8d25873a0000 R08: ffff8d252bfb5638 R09: 0000000000000000 +[1642834.465031] R10: 0000000000000000 R11: ffff8d252bfb5640 R12: ffffa987801cb8f8 +[1642834.465032] R13: 0000000000001000 R14: ffff8d233e972e50 R15: ffff8d233e972d00 +[1642834.465034] FS: 00007f6a3d327f00(0000) GS:ffff8d25926c0000(0000) knlGS:0000000000000000 +[1642834.465036] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 +[1642834.465037] CR2: 00007f6a2064d000 CR3: 00000002fb57c001 CR4: 00000000001606e0 +[1642834.465038] Call Trace: +[1642834.465083] i915_gem_set_tiling_ioctl+0x122/0x230 [i915] +[1642834.465121] ? i915_gem_object_set_tiling+0x3e0/0x3e0 [i915] +[1642834.465151] drm_ioctl_kernel+0x86/0xd0 [drm] +[1642834.465156] ? avc_has_perm+0x3b/0x160 +[1642834.465178] drm_ioctl+0x206/0x390 [drm] +[1642834.465216] ? i915_gem_object_set_tiling+0x3e0/0x3e0 [i915] +[1642834.465221] ? selinux_file_ioctl+0x122/0x1c0 +[1642834.465226] ? __do_munmap+0x24b/0x4d0 +[1642834.465231] ksys_ioctl+0x82/0xc0 +[1642834.465235] __x64_sys_ioctl+0x16/0x20 +[1642834.465238] do_syscall_64+0x5b/0xf0 +[1642834.465243] entry_SYSCALL_64_after_hwframe+0x44/0xa9 +[1642834.465245] RIP: 0033:0x7f6a3d7b047b +[1642834.465247] Code: 0f 1e fa 48 8b 05 1d aa 0c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d ed a9 0c 00 f7 d8 64 89 01 48 +[1642834.465249] RSP: 002b:00007ffe71adba28 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 +[1642834.465251] RAX: ffffffffffffffda RBX: 000055f99048fa40 RCX: 00007f6a3d7b047b +[1642834.465253] RDX: 00007ffe71adba30 RSI: 00000000c0106461 RDI: 000000000000000e +[1642834.465254] RBP: 0000000000000002 R08: 000055f98f3f1798 R09: 0000000000000002 +[1642834.465255] R10: 0000000000001000 R11: 0000000000000246 R12: 0000000000000080 +[1642834.465257] R13: 000055f98f3f1690 R14: 00000000c0106461 R15: 00007ffe71adba30 + +Now to take the spinlock during the list iteration, we need to break it +down into two phases. In the first phase under the lock, we cannot sleep +and so must defer the actual work to a second list, protected by the +ggtt->mutex. + +We also need to hold the spinlock during creation of a new spinlock to +serialise updates of the tiling on the object. + +Fixes: 2850748ef876 ("drm/i915: Pull i915_vma_pin under the vm->mutex") +Reported-by: Dave Airlie +Signed-off-by: Chris Wilson +Cc: # v5.5+ +Cc: Dave Airlie +Cc: Tvrtko Ursulin +--- + drivers/gpu/drm/i915/gem/i915_gem_tiling.c | 20 ++++++++++++++++++-- + drivers/gpu/drm/i915/i915_vma.c | 10 ++++++---- + 2 files changed, 24 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/i915/gem/i915_gem_tiling.c b/drivers/gpu/drm/i915/gem/i915_gem_tiling.c +index 37f77aee1212..0158e49bf9bb 100644 +--- a/drivers/gpu/drm/i915/gem/i915_gem_tiling.c ++++ b/drivers/gpu/drm/i915/gem/i915_gem_tiling.c +@@ -182,21 +182,35 @@ i915_gem_object_fence_prepare(struct drm_i915_gem_object *obj, + int tiling_mode, unsigned int stride) + { + struct i915_ggtt *ggtt = &to_i915(obj->base.dev)->ggtt; +- struct i915_vma *vma; ++ struct i915_vma *vma, *vn; ++ LIST_HEAD(unbind); + int ret = 0; + + if (tiling_mode == I915_TILING_NONE) + return 0; + + mutex_lock(&ggtt->vm.mutex); ++ ++ spin_lock(&obj->vma.lock); + for_each_ggtt_vma(vma, obj) { ++ GEM_BUG_ON(vma->vm != &ggtt->vm); ++ + if (i915_vma_fence_prepare(vma, tiling_mode, stride)) + continue; + ++ list_move(&vma->vm_link, &unbind); ++ } ++ spin_unlock(&obj->vma.lock); ++ ++ list_for_each_entry_safe(vma, vn, &unbind, vm_link) { + ret = __i915_vma_unbind(vma); +- if (ret) ++ if (ret) { ++ /* Restore the remaining vma on an error */ ++ list_splice(&unbind, &ggtt->vm.bound_list); + break; ++ } + } ++ + mutex_unlock(&ggtt->vm.mutex); + + return ret; +@@ -268,6 +282,7 @@ i915_gem_object_set_tiling(struct drm_i915_gem_object *obj, + } + mutex_unlock(&obj->mm.lock); + ++ spin_lock(&obj->vma.lock); + for_each_ggtt_vma(vma, obj) { + vma->fence_size = + i915_gem_fence_size(i915, vma->size, tiling, stride); +@@ -278,6 +293,7 @@ i915_gem_object_set_tiling(struct drm_i915_gem_object *obj, + if (vma->fence) + vma->fence->dirty = true; + } ++ spin_unlock(&obj->vma.lock); + + obj->tiling_and_stride = tiling | stride; + i915_gem_object_unlock(obj); +diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c +index f0383a68c981..20fe5a134d92 100644 +--- a/drivers/gpu/drm/i915/i915_vma.c ++++ b/drivers/gpu/drm/i915/i915_vma.c +@@ -158,16 +158,18 @@ vma_create(struct drm_i915_gem_object *obj, + + GEM_BUG_ON(!IS_ALIGNED(vma->size, I915_GTT_PAGE_SIZE)); + ++ spin_lock(&obj->vma.lock); ++ + if (i915_is_ggtt(vm)) { + if (unlikely(overflows_type(vma->size, u32))) +- goto err_vma; ++ goto err_unlock; + + vma->fence_size = i915_gem_fence_size(vm->i915, vma->size, + i915_gem_object_get_tiling(obj), + i915_gem_object_get_stride(obj)); + if (unlikely(vma->fence_size < vma->size || /* overflow */ + vma->fence_size > vm->total)) +- goto err_vma; ++ goto err_unlock; + + GEM_BUG_ON(!IS_ALIGNED(vma->fence_size, I915_GTT_MIN_ALIGNMENT)); + +@@ -179,8 +181,6 @@ vma_create(struct drm_i915_gem_object *obj, + __set_bit(I915_VMA_GGTT_BIT, __i915_vma_flags(vma)); + } + +- spin_lock(&obj->vma.lock); +- + rb = NULL; + p = &obj->vma.tree.rb_node; + while (*p) { +@@ -225,6 +225,8 @@ vma_create(struct drm_i915_gem_object *obj, + + return vma; + ++err_unlock: ++ spin_unlock(&obj->vma.lock); + err_vma: + i915_vma_free(vma); + return ERR_PTR(-E2BIG); +-- +2.20.1 + +_______________________________________________ +Intel-gfx mailing list +Intel-gfx@lists.freedesktop.org +https://lists.freedesktop.org/mailman/listinfo/intel-gfx + diff --git a/kernel.spec b/kernel.spec index 55ae33832..4f50ea055 100644 --- a/kernel.spec +++ b/kernel.spec @@ -902,6 +902,7 @@ Patch509: drm-i915-backports.patch Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch Patch512: drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch +Patch513: 0001-drm-i915-gem-Hold-obj-vma.lock-over-for_each_ggtt_vm.patch # END OF PATCH DEFINITIONS @@ -3000,6 +3001,7 @@ fi %changelog * Tue Apr 28 2020 Justin M. Forbes - MST Fix from Lyude Paul +- drm/i915/gem: Hold obj->vma.lock over for_each_ggtt_vma() (airlied request) * Thu Apr 23 2020 Justin M. Forbes - 5.6.7-300 - Linux v5.6.7 From 60c4103d5f681998829256364932408b445f5ca3 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 29 Apr 2020 10:35:36 -0500 Subject: [PATCH 047/191] Linux v5.6.8 --- kernel.spec | 7 ++++++- sources | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 4f50ea055..8f3a7ce01 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 7 +%define stable_update 8 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -1257,6 +1257,7 @@ Provides: kernel-modules = %{version}-%{release}%{?1:+%{1}}\ Provides: installonlypkg(kernel-module)\ Provides: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\ Requires: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\ +Recommends: alsa-sof-firmware\ AutoReq: no\ AutoProv: yes\ %description %{?1:%{1}-}modules\ @@ -2999,6 +3000,10 @@ fi # # %changelog +* Wed Apr 29 2020 Justin M. Forbes - 5.6.8-300 +- Linux v5.6.8 +- Fixes CVE-2020-11884 (rhbz 1828149 1829181) + * Tue Apr 28 2020 Justin M. Forbes - MST Fix from Lyude Paul - drm/i915/gem: Hold obj->vma.lock over for_each_ggtt_vma() (airlied request) diff --git a/sources b/sources index 63e07ca91..9ce2df236 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.7.xz) = 1d8835bc1b90841a08eaed15202c65e27a584d036c6ea59869a87707bf71521bf3796321e0e730df2fe28b45ad0e19301d53add4d7e2f7fd7371b5061552c86f +SHA512 (patch-5.6.8.xz) = 1cbcafdf3ea0213c0ec29fb2b87dccb5773cec644d170e1e3c8b1a79f23828a697059be85d83842e263c5115c1d40bc14fbe151315d9d1f92d3eb2c17e996881 From 5b22adbfbd9639ffa26fd25b86f3267d064a99a3 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 4 May 2020 09:07:27 -0500 Subject: [PATCH 048/191] Linux v5.6.10 --- ...eduler-fix-drm_sched_get_cleanup_job.patch | 37 +++++++++++++++++++ kernel.spec | 6 ++- sources | 2 +- 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 drm-scheduler-fix-drm_sched_get_cleanup_job.patch diff --git a/drm-scheduler-fix-drm_sched_get_cleanup_job.patch b/drm-scheduler-fix-drm_sched_get_cleanup_job.patch new file mode 100644 index 000000000..db232c0cd --- /dev/null +++ b/drm-scheduler-fix-drm_sched_get_cleanup_job.patch @@ -0,0 +1,37 @@ +From 8623b5255ae7ccaf276aac3920787bf575fa6b37 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= +Date: Sat, 11 Apr 2020 11:54:01 +0200 +Subject: drm/scheduler: fix drm_sched_get_cleanup_job +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Christian König + +commit 8623b5255ae7ccaf276aac3920787bf575fa6b37 upstream. + +We are racing to initialize sched->thread here, just always check the +current thread. + +Signed-off-by: Christian König +Reviewed-by: Andrey Grodzovsky +Reviewed-by: Kent Russell +Link: https://patchwork.freedesktop.org/patch/361303/ +Cc: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/scheduler/sched_main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/gpu/drm/scheduler/sched_main.c ++++ b/drivers/gpu/drm/scheduler/sched_main.c +@@ -687,7 +687,7 @@ drm_sched_get_cleanup_job(struct drm_gpu + */ + if ((sched->timeout != MAX_SCHEDULE_TIMEOUT && + !cancel_delayed_work(&sched->work_tdr)) || +- __kthread_should_park(sched->thread)) ++ kthread_should_park()) + return NULL; + + spin_lock_irqsave(&sched->job_list_lock, flags); diff --git a/kernel.spec b/kernel.spec index 8f3a7ce01..0909526b9 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 8 +%define stable_update 10 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -903,6 +903,7 @@ Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch Patch512: drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch Patch513: 0001-drm-i915-gem-Hold-obj-vma.lock-over-for_each_ggtt_vm.patch +Patch514: drm-scheduler-fix-drm_sched_get_cleanup_job.patch # END OF PATCH DEFINITIONS @@ -3000,6 +3001,9 @@ fi # # %changelog +* Mon May 04 2020 Justin M. Forbes - 5.6.10-300 +- Linux v5.6.10 + * Wed Apr 29 2020 Justin M. Forbes - 5.6.8-300 - Linux v5.6.8 - Fixes CVE-2020-11884 (rhbz 1828149 1829181) diff --git a/sources b/sources index 9ce2df236..f4324f7a3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.8.xz) = 1cbcafdf3ea0213c0ec29fb2b87dccb5773cec644d170e1e3c8b1a79f23828a697059be85d83842e263c5115c1d40bc14fbe151315d9d1f92d3eb2c17e996881 +SHA512 (patch-5.6.10.xz) = 57860a7576149a34c1ff9277a8daee8d4ee8574270561302e4fb3916a7f4c23cf298a3a7f13ba5370ec665548b679f5340d3ce6788152b4d8d79f41009efa865 From 377635a18a8d682ac4ec64e6f40399e2ad98b41b Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 6 May 2020 13:33:50 -0500 Subject: [PATCH 049/191] Linux v5.6.11 --- ...d-obj-vma.lock-over-for_each_ggtt_vm.patch | 187 ------------------ ...eduler-fix-drm_sched_get_cleanup_job.patch | 37 ---- kernel.spec | 7 +- sources | 2 +- 4 files changed, 5 insertions(+), 228 deletions(-) delete mode 100644 0001-drm-i915-gem-Hold-obj-vma.lock-over-for_each_ggtt_vm.patch delete mode 100644 drm-scheduler-fix-drm_sched_get_cleanup_job.patch diff --git a/0001-drm-i915-gem-Hold-obj-vma.lock-over-for_each_ggtt_vm.patch b/0001-drm-i915-gem-Hold-obj-vma.lock-over-for_each_ggtt_vm.patch deleted file mode 100644 index 1e7cf51ee..000000000 --- a/0001-drm-i915-gem-Hold-obj-vma.lock-over-for_each_ggtt_vm.patch +++ /dev/null @@ -1,187 +0,0 @@ -From MAILER-DAEMON Tue Apr 28 19:41:24 2020 -From: Chris Wilson -To: intel-gfx@lists.freedesktop.org -Date: Wed, 22 Apr 2020 08:28:05 +0100 -Message-Id: <20200422072805.17340-1-chris@chris-wilson.co.uk> -In-Reply-To: <20200422072037.17163-1-chris@chris-wilson.co.uk> -References: <20200422072037.17163-1-chris@chris-wilson.co.uk> -Subject: [Intel-gfx] [PATCH] drm/i915/gem: Hold obj->vma.lock over for_each_ggtt_vma() -List-Id: Intel graphics driver community testing & development -Cc: Dave Airlie , stable@vger.kernel.org, Chris Wilson -Errors-To: intel-gfx-bounces@lists.freedesktop.org -Sender: "Intel-gfx" -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 7bit - -While the ggtt vma are protected by their object lifetime, the list -continues until it hits a non-ggtt vma, and that vma is not protected -and may be freed as we inspect it. Hence, we require the obj->vma.lock -to protect the list as we iterate. - -An example of forgetting to hold the obj->vma.lock is - -[1642834.464973] general protection fault, probably for non-canonical address 0xdead000000000122: 0000 [#1] SMP PTI -[1642834.464977] CPU: 3 PID: 1954 Comm: Xorg Not tainted 5.6.0-300.fc32.x86_64 #1 -[1642834.464979] Hardware name: LENOVO 20ARS25701/20ARS25701, BIOS GJET94WW (2.44 ) 09/14/2017 -[1642834.465021] RIP: 0010:i915_gem_object_set_tiling+0x2c0/0x3e0 [i915] -[1642834.465024] Code: 8b 84 24 18 01 00 00 f6 c4 80 74 59 49 8b 94 24 a0 00 00 00 49 8b 84 24 e0 00 00 00 49 8b 74 24 10 48 8b 92 30 01 00 00 89 c7 <80> ba 0a 06 00 00 03 0f 87 86 00 00 00 ba 00 00 08 00 b9 00 00 10 -[1642834.465025] RSP: 0018:ffffa98780c77d60 EFLAGS: 00010282 -[1642834.465028] RAX: ffff8d232bfb2578 RBX: 0000000000000002 RCX: ffff8d25873a0000 -[1642834.465029] RDX: dead000000000122 RSI: fffff0af8ac6e408 RDI: 000000002bfb2578 -[1642834.465030] RBP: ffff8d25873a0000 R08: ffff8d252bfb5638 R09: 0000000000000000 -[1642834.465031] R10: 0000000000000000 R11: ffff8d252bfb5640 R12: ffffa987801cb8f8 -[1642834.465032] R13: 0000000000001000 R14: ffff8d233e972e50 R15: ffff8d233e972d00 -[1642834.465034] FS: 00007f6a3d327f00(0000) GS:ffff8d25926c0000(0000) knlGS:0000000000000000 -[1642834.465036] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 -[1642834.465037] CR2: 00007f6a2064d000 CR3: 00000002fb57c001 CR4: 00000000001606e0 -[1642834.465038] Call Trace: -[1642834.465083] i915_gem_set_tiling_ioctl+0x122/0x230 [i915] -[1642834.465121] ? i915_gem_object_set_tiling+0x3e0/0x3e0 [i915] -[1642834.465151] drm_ioctl_kernel+0x86/0xd0 [drm] -[1642834.465156] ? avc_has_perm+0x3b/0x160 -[1642834.465178] drm_ioctl+0x206/0x390 [drm] -[1642834.465216] ? i915_gem_object_set_tiling+0x3e0/0x3e0 [i915] -[1642834.465221] ? selinux_file_ioctl+0x122/0x1c0 -[1642834.465226] ? __do_munmap+0x24b/0x4d0 -[1642834.465231] ksys_ioctl+0x82/0xc0 -[1642834.465235] __x64_sys_ioctl+0x16/0x20 -[1642834.465238] do_syscall_64+0x5b/0xf0 -[1642834.465243] entry_SYSCALL_64_after_hwframe+0x44/0xa9 -[1642834.465245] RIP: 0033:0x7f6a3d7b047b -[1642834.465247] Code: 0f 1e fa 48 8b 05 1d aa 0c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d ed a9 0c 00 f7 d8 64 89 01 48 -[1642834.465249] RSP: 002b:00007ffe71adba28 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 -[1642834.465251] RAX: ffffffffffffffda RBX: 000055f99048fa40 RCX: 00007f6a3d7b047b -[1642834.465253] RDX: 00007ffe71adba30 RSI: 00000000c0106461 RDI: 000000000000000e -[1642834.465254] RBP: 0000000000000002 R08: 000055f98f3f1798 R09: 0000000000000002 -[1642834.465255] R10: 0000000000001000 R11: 0000000000000246 R12: 0000000000000080 -[1642834.465257] R13: 000055f98f3f1690 R14: 00000000c0106461 R15: 00007ffe71adba30 - -Now to take the spinlock during the list iteration, we need to break it -down into two phases. In the first phase under the lock, we cannot sleep -and so must defer the actual work to a second list, protected by the -ggtt->mutex. - -We also need to hold the spinlock during creation of a new spinlock to -serialise updates of the tiling on the object. - -Fixes: 2850748ef876 ("drm/i915: Pull i915_vma_pin under the vm->mutex") -Reported-by: Dave Airlie -Signed-off-by: Chris Wilson -Cc: # v5.5+ -Cc: Dave Airlie -Cc: Tvrtko Ursulin ---- - drivers/gpu/drm/i915/gem/i915_gem_tiling.c | 20 ++++++++++++++++++-- - drivers/gpu/drm/i915/i915_vma.c | 10 ++++++---- - 2 files changed, 24 insertions(+), 6 deletions(-) - -diff --git a/drivers/gpu/drm/i915/gem/i915_gem_tiling.c b/drivers/gpu/drm/i915/gem/i915_gem_tiling.c -index 37f77aee1212..0158e49bf9bb 100644 ---- a/drivers/gpu/drm/i915/gem/i915_gem_tiling.c -+++ b/drivers/gpu/drm/i915/gem/i915_gem_tiling.c -@@ -182,21 +182,35 @@ i915_gem_object_fence_prepare(struct drm_i915_gem_object *obj, - int tiling_mode, unsigned int stride) - { - struct i915_ggtt *ggtt = &to_i915(obj->base.dev)->ggtt; -- struct i915_vma *vma; -+ struct i915_vma *vma, *vn; -+ LIST_HEAD(unbind); - int ret = 0; - - if (tiling_mode == I915_TILING_NONE) - return 0; - - mutex_lock(&ggtt->vm.mutex); -+ -+ spin_lock(&obj->vma.lock); - for_each_ggtt_vma(vma, obj) { -+ GEM_BUG_ON(vma->vm != &ggtt->vm); -+ - if (i915_vma_fence_prepare(vma, tiling_mode, stride)) - continue; - -+ list_move(&vma->vm_link, &unbind); -+ } -+ spin_unlock(&obj->vma.lock); -+ -+ list_for_each_entry_safe(vma, vn, &unbind, vm_link) { - ret = __i915_vma_unbind(vma); -- if (ret) -+ if (ret) { -+ /* Restore the remaining vma on an error */ -+ list_splice(&unbind, &ggtt->vm.bound_list); - break; -+ } - } -+ - mutex_unlock(&ggtt->vm.mutex); - - return ret; -@@ -268,6 +282,7 @@ i915_gem_object_set_tiling(struct drm_i915_gem_object *obj, - } - mutex_unlock(&obj->mm.lock); - -+ spin_lock(&obj->vma.lock); - for_each_ggtt_vma(vma, obj) { - vma->fence_size = - i915_gem_fence_size(i915, vma->size, tiling, stride); -@@ -278,6 +293,7 @@ i915_gem_object_set_tiling(struct drm_i915_gem_object *obj, - if (vma->fence) - vma->fence->dirty = true; - } -+ spin_unlock(&obj->vma.lock); - - obj->tiling_and_stride = tiling | stride; - i915_gem_object_unlock(obj); -diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c -index f0383a68c981..20fe5a134d92 100644 ---- a/drivers/gpu/drm/i915/i915_vma.c -+++ b/drivers/gpu/drm/i915/i915_vma.c -@@ -158,16 +158,18 @@ vma_create(struct drm_i915_gem_object *obj, - - GEM_BUG_ON(!IS_ALIGNED(vma->size, I915_GTT_PAGE_SIZE)); - -+ spin_lock(&obj->vma.lock); -+ - if (i915_is_ggtt(vm)) { - if (unlikely(overflows_type(vma->size, u32))) -- goto err_vma; -+ goto err_unlock; - - vma->fence_size = i915_gem_fence_size(vm->i915, vma->size, - i915_gem_object_get_tiling(obj), - i915_gem_object_get_stride(obj)); - if (unlikely(vma->fence_size < vma->size || /* overflow */ - vma->fence_size > vm->total)) -- goto err_vma; -+ goto err_unlock; - - GEM_BUG_ON(!IS_ALIGNED(vma->fence_size, I915_GTT_MIN_ALIGNMENT)); - -@@ -179,8 +181,6 @@ vma_create(struct drm_i915_gem_object *obj, - __set_bit(I915_VMA_GGTT_BIT, __i915_vma_flags(vma)); - } - -- spin_lock(&obj->vma.lock); -- - rb = NULL; - p = &obj->vma.tree.rb_node; - while (*p) { -@@ -225,6 +225,8 @@ vma_create(struct drm_i915_gem_object *obj, - - return vma; - -+err_unlock: -+ spin_unlock(&obj->vma.lock); - err_vma: - i915_vma_free(vma); - return ERR_PTR(-E2BIG); --- -2.20.1 - -_______________________________________________ -Intel-gfx mailing list -Intel-gfx@lists.freedesktop.org -https://lists.freedesktop.org/mailman/listinfo/intel-gfx - diff --git a/drm-scheduler-fix-drm_sched_get_cleanup_job.patch b/drm-scheduler-fix-drm_sched_get_cleanup_job.patch deleted file mode 100644 index db232c0cd..000000000 --- a/drm-scheduler-fix-drm_sched_get_cleanup_job.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 8623b5255ae7ccaf276aac3920787bf575fa6b37 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Christian=20K=C3=B6nig?= -Date: Sat, 11 Apr 2020 11:54:01 +0200 -Subject: drm/scheduler: fix drm_sched_get_cleanup_job -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Christian König - -commit 8623b5255ae7ccaf276aac3920787bf575fa6b37 upstream. - -We are racing to initialize sched->thread here, just always check the -current thread. - -Signed-off-by: Christian König -Reviewed-by: Andrey Grodzovsky -Reviewed-by: Kent Russell -Link: https://patchwork.freedesktop.org/patch/361303/ -Cc: Linus Torvalds -Signed-off-by: Greg Kroah-Hartman - ---- - drivers/gpu/drm/scheduler/sched_main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/gpu/drm/scheduler/sched_main.c -+++ b/drivers/gpu/drm/scheduler/sched_main.c -@@ -687,7 +687,7 @@ drm_sched_get_cleanup_job(struct drm_gpu - */ - if ((sched->timeout != MAX_SCHEDULE_TIMEOUT && - !cancel_delayed_work(&sched->work_tdr)) || -- __kthread_should_park(sched->thread)) -+ kthread_should_park()) - return NULL; - - spin_lock_irqsave(&sched->job_list_lock, flags); diff --git a/kernel.spec b/kernel.spec index 0909526b9..546109342 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 10 +%define stable_update 11 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -902,8 +902,6 @@ Patch509: drm-i915-backports.patch Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch Patch512: drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch -Patch513: 0001-drm-i915-gem-Hold-obj-vma.lock-over-for_each_ggtt_vm.patch -Patch514: drm-scheduler-fix-drm_sched_get_cleanup_job.patch # END OF PATCH DEFINITIONS @@ -3001,6 +2999,9 @@ fi # # %changelog +* Wed May 06 2020 Justin M. Forbes - 5.6.11-300 +- Linux v5.6.11 + * Mon May 04 2020 Justin M. Forbes - 5.6.10-300 - Linux v5.6.10 diff --git a/sources b/sources index f4324f7a3..3244f95a5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.10.xz) = 57860a7576149a34c1ff9277a8daee8d4ee8574270561302e4fb3916a7f4c23cf298a3a7f13ba5370ec665548b679f5340d3ce6788152b4d8d79f41009efa865 +SHA512 (patch-5.6.11.xz) = 0e9bda5aea7617e1d1ec6aa906a7845dd498a30a0e1018583561f3af64d7e67afee3bfffdea2e7eab81d100054aa49b8cfaa0fbfc4e308e7f8b70f21dfdb7908 From 964c3d395812a7e5f5f133588c36d3b91d58fef6 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 7 May 2020 14:17:39 +0100 Subject: [PATCH 050/191] Update RPi4 USB quirks patch to latest --- USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch | 417 ++++++++++-------- 1 file changed, 230 insertions(+), 187 deletions(-) diff --git a/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch b/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch index fb7c1afaf..b1f4e7942 100644 --- a/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch +++ b/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch @@ -1,27 +1,27 @@ -From patchwork Tue Mar 24 18:28:09 2020 +From patchwork Tue May 5 16:13:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11456187 +X-Patchwork-Id: 11529601 Return-Path: - + Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 884BD1667 + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1BF82139A for ; - Tue, 24 Mar 2020 18:29:06 +0000 (UTC) + Tue, 5 May 2020 16:13:46 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 64FF0206F6 + by mail.kernel.org (Postfix) with ESMTPS id ED4E0206A4 for ; - Tue, 24 Mar 2020 18:29:06 +0000 (UTC) + Tue, 5 May 2020 16:13:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="G3ed3Qzw" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 64FF0206F6 + header.i=@lists.infradead.org header.b="u/J7plS1" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ED4E0206A4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; @@ -33,50 +33,50 @@ DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=ZW8pFtwlUj3q7GZJotB4Rgjtfp9gMy+l74jJQcTab0w=; b=G3ed3QzwnvX3MD - lHn7XDGcdKtGCuuX/Xhmoz/5j7Rgw1hOz3+8tGJaH+BigLM7Kfms9kB2c3chHrDwTH5SW0LzlU8el - hxpbcJnVFy3VLdCMUrvQUXY0SmOcoSSN3NK032HxlqAKSa5HPE3dTBWheiUGKlZ6c3A9dGItYzD6I - M4WO+9b0wHM1KMMrsyVo51ysdAFEXtSym1xNN+pW/tE9ak+/bFHxMW1XcMNrVwo9R43U5JSvmcC0M - OKBYNAYFpFWx3n3wvAaFQkBEkmH3QmPBd0aiE8UTGk6CY0VHwjbVcE7u7daksOPLrZgsRgqmLRatE - 98WbgEKpzDu7mgvLn5zw==; + List-Owner; bh=bGQLzaoeWIDpTINYetpnA2L/vb7OmdXvhp2NJuW0F3A=; b=u/J7plS1Bwu25p + 31YlPyAxNHzkNz73OdF7ft5uhn9vS8dF3TEBhhmSu83IWYwAhsjyqTB+Hn8104w1KT17o0ihuNG++ + UIf6ftYyM8/v9W57OPJcwcWqPpKyFVB7fs9hgR9IE1/Qm8Ur/aUjmD1HK272ZJYsgrFqyFO4PP7DD + 1LwVH20tWs3UvX317QDIn5VIq8EAX5ImabSfeYHw1LlyhQUYF10UPX5zw4I2TlLRd2hFvfyUy7s8b + 1uMZFqLeqfTHrauQ43p5IBZs/wNGKGJbQlZvuENJxPcbBharqHBVDZrFvtV2MLnvrDOnv6A2QSfpt + vv++WCa+crrbmyL2v/pw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jGoIP-0002bD-LX; Tue, 24 Mar 2020 18:29:01 +0000 + id 1jW0CU-00035T-KT; Tue, 05 May 2020 16:13:42 +0000 Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jGoHq-00024O-PS; Tue, 24 Mar 2020 18:28:29 +0000 + id 1jW0CF-0002rM-7U; Tue, 05 May 2020 16:13:28 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id 4A537ABD1; - Tue, 24 Mar 2020 18:28:22 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 0992CAF4F; + Tue, 5 May 2020 16:13:28 +0000 (UTC) From: Nicolas Saenz Julienne -To: linux-kernel@vger.kernel.org, Florian Fainelli , +To: f.fainelli@gmail.com, gregkh@linuxfoundation.org, wahrenst@gmx.net, + helgaas@kernel.org, linux-kernel@vger.kernel.org, Ray Jui , Scott Branden , bcm-kernel-feedback-list@broadcom.com, Nicolas Saenz Julienne -Subject: [PATCH v6 1/4] soc: bcm2835: Sync xHCI reset firmware property with - downstream -Date: Tue, 24 Mar 2020 19:28:09 +0100 -Message-Id: <20200324182812.20420-2-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200324182812.20420-1-nsaenzjulienne@suse.de> -References: <20200324182812.20420-1-nsaenzjulienne@suse.de> +Subject: [PATCH v8 1/4] soc: bcm2835: Add notify xHCI reset property +Date: Tue, 5 May 2020 18:13:14 +0200 +Message-Id: <20200505161318.26200-2-nsaenzjulienne@suse.de> +X-Mailer: git-send-email 2.26.2 +In-Reply-To: <20200505161318.26200-1-nsaenzjulienne@suse.de> +References: <20200505161318.26200-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200324_112826_965603_11D899C2 -X-CRM114-Status: GOOD ( 13.71 ) +X-CRM114-CacheID: sfid-20200505_091327_410061_22E5BD39 +X-CRM114-Status: GOOD ( 13.67 ) X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: +X-Spam-Report: SpamAssassin version 3.4.4 on bombadil.infradead.org summary: Content analysis details: (-2.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [195.135.220.15 listed in list.dnswl.org] - -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) + [195.135.220.15 listed in wl.mailspike.net] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 @@ -91,17 +91,16 @@ List-Help: List-Subscribe: , -Cc: tim.gover@raspberrypi.org, sergei.shtylyov@cogentembedded.com, - gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, - linux-rpi-kernel@lists.infradead.org, linux-pci@vger.kernel.org, - linux-arm-kernel@lists.infradead.org, wahrenst@gmx.net +Cc: linux-pci@vger.kernel.org, tim.gover@raspberrypi.org, + linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, + linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org The property is needed in order to trigger VL805's firmware load. Note -that there is a gap between the property introduced and the previous -one. This is also the case downstream. +that gap between the property introduced and the previous one is due to +the properties not being defined. Signed-off-by: Nicolas Saenz Julienne Reviewed-by: Florian Fainelli @@ -123,30 +122,30 @@ index 7800e12ee042..cc9cdbc66403 100644 /* Dispmanx TAGS */ RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001, -From patchwork Tue Mar 24 18:28:10 2020 +From patchwork Tue May 5 16:13:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11456191 +X-Patchwork-Id: 11529609 Return-Path: - + Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C4D571731 + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 337F6139A for ; - Tue, 24 Mar 2020 18:29:30 +0000 (UTC) + Tue, 5 May 2020 16:14:02 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 9A787206F6 + by mail.kernel.org (Postfix) with ESMTPS id 062432084D for ; - Tue, 24 Mar 2020 18:29:30 +0000 (UTC) + Tue, 5 May 2020 16:14:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="Z5B/3JRW" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9A787206F6 + header.i=@lists.infradead.org header.b="SDl3WXtu" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 062432084D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; @@ -158,50 +157,50 @@ DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=kAIknZ2RVw6gB9CaOcG4KQjgkdNyrtcLcfH5XAGtITo=; b=Z5B/3JRWWCVYHI - AsxnYFEFit0NnrRvZDbi0ktp8wUbVrztmKRPQWvfaWSlelJEKdEpJhHItnpicKfR5JhfHFsPt3V3X - i29DtdYSOr/cjW/qeoakzXY0b1ApjrrK3MWjX/k0k9SVqGwkq6KT3T3qok969KInPAe0ERZ9bYkP1 - P2Jj1QT0QtCfcd0PsSjn4riMP09KNZVuviLm2bcg3Cr78qfIq6gDHHoS1nqPzdEt4gG+i/s66lTFY - Dd3vPgItuRBvzgAjWdT4Bvx41u82KONuYDshYftzUZX7pxh76o4PwtPoPt/A4hJT0pZZe9MB6pQlM - JwbBVC2fhM1afv00diOw==; + List-Owner; bh=Zr8RX4pUFuT9LYq/WsMx8aWZosDB52n4Q59lcyexfbE=; b=SDl3WXtuTc/nTE + liOc14IJBVmzylTRvqtl7RNlIur09j/+2VWz/L9i6UGqjG6N3L8XsQ0hQjdunHpod9jj3p3Az+4sq + FgwzoSdghy8rfnfxhcqJSbvMvX34yzGnoQBS46jClcjky9iNoijO+nBo3SE9wC8vSKKIafCzmVqHw + P7p44IgFrwgnBKbAgdUWCjUVQqolk2pLJr7jw/TG8pvfv0R6XJGmz3Lbl8gP14FyWfkkqsKqC+0g1 + Jq6JPtdl+W0AfEWVrFr6/74LhLTpnhsPqXGEPJjrLqtkbZ2c9pulOQ3f85qAed9slCbkVxe5fHetC + bwaYOp++AlOj7kNN25Qw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jGoIm-00032a-5v; Tue, 24 Mar 2020 18:29:24 +0000 + id 1jW0Ch-0003KV-Mk; Tue, 05 May 2020 16:13:55 +0000 Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jGoHq-00024W-PL; Tue, 24 Mar 2020 18:28:29 +0000 + id 1jW0CG-0002rw-Mm; Tue, 05 May 2020 16:13:30 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id 3F0CFABE7; - Tue, 24 Mar 2020 18:28:23 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 4B6EDAF5D; + Tue, 5 May 2020 16:13:29 +0000 (UTC) From: Nicolas Saenz Julienne -To: linux-kernel@vger.kernel.org, +To: f.fainelli@gmail.com, gregkh@linuxfoundation.org, wahrenst@gmx.net, + helgaas@kernel.org, linux-kernel@vger.kernel.org, Nicolas Saenz Julienne , - Florian Fainelli , Ray Jui , - Scott Branden , + Ray Jui , Scott Branden , bcm-kernel-feedback-list@broadcom.com -Subject: [PATCH v6 2/4] firmware: raspberrypi: Introduce vl805 init routine -Date: Tue, 24 Mar 2020 19:28:10 +0100 -Message-Id: <20200324182812.20420-3-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200324182812.20420-1-nsaenzjulienne@suse.de> -References: <20200324182812.20420-1-nsaenzjulienne@suse.de> +Subject: [PATCH v8 2/4] firmware: raspberrypi: Introduce vl805 init routine +Date: Tue, 5 May 2020 18:13:15 +0200 +Message-Id: <20200505161318.26200-3-nsaenzjulienne@suse.de> +X-Mailer: git-send-email 2.26.2 +In-Reply-To: <20200505161318.26200-1-nsaenzjulienne@suse.de> +References: <20200505161318.26200-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200324_112827_110873_06144E1C -X-CRM114-Status: GOOD ( 15.67 ) +X-CRM114-CacheID: sfid-20200505_091329_063893_301DE39B +X-CRM114-Status: GOOD ( 18.76 ) X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: +X-Spam-Report: SpamAssassin version 3.4.4 on bombadil.infradead.org summary: Content analysis details: (-2.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [195.135.220.15 listed in list.dnswl.org] - -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) + [195.135.220.15 listed in wl.mailspike.net] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 @@ -216,61 +215,85 @@ List-Help: List-Subscribe: , -Cc: tim.gover@raspberrypi.org, sergei.shtylyov@cogentembedded.com, - gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, - linux-rpi-kernel@lists.infradead.org, linux-pci@vger.kernel.org, - linux-arm-kernel@lists.infradead.org, wahrenst@gmx.net +Cc: linux-pci@vger.kernel.org, tim.gover@raspberrypi.org, + linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, + linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be +The Raspberry Pi 4 gets its USB functionality from VL805, a PCIe chip +that implements xHCI. After a PCI reset, VL805's firmware may either be loaded directly from an EEPROM or, if not present, by the SoC's -VideCore. The function informs VideCore that VL805 was just reset, or -requests for a probe defer. - -Based on Tim Gover's downstream implementation. +co-processor, VideoCore. RPi4's VideoCore OS contains both the non public +firmware load logic and the VL805 firmware blob. The function this patch +introduces triggers the aforementioned process. Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Florian Fainelli --- + +Change since v7: +- Use usleep_delay() +- Add comment about PCI errors +- Don't wait on error +- Typos + +Change since v6: +- Add test to avoid loading the firmware when not needed +- Since we have it around, print VL805's firmware version, it'll make +debugging easier in the future +- Correct typos +- Add a clearer view of HW topology in patch description + Changes since v4: - - Inline function definition when RASPBERRYPI_FIRMWARE is not defined +- Inline function definition when RASPBERRYPI_FIRMWARE is not defined Changes since v1: - - Move include into .c file and add forward declaration to .h +- Move include into .c file and add forward declaration to .h - drivers/firmware/raspberrypi.c | 38 ++++++++++++++++++++++ - include/soc/bcm2835/raspberrypi-firmware.h | 7 ++++ - 2 files changed, 45 insertions(+) + drivers/firmware/raspberrypi.c | 61 ++++++++++++++++++++++ + include/soc/bcm2835/raspberrypi-firmware.h | 7 +++ + 2 files changed, 68 insertions(+) diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c -index da26a584dca0..cbb495aff6a0 100644 +index da26a584dca0..a166ad0cec2c 100644 --- a/drivers/firmware/raspberrypi.c +++ b/drivers/firmware/raspberrypi.c -@@ -12,6 +12,7 @@ +@@ -12,6 +12,8 @@ #include #include #include +#include ++#include #include #define MBOX_MSG(chan, data28) (((data28) & ~0xf) | ((chan) & 0xf)) -@@ -286,6 +287,43 @@ struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node) +@@ -19,6 +21,8 @@ + #define MBOX_DATA28(msg) ((msg) & ~0xf) + #define MBOX_CHAN_PROPERTY 8 + ++#define VL805_PCI_CONFIG_VERSION_OFFSET 0x50 ++ + static struct platform_device *rpi_hwmon; + static struct platform_device *rpi_clk; + +@@ -286,6 +290,63 @@ struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node) } EXPORT_SYMBOL_GPL(rpi_firmware_get); +/* -+ * On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be -+ * loaded directly from an EEPROM or, if not present, by the SoC's VideCore. -+ * Inform VideCore that VL805 was just reset, or defer xhci's probe if not yet -+ * joinable trough the mailbox interface. ++ * The Raspberry Pi 4 gets its USB functionality from VL805, a PCIe chip that ++ * implements xHCI. After a PCI reset, VL805's firmware may either be loaded ++ * directly from an EEPROM or, if not present, by the SoC's co-processor, ++ * VideoCore. RPi4's VideoCore OS contains both the non public firmware load ++ * logic and the VL805 firmware blob. This function triggers the aforementioned ++ * process. + */ +int rpi_firmware_init_vl805(struct pci_dev *pdev) +{ + struct device_node *fw_np; + struct rpi_firmware *fw; -+ u32 dev_addr; ++ u32 dev_addr, version; + int ret; + + fw_np = of_find_compatible_node(NULL, NULL, @@ -281,7 +304,19 @@ index da26a584dca0..cbb495aff6a0 100644 + fw = rpi_firmware_get(fw_np); + of_node_put(fw_np); + if (!fw) -+ return -EPROBE_DEFER; ++ return -ENODEV; ++ ++ /* ++ * Make sure we don't trigger a firmware load unnecessarily. ++ * ++ * If something went wrong with PCI, this whole exercise would be ++ * futile as VideoCore expects from us a configured PCI bus. Just take ++ * the faulty version (likely ~0) and let xHCI's registration fail ++ * further down the line. ++ */ ++ pci_read_config_dword(pdev, VL805_PCI_CONFIG_VERSION_OFFSET, &version); ++ if (version) ++ goto exit; + + dev_addr = pdev->bus->number << 20 | PCI_SLOT(pdev->devfn) << 15 | + PCI_FUNC(pdev->devfn) << 12; @@ -291,7 +326,13 @@ index da26a584dca0..cbb495aff6a0 100644 + if (ret) + return ret; + -+ dev_dbg(&pdev->dev, "loaded Raspberry Pi's VL805 firmware\n"); ++ /* Wait for vl805 to startup */ ++ usleep_range(200, 1000); ++ ++ pci_read_config_dword(pdev, VL805_PCI_CONFIG_VERSION_OFFSET, ++ &version); ++exit: ++ pci_info(pdev, "VL805 firmware version %08x\n", version); + + return 0; +} @@ -333,30 +374,30 @@ index cc9cdbc66403..3025aca3c358 100644 #endif /* __SOC_RASPBERRY_FIRMWARE_H__ */ -From patchwork Tue Mar 24 18:28:11 2020 +From patchwork Tue May 5 16:13:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11456189 +X-Patchwork-Id: 11529613 Return-Path: - + Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 168CB1667 + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 09B41139A for ; - Tue, 24 Mar 2020 18:29:15 +0000 (UTC) + Tue, 5 May 2020 16:14:12 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id EAB942076E + by mail.kernel.org (Postfix) with ESMTPS id D0DF22078D for ; - Tue, 24 Mar 2020 18:29:14 +0000 (UTC) + Tue, 5 May 2020 16:14:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="BOwwgdOE" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EAB942076E + header.i=@lists.infradead.org header.b="SAMPLJUW" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D0DF22078D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; @@ -368,52 +409,51 @@ DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=CLmK04T+baw5jWu/lH2cJ3fygso/fqFgoMOSigkpvRw=; b=BOwwgdOEAmbVoa - /8AtILxDfcKBVhbig0LKPFd94roUQzY/SylcBG5jWceT90PE3BxYgomfaBA6U41LW9Xe5LZsfylId - /IP3RNq34yRDWPXo3WWkLFYEtwJB60SWZlD8BG+ApGeUJ9z6vXTL9h3K9ThLwhFycZOkSxtDMicCG - vkP4ErkYnvASxQ021+lq/VxFgdnvtKcw2OE+ghhRHgOn8dc+/dJHCp8vi33Qrk9DFhKSGnSX/A5vz - E84/rlt964N9kXLE2npw9hNrj6DdrQozcB9YTAEL9S/krTUmOLI/iWS/DZEUA50xy9wVBqD9Bm78x - TS0oeyfH49HaUmd10Y6w==; + List-Owner; bh=KaAXr2YFGUN9aHABYMGoI6lDCplKLkueaLach3EcLIQ=; b=SAMPLJUWqAiuYn + Ols6qNQTSsb2o1pxY1yuF4MaX8dUzqsSCkylXQf5SkLRki0hXDsY/eVzwcypdH60m5jdk31wU1MJD + O88oZLgP0rvsSmG//a4xMHn/EpxntBmXZvNxlvZ9RuDATHjuA2w1+GKUOEvREG9jBi1M4+r5QZXrY + nRQqxUi1CldsZHzGt3IJi1mXzlNIhZq+fi48xOWUdgCSXYfpJO4qsr3b3QhwJklPSO0c4jMAHKYTQ + z3kKMMszvYgug/JraC4fZD2qDKGic3IxeOSxP2c8dLYBfxMxfBz7gya5rpBpjvFelYZMN2qXaQInv + gND7kQ/fU/heR7N6g6Dg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jGoIa-0002oW-NS; Tue, 24 Mar 2020 18:29:12 +0000 + id 1jW0Cv-0003b2-3s; Tue, 05 May 2020 16:14:09 +0000 Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jGoHr-00024Z-2w; Tue, 24 Mar 2020 18:28:29 +0000 + id 1jW0CI-0002tA-MY; Tue, 05 May 2020 16:13:32 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id 1A1A0ABF4; - Tue, 24 Mar 2020 18:28:24 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 3372DAF7A; + Tue, 5 May 2020 16:13:31 +0000 (UTC) From: Nicolas Saenz Julienne -To: linux-kernel@vger.kernel.org, +To: f.fainelli@gmail.com, gregkh@linuxfoundation.org, wahrenst@gmx.net, + helgaas@kernel.org, linux-kernel@vger.kernel.org, Nicolas Saenz Julienne , - Florian Fainelli , - bcm-kernel-feedback-list@broadcom.com, Lorenzo Pieralisi , - Andrew Murray -Subject: [PATCH v6 3/4] PCI: brcmstb: Wait for Raspberry Pi's firmware when + Rob Herring , bcm-kernel-feedback-list@broadcom.com +Subject: [PATCH v8 3/4] PCI: brcmstb: Wait for Raspberry Pi's firmware when present -Date: Tue, 24 Mar 2020 19:28:11 +0100 -Message-Id: <20200324182812.20420-4-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200324182812.20420-1-nsaenzjulienne@suse.de> -References: <20200324182812.20420-1-nsaenzjulienne@suse.de> +Date: Tue, 5 May 2020 18:13:16 +0200 +Message-Id: <20200505161318.26200-4-nsaenzjulienne@suse.de> +X-Mailer: git-send-email 2.26.2 +In-Reply-To: <20200505161318.26200-1-nsaenzjulienne@suse.de> +References: <20200505161318.26200-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200324_112827_267470_0540B982 -X-CRM114-Status: GOOD ( 12.13 ) +X-CRM114-CacheID: sfid-20200505_091330_993258_A3A56727 +X-CRM114-Status: GOOD ( 11.90 ) X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: +X-Spam-Report: SpamAssassin version 3.4.4 on bombadil.infradead.org summary: Content analysis details: (-2.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [195.135.220.15 listed in list.dnswl.org] - -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) + [195.135.220.15 listed in wl.mailspike.net] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 @@ -428,11 +468,9 @@ List-Help: List-Subscribe: , -Cc: tim.gover@raspberrypi.org, sergei.shtylyov@cogentembedded.com, - gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, - linux-rpi-kernel@lists.infradead.org, linux-pci@vger.kernel.org, - Bjorn Helgaas , linux-arm-kernel@lists.infradead.org, - wahrenst@gmx.net +Cc: tim.gover@raspberrypi.org, linux-pci@vger.kernel.org, + linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, + Bjorn Helgaas , linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org @@ -445,11 +483,15 @@ starting. Signed-off-by: Nicolas Saenz Julienne Reviewed-by: Florian Fainelli --- - drivers/pci/controller/pcie-brcmstb.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) + +Changes since v6: +- Add more complete comment + + drivers/pci/controller/pcie-brcmstb.c | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c -index 3a10e678c7f4..a3d3070a5832 100644 +index 6d79d14527a6..0b97b94c4a9a 100644 --- a/drivers/pci/controller/pcie-brcmstb.c +++ b/drivers/pci/controller/pcie-brcmstb.c @@ -28,6 +28,8 @@ @@ -461,7 +503,7 @@ index 3a10e678c7f4..a3d3070a5832 100644 #include "../pci.h" /* BRCM_PCIE_CAP_REGS - Offset for the mandatory capability config regs */ -@@ -917,11 +919,24 @@ static int brcm_pcie_probe(struct platform_device *pdev) +@@ -917,11 +919,26 @@ static int brcm_pcie_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node, *msi_np; struct pci_host_bridge *bridge; @@ -472,8 +514,10 @@ index 3a10e678c7f4..a3d3070a5832 100644 int ret; + /* -+ * We have to wait for the Raspberry Pi's firmware interface to be up -+ * as some PCI fixups depend on it. ++ * We have to wait for Raspberry Pi's firmware interface to be up as a ++ * PCI fixup, rpi_firmware_init_vl805(), depends on it. This driver's ++ * probe can race with the firmware interface's (see ++ * drivers/firmware/raspberrypi.c) and potentially break the PCI fixup. + */ + fw_np = of_find_compatible_node(NULL, NULL, + "raspberrypi,bcm2835-firmware"); @@ -487,30 +531,30 @@ index 3a10e678c7f4..a3d3070a5832 100644 if (!bridge) return -ENOMEM; -From patchwork Tue Mar 24 18:28:12 2020 +From patchwork Tue May 5 16:13:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11456185 +X-Patchwork-Id: 11529615 Return-Path: - + Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AD453174A + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9C85E1392 for ; - Tue, 24 Mar 2020 18:28:41 +0000 (UTC) + Tue, 5 May 2020 16:14:26 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 8690720789 + by mail.kernel.org (Postfix) with ESMTPS id 75AD8206FA for ; - Tue, 24 Mar 2020 18:28:41 +0000 (UTC) + Tue, 5 May 2020 16:14:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="BSDoMdbd" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8690720789 + header.i=@lists.infradead.org header.b="pXZpPhrT" +DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 75AD8206FA Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; @@ -522,47 +566,48 @@ DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=YaBoM78lqEEmZOW4u4cO0fQ+Qpc7vocOU6aRT/EpQsk=; b=BSDoMdbdXfJNCB - Ccoti2K8Qk9NgAlOnVt60cLhw66HCbJPwZn1v08f/rr05ZIoPMToFkJt5krqew7Vd+jlZnzMxf8MC - lBfOqOev9hIjbyu19c646LbpbqVrtrtm9vmy6Lvd2GGuQuvybpM0RHDvc2wzv8a3fejGMgKStaQ/3 - Efne01FoiZvWBedWpTdsoGJbFzfSb4ua/8JT2Ki04i9itY4oTZs9itKK1Taqe3WfNDphluuFcmdGx - nNxQK/PkA6XCdpJHxaCz3DtyZj/2NhAqd8roXn+PUt5SG00Tfc6auERZQPLtTinW6m9ZaUkBhjJQ0 - GHUMyyLHvQ583h1ty9ow==; + List-Owner; bh=/GYWkYF77JxYJ9PRLu3wczjjHT+GnXqD2IyzZ0uR8KY=; b=pXZpPhrTtgd1O0 + sy/khBh4MMWq9sIqFwH9HgDbPFDzQ5eCkfiS/YZoDGJPFFwsUcitnTfFX9VGMnYzLf7eCCLfm1hta + f3X7UNpk1SvaeJKc59x7OvHTLVAwByuEPTqm4bmcqw+aRWdaYShUiv+105SG6JShQF5gjuBpEn3w0 + vzQNYGEl4BeHnlREFZU+Wi1qQ8sa1BwpU6Rx/NmGk8qLv1GOO4+UNf/ABycGTH6jZU101ck7/nvKL + Da7jehxCo1CCUiqM69fvoKabrfI76uVP4OdJcCihqzOWzmkiVwhQAWB0qFa9LR2h4CObuPthIqmW7 + oaRbCgJg+N26f/dtw1mg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jGoI3-0002Hl-Jz; Tue, 24 Mar 2020 18:28:39 +0000 + id 1jW0D6-0003ov-Og; Tue, 05 May 2020 16:14:20 +0000 Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jGoHq-00024d-Jc; Tue, 24 Mar 2020 18:28:28 +0000 + id 1jW0CJ-0002ui-S6; Tue, 05 May 2020 16:13:33 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id EE53FABF6; - Tue, 24 Mar 2020 18:28:24 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 80D21AF4F; + Tue, 5 May 2020 16:13:32 +0000 (UTC) From: Nicolas Saenz Julienne -To: linux-kernel@vger.kernel.org, - Mathias Nyman -Subject: [PATCH v6 4/4] USB: pci-quirks: Add Raspberry Pi 4 quirk -Date: Tue, 24 Mar 2020 19:28:12 +0100 -Message-Id: <20200324182812.20420-5-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200324182812.20420-1-nsaenzjulienne@suse.de> -References: <20200324182812.20420-1-nsaenzjulienne@suse.de> +To: f.fainelli@gmail.com, gregkh@linuxfoundation.org, wahrenst@gmx.net, + helgaas@kernel.org, linux-kernel@vger.kernel.org, + Mathias Nyman +Subject: [PATCH v8 4/4] USB: pci-quirks: Add Raspberry Pi 4 quirk +Date: Tue, 5 May 2020 18:13:17 +0200 +Message-Id: <20200505161318.26200-5-nsaenzjulienne@suse.de> +X-Mailer: git-send-email 2.26.2 +In-Reply-To: <20200505161318.26200-1-nsaenzjulienne@suse.de> +References: <20200505161318.26200-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200324_112826_791336_2ABB38D1 -X-CRM114-Status: GOOD ( 16.34 ) +X-CRM114-CacheID: sfid-20200505_091332_068613_1A981780 +X-CRM114-Status: GOOD ( 16.37 ) X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: +X-Spam-Report: SpamAssassin version 3.4.4 on bombadil.infradead.org summary: Content analysis details: (-2.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [195.135.220.15 listed in list.dnswl.org] - -0.0 SPF_PASS SPF: sender matches SPF record + 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) + [195.135.220.15 listed in wl.mailspike.net] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record + -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 @@ -577,23 +622,21 @@ List-Help: List-Subscribe: , -Cc: f.fainelli@gmail.com, sergei.shtylyov@cogentembedded.com, - gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, - Nicolas Saenz Julienne , tim.gover@raspberrypi.org, +Cc: tim.gover@raspberrypi.org, linux-pci@vger.kernel.org, + linux-usb@vger.kernel.org, Nicolas Saenz Julienne , bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org, - linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, - wahrenst@gmx.net + linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be loaded directly from an EEPROM or, if not present, by the SoC's -VideCore. Inform VideCore that VL805 was just reset. +VideoCore. Inform VideoCore that VL805 was just reset. Also, as this creates a dependency between USB_PCI and VideoCore's -firmware interface. Since USB_PCI can't be set as a module neither this -should. +firmware interface, and since USB_PCI can't be set as a module neither +this can. Reflect that on the firmware interface Kconfg. Signed-off-by: Nicolas Saenz Julienne --- @@ -616,7 +659,7 @@ Changes since v1: 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig -index ea869addc89b..78ab2ad6d3f0 100644 +index 8007d4aa76dc..b42140cff8ac 100644 --- a/drivers/firmware/Kconfig +++ b/drivers/firmware/Kconfig @@ -178,8 +178,9 @@ config ISCSI_IBFT @@ -631,7 +674,7 @@ index ea869addc89b..78ab2ad6d3f0 100644 This option enables support for communicating with the firmware on the Raspberry Pi. diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c -index beb2efa71341..0dc34668bb2a 100644 +index 92150ecdb036..0b949acfa258 100644 --- a/drivers/usb/host/pci-quirks.c +++ b/drivers/usb/host/pci-quirks.c @@ -16,6 +16,9 @@ From 4ebe92e7fba08b83aee9900c455ecfaa1573dbc1 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sun, 10 May 2020 12:17:56 +0100 Subject: [PATCH 051/191] add usb fix for user space libusb zero copy on some arches --- kernel.spec | 3 + ...-kernel-user-page-attribute-mismatch.patch | 104 ++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 usb-usbfs-correct-kernel-user-page-attribute-mismatch.patch diff --git a/kernel.spec b/kernel.spec index 546109342..f0503d450 100644 --- a/kernel.spec +++ b/kernel.spec @@ -819,6 +819,9 @@ Patch303: ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch Patch304: ARM-tegra-usb-no-reset.patch +# https://patchwork.kernel.org/patch/11527525/ +Patch305: usb-usbfs-correct-kernel-user-page-attribute-mismatch.patch + # Raspberry Pi # https://patchwork.kernel.org/cover/11353083/ Patch310: arm64-pinctrl-bcm2835-Add-support-for-all-BCM2711-GPIOs.patch diff --git a/usb-usbfs-correct-kernel-user-page-attribute-mismatch.patch b/usb-usbfs-correct-kernel-user-page-attribute-mismatch.patch new file mode 100644 index 000000000..ad65b8db6 --- /dev/null +++ b/usb-usbfs-correct-kernel-user-page-attribute-mismatch.patch @@ -0,0 +1,104 @@ +From patchwork Mon May 4 20:13:48 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Jeremy Linton +X-Patchwork-Id: 11527525 +Return-Path: +Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org + [172.30.200.123]) + by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1F74F92A + for ; + Mon, 4 May 2020 20:14:04 +0000 (UTC) +Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) + by mail.kernel.org (Postfix) with ESMTP id 11A4B20746 + for ; + Mon, 4 May 2020 20:14:04 +0000 (UTC) +Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand + id S1726756AbgEDUOB (ORCPT + ); + Mon, 4 May 2020 16:14:01 -0400 +Received: from foss.arm.com ([217.140.110.172]:52874 "EHLO foss.arm.com" + rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP + id S1726111AbgEDUOA (ORCPT ); + Mon, 4 May 2020 16:14:00 -0400 +Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) + by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5BD30101E; + Mon, 4 May 2020 13:14:00 -0700 (PDT) +Received: from mammon-tx2.austin.arm.com (mammon-tx2.austin.arm.com + [10.118.28.62]) + by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id + 52CCC3F71F; + Mon, 4 May 2020 13:14:00 -0700 (PDT) +From: Jeremy Linton +To: linux-usb@vger.kernel.org +Cc: gregkh@linuxfoundation.org, stern@rowland.harvard.edu, + git@thegavinli.com, jarkko.sakkinen@linux.intel.com, + linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, + mark.rutland@arm.com, maz@kernel.org, robin.murphy@arm.com, + Jeremy Linton +Subject: [PATCH v2] usb: usbfs: correct kernel->user page attribute mismatch +Date: Mon, 4 May 2020 15:13:48 -0500 +Message-Id: <20200504201348.1183246-1-jeremy.linton@arm.com> +X-Mailer: git-send-email 2.24.1 +MIME-Version: 1.0 +Sender: linux-usb-owner@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-usb@vger.kernel.org + +On some architectures (e.g. arm64) requests for +IO coherent memory may use non-cachable attributes if +the relevant device isn't cache coherent. If these +pages are then remapped into userspace as cacheable, +they may not be coherent with the non-cacheable mappings. + +In particular this happens with libusb, when it attempts +to create zero-copy buffers for use by rtl-sdr +(https://github.com/osmocom/rtl-sdr/). On low end arm +devices with non-coherent USB ports, the application will +be unexpectedly killed, while continuing to work fine on +arm machines with coherent USB controllers. + +This bug has been discovered/reported a few times over +the last few years. In the case of rtl-sdr a compile time +option to enable/disable zero copy was implemented to +work around it. + +Rather than relaying on application specific workarounds, +dma_mmap_coherent() can be used instead of remap_pfn_range(). +The page cache/etc attributes will then be correctly set in +userspace to match the kernel mapping. + +Signed-off-by: Jeremy Linton +--- +v1->v2: + Update commit message and change to dma_mmap_coherent() + from dma_mmap_attr(,,,0) which are the same. + + drivers/usb/core/devio.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c +index 6833c918abce..b9db9812d6c5 100644 +--- a/drivers/usb/core/devio.c ++++ b/drivers/usb/core/devio.c +@@ -217,6 +217,7 @@ static int usbdev_mmap(struct file *file, struct vm_area_struct *vma) + { + struct usb_memory *usbm = NULL; + struct usb_dev_state *ps = file->private_data; ++ struct usb_hcd *hcd = bus_to_hcd(ps->dev->bus); + size_t size = vma->vm_end - vma->vm_start; + void *mem; + unsigned long flags; +@@ -250,9 +251,7 @@ static int usbdev_mmap(struct file *file, struct vm_area_struct *vma) + usbm->vma_use_count = 1; + INIT_LIST_HEAD(&usbm->memlist); + +- if (remap_pfn_range(vma, vma->vm_start, +- virt_to_phys(usbm->mem) >> PAGE_SHIFT, +- size, vma->vm_page_prot) < 0) { ++ if (dma_mmap_coherent(hcd->self.sysdev, vma, mem, dma_handle, size)) { + dec_usb_memory_use_count(usbm, &usbm->vma_use_count); + return -EAGAIN; + } From f7dd9b1fa94493688095850c569b2aa02feb61b5 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 11 May 2020 11:11:22 -0500 Subject: [PATCH 052/191] Linux v5.6.12 --- kernel.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index f0503d450..a987805c2 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 11 +%define stable_update 12 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -3002,6 +3002,9 @@ fi # # %changelog +* Mon May 11 2020 Justin M. Forbes - 5.6.12-300 +- Linux v5.6.12 + * Wed May 06 2020 Justin M. Forbes - 5.6.11-300 - Linux v5.6.11 diff --git a/sources b/sources index 3244f95a5..ebd905da4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.11.xz) = 0e9bda5aea7617e1d1ec6aa906a7845dd498a30a0e1018583561f3af64d7e67afee3bfffdea2e7eab81d100054aa49b8cfaa0fbfc4e308e7f8b70f21dfdb7908 +SHA512 (patch-5.6.12.xz) = e057961567d8482482ce8e27467b4fc47ddff604a3fd47f5e4f4092a29cc9ef5d180dd739f3edff91ab373108b699c04e55131722e8d4f153f4dd7e7833b48cd From 5cd9a1b23bbbec24f24fc08fb3d84de6846db72b Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Tue, 12 May 2020 17:29:14 -0500 Subject: [PATCH 053/191] Fix CVE-2020-10711 (rhbz 1825116 1834778) Signed-off-by: Justin M. Forbes --- kernel.spec | 6 ++ net-netlabel-cope-with-NULL-catmap.patch | 95 ++++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 net-netlabel-cope-with-NULL-catmap.patch diff --git a/kernel.spec b/kernel.spec index a987805c2..a89cbc5ab 100644 --- a/kernel.spec +++ b/kernel.spec @@ -906,6 +906,9 @@ Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch Patch512: drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch +# CVE-2020-10711 rhbz 1825116 1834778 +Patch513: net-netlabel-cope-with-NULL-catmap.patch + # END OF PATCH DEFINITIONS %endif @@ -3002,6 +3005,9 @@ fi # # %changelog +* Tue May 12 2020 Justin M. Forbes +- Fix CVE-2020-10711 (rhbz 1825116 1834778) + * Mon May 11 2020 Justin M. Forbes - 5.6.12-300 - Linux v5.6.12 diff --git a/net-netlabel-cope-with-NULL-catmap.patch b/net-netlabel-cope-with-NULL-catmap.patch new file mode 100644 index 000000000..06a915121 --- /dev/null +++ b/net-netlabel-cope-with-NULL-catmap.patch @@ -0,0 +1,95 @@ +From MAILER-DAEMON Tue May 12 19:31:23 2020 +From: Paolo Abeni +To: netdev@vger.kernel.org +Cc: "David S. Miller" , Jakub Kicinski , linux-security-module@vger.kernel.org, Paul Moore , ppandit@redhat.com, Matthew Sheets +Subject: [PATCH net] netlabel: cope with NULL catmap +Date: Tue, 12 May 2020 14:43:14 +0200 +Message-Id: <07d99ae197bfdb2964931201db67b6cd0b38db5b.1589276729.git.pabeni@redhat.com> +Sender: owner-linux-security-module@vger.kernel.org +List-ID: +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 7bit + +The cipso and calipso code can set the MLS_CAT attribute on +successful parsing, even if the corresponding catmap has +not been allocated, as per current configuration and external +input. + +Later, selinux code tries to access the catmap if the MLS_CAT flag +is present via netlbl_catmap_getlong(). That may cause null ptr +dereference while processing incoming network traffic. + +Address the issue setting the MLS_CAT flag only if the catmap is +really allocated. Additionally let netlbl_catmap_getlong() cope +with NULL catmap. + +Fixes: ceba1832b1b2 ("calipso: Set the calipso socket label to match the secattr.") +Fixes: 4b8feff251da ("netlabel: fix the horribly broken catmap functions") +Reported-by: Matthew Sheets +Signed-off-by: Paolo Abeni +--- + net/ipv4/cipso_ipv4.c | 6 ++++-- + net/ipv6/calipso.c | 3 ++- + net/netlabel/netlabel_kapi.c | 6 ++++++ + 3 files changed, 12 insertions(+), 3 deletions(-) + +diff --git a/net/ipv4/cipso_ipv4.c b/net/ipv4/cipso_ipv4.c +index 0bd10a1f477f..a23094b050f8 100644 +--- a/net/ipv4/cipso_ipv4.c ++++ b/net/ipv4/cipso_ipv4.c +@@ -1258,7 +1258,8 @@ static int cipso_v4_parsetag_rbm(const struct cipso_v4_doi *doi_def, + return ret_val; + } + +- secattr->flags |= NETLBL_SECATTR_MLS_CAT; ++ if (secattr->attr.mls.cat) ++ secattr->flags |= NETLBL_SECATTR_MLS_CAT; + } + + return 0; +@@ -1439,7 +1440,8 @@ static int cipso_v4_parsetag_rng(const struct cipso_v4_doi *doi_def, + return ret_val; + } + +- secattr->flags |= NETLBL_SECATTR_MLS_CAT; ++ if (secattr->attr.mls.cat) ++ secattr->flags |= NETLBL_SECATTR_MLS_CAT; + } + + return 0; +diff --git a/net/ipv6/calipso.c b/net/ipv6/calipso.c +index 221c81f85cbf..8d3f66c310db 100644 +--- a/net/ipv6/calipso.c ++++ b/net/ipv6/calipso.c +@@ -1047,7 +1047,8 @@ static int calipso_opt_getattr(const unsigned char *calipso, + goto getattr_return; + } + +- secattr->flags |= NETLBL_SECATTR_MLS_CAT; ++ if (secattr->attr.mls.cat) ++ secattr->flags |= NETLBL_SECATTR_MLS_CAT; + } + + secattr->type = NETLBL_NLTYPE_CALIPSO; +diff --git a/net/netlabel/netlabel_kapi.c b/net/netlabel/netlabel_kapi.c +index 409a3ae47ce2..5e1239cef000 100644 +--- a/net/netlabel/netlabel_kapi.c ++++ b/net/netlabel/netlabel_kapi.c +@@ -734,6 +734,12 @@ int netlbl_catmap_getlong(struct netlbl_lsm_catmap *catmap, + if ((off & (BITS_PER_LONG - 1)) != 0) + return -EINVAL; + ++ /* a null catmap is equivalent to an empty one */ ++ if (!catmap) { ++ *offset = (u32)-1; ++ return 0; ++ } ++ + if (off < catmap->startbit) { + off = catmap->startbit; + *offset = off; +-- +2.21.3 + + From bb9e0f92948ac1d0885b5417604aec2633c741c1 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 14 May 2020 10:56:12 +0100 Subject: [PATCH 054/191] Fix for NIC issues on Jetson Xavier AGX --- ...-ethernet-phy-mode-for-Jetson-Xavier.patch | 102 ++++++++++++++++++ kernel.spec | 5 + 2 files changed, 107 insertions(+) create mode 100644 arm64-tegra-Fix-ethernet-phy-mode-for-Jetson-Xavier.patch diff --git a/arm64-tegra-Fix-ethernet-phy-mode-for-Jetson-Xavier.patch b/arm64-tegra-Fix-ethernet-phy-mode-for-Jetson-Xavier.patch new file mode 100644 index 000000000..860d64763 --- /dev/null +++ b/arm64-tegra-Fix-ethernet-phy-mode-for-Jetson-Xavier.patch @@ -0,0 +1,102 @@ +From patchwork Fri May 1 07:27:56 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Jon Hunter +X-Patchwork-Id: 1281134 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org + (client-ip=23.128.96.18; helo=vger.kernel.org; + envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) +Authentication-Results: ozlabs.org; + dmarc=pass (p=none dis=none) header.from=nvidia.com +Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; + unprotected) header.d=nvidia.com header.i=@nvidia.com header.a=rsa-sha256 + header.s=n1 header.b=jaB3BsED; dkim-atps=neutral +Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) + by ozlabs.org (Postfix) with ESMTP id 49D3l15Pl7z9sTP + for ; Fri, 1 May 2020 17:28:29 +1000 (AEST) +Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand + id S1728212AbgEAH20 (ORCPT ); + Fri, 1 May 2020 03:28:26 -0400 +Received: from hqnvemgate26.nvidia.com ([216.228.121.65]:1347 "EHLO + hqnvemgate26.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org + with ESMTP id S1726452AbgEAH20 (ORCPT + ); Fri, 1 May 2020 03:28:26 -0400 +Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by + hqnvemgate26.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) + id ; Fri, 01 May 2020 00:28:13 -0700 +Received: from hqmail.nvidia.com ([172.20.161.6]) + by hqpgpgate101.nvidia.com (PGP Universal service); + Fri, 01 May 2020 00:28:25 -0700 +X-PGP-Universal: processed; + by hqpgpgate101.nvidia.com on Fri, 01 May 2020 00:28:25 -0700 +Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL109.nvidia.com + (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 1 May + 2020 07:28:25 +0000 +Received: from hqnvemgw03.nvidia.com (10.124.88.68) by HQMAIL109.nvidia.com + (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend + Transport; Fri, 1 May 2020 07:28:25 +0000 +Received: from moonraker.nvidia.com (Not Verified[10.26.73.165]) by + hqnvemgw03.nvidia.com with Trustwave SEG (v7,5,8,10121) + id ; Fri, 01 May 2020 00:28:25 -0700 +From: Jon Hunter +To: Thierry Reding +CC: , , + Peter Robinson , + Jon Hunter , +Subject: [PATCH] arm64: tegra: Fix ethernet phy-mode for Jetson Xavier +Date: Fri, 1 May 2020 08:27:56 +0100 +Message-ID: <20200501072756.25348-1-jonathanh@nvidia.com> +X-Mailer: git-send-email 2.17.1 +X-NVConfidentiality: public +MIME-Version: 1.0 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; + t=1588318093; bh=d+dYuOUYYG3jFlbXdN72xXUr16sgw2ePdUeUPoMzbSo=; + h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: + X-NVConfidentiality:MIME-Version:Content-Type; + b=jaB3BsEDf3Fc0WN6kwJrPRalITORiFw8jh6J6ICTotAIsVMyxupddkxZxvK2bpOpK + dw771EHWsja2buZgJ1YGA4ZmleyqFnlXDrl/r6f/yyEoBYvTDJEBlggHz1zyZ2cCSe + AemmvCRR7KOLMYq9AUpQSVz5u8zuQVezob0pIQjVZRZ1FxjXbiDILaI5mFrAnRzpg9 + IxzEPnPtX6nAMz/IM5oCiUpUCSRwSLtIQtyvQMeOgCbeINMsGMg3AuPYxohlF1QqkZ + fRZWpiuhT4RclVX+ga7roOMUpumX0hmQPA61LmkPwdd373pOsGjBOPZWwZ9GCoq1mT + EXSJdwyKZLJvQ== +Sender: linux-tegra-owner@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-tegra@vger.kernel.org + +The 'phy-mode' property is currently defined as 'rgmii' for Jetson +Xavier. This indicates that the RGMII RX and TX delays are set by the +MAC and the internal delays set by the PHY are not used. + +If the Marvell PHY driver is enabled, such that it is used and not the +generic PHY, ethernet failures are seen (DHCP is failing to obtain an +IP address) and this is caused because the Marvell PHY driver is +disabling the internal RX and TX delays. For Jetson Xavier the internal +PHY RX and TX delay should be used and so fix this by setting the +'phy-mode' to 'rgmii-id' and not 'rgmii'. + +Cc: stable@vger.kernel.org + +Signed-off-by: Jon Hunter +--- + arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi b/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi +index 623f7d7d216b..8e3136dfdd62 100644 +--- a/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi ++++ b/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi +@@ -33,7 +33,7 @@ + + phy-reset-gpios = <&gpio TEGRA194_MAIN_GPIO(G, 5) GPIO_ACTIVE_LOW>; + phy-handle = <&phy>; +- phy-mode = "rgmii"; ++ phy-mode = "rgmii-id"; + + mdio { + #address-cells = <1>; diff --git a/kernel.spec b/kernel.spec index a89cbc5ab..ce66ad47a 100644 --- a/kernel.spec +++ b/kernel.spec @@ -849,6 +849,8 @@ Patch325: backlight-lp855x-Ensure-regulators-are-disabled-on-probe-failure.patch Patch326: arm64-drm-tegra-Fix-SMMU-support-on-Tegra124-and-Tegra210.patch # http://patchwork.ozlabs.org/patch/1221384/ Patch327: PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch +# https://patchwork.ozlabs.org/patch/1281134/ +Patch328: arm64-tegra-Fix-ethernet-phy-mode-for-Jetson-Xavier.patch # Coral Patch330: arm64-dts-imx8mq-phanbell-Add-support-for-ethernet.patch @@ -3005,6 +3007,9 @@ fi # # %changelog +* Thu May 12 2020 Peter Robinson +- Fix for NIC issues on Jetson Xavier AGX + * Tue May 12 2020 Justin M. Forbes - Fix CVE-2020-10711 (rhbz 1825116 1834778) From 6d4b2486b3fa1b14f979304bfb2da49dac93d746 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 14 May 2020 12:49:51 -0500 Subject: [PATCH 055/191] Linux v5.6.13 --- ...-freeblocks-verify-in-xfs_agf_verify.patch | 107 ++++++++++++++++++ kernel.spec | 15 ++- sources | 2 +- ...log-version-before-reading-final-eve.patch | 81 +++++++++++++ 4 files changed, 202 insertions(+), 3 deletions(-) create mode 100644 0001-xfs-add-agf-freeblocks-verify-in-xfs_agf_verify.patch create mode 100644 tpm-check-event-log-version-before-reading-final-eve.patch diff --git a/0001-xfs-add-agf-freeblocks-verify-in-xfs_agf_verify.patch b/0001-xfs-add-agf-freeblocks-verify-in-xfs_agf_verify.patch new file mode 100644 index 000000000..8409a1f30 --- /dev/null +++ b/0001-xfs-add-agf-freeblocks-verify-in-xfs_agf_verify.patch @@ -0,0 +1,107 @@ +From d0c7feaf87678371c2c09b3709400be416b2dc62 Mon Sep 17 00:00:00 2001 +From: Zheng Bin +Date: Fri, 21 Feb 2020 07:38:20 -0800 +Subject: [PATCH] xfs: add agf freeblocks verify in xfs_agf_verify + +We recently used fuzz(hydra) to test XFS and automatically generate +tmp.img(XFS v5 format, but some metadata is wrong) + +xfs_repair information(just one AG): +agf_freeblks 0, counted 3224 in ag 0 +agf_longest 536874136, counted 3224 in ag 0 +sb_fdblocks 613, counted 3228 + +Test as follows: +mount tmp.img tmpdir +cp file1M tmpdir +sync + +In 4.19-stable, sync will stuck, the reason is: +xfs_mountfs + xfs_check_summary_counts + if ((!xfs_sb_version_haslazysbcount(&mp->m_sb) || + XFS_LAST_UNMOUNT_WAS_CLEAN(mp)) && + !xfs_fs_has_sickness(mp, XFS_SICK_FS_COUNTERS)) + return 0; -->just return, incore sb_fdblocks still be 613 + xfs_initialize_perag_data + +cp file1M tmpdir -->ok(write file to pagecache) +sync -->stuck(write pagecache to disk) +xfs_map_blocks + xfs_iomap_write_allocate + while (count_fsb != 0) { + nimaps = 0; + while (nimaps == 0) { --> endless loop + nimaps = 1; + xfs_bmapi_write(..., &nimaps) --> nimaps becomes 0 again +xfs_bmapi_write + xfs_bmap_alloc + xfs_bmap_btalloc + xfs_alloc_vextent + xfs_alloc_fix_freelist + xfs_alloc_space_available -->fail(agf_freeblks is 0) + +In linux-next, sync not stuck, cause commit c2b3164320b5 ("xfs: +use the latest extent at writeback delalloc conversion time") remove +the above while, dmesg is as follows: +[ 55.250114] XFS (loop0): page discard on page ffffea0008bc7380, inode 0x1b0c, offset 0. + +Users do not know why this page is discard, the better soultion is: +1. Like xfs_repair, make sure sb_fdblocks is equal to counted +(xfs_initialize_perag_data did this, who is not called at this mount) +2. Add agf verify, if fail, will tell users to repair + +This patch use the second soultion. + +Signed-off-by: Zheng Bin +Signed-off-by: Ren Xudong +Reviewed-by: Darrick J. Wong +Signed-off-by: Darrick J. Wong +--- + fs/xfs/libxfs/xfs_alloc.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c +index d8053bc96c4d..183dc2587092 100644 +--- a/fs/xfs/libxfs/xfs_alloc.c ++++ b/fs/xfs/libxfs/xfs_alloc.c +@@ -2858,6 +2858,13 @@ xfs_agf_verify( + be32_to_cpu(agf->agf_flcount) <= xfs_agfl_size(mp))) + return __this_address; + ++ if (be32_to_cpu(agf->agf_length) > mp->m_sb.sb_dblocks) ++ return __this_address; ++ ++ if (be32_to_cpu(agf->agf_freeblks) < be32_to_cpu(agf->agf_longest) || ++ be32_to_cpu(agf->agf_freeblks) > be32_to_cpu(agf->agf_length)) ++ return __this_address; ++ + if (be32_to_cpu(agf->agf_levels[XFS_BTNUM_BNO]) < 1 || + be32_to_cpu(agf->agf_levels[XFS_BTNUM_CNT]) < 1 || + be32_to_cpu(agf->agf_levels[XFS_BTNUM_BNO]) > XFS_BTREE_MAXLEVELS || +@@ -2869,6 +2876,10 @@ xfs_agf_verify( + be32_to_cpu(agf->agf_levels[XFS_BTNUM_RMAP]) > XFS_BTREE_MAXLEVELS)) + return __this_address; + ++ if (xfs_sb_version_hasrmapbt(&mp->m_sb) && ++ be32_to_cpu(agf->agf_rmap_blocks) > be32_to_cpu(agf->agf_length)) ++ return __this_address; ++ + /* + * during growfs operations, the perag is not fully initialised, + * so we can't use it for any useful checking. growfs ensures we can't +@@ -2882,6 +2893,11 @@ xfs_agf_verify( + be32_to_cpu(agf->agf_btreeblks) > be32_to_cpu(agf->agf_length)) + return __this_address; + ++ if (xfs_sb_version_hasreflink(&mp->m_sb) && ++ be32_to_cpu(agf->agf_refcount_blocks) > ++ be32_to_cpu(agf->agf_length)) ++ return __this_address; ++ + if (xfs_sb_version_hasreflink(&mp->m_sb) && + (be32_to_cpu(agf->agf_refcount_level) < 1 || + be32_to_cpu(agf->agf_refcount_level) > XFS_BTREE_MAXLEVELS)) +-- +2.26.2 + diff --git a/kernel.spec b/kernel.spec index ce66ad47a..b187fb968 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 12 +%define stable_update 13 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -911,6 +911,12 @@ Patch512: drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch # CVE-2020-10711 rhbz 1825116 1834778 Patch513: net-netlabel-cope-with-NULL-catmap.patch +#rhbz 1779611 +Patch514: tpm-check-event-log-version-before-reading-final-eve.patch + +# CVE-2020-12655 rhbz 1832543 1832545 +Patch515: 0001-xfs-add-agf-freeblocks-verify-in-xfs_agf_verify.patch + # END OF PATCH DEFINITIONS %endif @@ -3007,7 +3013,12 @@ fi # # %changelog -* Thu May 12 2020 Peter Robinson +* Thu May 14 2020 Justin M. Forbes - 5.6.13-300 +- Linux v5.6.13 +- Fix boot hang caused by buggy TPM support (rhbz 1779611) +- Fix CVE-2020-12655 (rhbz 1832543 1832545) + +* Thu May 14 2020 Peter Robinson - Fix for NIC issues on Jetson Xavier AGX * Tue May 12 2020 Justin M. Forbes diff --git a/sources b/sources index ebd905da4..f184fd65a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.12.xz) = e057961567d8482482ce8e27467b4fc47ddff604a3fd47f5e4f4092a29cc9ef5d180dd739f3edff91ab373108b699c04e55131722e8d4f153f4dd7e7833b48cd +SHA512 (patch-5.6.13.xz) = 10eabe59db21b0d82932b8122d3f07f12aec435900350a6d7f3e281676a1036860e24284252425c5b08fea02215166e3f65c49e5b4af8dbb7e03bcfbc6a86148 diff --git a/tpm-check-event-log-version-before-reading-final-eve.patch b/tpm-check-event-log-version-before-reading-final-eve.patch new file mode 100644 index 000000000..9668c807b --- /dev/null +++ b/tpm-check-event-log-version-before-reading-final-eve.patch @@ -0,0 +1,81 @@ +From MAILER-DAEMON Thu May 14 17:38:32 2020 +From: Loïc Yhuel +To: linux-integrity@vger.kernel.org +Cc: matthewgarrett@google.com, ardb@kernel.org, jarkko.sakkinen@linux.intel.com, javierm@redhat.com, Loïc Yhuel +Subject: [PATCH] tpm: check event log version before reading final events +Date: Tue, 12 May 2020 06:01:13 +0200 +Message-Id: <20200512040113.277768-1-loic.yhuel@gmail.com> +Sender: linux-integrity-owner@vger.kernel.org +List-ID: +X-Mailing-List: linux-integrity@vger.kernel.org +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +This fixes the boot issues since 5.3 on several Dell models when the TPM +is enabled. Depending on the exact grub binary, booting the kernel would +freeze early, or just report an error parsing the final events log. + +We get an event log in the SHA-1 format, which doesn't have a +tcg_efi_specid_event_head in the first event, and there is a final events +table which doesn't match the crypto agile format. +__calc_tpm2_event_size reads bad "count" and "efispecid->num_algs", and +either fails, or loops long enough for the machine to be appear frozen. + +So we now only parse the final events table, which is per the spec always +supposed to be in the crypto agile format, when we got a event log in this +format. + +Fixes: 166a2809d65b2 ("tpm: Don't duplicate events from the final event log in the TCG2 log") +Fixes: c46f3405692de ("tpm: Reserve the TPM final events table") +Signed-off-by: Loïc Yhuel +Reviewed-by: Javier Martinez Canillas +Reviewed-by: Jerry Snitselaar +Reviewed-by: Matthew Garrett +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1779611 +--- + drivers/firmware/efi/libstub/tpm.c | 5 +++-- + drivers/firmware/efi/tpm.c | 3 ++- + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/drivers/firmware/efi/libstub/tpm.c b/drivers/firmware/efi/libstub/tpm.c +index 1d59e103a2e3..e9a684637b70 100644 +--- a/drivers/firmware/efi/libstub/tpm.c ++++ b/drivers/firmware/efi/libstub/tpm.c +@@ -54,7 +54,7 @@ void efi_retrieve_tpm2_eventlog(void) + efi_status_t status; + efi_physical_addr_t log_location = 0, log_last_entry = 0; + struct linux_efi_tpm_eventlog *log_tbl = NULL; +- struct efi_tcg2_final_events_table *final_events_table; ++ struct efi_tcg2_final_events_table *final_events_table = NULL; + unsigned long first_entry_addr, last_entry_addr; + size_t log_size, last_entry_size; + efi_bool_t truncated; +@@ -127,7 +127,8 @@ void efi_retrieve_tpm2_eventlog(void) + * Figure out whether any events have already been logged to the + * final events structure, and if so how much space they take up + */ +- final_events_table = get_efi_config_table(LINUX_EFI_TPM_FINAL_LOG_GUID); ++ if (version == EFI_TCG2_EVENT_LOG_FORMAT_TCG_2) ++ final_events_table = get_efi_config_table(LINUX_EFI_TPM_FINAL_LOG_GUID); + if (final_events_table && final_events_table->nr_events) { + struct tcg_pcr_event2_head *header; + int offset; +diff --git a/drivers/firmware/efi/tpm.c b/drivers/firmware/efi/tpm.c +index 55b031d2c989..77e101a395e7 100644 +--- a/drivers/firmware/efi/tpm.c ++++ b/drivers/firmware/efi/tpm.c +@@ -62,7 +62,8 @@ int __init efi_tpm_eventlog_init(void) + tbl_size = sizeof(*log_tbl) + log_tbl->size; + memblock_reserve(efi.tpm_log, tbl_size); + +- if (efi.tpm_final_log == EFI_INVALID_TABLE_ADDR) ++ if (efi.tpm_final_log == EFI_INVALID_TABLE_ADDR || ++ log_tbl->version != EFI_TCG2_EVENT_LOG_FORMAT_TCG_2) + goto out; + + final_tbl = early_memremap(efi.tpm_final_log, sizeof(*final_tbl)); +-- +2.26.2 + + From b274728eec18505162ee3b162a784d23dda8377e Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 18 May 2020 17:06:17 +0200 Subject: [PATCH 056/191] Add patch fixing backlight control on Cherry Trail devices (rhbz 1828927) --- ..._state-runtime-pm-reference-handling.patch | 100 ++++++++++++++++++ kernel.spec | 6 ++ 2 files changed, 106 insertions(+) create mode 100644 0001-pwm-lpss-Fix-get_state-runtime-pm-reference-handling.patch diff --git a/0001-pwm-lpss-Fix-get_state-runtime-pm-reference-handling.patch b/0001-pwm-lpss-Fix-get_state-runtime-pm-reference-handling.patch new file mode 100644 index 000000000..f5232e408 --- /dev/null +++ b/0001-pwm-lpss-Fix-get_state-runtime-pm-reference-handling.patch @@ -0,0 +1,100 @@ +From 3666fb55d53fb40f75ec4d665416fed1a714ef09 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 12 May 2020 00:39:24 +0200 +Subject: [PATCH] pwm: lpss: Fix get_state runtime-pm reference handling + +Before commit cfc4c189bc70 ("pwm: Read initial hardware state at request +time"), a driver's get_state callback would get called once per PWM from +pwmchip_add(). + +pwm-lpss' runtime-pm code was relying on this, getting a runtime-pm ref for +PWMs which are enabled at probe time from within its get_state callback, +before enabling runtime-pm. + +The change to calling get_state at request time causes a number of +problems: + +1. PWMs enabled at probe time may get runtime suspended before they are +requested, causing e.g. a LCD backlight controlled by the PWM to turn off. + +2. When the request happens when the PWM has been runtime suspended, the +ctrl register will read all 1 / 0xffffffff, causing get_state to store +bogus values in the pwm_state. + +3. get_state was using an async pm_runtime_get() call, because it assumed +that runtime-pm has not been enabled yet. If shortly after the request an +apply call is made, then the pwm_lpss_is_updating() check may trigger +because the resume triggered by the pm_runtime_get() call is not complete +yet, so the ctrl register still reads all 1 / 0xffffffff. + +This commit fixes these issues by moving the initial pm_runtime_get() call +for PWMs which are enabled at probe time to the pwm_lpss_probe() function; +and by making get_state take a runtime-pm ref before reading the ctrl reg. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1828927 +Fixes: cfc4c189bc70 ("pwm: Read initial hardware state at request time") +Cc: stable@vger.kernel.org +Reviewed-by: Andy Shevchenko +Signed-off-by: Hans de Goede +Upstream Status: https://lore.kernel.org/linux-acpi/5f15f6bc-8650-d86e-893f-0d41557c57c7@redhat.com/ +--- + drivers/pwm/pwm-lpss.c | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +diff --git a/drivers/pwm/pwm-lpss.c b/drivers/pwm/pwm-lpss.c +index 75bbfe5f3bc2..9d965ffe66d1 100644 +--- a/drivers/pwm/pwm-lpss.c ++++ b/drivers/pwm/pwm-lpss.c +@@ -158,7 +158,6 @@ static int pwm_lpss_apply(struct pwm_chip *chip, struct pwm_device *pwm, + return 0; + } + +-/* This function gets called once from pwmchip_add to get the initial state */ + static void pwm_lpss_get_state(struct pwm_chip *chip, struct pwm_device *pwm, + struct pwm_state *state) + { +@@ -167,6 +166,8 @@ static void pwm_lpss_get_state(struct pwm_chip *chip, struct pwm_device *pwm, + unsigned long long base_unit, freq, on_time_div; + u32 ctrl; + ++ pm_runtime_get_sync(chip->dev); ++ + base_unit_range = BIT(lpwm->info->base_unit_bits); + + ctrl = pwm_lpss_read(pwm); +@@ -187,8 +188,7 @@ static void pwm_lpss_get_state(struct pwm_chip *chip, struct pwm_device *pwm, + state->polarity = PWM_POLARITY_NORMAL; + state->enabled = !!(ctrl & PWM_ENABLE); + +- if (state->enabled) +- pm_runtime_get(chip->dev); ++ pm_runtime_put(chip->dev); + } + + static const struct pwm_ops pwm_lpss_ops = { +@@ -202,7 +202,8 @@ struct pwm_lpss_chip *pwm_lpss_probe(struct device *dev, struct resource *r, + { + struct pwm_lpss_chip *lpwm; + unsigned long c; +- int ret; ++ int i, ret; ++ u32 ctrl; + + if (WARN_ON(info->npwm > MAX_PWMS)) + return ERR_PTR(-ENODEV); +@@ -232,6 +233,12 @@ struct pwm_lpss_chip *pwm_lpss_probe(struct device *dev, struct resource *r, + return ERR_PTR(ret); + } + ++ for (i = 0; i < lpwm->info->npwm; i++) { ++ ctrl = pwm_lpss_read(&lpwm->chip.pwms[i]); ++ if (ctrl & PWM_ENABLE) ++ pm_runtime_get(dev); ++ } ++ + return lpwm; + } + EXPORT_SYMBOL_GPL(pwm_lpss_probe); +-- +2.26.2 + diff --git a/kernel.spec b/kernel.spec index b187fb968..9302e5434 100644 --- a/kernel.spec +++ b/kernel.spec @@ -917,6 +917,9 @@ Patch514: tpm-check-event-log-version-before-reading-final-eve.patch # CVE-2020-12655 rhbz 1832543 1832545 Patch515: 0001-xfs-add-agf-freeblocks-verify-in-xfs_agf_verify.patch +# rhbz 1828927 No backlight control on CHT devices, patch posted upstream +Patch516: 0001-pwm-lpss-Fix-get_state-runtime-pm-reference-handling.patch + # END OF PATCH DEFINITIONS %endif @@ -3013,6 +3016,9 @@ fi # # %changelog +* Mon May 18 2020 Hans de Goede +- Add patch fixing backlight control on Cherry Trail devices (rhbz 1828927) + * Thu May 14 2020 Justin M. Forbes - 5.6.13-300 - Linux v5.6.13 - Fix boot hang caused by buggy TPM support (rhbz 1779611) From 4ff7e4797db7b3415330b8780b18d512849f0d77 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 18 May 2020 17:23:45 -0500 Subject: [PATCH 057/191] Fix stability issue with the jetson-tk1 NIC --- ...ert-raw_violation_fixup-for-tegra124.patch | 144 ++++++++++++++++++ kernel.spec | 6 + 2 files changed, 150 insertions(+) create mode 100644 RFC-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch diff --git a/RFC-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch b/RFC-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch new file mode 100644 index 000000000..3142df6dc --- /dev/null +++ b/RFC-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch @@ -0,0 +1,144 @@ +From patchwork Mon Apr 20 16:43:04 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Nicolas Chauvet +X-Patchwork-Id: 1273561 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org + (client-ip=23.128.96.18; helo=vger.kernel.org; + envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) +Authentication-Results: ozlabs.org; + dmarc=pass (p=none dis=none) header.from=gmail.com +Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; + unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 + header.s=20161025 header.b=TzeKBoiR; dkim-atps=neutral +Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) + by ozlabs.org (Postfix) with ESMTP id 495XZC49yWz9sP7 + for ; Tue, 21 Apr 2020 02:43:15 +1000 (AEST) +Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand + id S1726731AbgDTQnK (ORCPT ); + Mon, 20 Apr 2020 12:43:10 -0400 +Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42314 "EHLO + lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) + by vger.kernel.org with ESMTP id S1726693AbgDTQnI (ORCPT + ); + Mon, 20 Apr 2020 12:43:08 -0400 +Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com + [IPv6:2a00:1450:4864:20::342]) + by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6ED4CC061A0C; + Mon, 20 Apr 2020 09:43:08 -0700 (PDT) +Received: by mail-wm1-x342.google.com with SMTP id x25so280061wmc.0; + Mon, 20 Apr 2020 09:43:08 -0700 (PDT) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; + h=from:to:cc:subject:date:message-id:mime-version + :content-transfer-encoding; + bh=IHuj1FiuJPknu8Z7Uq/JeXw8aSg2xFkcoVYT3QRT6dA=; + b=TzeKBoiR2hu1L+OGuVzAMrvuOnCDM+J1nsGD1QbB9tkwdgx5rUc3jCkTzkFKQpJZ+g + jx96zAcsJH7FSzAMjcpWTgiixmPWJj0xuWXML6IW4oVt5Npm6F2D8UyjZyfgnUKcGU/k + Ye+bmwRUMi6cBC1Jpn93V5znfun/KPJFuOi1qLjh4g9rRAQWp4o4mZYTnxBkkMhi63gU + V7L+RQlj4buS+IXOZ/xi5chAd/gFJkADDOm8HVDAcIG6pEUCkXciuRiNL3f81ss3nwjq + uQQg7uRc8wXqOP1IqZ+W8kYP25Bty+uiykVyhv6XfOg0vWk4GK+wnM0wcP7boPe8Y8sS + dTLg== +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20161025; + h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version + :content-transfer-encoding; + bh=IHuj1FiuJPknu8Z7Uq/JeXw8aSg2xFkcoVYT3QRT6dA=; + b=YcZCjbicKhCKe1SzKhwIcD9gZI/8J/QS/LQk4lcoLCwcSjlg9p0O/m5t80TGXT4lcn + wFh0VyY+SsMR6uXCPrN8QXYbEY6fFVxEY2+btKzt+ft0v4jQUljopKGOV6n85FRs89U4 + DrjNPXoL7izbuheb/tW9ZBrrMTLQ1btIJ/MiAZ2gKtlrachezXQjW1Gtn66/hEpIQybL + 9ctDGvygIAju/Yd9fx+cakfzPUGzKTc/yOhjKjbMfxF6YxTbdqPc08+0a3cOYoSoRKLE + i/drXsQpQhJHOhzZWXinld37vEHc/1pa/HYv3QR+UAproGfZq4eGqBh6cIYY87fW7nHk + lsmg== +X-Gm-Message-State: AGi0PuYqEn+eRXnjHmfYwoSYQUy0ZK+SX7Vpbgu/XErfwPhXok1ZAmWe + N87IAyxXhJOQCMJxw6TgfSo= +X-Google-Smtp-Source: APiQypLsj3XpHj4CyxtmOjlqdZs3DB8oJEEo2ghhT6QywH/SywA9LShfe1OCbQ3t6MmEGWRd+WIiVw== +X-Received: by 2002:a1c:41d7:: with SMTP id o206mr194590wma.89.1587400987185; + Mon, 20 Apr 2020 09:43:07 -0700 (PDT) +Received: from arrakis.kwizart.net (lfbn-nic-1-185-211.w2-15.abo.wanadoo.fr. + [2.15.34.211]) + by smtp.gmail.com with ESMTPSA id l4sm47922wrv.60.2020.04.20.09.43.05 + (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); + Mon, 20 Apr 2020 09:43:06 -0700 (PDT) +From: Nicolas Chauvet +To: Manikanta Maddireddy , + Thierry Reding , + Jonathan Hunter +Cc: Lorenzo Pieralisi , + linux-tegra@vger.kernel.org, linux-pci@vger.kernel.org, + Nicolas Chauvet +Subject: [RFC] PCI: tegra: Revert raw_violation_fixup for tegra124 +Date: Mon, 20 Apr 2020 18:43:04 +0200 +Message-Id: <20200420164304.28810-1-kwizart@gmail.com> +X-Mailer: git-send-email 2.25.2 +MIME-Version: 1.0 +Sender: linux-tegra-owner@vger.kernel.org +Precedence: bulk +List-ID: +X-Mailing-List: linux-tegra@vger.kernel.org + +As reported in https://bugzilla.kernel.org/206217 , raw_violation_fixup +is causing more harm than good in some common use-cases. + +This patch as RFC is a partial revert of the 191cd6fb5 commit: + "PCI: tegra: Add SW fixup for RAW violations" +that was first introduced in 5.3 kernel. +This fix the following regression since then. + + +When using both the network NIC and I/O on MMC this can lead to the +following message on jetson-tk1: + + NETDEV WATCHDOG: enp1s0 (r8169): transmit queue 0 timed out + +and + + pcieport 0000:00:02.0: AER: Uncorrected (Non-Fatal) error received: 0000:01:00.0 + r8169 0000:01:00.0: AER: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, (Requester ID) + r8169 0000:01:00.0: AER: device [10ec:8168] error status/mask=00004000/00400000 + r8169 0000:01:00.0: AER: [14] CmpltTO (First) + r8169 0000:01:00.0: AER: can't recover (no error_detected callback) + pcieport 0000:00:02.0: AER: device recovery failed + + +After that, the ethernet NIC isn't functional anymore even after reloading +the module. +After a reboot, this is reproducible by copying a large file over the +ethernet NIC to the MMC. +For some reasons this cannot be reproduced when the same file is copied +to a tmpfs. + + +This patch is RFC because it requires more understanding from Nvidia. + - Is the fixup (available in l4t downstrem) still needed for upstream ? + - Is there a need to update the fixup values for upstream ? + - If the fixup is reverted, does the hw bug can still be seen with + upstream ? + +Others can also provides more understanding: + - Conditions to reproduce the bug (or not)... + + +Signed-off-by: Nicolas Chauvet +Reviewed-by: Manikanta Maddireddy +--- + drivers/pci/controller/pci-tegra.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/pci/controller/pci-tegra.c b/drivers/pci/controller/pci-tegra.c +index 3e64ba6a36a8..4027e074094a 100644 +--- a/drivers/pci/controller/pci-tegra.c ++++ b/drivers/pci/controller/pci-tegra.c +@@ -2470,7 +2470,7 @@ static const struct tegra_pcie_soc tegra124_pcie = { + .program_uphy = true, + .update_clamp_threshold = true, + .program_deskew_time = false, +- .raw_violation_fixup = true, ++ .raw_violation_fixup = false, + .update_fc_timer = false, + .has_cache_bars = false, + .ectl.enable = false, diff --git a/kernel.spec b/kernel.spec index 9302e5434..3dbcb7921 100644 --- a/kernel.spec +++ b/kernel.spec @@ -920,6 +920,9 @@ Patch515: 0001-xfs-add-agf-freeblocks-verify-in-xfs_agf_verify.patch # rhbz 1828927 No backlight control on CHT devices, patch posted upstream Patch516: 0001-pwm-lpss-Fix-get_state-runtime-pm-reference-handling.patch +# kernel.org bz 206217 +Patch517: RFC-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch + # END OF PATCH DEFINITIONS %endif @@ -3016,6 +3019,9 @@ fi # # %changelog +* Mon May 18 2020 Justin M. Forbes +- Fix stability issue with the jetson-tk1 NIC + * Mon May 18 2020 Hans de Goede - Add patch fixing backlight control on Cherry Trail devices (rhbz 1828927) From f2c63d1549c928c31aaa468a79063b76b0d2f4fa Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 20 May 2020 12:17:10 -0500 Subject: [PATCH 058/191] Linux v5.6.14 --- ...MMU-support-on-Tegra124-and-Tegra210.patch | 320 ------- kernel.spec | 17 +- sources | 2 +- ...-kernel-user-page-attribute-mismatch.patch | 104 --- ...-user-access-to-disabled-device-MMIO.patch | 857 ++++++++++++++++++ 5 files changed, 866 insertions(+), 434 deletions(-) delete mode 100644 arm64-drm-tegra-Fix-SMMU-support-on-Tegra124-and-Tegra210.patch delete mode 100644 usb-usbfs-correct-kernel-user-page-attribute-mismatch.patch create mode 100644 vfio-pci-block-user-access-to-disabled-device-MMIO.patch diff --git a/arm64-drm-tegra-Fix-SMMU-support-on-Tegra124-and-Tegra210.patch b/arm64-drm-tegra-Fix-SMMU-support-on-Tegra124-and-Tegra210.patch deleted file mode 100644 index 3d43cd710..000000000 --- a/arm64-drm-tegra-Fix-SMMU-support-on-Tegra124-and-Tegra210.patch +++ /dev/null @@ -1,320 +0,0 @@ -From patchwork Wed Mar 25 20:16:03 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Thierry Reding -X-Patchwork-Id: 1261638 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; spf=none (no SPF record) - smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; - helo=vger.kernel.org; - envelope-from=linux-tegra-owner@vger.kernel.org; - receiver=) -Authentication-Results: ozlabs.org; - dmarc=pass (p=none dis=none) header.from=gmail.com -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=gmail.com header.i=@gmail.com - header.a=rsa-sha256 header.s=20161025 header.b=sj7XVrax; - dkim-atps=neutral -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by ozlabs.org (Postfix) with ESMTP id 48nfWs1X7mz9sRf - for ; - Thu, 26 Mar 2020 07:16:09 +1100 (AEDT) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1727374AbgCYUQI (ORCPT ); - Wed, 25 Mar 2020 16:16:08 -0400 -Received: from mail-wm1-f68.google.com ([209.85.128.68]:50585 "EHLO - mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1727328AbgCYUQI (ORCPT - ); - Wed, 25 Mar 2020 16:16:08 -0400 -Received: by mail-wm1-f68.google.com with SMTP id d198so4073496wmd.0 - for ; - Wed, 25 Mar 2020 13:16:07 -0700 (PDT) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; - h=from:to:cc:subject:date:message-id:mime-version - :content-transfer-encoding; - bh=yPLnagV0XBnTWT+nGjtRaD+LnSq2BqmeAJnp8U+CWPw=; - b=sj7XVraxdwiyRAeepEQ0wy1nLUUH6vcloNotxoFwaAZmvU2GILePtp+OM8VZxzmSg1 - qVjos+BzgdtxI0QGYvlsRwZJmw1PdwfTDzM8kMKmP2AfXDgnFG7LZsGZnzTmdPqErqG6 - RfQwpZiPunHplEvI/epnPHACQlV9HoX+teAIWP9gyJkMYwBCVOirkfv4yGqGZWyEciZ2 - yM5mGeUZ/OprHtVVEEuF5yb50CJm8cBEHBMr2ooS+0jm+avVEG8DKe9QM2nWgJB7+TXH - 7+iryK1A4PDr9L6syw0p6sAbkFd2+P/p44d/rqsKPWTQG0lkd0cgRHx9fVPls/P4Snyr - JwCA== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20161025; - h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version - :content-transfer-encoding; - bh=yPLnagV0XBnTWT+nGjtRaD+LnSq2BqmeAJnp8U+CWPw=; - b=HWu2t1YnW/GoMLlkfp6ZQha8CvUnfMi/OK1zsN3hDtTtMLwVQL9YBFPvXYfAASIGzA - qXmgdbIdQmwOXRxlDmgcXk8KcOJmvnJTSoE+GPeLrKGVq9h2c6XLINshs7RDWqY7//GM - /NMVkESX/sVh5qVQYVzsQOBWAsLkwpVAmt3lJ81XrCGdA/L5aN2FWOftTWJWoStgtHuB - 9N27ffBkV8/72gDCcGxM/lJlfxMBcfPIEMDGWlErsl2U/EPtF+e5AH1kF9/a+lImxa1h - vBlXvgfPKazfOLm1jA809U0QJrCy5bmTOJsaLqnkLPNJRyvlY6JZqk8a1Wc4u6l44uoI - 4l3g== -X-Gm-Message-State: ANhLgQ0GzmzHn/uC4G4GzXRW/D8i6fcQ7Y04Wxx+yBOvoeixp0lD9PYD - 9Q7E3Ezt7uCnfh5D41Ym8jY= -X-Google-Smtp-Source: ADFU+vvV+Qjqcd+wksczhsC9MSisSEM36LfhftNulFkmYxqwCfpDcq22YDEoWHYpgjaXwwZC4lgCyg== -X-Received: by 2002:a7b:c842:: with SMTP id c2mr5416219wml.154.1585167366416; - Wed, 25 Mar 2020 13:16:06 -0700 (PDT) -Received: from localhost - (p200300E41F4A9B0076D02BFFFE273F51.dip0.t-ipconnect.de. - [2003:e4:1f4a:9b00:76d0:2bff:fe27:3f51]) - by smtp.gmail.com with ESMTPSA id - i4sm132568wrm.32.2020.03.25.13.16.05 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Wed, 25 Mar 2020 13:16:05 -0700 (PDT) -From: Thierry Reding -To: Thierry Reding -Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org -Subject: [PATCH 1/2] drm/tegra: Fix SMMU support on Tegra124 and Tegra210 -Date: Wed, 25 Mar 2020 21:16:03 +0100 -Message-Id: <20200325201604.833898-1-thierry.reding@gmail.com> -X-Mailer: git-send-email 2.24.1 -MIME-Version: 1.0 -Sender: linux-tegra-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-tegra@vger.kernel.org - -From: Thierry Reding - -When testing whether or not to enable the use of the SMMU, consult the -supported DMA mask rather than the actually configured DMA mask, since -the latter might already have been restricted. - -Fixes: 2d9384ff9177 ("drm/tegra: Relax IOMMU usage criteria on old Tegra") -Signed-off-by: Thierry Reding -Tested-by: Jon Hunter ---- - drivers/gpu/drm/tegra/drm.c | 3 ++- - drivers/gpu/host1x/dev.c | 13 +++++++++++++ - include/linux/host1x.h | 3 +++ - 3 files changed, 18 insertions(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c -index bd268028fb3d..583cd6e0ae27 100644 ---- a/drivers/gpu/drm/tegra/drm.c -+++ b/drivers/gpu/drm/tegra/drm.c -@@ -1039,6 +1039,7 @@ void tegra_drm_free(struct tegra_drm *tegra, size_t size, void *virt, - - static bool host1x_drm_wants_iommu(struct host1x_device *dev) - { -+ struct host1x *host1x = dev_get_drvdata(dev->dev.parent); - struct iommu_domain *domain; - - /* -@@ -1076,7 +1077,7 @@ static bool host1x_drm_wants_iommu(struct host1x_device *dev) - * sufficient and whether or not the host1x is attached to an IOMMU - * doesn't matter. - */ -- if (!domain && dma_get_mask(dev->dev.parent) <= DMA_BIT_MASK(32)) -+ if (!domain && host1x_get_dma_mask(host1x) <= DMA_BIT_MASK(32)) - return true; - - return domain != NULL; -diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c -index 388bcc2889aa..40a4b9f8b861 100644 ---- a/drivers/gpu/host1x/dev.c -+++ b/drivers/gpu/host1x/dev.c -@@ -502,6 +502,19 @@ static void __exit tegra_host1x_exit(void) - } - module_exit(tegra_host1x_exit); - -+/** -+ * host1x_get_dma_mask() - query the supported DMA mask for host1x -+ * @host1x: host1x instance -+ * -+ * Note that this returns the supported DMA mask for host1x, which can be -+ * different from the applicable DMA mask under certain circumstances. -+ */ -+u64 host1x_get_dma_mask(struct host1x *host1x) -+{ -+ return host1x->info->dma_mask; -+} -+EXPORT_SYMBOL(host1x_get_dma_mask); -+ - MODULE_AUTHOR("Thierry Reding "); - MODULE_AUTHOR("Terje Bergstrom "); - MODULE_DESCRIPTION("Host1x driver for Tegra products"); -diff --git a/include/linux/host1x.h b/include/linux/host1x.h -index 62d216ff1097..c230b4e70d75 100644 ---- a/include/linux/host1x.h -+++ b/include/linux/host1x.h -@@ -17,9 +17,12 @@ enum host1x_class { - HOST1X_CLASS_GR3D = 0x60, - }; - -+struct host1x; - struct host1x_client; - struct iommu_group; - -+u64 host1x_get_dma_mask(struct host1x *host1x); -+ - /** - * struct host1x_client_ops - host1x client operations - * @init: host1x client initialization code - -From patchwork Wed Mar 25 20:16:04 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Thierry Reding -X-Patchwork-Id: 1261639 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; spf=none (no SPF record) - smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; - helo=vger.kernel.org; - envelope-from=linux-tegra-owner@vger.kernel.org; - receiver=) -Authentication-Results: ozlabs.org; - dmarc=pass (p=none dis=none) header.from=gmail.com -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=gmail.com header.i=@gmail.com - header.a=rsa-sha256 header.s=20161025 header.b=XXUz449u; - dkim-atps=neutral -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by ozlabs.org (Postfix) with ESMTP id 48nfWw6NvSz9sPk - for ; - Thu, 26 Mar 2020 07:16:12 +1100 (AEDT) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1727316AbgCYUQM (ORCPT ); - Wed, 25 Mar 2020 16:16:12 -0400 -Received: from mail-wr1-f65.google.com ([209.85.221.65]:33914 "EHLO - mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1727328AbgCYUQM (ORCPT - ); - Wed, 25 Mar 2020 16:16:12 -0400 -Received: by mail-wr1-f65.google.com with SMTP id 65so4990084wrl.1 - for ; - Wed, 25 Mar 2020 13:16:09 -0700 (PDT) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; - h=from:to:cc:subject:date:message-id:in-reply-to:references - :mime-version:content-transfer-encoding; - bh=aW1zxIHiei+l8kDSE2lVXf/aMBDE/GtIkGFrQXvKkrY=; - b=XXUz449uJivXz+1lH6pKa9IvT3vUx61/skXaEyQxpkslFR268FwckKE0ryQDUx701N - hFN9ocSGCuE6bKpdgya8YmthXDASOYWZzKV0R5jms1rqgazVMF6jARv+kE4Jaj9Ek4tl - 4eTpmnHinx0xIrgGWCQbfltjb+zAE5XOGX8UCX1526r3yQQpu+OQlKZ70Tvq3pdw0zfT - URkTU8sfdTa9DCxUSsUukPcK9vKOk6XHkFleL6FisODDvXphdzzLa1TCv9UTGLrUsHSd - XDrukLto5efrUE03q5jP6ZN4xbnLDbhY6IkB7PAW1qwSPG/Eg0p0ivpJ58+QwwmBH6zF - ByDQ== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20161025; - h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to - :references:mime-version:content-transfer-encoding; - bh=aW1zxIHiei+l8kDSE2lVXf/aMBDE/GtIkGFrQXvKkrY=; - b=DIWKPWCoYx1rnX34DSkRPm2K6lR1SurVvq+IIY5Nrc9uq+E3pmXQcActG0DDAHHK8a - SgnziEvuWTeROgrlwONYq+FUZRQ6s1TRR1+qDXqAlRtdebU/cEep+LRvdzJe/qJBpPqd - SnSTR3Xntgo7EcyLRj9YqSodasylPt3OzrhuDudfTSQtKZghElLfyJV/tzgwG+OC3TD4 - RJAykZ0tgWHy7Bc1UB+z6LovuT/sgcPUSLfNqDehQWqwQeqHqXgFAomUN0CCEr2YdjkT - sCpBZPqKtb22FdDWlDiNnEkEmMPA+K4MIWbZL9VuvArjFaaBn6fBxvnX4tAKEcOiKeUy - EZXw== -X-Gm-Message-State: ANhLgQ1Vj1gSFYKgV/7jV1T3UIwTE5jasGmLOhuuGuWvjBs2xXUgieyz - VhNVgYIYU/8R/0Vx9Hv44rw= -X-Google-Smtp-Source: ADFU+vtTfrVHW69I+ZhOz8qw8xUje/j42rKoNxAP2wTt+E5WQ5s6QhBcgeHzC4Bw5Q5NdWxjLUtZ/g== -X-Received: by 2002:adf:800e:: with SMTP id 14mr5104354wrk.369.1585167368929; - Wed, 25 Mar 2020 13:16:08 -0700 (PDT) -Received: from localhost - (p200300E41F4A9B0076D02BFFFE273F51.dip0.t-ipconnect.de. - [2003:e4:1f4a:9b00:76d0:2bff:fe27:3f51]) - by smtp.gmail.com with ESMTPSA id - e9sm151985wrw.30.2020.03.25.13.16.07 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Wed, 25 Mar 2020 13:16:07 -0700 (PDT) -From: Thierry Reding -To: Thierry Reding -Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org -Subject: [PATCH 2/2] gpu: host1x: Use SMMU on Tegra124 and Tegra210 -Date: Wed, 25 Mar 2020 21:16:04 +0100 -Message-Id: <20200325201604.833898-2-thierry.reding@gmail.com> -X-Mailer: git-send-email 2.24.1 -In-Reply-To: <20200325201604.833898-1-thierry.reding@gmail.com> -References: <20200325201604.833898-1-thierry.reding@gmail.com> -MIME-Version: 1.0 -Sender: linux-tegra-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-tegra@vger.kernel.org - -From: Thierry Reding - -Tegra124 and Tegra210 support addressing more than 32 bits of physical -memory. However, since their host1x does not support the wide GATHER -opcode, they should use the SMMU if at all possible to ensure that all -the system memory can be used for command buffers, irrespective of -whether or not the host1x firewall is enabled. - -Signed-off-by: Thierry Reding -Tested-by: Jon Hunter ---- - drivers/gpu/host1x/dev.c | 46 ++++++++++++++++++++++++++++++++++++---- - 1 file changed, 42 insertions(+), 4 deletions(-) - -diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c -index 40a4b9f8b861..d24344e91922 100644 ---- a/drivers/gpu/host1x/dev.c -+++ b/drivers/gpu/host1x/dev.c -@@ -192,17 +192,55 @@ static void host1x_setup_sid_table(struct host1x *host) - } - } - -+static bool host1x_wants_iommu(struct host1x *host1x) -+{ -+ /* -+ * If we support addressing a maximum of 32 bits of physical memory -+ * and if the host1x firewall is enabled, there's no need to enable -+ * IOMMU support. This can happen for example on Tegra20, Tegra30 -+ * and Tegra114. -+ * -+ * Tegra124 and later can address up to 34 bits of physical memory and -+ * many platforms come equipped with more than 2 GiB of system memory, -+ * which requires crossing the 4 GiB boundary. But there's a catch: on -+ * SoCs before Tegra186 (i.e. Tegra124 and Tegra210), the host1x can -+ * only address up to 32 bits of memory in GATHER opcodes, which means -+ * that command buffers need to either be in the first 2 GiB of system -+ * memory (which could quickly lead to memory exhaustion), or command -+ * buffers need to be treated differently from other buffers (which is -+ * not possible with the current ABI). -+ * -+ * A third option is to use the IOMMU in these cases to make sure all -+ * buffers will be mapped into a 32-bit IOVA space that host1x can -+ * address. This allows all of the system memory to be used and works -+ * within the limitations of the host1x on these SoCs. -+ * -+ * In summary, default to enable IOMMU on Tegra124 and later. For any -+ * of the earlier SoCs, only use the IOMMU for additional safety when -+ * the host1x firewall is disabled. -+ */ -+ if (host1x->info->dma_mask <= DMA_BIT_MASK(32)) { -+ if (IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL)) -+ return false; -+ } -+ -+ return true; -+} -+ - static struct iommu_domain *host1x_iommu_attach(struct host1x *host) - { - struct iommu_domain *domain = iommu_get_domain_for_dev(host->dev); - int err; - - /* -- * If the host1x firewall is enabled, there's no need to enable IOMMU -- * support. Similarly, if host1x is already attached to an IOMMU (via -- * the DMA API), don't try to attach again. -+ * We may not always want to enable IOMMU support (for example if the -+ * host1x firewall is already enabled and we don't support addressing -+ * more than 32 bits of physical memory), so check for that first. -+ * -+ * Similarly, if host1x is already attached to an IOMMU (via the DMA -+ * API), don't try to attach again. - */ -- if (IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL) || domain) -+ if (!host1x_wants_iommu(host) || domain) - return domain; - - host->group = iommu_group_get(host->dev); diff --git a/kernel.spec b/kernel.spec index 3dbcb7921..7beaaa5a8 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 13 +%define stable_update 14 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -819,9 +819,6 @@ Patch303: ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch Patch304: ARM-tegra-usb-no-reset.patch -# https://patchwork.kernel.org/patch/11527525/ -Patch305: usb-usbfs-correct-kernel-user-page-attribute-mismatch.patch - # Raspberry Pi # https://patchwork.kernel.org/cover/11353083/ Patch310: arm64-pinctrl-bcm2835-Add-support-for-all-BCM2711-GPIOs.patch @@ -845,8 +842,6 @@ Patch321: arm64-serial-8250_tegra-Create-Tegra-specific-8250-driver.patch Patch324: regulator-pwm-Don-t-warn-on-probe-deferral.patch # http://patchwork.ozlabs.org/patch/1243112/ Patch325: backlight-lp855x-Ensure-regulators-are-disabled-on-probe-failure.patch -# https://patchwork.ozlabs.org/patch/1261638/ -Patch326: arm64-drm-tegra-Fix-SMMU-support-on-Tegra124-and-Tegra210.patch # http://patchwork.ozlabs.org/patch/1221384/ Patch327: PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch # https://patchwork.ozlabs.org/patch/1281134/ @@ -908,9 +903,6 @@ Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch Patch512: drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch -# CVE-2020-10711 rhbz 1825116 1834778 -Patch513: net-netlabel-cope-with-NULL-catmap.patch - #rhbz 1779611 Patch514: tpm-check-event-log-version-before-reading-final-eve.patch @@ -923,6 +915,9 @@ Patch516: 0001-pwm-lpss-Fix-get_state-runtime-pm-reference-handling.patch # kernel.org bz 206217 Patch517: RFC-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch +# CVE-2020-12888 rhbz 1836245 1836244 +Patch518: vfio-pci-block-user-access-to-disabled-device-MMIO.patch + # END OF PATCH DEFINITIONS %endif @@ -3019,6 +3014,10 @@ fi # # %changelog +* Wed May 20 2020 Justin M. Forbes - 5.6.14-300 +- Linux v5.6.14 +- Fix CVE-2020-12888 (rhbz 1836245 1836244) + * Mon May 18 2020 Justin M. Forbes - Fix stability issue with the jetson-tk1 NIC diff --git a/sources b/sources index f184fd65a..564d880f6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.13.xz) = 10eabe59db21b0d82932b8122d3f07f12aec435900350a6d7f3e281676a1036860e24284252425c5b08fea02215166e3f65c49e5b4af8dbb7e03bcfbc6a86148 +SHA512 (patch-5.6.14.xz) = 8019bf12993f43d5508845a48b250d30220a8db6db262c8b97cd3f7c73abf0d054fcdfacb671644de529ceb495b95982d693a889051fb60fafc3180bd5b4f29e diff --git a/usb-usbfs-correct-kernel-user-page-attribute-mismatch.patch b/usb-usbfs-correct-kernel-user-page-attribute-mismatch.patch deleted file mode 100644 index ad65b8db6..000000000 --- a/usb-usbfs-correct-kernel-user-page-attribute-mismatch.patch +++ /dev/null @@ -1,104 +0,0 @@ -From patchwork Mon May 4 20:13:48 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Jeremy Linton -X-Patchwork-Id: 11527525 -Return-Path: -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1F74F92A - for ; - Mon, 4 May 2020 20:14:04 +0000 (UTC) -Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) - by mail.kernel.org (Postfix) with ESMTP id 11A4B20746 - for ; - Mon, 4 May 2020 20:14:04 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1726756AbgEDUOB (ORCPT - ); - Mon, 4 May 2020 16:14:01 -0400 -Received: from foss.arm.com ([217.140.110.172]:52874 "EHLO foss.arm.com" - rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP - id S1726111AbgEDUOA (ORCPT ); - Mon, 4 May 2020 16:14:00 -0400 -Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) - by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5BD30101E; - Mon, 4 May 2020 13:14:00 -0700 (PDT) -Received: from mammon-tx2.austin.arm.com (mammon-tx2.austin.arm.com - [10.118.28.62]) - by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id - 52CCC3F71F; - Mon, 4 May 2020 13:14:00 -0700 (PDT) -From: Jeremy Linton -To: linux-usb@vger.kernel.org -Cc: gregkh@linuxfoundation.org, stern@rowland.harvard.edu, - git@thegavinli.com, jarkko.sakkinen@linux.intel.com, - linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, - mark.rutland@arm.com, maz@kernel.org, robin.murphy@arm.com, - Jeremy Linton -Subject: [PATCH v2] usb: usbfs: correct kernel->user page attribute mismatch -Date: Mon, 4 May 2020 15:13:48 -0500 -Message-Id: <20200504201348.1183246-1-jeremy.linton@arm.com> -X-Mailer: git-send-email 2.24.1 -MIME-Version: 1.0 -Sender: linux-usb-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-usb@vger.kernel.org - -On some architectures (e.g. arm64) requests for -IO coherent memory may use non-cachable attributes if -the relevant device isn't cache coherent. If these -pages are then remapped into userspace as cacheable, -they may not be coherent with the non-cacheable mappings. - -In particular this happens with libusb, when it attempts -to create zero-copy buffers for use by rtl-sdr -(https://github.com/osmocom/rtl-sdr/). On low end arm -devices with non-coherent USB ports, the application will -be unexpectedly killed, while continuing to work fine on -arm machines with coherent USB controllers. - -This bug has been discovered/reported a few times over -the last few years. In the case of rtl-sdr a compile time -option to enable/disable zero copy was implemented to -work around it. - -Rather than relaying on application specific workarounds, -dma_mmap_coherent() can be used instead of remap_pfn_range(). -The page cache/etc attributes will then be correctly set in -userspace to match the kernel mapping. - -Signed-off-by: Jeremy Linton ---- -v1->v2: - Update commit message and change to dma_mmap_coherent() - from dma_mmap_attr(,,,0) which are the same. - - drivers/usb/core/devio.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c -index 6833c918abce..b9db9812d6c5 100644 ---- a/drivers/usb/core/devio.c -+++ b/drivers/usb/core/devio.c -@@ -217,6 +217,7 @@ static int usbdev_mmap(struct file *file, struct vm_area_struct *vma) - { - struct usb_memory *usbm = NULL; - struct usb_dev_state *ps = file->private_data; -+ struct usb_hcd *hcd = bus_to_hcd(ps->dev->bus); - size_t size = vma->vm_end - vma->vm_start; - void *mem; - unsigned long flags; -@@ -250,9 +251,7 @@ static int usbdev_mmap(struct file *file, struct vm_area_struct *vma) - usbm->vma_use_count = 1; - INIT_LIST_HEAD(&usbm->memlist); - -- if (remap_pfn_range(vma, vma->vm_start, -- virt_to_phys(usbm->mem) >> PAGE_SHIFT, -- size, vma->vm_page_prot) < 0) { -+ if (dma_mmap_coherent(hcd->self.sysdev, vma, mem, dma_handle, size)) { - dec_usb_memory_use_count(usbm, &usbm->vma_use_count); - return -EAGAIN; - } diff --git a/vfio-pci-block-user-access-to-disabled-device-MMIO.patch b/vfio-pci-block-user-access-to-disabled-device-MMIO.patch new file mode 100644 index 000000000..f289b448f --- /dev/null +++ b/vfio-pci-block-user-access-to-disabled-device-MMIO.patch @@ -0,0 +1,857 @@ +From MAILER-DAEMON Wed May 20 15:47:40 2020 +Subject: [PATCH v2 1/3] vfio/type1: Support faulting PFNMAP vmas +From: Alex Williamson +To: kvm@vger.kernel.org +Cc: linux-kernel@vger.kernel.org, cohuck@redhat.com, jgg@ziepe.ca +Date: Tue, 05 May 2020 15:54:44 -0600 +Message-ID: <158871568480.15589.17339878308143043906.stgit@gimli.home> +In-Reply-To: <158871401328.15589.17598154478222071285.stgit@gimli.home> +References: <158871401328.15589.17598154478222071285.stgit@gimli.home> +Sender: kvm-owner@vger.kernel.org +List-ID: +X-Mailing-List: kvm@vger.kernel.org +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 7bit + +With conversion to follow_pfn(), DMA mapping a PFNMAP range depends on +the range being faulted into the vma. Add support to manually provide +that, in the same way as done on KVM with hva_to_pfn_remapped(). + +Signed-off-by: Alex Williamson +Reviewed-by: Peter Xu +--- + drivers/vfio/vfio_iommu_type1.c | 36 +++++++++++++++++++++++++++++++++--- + 1 file changed, 33 insertions(+), 3 deletions(-) + +diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c +index cc1d64765ce7..4a4cb7cd86b2 100644 +--- a/drivers/vfio/vfio_iommu_type1.c ++++ b/drivers/vfio/vfio_iommu_type1.c +@@ -317,6 +317,32 @@ static int put_pfn(unsigned long pfn, int prot) + return 0; + } + ++static int follow_fault_pfn(struct vm_area_struct *vma, struct mm_struct *mm, ++ unsigned long vaddr, unsigned long *pfn, ++ bool write_fault) ++{ ++ int ret; ++ ++ ret = follow_pfn(vma, vaddr, pfn); ++ if (ret) { ++ bool unlocked = false; ++ ++ ret = fixup_user_fault(NULL, mm, vaddr, ++ FAULT_FLAG_REMOTE | ++ (write_fault ? FAULT_FLAG_WRITE : 0), ++ &unlocked); ++ if (unlocked) ++ return -EAGAIN; ++ ++ if (ret) ++ return ret; ++ ++ ret = follow_pfn(vma, vaddr, pfn); ++ } ++ ++ return ret; ++} ++ + static int vaddr_get_pfn(struct mm_struct *mm, unsigned long vaddr, + int prot, unsigned long *pfn) + { +@@ -339,12 +365,16 @@ static int vaddr_get_pfn(struct mm_struct *mm, unsigned long vaddr, + + vaddr = untagged_addr(vaddr); + ++retry: + vma = find_vma_intersection(mm, vaddr, vaddr + 1); + + if (vma && vma->vm_flags & VM_PFNMAP) { +- if (!follow_pfn(vma, vaddr, pfn) && +- is_invalid_reserved_pfn(*pfn)) +- ret = 0; ++ ret = follow_fault_pfn(vma, mm, vaddr, pfn, prot & IOMMU_WRITE); ++ if (ret == -EAGAIN) ++ goto retry; ++ ++ if (!ret && !is_invalid_reserved_pfn(*pfn)) ++ ret = -EFAULT; + } + done: + up_read(&mm->mmap_sem); + + +From MAILER-DAEMON Wed May 20 15:47:40 2020 +Subject: [PATCH v2 2/3] vfio-pci: Fault mmaps to enable vma tracking +From: Alex Williamson +To: kvm@vger.kernel.org +Cc: linux-kernel@vger.kernel.org, cohuck@redhat.com, jgg@ziepe.ca +Date: Tue, 05 May 2020 15:54:53 -0600 +Message-ID: <158871569380.15589.16950418949340311053.stgit@gimli.home> +In-Reply-To: <158871401328.15589.17598154478222071285.stgit@gimli.home> +References: <158871401328.15589.17598154478222071285.stgit@gimli.home> +Sender: kvm-owner@vger.kernel.org +List-ID: +X-Mailing-List: kvm@vger.kernel.org +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 7bit + +Rather than calling remap_pfn_range() when a region is mmap'd, setup +a vm_ops handler to support dynamic faulting of the range on access. +This allows us to manage a list of vmas actively mapping the area that +we can later use to invalidate those mappings. The open callback +invalidates the vma range so that all tracking is inserted in the +fault handler and removed in the close handler. + +Signed-off-by: Alex Williamson +Reviewed-by: Peter Xu +--- + drivers/vfio/pci/vfio_pci.c | 76 ++++++++++++++++++++++++++++++++++- + drivers/vfio/pci/vfio_pci_private.h | 7 +++ + 2 files changed, 81 insertions(+), 2 deletions(-) + +diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c +index 6c6b37b5c04e..66a545a01f8f 100644 +--- a/drivers/vfio/pci/vfio_pci.c ++++ b/drivers/vfio/pci/vfio_pci.c +@@ -1299,6 +1299,70 @@ static ssize_t vfio_pci_write(void *device_data, const char __user *buf, + return vfio_pci_rw(device_data, (char __user *)buf, count, ppos, true); + } + ++static int vfio_pci_add_vma(struct vfio_pci_device *vdev, ++ struct vm_area_struct *vma) ++{ ++ struct vfio_pci_mmap_vma *mmap_vma; ++ ++ mmap_vma = kmalloc(sizeof(*mmap_vma), GFP_KERNEL); ++ if (!mmap_vma) ++ return -ENOMEM; ++ ++ mmap_vma->vma = vma; ++ ++ mutex_lock(&vdev->vma_lock); ++ list_add(&mmap_vma->vma_next, &vdev->vma_list); ++ mutex_unlock(&vdev->vma_lock); ++ ++ return 0; ++} ++ ++/* ++ * Zap mmaps on open so that we can fault them in on access and therefore ++ * our vma_list only tracks mappings accessed since last zap. ++ */ ++static void vfio_pci_mmap_open(struct vm_area_struct *vma) ++{ ++ zap_vma_ptes(vma, vma->vm_start, vma->vm_end - vma->vm_start); ++} ++ ++static void vfio_pci_mmap_close(struct vm_area_struct *vma) ++{ ++ struct vfio_pci_device *vdev = vma->vm_private_data; ++ struct vfio_pci_mmap_vma *mmap_vma; ++ ++ mutex_lock(&vdev->vma_lock); ++ list_for_each_entry(mmap_vma, &vdev->vma_list, vma_next) { ++ if (mmap_vma->vma == vma) { ++ list_del(&mmap_vma->vma_next); ++ kfree(mmap_vma); ++ break; ++ } ++ } ++ mutex_unlock(&vdev->vma_lock); ++} ++ ++static vm_fault_t vfio_pci_mmap_fault(struct vm_fault *vmf) ++{ ++ struct vm_area_struct *vma = vmf->vma; ++ struct vfio_pci_device *vdev = vma->vm_private_data; ++ ++ if (vfio_pci_add_vma(vdev, vma)) ++ return VM_FAULT_OOM; ++ ++ if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, ++ vma->vm_end - vma->vm_start, vma->vm_page_prot)) ++ return VM_FAULT_SIGBUS; ++ ++ return VM_FAULT_NOPAGE; ++} ++ ++static const struct vm_operations_struct vfio_pci_mmap_ops = { ++ .open = vfio_pci_mmap_open, ++ .close = vfio_pci_mmap_close, ++ .fault = vfio_pci_mmap_fault, ++}; ++ + static int vfio_pci_mmap(void *device_data, struct vm_area_struct *vma) + { + struct vfio_pci_device *vdev = device_data; +@@ -1357,8 +1421,14 @@ static int vfio_pci_mmap(void *device_data, struct vm_area_struct *vma) + vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); + vma->vm_pgoff = (pci_resource_start(pdev, index) >> PAGE_SHIFT) + pgoff; + +- return remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, +- req_len, vma->vm_page_prot); ++ /* ++ * See remap_pfn_range(), called from vfio_pci_fault() but we can't ++ * change vm_flags within the fault handler. Set them now. ++ */ ++ vma->vm_flags |= VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP; ++ vma->vm_ops = &vfio_pci_mmap_ops; ++ ++ return 0; + } + + static void vfio_pci_request(void *device_data, unsigned int count) +@@ -1608,6 +1678,8 @@ static int vfio_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) + spin_lock_init(&vdev->irqlock); + mutex_init(&vdev->ioeventfds_lock); + INIT_LIST_HEAD(&vdev->ioeventfds_list); ++ mutex_init(&vdev->vma_lock); ++ INIT_LIST_HEAD(&vdev->vma_list); + + ret = vfio_add_group_dev(&pdev->dev, &vfio_pci_ops, vdev); + if (ret) { +diff --git a/drivers/vfio/pci/vfio_pci_private.h b/drivers/vfio/pci/vfio_pci_private.h +index 36ec69081ecd..9b25f9f6ce1d 100644 +--- a/drivers/vfio/pci/vfio_pci_private.h ++++ b/drivers/vfio/pci/vfio_pci_private.h +@@ -92,6 +92,11 @@ struct vfio_pci_vf_token { + struct mutex lock; + }; + ++struct vfio_pci_mmap_vma { ++ struct vm_area_struct *vma; ++ struct list_head vma_next; ++}; ++ + struct vfio_pci_device { + struct pci_dev *pdev; + void __iomem *barmap[PCI_STD_NUM_BARS]; +@@ -132,6 +137,8 @@ struct vfio_pci_device { + struct list_head dummy_resources_list; + struct mutex ioeventfds_lock; + struct list_head ioeventfds_list; ++ struct mutex vma_lock; ++ struct list_head vma_list; + }; + + #define is_intx(vdev) (vdev->irq_type == VFIO_PCI_INTX_IRQ_INDEX) + + +From MAILER-DAEMON Wed May 20 15:47:40 2020 +Subject: [PATCH v2 3/3] vfio-pci: Invalidate mmaps and block MMIO access on disabled memory +From: Alex Williamson +To: kvm@vger.kernel.org +Cc: linux-kernel@vger.kernel.org, cohuck@redhat.com, jgg@ziepe.ca +Date: Tue, 05 May 2020 15:55:02 -0600 +Message-ID: <158871570274.15589.10563806532874116326.stgit@gimli.home> +In-Reply-To: <158871401328.15589.17598154478222071285.stgit@gimli.home> +References: <158871401328.15589.17598154478222071285.stgit@gimli.home> +Sender: kvm-owner@vger.kernel.org +List-ID: +X-Mailing-List: kvm@vger.kernel.org +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 7bit + +Accessing the disabled memory space of a PCI device would typically +result in a master abort response on conventional PCI, or an +unsupported request on PCI express. The user would generally see +these as a -1 response for the read return data and the write would be +silently discarded, possibly with an uncorrected, non-fatal AER error +triggered on the host. Some systems however take it upon themselves +to bring down the entire system when they see something that might +indicate a loss of data, such as this discarded write to a disabled +memory space. + +To avoid this, we want to try to block the user from accessing memory +spaces while they're disabled. We start with a semaphore around the +memory enable bit, where writers modify the memory enable state and +must be serialized, while readers make use of the memory region and +can access in parallel. Writers include both direct manipulation via +the command register, as well as any reset path where the internal +mechanics of the reset may both explicitly and implicitly disable +memory access, and manipulation of the MSI-X configuration, where the +MSI-X vector table resides in MMIO space of the device. Readers +include the read and write file ops to access the vfio device fd +offsets as well as memory mapped access. In the latter case, we make +use of our new vma list support to zap, or invalidate, those memory +mappings in order to force them to be faulted back in on access. + +Our semaphore usage will stall user access to MMIO spaces across +internal operations like reset, but the user might experience new +behavior when trying to access the MMIO space while disabled via the +PCI command register. Access via read or write while disabled will +return -EIO and access via memory maps will result in a SIGBUS. This +is expected to be compatible with known use cases and potentially +provides better error handling capabilities than present in the +hardware, while avoiding the more readily accessible and severe +platform error responses that might otherwise occur. + +Signed-off-by: Alex Williamson +--- + drivers/vfio/pci/vfio_pci.c | 263 +++++++++++++++++++++++++++++++---- + drivers/vfio/pci/vfio_pci_config.c | 36 ++++- + drivers/vfio/pci/vfio_pci_intrs.c | 18 ++ + drivers/vfio/pci/vfio_pci_private.h | 5 + + drivers/vfio/pci/vfio_pci_rdwr.c | 12 ++ + 5 files changed, 300 insertions(+), 34 deletions(-) + +diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c +index 66a545a01f8f..49ae9faa6099 100644 +--- a/drivers/vfio/pci/vfio_pci.c ++++ b/drivers/vfio/pci/vfio_pci.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include "vfio_pci_private.h" + +@@ -184,6 +185,7 @@ static void vfio_pci_probe_mmaps(struct vfio_pci_device *vdev) + + static void vfio_pci_try_bus_reset(struct vfio_pci_device *vdev); + static void vfio_pci_disable(struct vfio_pci_device *vdev); ++static int vfio_pci_try_zap_and_vma_lock_cb(struct pci_dev *pdev, void *data); + + /* + * INTx masking requires the ability to disable INTx signaling via PCI_COMMAND +@@ -736,6 +738,12 @@ int vfio_pci_register_dev_region(struct vfio_pci_device *vdev, + return 0; + } + ++struct vfio_devices { ++ struct vfio_device **devices; ++ int cur_index; ++ int max_index; ++}; ++ + static long vfio_pci_ioctl(void *device_data, + unsigned int cmd, unsigned long arg) + { +@@ -984,8 +992,16 @@ static long vfio_pci_ioctl(void *device_data, + return ret; + + } else if (cmd == VFIO_DEVICE_RESET) { +- return vdev->reset_works ? +- pci_try_reset_function(vdev->pdev) : -EINVAL; ++ int ret; ++ ++ if (!vdev->reset_works) ++ return -EINVAL; ++ ++ vfio_pci_zap_and_down_write_memory_lock(vdev); ++ ret = pci_try_reset_function(vdev->pdev); ++ up_write(&vdev->memory_lock); ++ ++ return ret; + + } else if (cmd == VFIO_DEVICE_GET_PCI_HOT_RESET_INFO) { + struct vfio_pci_hot_reset_info hdr; +@@ -1065,8 +1081,9 @@ static long vfio_pci_ioctl(void *device_data, + int32_t *group_fds; + struct vfio_pci_group_entry *groups; + struct vfio_pci_group_info info; ++ struct vfio_devices devs = { .cur_index = 0 }; + bool slot = false; +- int i, count = 0, ret = 0; ++ int i, group_idx, mem_idx = 0, count = 0, ret = 0; + + minsz = offsetofend(struct vfio_pci_hot_reset, count); + +@@ -1118,9 +1135,9 @@ static long vfio_pci_ioctl(void *device_data, + * user interface and store the group and iommu ID. This + * ensures the group is held across the reset. + */ +- for (i = 0; i < hdr.count; i++) { ++ for (group_idx = 0; group_idx < hdr.count; group_idx++) { + struct vfio_group *group; +- struct fd f = fdget(group_fds[i]); ++ struct fd f = fdget(group_fds[group_idx]); + if (!f.file) { + ret = -EBADF; + break; +@@ -1133,8 +1150,9 @@ static long vfio_pci_ioctl(void *device_data, + break; + } + +- groups[i].group = group; +- groups[i].id = vfio_external_user_iommu_id(group); ++ groups[group_idx].group = group; ++ groups[group_idx].id = ++ vfio_external_user_iommu_id(group); + } + + kfree(group_fds); +@@ -1153,13 +1171,63 @@ static long vfio_pci_ioctl(void *device_data, + ret = vfio_pci_for_each_slot_or_bus(vdev->pdev, + vfio_pci_validate_devs, + &info, slot); +- if (!ret) +- /* User has access, do the reset */ +- ret = pci_reset_bus(vdev->pdev); ++ if (ret) ++ goto hot_reset_release; ++ ++ devs.max_index = count; ++ devs.devices = kcalloc(count, sizeof(struct vfio_device *), ++ GFP_KERNEL); ++ if (!devs.devices) { ++ ret = -ENOMEM; ++ goto hot_reset_release; ++ } ++ ++ /* ++ * We need to get memory_lock for each device, but devices ++ * can share mmap_sem, therefore we need to zap and hold ++ * the vma_lock for each device, and only then get each ++ * memory_lock. ++ */ ++ ret = vfio_pci_for_each_slot_or_bus(vdev->pdev, ++ vfio_pci_try_zap_and_vma_lock_cb, ++ &devs, slot); ++ if (ret) ++ goto hot_reset_release; ++ ++ for (; mem_idx < devs.cur_index; mem_idx++) { ++ struct vfio_pci_device *tmp; ++ ++ tmp = vfio_device_data(devs.devices[mem_idx]); ++ ++ ret = down_write_trylock(&tmp->memory_lock); ++ if (!ret) { ++ ret = -EBUSY; ++ goto hot_reset_release; ++ } ++ mutex_unlock(&tmp->vma_lock); ++ } ++ ++ /* User has access, do the reset */ ++ ret = pci_reset_bus(vdev->pdev); + + hot_reset_release: +- for (i--; i >= 0; i--) +- vfio_group_put_external_user(groups[i].group); ++ for (i = 0; i < devs.cur_index; i++) { ++ struct vfio_device *device; ++ struct vfio_pci_device *tmp; ++ ++ device = devs.devices[i]; ++ tmp = vfio_device_data(device); ++ ++ if (i < mem_idx) ++ up_write(&tmp->memory_lock); ++ else ++ mutex_unlock(&tmp->vma_lock); ++ vfio_device_put(device); ++ } ++ kfree(devs.devices); ++ ++ for (group_idx--; group_idx >= 0; group_idx--) ++ vfio_group_put_external_user(groups[group_idx].group); + + kfree(groups); + return ret; +@@ -1299,8 +1367,107 @@ static ssize_t vfio_pci_write(void *device_data, const char __user *buf, + return vfio_pci_rw(device_data, (char __user *)buf, count, ppos, true); + } + +-static int vfio_pci_add_vma(struct vfio_pci_device *vdev, +- struct vm_area_struct *vma) ++/* Return 1 on zap and vma_lock acquired, 0 on contention (only with @try) */ ++static int vfio_pci_zap_and_vma_lock(struct vfio_pci_device *vdev, bool try) ++{ ++ struct vfio_pci_mmap_vma *mmap_vma, *tmp; ++ ++ /* ++ * Lock ordering: ++ * vma_lock is nested under mmap_sem for vm_ops callback paths. ++ * The memory_lock semaphore is used by both code paths calling ++ * into this function to zap vmas and the vm_ops.fault callback ++ * to protect the memory enable state of the device. ++ * ++ * When zapping vmas we need to maintain the mmap_sem => vma_lock ++ * ordering, which requires using vma_lock to walk vma_list to ++ * acquire an mm, then dropping vma_lock to get the mmap_sem and ++ * reacquiring vma_lock. This logic is derived from similar ++ * requirements in uverbs_user_mmap_disassociate(). ++ * ++ * mmap_sem must always be the top-level lock when it is taken. ++ * Therefore we can only hold the memory_lock write lock when ++ * vma_list is empty, as we'd need to take mmap_sem to clear ++ * entries. vma_list can only be guaranteed empty when holding ++ * vma_lock, thus memory_lock is nested under vma_lock. ++ * ++ * This enables the vm_ops.fault callback to acquire vma_lock, ++ * followed by memory_lock read lock, while already holding ++ * mmap_sem without risk of deadlock. ++ */ ++ while (1) { ++ struct mm_struct *mm = NULL; ++ ++ if (try) { ++ if (!mutex_trylock(&vdev->vma_lock)) ++ return 0; ++ } else { ++ mutex_lock(&vdev->vma_lock); ++ } ++ while (!list_empty(&vdev->vma_list)) { ++ mmap_vma = list_first_entry(&vdev->vma_list, ++ struct vfio_pci_mmap_vma, ++ vma_next); ++ mm = mmap_vma->vma->vm_mm; ++ if (mmget_not_zero(mm)) ++ break; ++ ++ list_del(&mmap_vma->vma_next); ++ kfree(mmap_vma); ++ mm = NULL; ++ } ++ if (!mm) ++ return 1; ++ mutex_unlock(&vdev->vma_lock); ++ ++ if (try) { ++ if (!down_read_trylock(&mm->mmap_sem)) { ++ mmput(mm); ++ return 0; ++ } ++ } else { ++ down_read(&mm->mmap_sem); ++ } ++ if (mmget_still_valid(mm)) { ++ if (try) { ++ if (!mutex_trylock(&vdev->vma_lock)) { ++ up_read(&mm->mmap_sem); ++ mmput(mm); ++ return 0; ++ } ++ } else { ++ mutex_lock(&vdev->vma_lock); ++ } ++ list_for_each_entry_safe(mmap_vma, tmp, ++ &vdev->vma_list, vma_next) { ++ struct vm_area_struct *vma = mmap_vma->vma; ++ ++ if (vma->vm_mm != mm) ++ continue; ++ ++ list_del(&mmap_vma->vma_next); ++ kfree(mmap_vma); ++ ++ zap_vma_ptes(vma, vma->vm_start, ++ vma->vm_end - vma->vm_start); ++ } ++ mutex_unlock(&vdev->vma_lock); ++ } ++ up_read(&mm->mmap_sem); ++ mmput(mm); ++ } ++} ++ ++void vfio_pci_zap_and_down_write_memory_lock(struct vfio_pci_device *vdev) ++{ ++ vfio_pci_zap_and_vma_lock(vdev, false); ++ down_write(&vdev->memory_lock); ++ mutex_unlock(&vdev->vma_lock); ++} ++ ++/* Caller holds vma_lock */ ++static int __vfio_pci_add_vma(struct vfio_pci_device *vdev, ++ struct vm_area_struct *vma) + { + struct vfio_pci_mmap_vma *mmap_vma; + +@@ -1309,10 +1476,7 @@ static int vfio_pci_add_vma(struct vfio_pci_device *vdev, + return -ENOMEM; + + mmap_vma->vma = vma; +- +- mutex_lock(&vdev->vma_lock); + list_add(&mmap_vma->vma_next, &vdev->vma_list); +- mutex_unlock(&vdev->vma_lock); + + return 0; + } +@@ -1346,15 +1510,32 @@ static vm_fault_t vfio_pci_mmap_fault(struct vm_fault *vmf) + { + struct vm_area_struct *vma = vmf->vma; + struct vfio_pci_device *vdev = vma->vm_private_data; ++ vm_fault_t ret = VM_FAULT_NOPAGE; + +- if (vfio_pci_add_vma(vdev, vma)) +- return VM_FAULT_OOM; ++ mutex_lock(&vdev->vma_lock); ++ down_read(&vdev->memory_lock); ++ ++ if (!__vfio_pci_memory_enabled(vdev)) { ++ ret = VM_FAULT_SIGBUS; ++ mutex_unlock(&vdev->vma_lock); ++ goto up_out; ++ } ++ ++ if (__vfio_pci_add_vma(vdev, vma)) { ++ ret = VM_FAULT_OOM; ++ mutex_unlock(&vdev->vma_lock); ++ goto up_out; ++ } ++ ++ mutex_unlock(&vdev->vma_lock); + + if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, + vma->vm_end - vma->vm_start, vma->vm_page_prot)) +- return VM_FAULT_SIGBUS; ++ ret = VM_FAULT_SIGBUS; + +- return VM_FAULT_NOPAGE; ++up_out: ++ up_read(&vdev->memory_lock); ++ return ret; + } + + static const struct vm_operations_struct vfio_pci_mmap_ops = { +@@ -1680,6 +1861,7 @@ static int vfio_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) + INIT_LIST_HEAD(&vdev->ioeventfds_list); + mutex_init(&vdev->vma_lock); + INIT_LIST_HEAD(&vdev->vma_list); ++ init_rwsem(&vdev->memory_lock); + + ret = vfio_add_group_dev(&pdev->dev, &vfio_pci_ops, vdev); + if (ret) { +@@ -1933,12 +2115,6 @@ static void vfio_pci_reflck_put(struct vfio_pci_reflck *reflck) + kref_put_mutex(&reflck->kref, vfio_pci_reflck_release, &reflck_lock); + } + +-struct vfio_devices { +- struct vfio_device **devices; +- int cur_index; +- int max_index; +-}; +- + static int vfio_pci_get_unused_devs(struct pci_dev *pdev, void *data) + { + struct vfio_devices *devs = data; +@@ -1969,6 +2145,39 @@ static int vfio_pci_get_unused_devs(struct pci_dev *pdev, void *data) + return 0; + } + ++static int vfio_pci_try_zap_and_vma_lock_cb(struct pci_dev *pdev, void *data) ++{ ++ struct vfio_devices *devs = data; ++ struct vfio_device *device; ++ struct vfio_pci_device *vdev; ++ ++ if (devs->cur_index == devs->max_index) ++ return -ENOSPC; ++ ++ device = vfio_device_get_from_dev(&pdev->dev); ++ if (!device) ++ return -EINVAL; ++ ++ if (pci_dev_driver(pdev) != &vfio_pci_driver) { ++ vfio_device_put(device); ++ return -EBUSY; ++ } ++ ++ vdev = vfio_device_data(device); ++ ++ /* ++ * Locking multiple devices is prone to deadlock, runaway and ++ * unwind if we hit contention. ++ */ ++ if (!vfio_pci_zap_and_vma_lock(vdev, true)) { ++ vfio_device_put(device); ++ return -EBUSY; ++ } ++ ++ devs->devices[devs->cur_index++] = device; ++ return 0; ++} ++ + /* + * If a bus or slot reset is available for the provided device and: + * - All of the devices affected by that bus or slot reset are unused +diff --git a/drivers/vfio/pci/vfio_pci_config.c b/drivers/vfio/pci/vfio_pci_config.c +index 90c0b80f8acf..3dcddbd572e6 100644 +--- a/drivers/vfio/pci/vfio_pci_config.c ++++ b/drivers/vfio/pci/vfio_pci_config.c +@@ -395,6 +395,14 @@ static inline void p_setd(struct perm_bits *p, int off, u32 virt, u32 write) + *(__le32 *)(&p->write[off]) = cpu_to_le32(write); + } + ++/* Caller should hold memory_lock semaphore */ ++bool __vfio_pci_memory_enabled(struct vfio_pci_device *vdev) ++{ ++ u16 cmd = le16_to_cpu(*(__le16 *)&vdev->vconfig[PCI_COMMAND]); ++ ++ return cmd & PCI_COMMAND_MEMORY; ++} ++ + /* + * Restore the *real* BARs after we detect a FLR or backdoor reset. + * (backdoor = some device specific technique that we didn't catch) +@@ -556,13 +564,18 @@ static int vfio_basic_config_write(struct vfio_pci_device *vdev, int pos, + + new_cmd = le32_to_cpu(val); + ++ phys_io = !!(phys_cmd & PCI_COMMAND_IO); ++ virt_io = !!(le16_to_cpu(*virt_cmd) & PCI_COMMAND_IO); ++ new_io = !!(new_cmd & PCI_COMMAND_IO); ++ + phys_mem = !!(phys_cmd & PCI_COMMAND_MEMORY); + virt_mem = !!(le16_to_cpu(*virt_cmd) & PCI_COMMAND_MEMORY); + new_mem = !!(new_cmd & PCI_COMMAND_MEMORY); + +- phys_io = !!(phys_cmd & PCI_COMMAND_IO); +- virt_io = !!(le16_to_cpu(*virt_cmd) & PCI_COMMAND_IO); +- new_io = !!(new_cmd & PCI_COMMAND_IO); ++ if (!new_mem) ++ vfio_pci_zap_and_down_write_memory_lock(vdev); ++ else ++ down_write(&vdev->memory_lock); + + /* + * If the user is writing mem/io enable (new_mem/io) and we +@@ -579,8 +592,11 @@ static int vfio_basic_config_write(struct vfio_pci_device *vdev, int pos, + } + + count = vfio_default_config_write(vdev, pos, count, perm, offset, val); +- if (count < 0) ++ if (count < 0) { ++ if (offset == PCI_COMMAND) ++ up_write(&vdev->memory_lock); + return count; ++ } + + /* + * Save current memory/io enable bits in vconfig to allow for +@@ -591,6 +607,8 @@ static int vfio_basic_config_write(struct vfio_pci_device *vdev, int pos, + + *virt_cmd &= cpu_to_le16(~mask); + *virt_cmd |= cpu_to_le16(new_cmd & mask); ++ ++ up_write(&vdev->memory_lock); + } + + /* Emulate INTx disable */ +@@ -828,8 +846,11 @@ static int vfio_exp_config_write(struct vfio_pci_device *vdev, int pos, + pos - offset + PCI_EXP_DEVCAP, + &cap); + +- if (!ret && (cap & PCI_EXP_DEVCAP_FLR)) ++ if (!ret && (cap & PCI_EXP_DEVCAP_FLR)) { ++ vfio_pci_zap_and_down_write_memory_lock(vdev); + pci_try_reset_function(vdev->pdev); ++ up_write(&vdev->memory_lock); ++ } + } + + /* +@@ -907,8 +928,11 @@ static int vfio_af_config_write(struct vfio_pci_device *vdev, int pos, + pos - offset + PCI_AF_CAP, + &cap); + +- if (!ret && (cap & PCI_AF_CAP_FLR) && (cap & PCI_AF_CAP_TP)) ++ if (!ret && (cap & PCI_AF_CAP_FLR) && (cap & PCI_AF_CAP_TP)) { ++ vfio_pci_zap_and_down_write_memory_lock(vdev); + pci_try_reset_function(vdev->pdev); ++ up_write(&vdev->memory_lock); ++ } + } + + return count; +diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c +index 2056f3f85f59..54102a7eb9d3 100644 +--- a/drivers/vfio/pci/vfio_pci_intrs.c ++++ b/drivers/vfio/pci/vfio_pci_intrs.c +@@ -626,6 +626,8 @@ int vfio_pci_set_irqs_ioctl(struct vfio_pci_device *vdev, uint32_t flags, + int (*func)(struct vfio_pci_device *vdev, unsigned index, + unsigned start, unsigned count, uint32_t flags, + void *data) = NULL; ++ int ret; ++ u16 cmd; + + switch (index) { + case VFIO_PCI_INTX_IRQ_INDEX: +@@ -673,5 +675,19 @@ int vfio_pci_set_irqs_ioctl(struct vfio_pci_device *vdev, uint32_t flags, + if (!func) + return -ENOTTY; + +- return func(vdev, index, start, count, flags, data); ++ if (index == VFIO_PCI_MSIX_IRQ_INDEX) { ++ down_write(&vdev->memory_lock); ++ pci_read_config_word(vdev->pdev, PCI_COMMAND, &cmd); ++ pci_write_config_word(vdev->pdev, PCI_COMMAND, ++ cmd | PCI_COMMAND_MEMORY); ++ } ++ ++ ret = func(vdev, index, start, count, flags, data); ++ ++ if (index == VFIO_PCI_MSIX_IRQ_INDEX) { ++ pci_write_config_word(vdev->pdev, PCI_COMMAND, cmd); ++ up_write(&vdev->memory_lock); ++ } ++ ++ return ret; + } +diff --git a/drivers/vfio/pci/vfio_pci_private.h b/drivers/vfio/pci/vfio_pci_private.h +index 9b25f9f6ce1d..c4f25f1e80d7 100644 +--- a/drivers/vfio/pci/vfio_pci_private.h ++++ b/drivers/vfio/pci/vfio_pci_private.h +@@ -139,6 +139,7 @@ struct vfio_pci_device { + struct list_head ioeventfds_list; + struct mutex vma_lock; + struct list_head vma_list; ++ struct rw_semaphore memory_lock; + }; + + #define is_intx(vdev) (vdev->irq_type == VFIO_PCI_INTX_IRQ_INDEX) +@@ -181,6 +182,10 @@ extern int vfio_pci_register_dev_region(struct vfio_pci_device *vdev, + extern int vfio_pci_set_power_state(struct vfio_pci_device *vdev, + pci_power_t state); + ++extern bool __vfio_pci_memory_enabled(struct vfio_pci_device *vdev); ++extern void vfio_pci_zap_and_down_write_memory_lock(struct vfio_pci_device ++ *vdev); ++ + #ifdef CONFIG_VFIO_PCI_IGD + extern int vfio_pci_igd_init(struct vfio_pci_device *vdev); + #else +diff --git a/drivers/vfio/pci/vfio_pci_rdwr.c b/drivers/vfio/pci/vfio_pci_rdwr.c +index a87992892a9f..f58c45308682 100644 +--- a/drivers/vfio/pci/vfio_pci_rdwr.c ++++ b/drivers/vfio/pci/vfio_pci_rdwr.c +@@ -162,6 +162,7 @@ ssize_t vfio_pci_bar_rw(struct vfio_pci_device *vdev, char __user *buf, + size_t x_start = 0, x_end = 0; + resource_size_t end; + void __iomem *io; ++ struct resource *res = &vdev->pdev->resource[bar]; + ssize_t done; + + if (pci_resource_start(pdev, bar)) +@@ -200,8 +201,19 @@ ssize_t vfio_pci_bar_rw(struct vfio_pci_device *vdev, char __user *buf, + x_end = vdev->msix_offset + vdev->msix_size; + } + ++ if (res->flags & IORESOURCE_MEM) { ++ down_read(&vdev->memory_lock); ++ if (!__vfio_pci_memory_enabled(vdev)) { ++ up_read(&vdev->memory_lock); ++ return -EIO; ++ } ++ } ++ + done = do_io_rw(io, buf, pos, count, x_start, x_end, iswrite); + ++ if (res->flags & IORESOURCE_MEM) ++ up_read(&vdev->memory_lock); ++ + if (done >= 0) + *ppos += done; + + + From 5ae89dbdd00f98fbb5b7fd99f4799326b5360937 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Wed, 20 May 2020 21:46:06 +0200 Subject: [PATCH 059/191] Fix automatic guest resolution resizing of VirtualBox VMs (rhbz 1789545) Fix Sony laptop hang on resume from suspend (rhbz 1830150) --- ...y-laptop-SNC-calls-should-handle-BUF.patch | 114 +++ kernel.spec | 10 + vboxguest-fixes.patch | 843 ++++++++++++++++++ 3 files changed, 967 insertions(+) create mode 100644 0001-platform-x86-sony-laptop-SNC-calls-should-handle-BUF.patch create mode 100644 vboxguest-fixes.patch diff --git a/0001-platform-x86-sony-laptop-SNC-calls-should-handle-BUF.patch b/0001-platform-x86-sony-laptop-SNC-calls-should-handle-BUF.patch new file mode 100644 index 000000000..dcae360a7 --- /dev/null +++ b/0001-platform-x86-sony-laptop-SNC-calls-should-handle-BUF.patch @@ -0,0 +1,114 @@ +From 47828d22539f76c8c9dcf2a55f18ea3a8039d8ef Mon Sep 17 00:00:00 2001 +From: Mattia Dongili +Date: Fri, 8 May 2020 09:14:04 +0900 +Subject: [PATCH] platform/x86: sony-laptop: SNC calls should handle BUFFER + types + +After commit 6d232b29cfce ("ACPICA: Dispatcher: always generate buffer +objects for ASL create_field() operator") ACPICA creates buffers even +when new fields are small enough to fit into an integer. +Many SNC calls counted on the old behaviour. +Since sony-laptop already handles the INTEGER/BUFFER case in +sony_nc_buffer_call, switch sony_nc_int_call to use its more generic +function instead. + +Fixes: 6d232b29cfce ("ACPICA: Dispatcher: always generate buffer objects for ASL create_field() operator") +Reported-by: Dominik Mierzejewski +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=207491 +Reported-by: William Bader +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1830150 +Signed-off-by: Mattia Dongili +Signed-off-by: Andy Shevchenko +--- + drivers/platform/x86/sony-laptop.c | 53 +++++++++++++----------------- + 1 file changed, 23 insertions(+), 30 deletions(-) + +diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c +index 51309f7ceede..6932cd11e660 100644 +--- a/drivers/platform/x86/sony-laptop.c ++++ b/drivers/platform/x86/sony-laptop.c +@@ -757,33 +757,6 @@ static union acpi_object *__call_snc_method(acpi_handle handle, char *method, + return result; + } + +-static int sony_nc_int_call(acpi_handle handle, char *name, int *value, +- int *result) +-{ +- union acpi_object *object = NULL; +- if (value) { +- u64 v = *value; +- object = __call_snc_method(handle, name, &v); +- } else +- object = __call_snc_method(handle, name, NULL); +- +- if (!object) +- return -EINVAL; +- +- if (object->type != ACPI_TYPE_INTEGER) { +- pr_warn("Invalid acpi_object: expected 0x%x got 0x%x\n", +- ACPI_TYPE_INTEGER, object->type); +- kfree(object); +- return -EINVAL; +- } +- +- if (result) +- *result = object->integer.value; +- +- kfree(object); +- return 0; +-} +- + #define MIN(a, b) (a > b ? b : a) + static int sony_nc_buffer_call(acpi_handle handle, char *name, u64 *value, + void *buffer, size_t buflen) +@@ -795,17 +768,20 @@ static int sony_nc_buffer_call(acpi_handle handle, char *name, u64 *value, + if (!object) + return -EINVAL; + +- if (object->type == ACPI_TYPE_BUFFER) { ++ if (!buffer) { ++ /* do nothing */ ++ } else if (object->type == ACPI_TYPE_BUFFER) { + len = MIN(buflen, object->buffer.length); ++ memset(buffer, 0, buflen); + memcpy(buffer, object->buffer.pointer, len); + + } else if (object->type == ACPI_TYPE_INTEGER) { + len = MIN(buflen, sizeof(object->integer.value)); ++ memset(buffer, 0, buflen); + memcpy(buffer, &object->integer.value, len); + + } else { +- pr_warn("Invalid acpi_object: expected 0x%x got 0x%x\n", +- ACPI_TYPE_BUFFER, object->type); ++ pr_warn("Unexpected acpi_object: 0x%x\n", object->type); + ret = -EINVAL; + } + +@@ -813,6 +789,23 @@ static int sony_nc_buffer_call(acpi_handle handle, char *name, u64 *value, + return ret; + } + ++static int sony_nc_int_call(acpi_handle handle, char *name, int *value, int ++ *result) ++{ ++ int ret; ++ ++ if (value) { ++ u64 v = *value; ++ ++ ret = sony_nc_buffer_call(handle, name, &v, result, ++ sizeof(*result)); ++ } else { ++ ret = sony_nc_buffer_call(handle, name, NULL, result, ++ sizeof(*result)); ++ } ++ return ret; ++} ++ + struct sony_nc_handles { + u16 cap[0x10]; + struct device_attribute devattr; +-- +2.26.2 + diff --git a/kernel.spec b/kernel.spec index 7beaaa5a8..ca3ea72c0 100644 --- a/kernel.spec +++ b/kernel.spec @@ -918,6 +918,12 @@ Patch517: RFC-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch # CVE-2020-12888 rhbz 1836245 1836244 Patch518: vfio-pci-block-user-access-to-disabled-device-MMIO.patch +# rhbz 1789545 +Patch519: vboxguest-fixes.patch + +# rhbz 1830150 +Patch520: 0001-platform-x86-sony-laptop-SNC-calls-should-handle-BUF.patch + # END OF PATCH DEFINITIONS %endif @@ -3014,6 +3020,10 @@ fi # # %changelog +* Wed May 20 2020 Hans de Goede +- Fix automatic guest resolution resizing of VirtualBox VMs (rhbz 1789545) +- Fix Sony laptop hang on resume from suspend (rhbz 1830150) + * Wed May 20 2020 Justin M. Forbes - 5.6.14-300 - Linux v5.6.14 - Fix CVE-2020-12888 (rhbz 1836245 1836244) diff --git a/vboxguest-fixes.patch b/vboxguest-fixes.patch new file mode 100644 index 000000000..90c95b374 --- /dev/null +++ b/vboxguest-fixes.patch @@ -0,0 +1,843 @@ +From ba5ea5d9d5d2ade5156cf2bc452ff6d1f5c4db37 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 12:21:30 +0200 +Subject: [PATCH 1/8] virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG + req numbers to match upstream + +Until this commit the mainline kernel version (this version) of the +vboxguest module contained a bug where it defined +VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG using +_IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead of +_IO(V, ...) as the out of tree VirtualBox upstream version does. + +Since the VirtualBox userspace bits are always built against VirtualBox +upstream's headers, this means that so far the mainline kernel version +of the vboxguest module has been failing these 2 ioctls with -ENOTTY. +I guess that VBGL_IOCTL_VMMDEV_REQUEST_BIG is never used causing us to +not hit that one and sofar the vboxguest driver has failed to actually +log any log messages passed it through VBGL_IOCTL_LOG. + +This commit changes the VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG +defines to match the out of tree VirtualBox upstream vboxguest version, +while keeping compatibility with the old wrong request defines so as +to not break the kernel ABI in case someone has been using the old +request defines. + +Fixes: f6ddd094f579 ("virt: Add vboxguest driver for Virtual Box Guest integration UAPI") +Cc: stable@vger.kernel.org +Signed-off-by: Hans de Goede +--- + drivers/virt/vboxguest/vboxguest_core.c | 4 +++- + drivers/virt/vboxguest/vboxguest_core.h | 15 +++++++++++++++ + drivers/virt/vboxguest/vboxguest_linux.c | 3 ++- + include/uapi/linux/vboxguest.h | 4 ++-- + 4 files changed, 22 insertions(+), 4 deletions(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index b690a8a4bf9e..8fab04e76c14 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -1520,7 +1520,8 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) + + /* For VMMDEV_REQUEST hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT */ + if (req_no_size == VBG_IOCTL_VMMDEV_REQUEST(0) || +- req == VBG_IOCTL_VMMDEV_REQUEST_BIG) ++ req == VBG_IOCTL_VMMDEV_REQUEST_BIG || ++ req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT) + return vbg_ioctl_vmmrequest(gdev, session, data); + + if (hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT) +@@ -1558,6 +1559,7 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) + case VBG_IOCTL_HGCM_CALL(0): + return vbg_ioctl_hgcm_call(gdev, session, f32bit, data); + case VBG_IOCTL_LOG(0): ++ case VBG_IOCTL_LOG_ALT(0): + return vbg_ioctl_log(data); + } + +diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h +index 4188c12b839f..77c3a9c8255d 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.h ++++ b/drivers/virt/vboxguest/vboxguest_core.h +@@ -15,6 +15,21 @@ + #include + #include "vmmdev.h" + ++/* ++ * The mainline kernel version (this version) of the vboxguest module ++ * contained a bug where it defined VBGL_IOCTL_VMMDEV_REQUEST_BIG and ++ * VBGL_IOCTL_LOG using _IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead ++ * of _IO(V, ...) as the out of tree VirtualBox upstream version does. ++ * ++ * These _ALT definitions keep compatibility with the wrong defines the ++ * mainline kernel version used for a while. ++ * Note the VirtualBox userspace bits have always been built against ++ * VirtualBox upstream's headers, so this is likely not necessary. But ++ * we must never break our ABI so we keep these around to be 100% sure. ++ */ ++#define VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0) ++#define VBG_IOCTL_LOG_ALT(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s) ++ + struct vbg_session; + + /** VBox guest memory balloon. */ +diff --git a/drivers/virt/vboxguest/vboxguest_linux.c b/drivers/virt/vboxguest/vboxguest_linux.c +index 6e8c0f1c1056..32c2c52f7e84 100644 +--- a/drivers/virt/vboxguest/vboxguest_linux.c ++++ b/drivers/virt/vboxguest/vboxguest_linux.c +@@ -131,7 +131,8 @@ static long vbg_misc_device_ioctl(struct file *filp, unsigned int req, + * the need for a bounce-buffer and another copy later on. + */ + is_vmmdev_req = (req & ~IOCSIZE_MASK) == VBG_IOCTL_VMMDEV_REQUEST(0) || +- req == VBG_IOCTL_VMMDEV_REQUEST_BIG; ++ req == VBG_IOCTL_VMMDEV_REQUEST_BIG || ++ req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT; + + if (is_vmmdev_req) + buf = vbg_req_alloc(size, VBG_IOCTL_HDR_TYPE_DEFAULT, +diff --git a/include/uapi/linux/vboxguest.h b/include/uapi/linux/vboxguest.h +index 9cec58a6a5ea..f79d7abe27db 100644 +--- a/include/uapi/linux/vboxguest.h ++++ b/include/uapi/linux/vboxguest.h +@@ -103,7 +103,7 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_driver_version_info, 24 + 20); + + + /* IOCTL to perform a VMM Device request larger then 1KB. */ +-#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0) ++#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IO('V', 3) + + + /** VBG_IOCTL_HGCM_CONNECT data structure. */ +@@ -198,7 +198,7 @@ struct vbg_ioctl_log { + } u; + }; + +-#define VBG_IOCTL_LOG(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s) ++#define VBG_IOCTL_LOG(s) _IO('V', 9) + + + /** VBG_IOCTL_WAIT_FOR_EVENTS data structure. */ +-- +2.26.2 + +From 14dc3b46e666343c55e5b253ed3dd4c57b13e778 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 13:23:06 +0200 +Subject: [PATCH 2/8] virt: vbox: Fix guest capabilities mask check + +Check the passed in capabilities against VMMDEV_GUEST_CAPABILITIES_MASK +instead of against VMMDEV_EVENT_VALID_EVENT_MASK. +This tightens the allowed mask from 0x7ff to 0x7. + +Fixes: 0ba002bc4393 ("virt: Add vboxguest driver for Virtual Box Guest integration") +Cc: stable@vger.kernel.org +Signed-off-by: Hans de Goede +--- + drivers/virt/vboxguest/vboxguest_core.c | 2 +- + drivers/virt/vboxguest/vmmdev.h | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index 8fab04e76c14..18ebd7a6af98 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -1444,7 +1444,7 @@ static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev, + or_mask = caps->u.in.or_mask; + not_mask = caps->u.in.not_mask; + +- if ((or_mask | not_mask) & ~VMMDEV_EVENT_VALID_EVENT_MASK) ++ if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK) + return -EINVAL; + + ret = vbg_set_session_capabilities(gdev, session, or_mask, not_mask, +diff --git a/drivers/virt/vboxguest/vmmdev.h b/drivers/virt/vboxguest/vmmdev.h +index 6337b8d75d96..21f408120e3f 100644 +--- a/drivers/virt/vboxguest/vmmdev.h ++++ b/drivers/virt/vboxguest/vmmdev.h +@@ -206,6 +206,8 @@ VMMDEV_ASSERT_SIZE(vmmdev_mask, 24 + 8); + * not. + */ + #define VMMDEV_GUEST_SUPPORTS_GRAPHICS BIT(2) ++/* The mask of valid capabilities, for sanity checking. */ ++#define VMMDEV_GUEST_CAPABILITIES_MASK 0x00000007U + + /** struct vmmdev_hypervisorinfo - Hypervisor info structure. */ + struct vmmdev_hypervisorinfo { +-- +2.26.2 + +From 172353a61c23015611a341c2f3f4888d866a560b Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 14:33:13 +0200 +Subject: [PATCH 3/8] virt: vbox: Rename guest_caps struct members to + set_guest_caps + +Rename guest_caps[_tracker] struct members to set_guest_caps[_tracker] +this is a preparation patch for adding support for the +VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl. + +Signed-off-by: Hans de Goede +--- + drivers/virt/vboxguest/vboxguest_core.c | 20 ++++++++++---------- + drivers/virt/vboxguest/vboxguest_core.h | 9 +++++---- + 2 files changed, 15 insertions(+), 14 deletions(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index 18ebd7a6af98..aee5eff229f2 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -699,17 +699,17 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, + mutex_lock(&gdev->session_mutex); + + /* Apply the changes to the session mask. */ +- previous = session->guest_caps; +- session->guest_caps |= or_mask; +- session->guest_caps &= ~not_mask; ++ previous = session->set_guest_caps; ++ session->set_guest_caps |= or_mask; ++ session->set_guest_caps &= ~not_mask; + + /* If anything actually changed, update the global usage counters. */ +- changed = previous ^ session->guest_caps; ++ changed = previous ^ session->set_guest_caps; + if (!changed) + goto out; + +- vbg_track_bit_usage(&gdev->guest_caps_tracker, changed, previous); +- or_mask = gdev->guest_caps_tracker.mask; ++ vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, previous); ++ or_mask = gdev->set_guest_caps_tracker.mask; + + if (gdev->guest_caps_host == or_mask || !req) + goto out; +@@ -726,9 +726,9 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, + if (session_termination) + goto out; + +- vbg_track_bit_usage(&gdev->guest_caps_tracker, changed, +- session->guest_caps); +- session->guest_caps = previous; ++ vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, ++ session->set_guest_caps); ++ session->set_guest_caps = previous; + } + + out: +@@ -1452,7 +1452,7 @@ static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev, + if (ret) + return ret; + +- caps->u.out.session_caps = session->guest_caps; ++ caps->u.out.session_caps = session->set_guest_caps; + caps->u.out.global_caps = gdev->guest_caps_host; + + return 0; +diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h +index 77c3a9c8255d..dc745a033164 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.h ++++ b/drivers/virt/vboxguest/vboxguest_core.h +@@ -118,11 +118,12 @@ struct vbg_dev { + u32 event_filter_host; + + /** +- * Usage counters for guest capabilities. Indexed by capability bit ++ * Usage counters for guest capabilities requested through ++ * vbg_set_session_capabilities(). Indexed by capability bit + * number, one count per session using a capability. + * Protected by session_mutex. + */ +- struct vbg_bit_usage_tracker guest_caps_tracker; ++ struct vbg_bit_usage_tracker set_guest_caps_tracker; + /** + * The guest capabilities last reported to the host (or UINT32_MAX). + * Protected by session_mutex. +@@ -164,11 +165,11 @@ struct vbg_session { + */ + u32 event_filter; + /** +- * Guest capabilities for this session. ++ * Guest capabilities set through vbg_set_session_capabilities(). + * A capability claimed by any guest session will be reported to the + * host. Protected by vbg_gdev.session_mutex. + */ +- u32 guest_caps; ++ u32 set_guest_caps; + /** VMMDEV_REQUESTOR_* flags */ + u32 requestor; + /** Set on CANCEL_ALL_WAITEVENTS, protected by vbg_devevent_spinlock. */ +-- +2.26.2 + +From c5cf459d4d98a7993f5e00d5d2b826c55bbce562 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 15:30:29 +0200 +Subject: [PATCH 4/8] virt: vbox: Add vbg_set_host_capabilities() helper + function + +Add vbg_set_host_capabilities() helper function, this is a preparation +patch for adding support for the VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl. + +Signed-off-by: Hans de Goede +--- + drivers/virt/vboxguest/vboxguest_core.c | 79 ++++++++++++++----------- + 1 file changed, 46 insertions(+), 33 deletions(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index aee5eff229f2..15b3cb618c6e 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -661,6 +661,48 @@ static int vbg_reset_host_capabilities(struct vbg_dev *gdev) + return vbg_status_code_to_errno(rc); + } + ++/** ++ * Set guest capabilities on the host. ++ * Must be called with gdev->session_mutex hold. ++ * Return: 0 or negative errno value. ++ * @gdev: The Guest extension device. ++ * @session: The session. ++ * @session_termination: Set if we're called by the session cleanup code. ++ */ ++static int vbg_set_host_capabilities(struct vbg_dev *gdev, ++ struct vbg_session *session, ++ bool session_termination) ++{ ++ struct vmmdev_mask *req; ++ u32 caps; ++ int rc; ++ ++ WARN_ON(!mutex_is_locked(&gdev->session_mutex)); ++ ++ caps = gdev->set_guest_caps_tracker.mask; ++ ++ if (gdev->guest_caps_host == caps) ++ return 0; ++ ++ /* On termination the requestor is the kernel, as we're cleaning up. */ ++ req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES, ++ session_termination ? VBG_KERNEL_REQUEST : ++ session->requestor); ++ if (!req) { ++ gdev->guest_caps_host = U32_MAX; ++ return -ENOMEM; ++ } ++ ++ req->or_mask = caps; ++ req->not_mask = ~caps; ++ rc = vbg_req_perform(gdev, req); ++ vbg_req_free(req, sizeof(*req)); ++ ++ gdev->guest_caps_host = (rc >= 0) ? caps : U32_MAX; ++ ++ return vbg_status_code_to_errno(rc); ++} ++ + /** + * Sets the guest capabilities for a session. Takes the session spinlock. + * Return: 0 or negative errno value. +@@ -678,23 +720,8 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, + u32 or_mask, u32 not_mask, + bool session_termination) + { +- struct vmmdev_mask *req; + u32 changed, previous; +- int rc, ret = 0; +- +- /* +- * Allocate a request buffer before taking the spinlock, when +- * the session is being terminated the requestor is the kernel, +- * as we're cleaning up. +- */ +- req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES, +- session_termination ? VBG_KERNEL_REQUEST : +- session->requestor); +- if (!req) { +- if (!session_termination) +- return -ENOMEM; +- /* Ignore allocation failure, we must do session cleanup. */ +- } ++ int ret = 0; + + mutex_lock(&gdev->session_mutex); + +@@ -709,23 +736,10 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, + goto out; + + vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, previous); +- or_mask = gdev->set_guest_caps_tracker.mask; +- +- if (gdev->guest_caps_host == or_mask || !req) +- goto out; +- +- gdev->guest_caps_host = or_mask; +- req->or_mask = or_mask; +- req->not_mask = ~or_mask; +- rc = vbg_req_perform(gdev, req); +- if (rc < 0) { +- ret = vbg_status_code_to_errno(rc); +- +- /* Failed, roll back (unless it's session termination time). */ +- gdev->guest_caps_host = U32_MAX; +- if (session_termination) +- goto out; + ++ ret = vbg_set_host_capabilities(gdev, session, session_termination); ++ /* Roll back on failure, unless it's session termination time. */ ++ if (ret < 0 && !session_termination) { + vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, + session->set_guest_caps); + session->set_guest_caps = previous; +@@ -733,7 +747,6 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, + + out: + mutex_unlock(&gdev->session_mutex); +- vbg_req_free(req, sizeof(*req)); + + return ret; + } +-- +2.26.2 + +From 2f33e58bcc8c69f938629dc57c8ad631724f02f0 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 18:04:30 +0200 +Subject: [PATCH 5/8] virt: vbox: Add support for the new + VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl + +Add support for the new VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl, this +is necessary for automatic resizing of the guest resolution to match the +VM-window size to work with the new VMSVGA virtual GPU which is now the +new default in VirtualBox. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545 +Signed-off-by: Hans de Goede +--- + drivers/virt/vboxguest/vboxguest_core.c | 163 +++++++++++++++++++++++- + drivers/virt/vboxguest/vboxguest_core.h | 14 ++ + include/uapi/linux/vboxguest.h | 24 ++++ + 3 files changed, 200 insertions(+), 1 deletion(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index 15b3cb618c6e..4f1addaa3f6f 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -679,7 +679,7 @@ static int vbg_set_host_capabilities(struct vbg_dev *gdev, + + WARN_ON(!mutex_is_locked(&gdev->session_mutex)); + +- caps = gdev->set_guest_caps_tracker.mask; ++ caps = gdev->acquired_guest_caps | gdev->set_guest_caps_tracker.mask; + + if (gdev->guest_caps_host == caps) + return 0; +@@ -703,6 +703,113 @@ static int vbg_set_host_capabilities(struct vbg_dev *gdev, + return vbg_status_code_to_errno(rc); + } + ++/** ++ * Acquire (get exclusive access) guest capabilities for a session. ++ * Takes the session mutex. ++ * Return: 0 or negative errno value. ++ * @gdev: The Guest extension device. ++ * @session: The session. ++ * @flags: Flags (VBGL_IOC_AGC_FLAGS_XXX). ++ * @or_mask: The capabilities to add. ++ * @not_mask: The capabilities to remove. ++ * @session_termination: Set if we're called by the session cleanup code. ++ * This tweaks the error handling so we perform ++ * proper session cleanup even if the host ++ * misbehaves. ++ */ ++static int vbg_acquire_session_capabilities(struct vbg_dev *gdev, ++ struct vbg_session *session, ++ u32 or_mask, u32 not_mask, ++ u32 flags, bool session_termination) ++{ ++ unsigned long irqflags; ++ bool wakeup = false; ++ int ret = 0; ++ ++ mutex_lock(&gdev->session_mutex); ++ ++ if (gdev->set_guest_caps_tracker.mask & or_mask) { ++ vbg_err("%s error: cannot acquire caps which are currently set\n", ++ __func__); ++ ret = -EINVAL; ++ goto out; ++ } ++ ++ /* ++ * Mark any caps in the or_mask as now being in acquire-mode. Note ++ * once caps are in acquire_mode they always stay in this mode. ++ * This impacts event handling, so we take the event-lock. ++ */ ++ spin_lock_irqsave(&gdev->event_spinlock, irqflags); ++ gdev->acquire_mode_guest_caps |= or_mask; ++ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); ++ ++ /* If we only have to switch the caps to acquire mode, we're done. */ ++ if (flags & VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE) ++ goto out; ++ ++ not_mask &= ~or_mask; /* or_mask takes priority over not_mask */ ++ not_mask &= session->acquired_guest_caps; ++ or_mask &= ~session->acquired_guest_caps; ++ ++ if (or_mask == 0 && not_mask == 0) ++ goto out; ++ ++ if (gdev->acquired_guest_caps & or_mask) { ++ ret = -EBUSY; ++ goto out; ++ } ++ ++ gdev->acquired_guest_caps |= or_mask; ++ gdev->acquired_guest_caps &= ~not_mask; ++ /* session->acquired_guest_caps impacts event handling, take the lock */ ++ spin_lock_irqsave(&gdev->event_spinlock, irqflags); ++ session->acquired_guest_caps |= or_mask; ++ session->acquired_guest_caps &= ~not_mask; ++ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); ++ ++ ret = vbg_set_host_capabilities(gdev, session, session_termination); ++ /* Roll back on failure, unless it's session termination time. */ ++ if (ret < 0 && !session_termination) { ++ gdev->acquired_guest_caps &= ~or_mask; ++ gdev->acquired_guest_caps |= not_mask; ++ spin_lock_irqsave(&gdev->event_spinlock, irqflags); ++ session->acquired_guest_caps &= ~or_mask; ++ session->acquired_guest_caps |= not_mask; ++ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); ++ } ++ ++ /* ++ * If we added a capability, check if that means some other thread in ++ * our session should be unblocked because there are events pending ++ * (the result of vbg_get_allowed_event_mask_for_session() may change). ++ * ++ * HACK ALERT! When the seamless support capability is added we generate ++ * a seamless change event so that the ring-3 client can sync with ++ * the seamless state. ++ */ ++ if (ret == 0 && or_mask != 0) { ++ spin_lock_irqsave(&gdev->event_spinlock, irqflags); ++ ++ if (or_mask & VMMDEV_GUEST_SUPPORTS_SEAMLESS) ++ gdev->pending_events |= ++ VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST; ++ ++ if (gdev->pending_events) ++ wakeup = true; ++ ++ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); ++ ++ if (wakeup) ++ wake_up(&gdev->event_wq); ++ } ++ ++out: ++ mutex_unlock(&gdev->session_mutex); ++ ++ return ret; ++} ++ + /** + * Sets the guest capabilities for a session. Takes the session spinlock. + * Return: 0 or negative errno value. +@@ -725,6 +832,13 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, + + mutex_lock(&gdev->session_mutex); + ++ if (gdev->acquire_mode_guest_caps & or_mask) { ++ vbg_err("%s error: cannot set caps which are in acquire_mode\n", ++ __func__); ++ ret = -EBUSY; ++ goto out; ++ } ++ + /* Apply the changes to the session mask. */ + previous = session->set_guest_caps; + session->set_guest_caps |= or_mask; +@@ -962,6 +1076,7 @@ void vbg_core_close_session(struct vbg_session *session) + struct vbg_dev *gdev = session->gdev; + int i, rc; + ++ vbg_acquire_session_capabilities(gdev, session, 0, U32_MAX, 0, true); + vbg_set_session_capabilities(gdev, session, 0, U32_MAX, true); + vbg_set_session_event_filter(gdev, session, 0, U32_MAX, true); + +@@ -1019,6 +1134,25 @@ static int vbg_ioctl_driver_version_info( + return 0; + } + ++/* Must be called with the event_lock held */ ++static u32 vbg_get_allowed_event_mask_for_session(struct vbg_dev *gdev, ++ struct vbg_session *session) ++{ ++ u32 acquire_mode_caps = gdev->acquire_mode_guest_caps; ++ u32 session_acquired_caps = session->acquired_guest_caps; ++ u32 allowed_events = VMMDEV_EVENT_VALID_EVENT_MASK; ++ ++ if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS) && ++ !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS)) ++ allowed_events &= ~VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST; ++ ++ if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS) && ++ !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS)) ++ allowed_events &= ~VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST; ++ ++ return allowed_events; ++} ++ + static bool vbg_wait_event_cond(struct vbg_dev *gdev, + struct vbg_session *session, + u32 event_mask) +@@ -1030,6 +1164,7 @@ static bool vbg_wait_event_cond(struct vbg_dev *gdev, + spin_lock_irqsave(&gdev->event_spinlock, flags); + + events = gdev->pending_events & event_mask; ++ events &= vbg_get_allowed_event_mask_for_session(gdev, session); + wakeup = events || session->cancel_waiters; + + spin_unlock_irqrestore(&gdev->event_spinlock, flags); +@@ -1044,6 +1179,7 @@ static u32 vbg_consume_events_locked(struct vbg_dev *gdev, + { + u32 events = gdev->pending_events & event_mask; + ++ events &= vbg_get_allowed_event_mask_for_session(gdev, session); + gdev->pending_events &= ~events; + return events; + } +@@ -1445,6 +1581,29 @@ static int vbg_ioctl_change_filter_mask(struct vbg_dev *gdev, + false); + } + ++static int vbg_ioctl_acquire_guest_capabilities(struct vbg_dev *gdev, ++ struct vbg_session *session, ++ struct vbg_ioctl_acquire_guest_caps *caps) ++{ ++ u32 flags, or_mask, not_mask; ++ ++ if (vbg_ioctl_chk(&caps->hdr, sizeof(caps->u.in), 0)) ++ return -EINVAL; ++ ++ flags = caps->u.in.flags; ++ or_mask = caps->u.in.or_mask; ++ not_mask = caps->u.in.not_mask; ++ ++ if (flags & ~VBGL_IOC_AGC_FLAGS_VALID_MASK) ++ return -EINVAL; ++ ++ if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK) ++ return -EINVAL; ++ ++ return vbg_acquire_session_capabilities(gdev, session, or_mask, ++ not_mask, flags, false); ++} ++ + static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev, + struct vbg_session *session, struct vbg_ioctl_set_guest_caps *caps) + { +@@ -1554,6 +1713,8 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) + return vbg_ioctl_interrupt_all_wait_events(gdev, session, data); + case VBG_IOCTL_CHANGE_FILTER_MASK: + return vbg_ioctl_change_filter_mask(gdev, session, data); ++ case VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: ++ return vbg_ioctl_acquire_guest_capabilities(gdev, session, data); + case VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: + return vbg_ioctl_change_guest_capabilities(gdev, session, data); + case VBG_IOCTL_CHECK_BALLOON: +diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h +index dc745a033164..ab4bf64e2cec 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.h ++++ b/drivers/virt/vboxguest/vboxguest_core.h +@@ -117,6 +117,15 @@ struct vbg_dev { + */ + u32 event_filter_host; + ++ /** ++ * Guest capabilities which have been switched to acquire_mode. ++ */ ++ u32 acquire_mode_guest_caps; ++ /** ++ * Guest capabilities acquired by vbg_acquire_session_capabilities(). ++ * Only one session can acquire a capability at a time. ++ */ ++ u32 acquired_guest_caps; + /** + * Usage counters for guest capabilities requested through + * vbg_set_session_capabilities(). Indexed by capability bit +@@ -164,6 +173,11 @@ struct vbg_session { + * host filter. Protected by vbg_gdev.session_mutex. + */ + u32 event_filter; ++ /** ++ * Guest capabilities acquired by vbg_acquire_session_capabilities(). ++ * Only one session can acquire a capability at a time. ++ */ ++ u32 acquired_guest_caps; + /** + * Guest capabilities set through vbg_set_session_capabilities(). + * A capability claimed by any guest session will be reported to the +diff --git a/include/uapi/linux/vboxguest.h b/include/uapi/linux/vboxguest.h +index f79d7abe27db..15125f6ec60d 100644 +--- a/include/uapi/linux/vboxguest.h ++++ b/include/uapi/linux/vboxguest.h +@@ -257,6 +257,30 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_change_filter, 24 + 8); + _IOWR('V', 12, struct vbg_ioctl_change_filter) + + ++/** VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES data structure. */ ++struct vbg_ioctl_acquire_guest_caps { ++ /** The header. */ ++ struct vbg_ioctl_hdr hdr; ++ union { ++ struct { ++ /** Flags (VBGL_IOC_AGC_FLAGS_XXX). */ ++ __u32 flags; ++ /** Capabilities to set (VMMDEV_GUEST_SUPPORTS_XXX). */ ++ __u32 or_mask; ++ /** Capabilities to drop (VMMDEV_GUEST_SUPPORTS_XXX). */ ++ __u32 not_mask; ++ } in; ++ } u; ++}; ++VMMDEV_ASSERT_SIZE(vbg_ioctl_acquire_guest_caps, 24 + 12); ++ ++#define VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE 0x00000001 ++#define VBGL_IOC_AGC_FLAGS_VALID_MASK 0x00000001 ++ ++#define VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES \ ++ _IOWR('V', 13, struct vbg_ioctl_acquire_guest_caps) ++ ++ + /** VBG_IOCTL_CHANGE_GUEST_CAPABILITIES data structure. */ + struct vbg_ioctl_set_guest_caps { + /** The header. */ +-- +2.26.2 + +From d34852680360e52c39ea901fbc3778d28f229852 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 11:05:40 +0200 +Subject: [PATCH 6/8] virt: vbox: Add a few new vmmdev request types to the + userspace whitelist + +Upstream VirtualBox has defined and is using a few new request types for +vmmdev requests passed through /dev/vboxguest to the hypervisor. + +Add the defines for these to vbox_vmmdev_types.h and add add them to the +whitelists of vmmdev requests which userspace is allowed to make. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545 +Signed-off-by: Hans de Goede +--- + drivers/virt/vboxguest/vboxguest_core.c | 2 ++ + include/uapi/linux/vbox_vmmdev_types.h | 3 +++ + 2 files changed, 5 insertions(+) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index 4f1addaa3f6f..ffd76b949276 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -1299,7 +1299,9 @@ static int vbg_req_allowed(struct vbg_dev *gdev, struct vbg_session *session, + case VMMDEVREQ_VIDEO_ACCEL_ENABLE: + case VMMDEVREQ_VIDEO_ACCEL_FLUSH: + case VMMDEVREQ_VIDEO_SET_VISIBLE_REGION: ++ case VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS: + case VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX: ++ case VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI: + case VMMDEVREQ_GET_SEAMLESS_CHANGE_REQ: + case VMMDEVREQ_GET_VRDPCHANGE_REQ: + case VMMDEVREQ_LOG_STRING: +diff --git a/include/uapi/linux/vbox_vmmdev_types.h b/include/uapi/linux/vbox_vmmdev_types.h +index c27289fd619a..f8a8d6b3c521 100644 +--- a/include/uapi/linux/vbox_vmmdev_types.h ++++ b/include/uapi/linux/vbox_vmmdev_types.h +@@ -63,6 +63,7 @@ enum vmmdev_request_type { + VMMDEVREQ_SET_GUEST_CAPABILITIES = 56, + VMMDEVREQ_VIDEMODE_SUPPORTED2 = 57, /* since version 3.2.0 */ + VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX = 80, /* since version 4.2.4 */ ++ VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI = 81, + VMMDEVREQ_HGCM_CONNECT = 60, + VMMDEVREQ_HGCM_DISCONNECT = 61, + VMMDEVREQ_HGCM_CALL32 = 62, +@@ -92,6 +93,8 @@ enum vmmdev_request_type { + VMMDEVREQ_WRITE_COREDUMP = 218, + VMMDEVREQ_GUEST_HEARTBEAT = 219, + VMMDEVREQ_HEARTBEAT_CONFIGURE = 220, ++ VMMDEVREQ_NT_BUG_CHECK = 221, ++ VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS = 222, + /* Ensure the enum is a 32 bit data-type */ + VMMDEVREQ_SIZEHACK = 0x7fffffff + }; +-- +2.26.2 + +From 92887e49b5f83dd802f3486143a9b619c7b56947 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 11:24:43 +0200 +Subject: [PATCH 7/8] virt: vbox: Log unknown ioctl requests as error + +Every now and then upstream adds new ioctls without notifying us, +log unknown ioctl requests as an error to catch these. + +Signed-off-by: Hans de Goede +--- + drivers/virt/vboxguest/vboxguest_core.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index ffd76b949276..e0e343d0ba93 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -1739,7 +1739,7 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) + return vbg_ioctl_log(data); + } + +- vbg_debug("VGDrvCommonIoCtl: Unknown req %#08x\n", req); ++ vbg_err("Userspace made an unknown ioctl req %#08x\n", req); + return -ENOTTY; + } + +-- +2.26.2 + +From 10a3a8c4a13e608d24db0a4ed4a284470025346d Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 18:08:07 +0200 +Subject: [PATCH 8/8] virt: vbox: Fix some comments which talk about the + "session spinlock" + +The session lock is a mutex, not a spinlock, fix the comments to match. + +Signed-off-by: Hans de Goede +--- + drivers/virt/vboxguest/vboxguest_core.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index e0e343d0ba93..d99c19551d04 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -559,7 +559,7 @@ static int vbg_reset_host_event_filter(struct vbg_dev *gdev, + * Changes the event filter mask for the given session. + * + * This is called in response to VBG_IOCTL_CHANGE_FILTER_MASK as well as to +- * do session cleanup. Takes the session spinlock. ++ * do session cleanup. Takes the session mutex. + * + * Return: 0 or negative errno value. + * @gdev: The Guest extension device. +@@ -811,7 +811,7 @@ static int vbg_acquire_session_capabilities(struct vbg_dev *gdev, + } + + /** +- * Sets the guest capabilities for a session. Takes the session spinlock. ++ * Sets the guest capabilities for a session. Takes the session mutex. + * Return: 0 or negative errno value. + * @gdev: The Guest extension device. + * @session: The session. +-- +2.26.2 + From 5cc680aaa3cd73854048b0c43aef31b5ed7e0245 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 20 May 2020 15:16:44 -0500 Subject: [PATCH 060/191] Fix up changelog for build --- kernel.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index ca3ea72c0..31576a6ac 100644 --- a/kernel.spec +++ b/kernel.spec @@ -3020,11 +3020,11 @@ fi # # %changelog -* Wed May 20 2020 Hans de Goede +* Wed May 20 2020 Hans de Goede - 5.6.14-300 - Fix automatic guest resolution resizing of VirtualBox VMs (rhbz 1789545) - Fix Sony laptop hang on resume from suspend (rhbz 1830150) -* Wed May 20 2020 Justin M. Forbes - 5.6.14-300 +* Wed May 20 2020 Justin M. Forbes - Linux v5.6.14 - Fix CVE-2020-12888 (rhbz 1836245 1836244) From 8754bcde0a147dde61f4536c62059a26c6e6e42c Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 28 May 2020 07:48:10 -0500 Subject: [PATCH 061/191] Linux v5.6.15 Signed-off-by: Justin M. Forbes --- kernel.spec | 8 +- sources | 2 +- ...log-version-before-reading-final-eve.patch | 81 ------------------- 3 files changed, 5 insertions(+), 86 deletions(-) delete mode 100644 tpm-check-event-log-version-before-reading-final-eve.patch diff --git a/kernel.spec b/kernel.spec index 31576a6ac..c69953175 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 14 +%define stable_update 15 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -903,9 +903,6 @@ Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch Patch512: drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch -#rhbz 1779611 -Patch514: tpm-check-event-log-version-before-reading-final-eve.patch - # CVE-2020-12655 rhbz 1832543 1832545 Patch515: 0001-xfs-add-agf-freeblocks-verify-in-xfs_agf_verify.patch @@ -3020,6 +3017,9 @@ fi # # %changelog +* Thu May 28 2020 Justin M. Forbes - 5.6.15-300 +- Linux v5.6.15 + * Wed May 20 2020 Hans de Goede - 5.6.14-300 - Fix automatic guest resolution resizing of VirtualBox VMs (rhbz 1789545) - Fix Sony laptop hang on resume from suspend (rhbz 1830150) diff --git a/sources b/sources index 564d880f6..aa6d96ede 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.14.xz) = 8019bf12993f43d5508845a48b250d30220a8db6db262c8b97cd3f7c73abf0d054fcdfacb671644de529ceb495b95982d693a889051fb60fafc3180bd5b4f29e +SHA512 (patch-5.6.15.xz) = e1c882595806f0bceaf2341ebb569a8b28706c7bd5224f2cd780d6fe31562286fa134cca8381ec3ce3ce481847684e29c580a1b24fef7985863683ff6544dc81 diff --git a/tpm-check-event-log-version-before-reading-final-eve.patch b/tpm-check-event-log-version-before-reading-final-eve.patch deleted file mode 100644 index 9668c807b..000000000 --- a/tpm-check-event-log-version-before-reading-final-eve.patch +++ /dev/null @@ -1,81 +0,0 @@ -From MAILER-DAEMON Thu May 14 17:38:32 2020 -From: Loïc Yhuel -To: linux-integrity@vger.kernel.org -Cc: matthewgarrett@google.com, ardb@kernel.org, jarkko.sakkinen@linux.intel.com, javierm@redhat.com, Loïc Yhuel -Subject: [PATCH] tpm: check event log version before reading final events -Date: Tue, 12 May 2020 06:01:13 +0200 -Message-Id: <20200512040113.277768-1-loic.yhuel@gmail.com> -Sender: linux-integrity-owner@vger.kernel.org -List-ID: -X-Mailing-List: linux-integrity@vger.kernel.org -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 8bit - -This fixes the boot issues since 5.3 on several Dell models when the TPM -is enabled. Depending on the exact grub binary, booting the kernel would -freeze early, or just report an error parsing the final events log. - -We get an event log in the SHA-1 format, which doesn't have a -tcg_efi_specid_event_head in the first event, and there is a final events -table which doesn't match the crypto agile format. -__calc_tpm2_event_size reads bad "count" and "efispecid->num_algs", and -either fails, or loops long enough for the machine to be appear frozen. - -So we now only parse the final events table, which is per the spec always -supposed to be in the crypto agile format, when we got a event log in this -format. - -Fixes: 166a2809d65b2 ("tpm: Don't duplicate events from the final event log in the TCG2 log") -Fixes: c46f3405692de ("tpm: Reserve the TPM final events table") -Signed-off-by: Loïc Yhuel -Reviewed-by: Javier Martinez Canillas -Reviewed-by: Jerry Snitselaar -Reviewed-by: Matthew Garrett -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1779611 ---- - drivers/firmware/efi/libstub/tpm.c | 5 +++-- - drivers/firmware/efi/tpm.c | 3 ++- - 2 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/drivers/firmware/efi/libstub/tpm.c b/drivers/firmware/efi/libstub/tpm.c -index 1d59e103a2e3..e9a684637b70 100644 ---- a/drivers/firmware/efi/libstub/tpm.c -+++ b/drivers/firmware/efi/libstub/tpm.c -@@ -54,7 +54,7 @@ void efi_retrieve_tpm2_eventlog(void) - efi_status_t status; - efi_physical_addr_t log_location = 0, log_last_entry = 0; - struct linux_efi_tpm_eventlog *log_tbl = NULL; -- struct efi_tcg2_final_events_table *final_events_table; -+ struct efi_tcg2_final_events_table *final_events_table = NULL; - unsigned long first_entry_addr, last_entry_addr; - size_t log_size, last_entry_size; - efi_bool_t truncated; -@@ -127,7 +127,8 @@ void efi_retrieve_tpm2_eventlog(void) - * Figure out whether any events have already been logged to the - * final events structure, and if so how much space they take up - */ -- final_events_table = get_efi_config_table(LINUX_EFI_TPM_FINAL_LOG_GUID); -+ if (version == EFI_TCG2_EVENT_LOG_FORMAT_TCG_2) -+ final_events_table = get_efi_config_table(LINUX_EFI_TPM_FINAL_LOG_GUID); - if (final_events_table && final_events_table->nr_events) { - struct tcg_pcr_event2_head *header; - int offset; -diff --git a/drivers/firmware/efi/tpm.c b/drivers/firmware/efi/tpm.c -index 55b031d2c989..77e101a395e7 100644 ---- a/drivers/firmware/efi/tpm.c -+++ b/drivers/firmware/efi/tpm.c -@@ -62,7 +62,8 @@ int __init efi_tpm_eventlog_init(void) - tbl_size = sizeof(*log_tbl) + log_tbl->size; - memblock_reserve(efi.tpm_log, tbl_size); - -- if (efi.tpm_final_log == EFI_INVALID_TABLE_ADDR) -+ if (efi.tpm_final_log == EFI_INVALID_TABLE_ADDR || -+ log_tbl->version != EFI_TCG2_EVENT_LOG_FORMAT_TCG_2) - goto out; - - final_tbl = early_memremap(efi.tpm_final_log, sizeof(*final_tbl)); --- -2.26.2 - - From 60b20c0db85edba7fc19f811d19fd287219d941b Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Tue, 2 Jun 2020 13:53:32 -0500 Subject: [PATCH 062/191] Change value of CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE --- .../fedora/generic/CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/fedora/generic/CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE b/configs/fedora/generic/CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE index 47810c7e4..9fefaf319 100644 --- a/configs/fedora/generic/CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE +++ b/configs/fedora/generic/CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE @@ -1 +1 @@ -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 From f3c97b210459be0178586445ea7762ca1e7da09a Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 3 Jun 2020 09:24:05 -0500 Subject: [PATCH 063/191] Linux v5.6.16 Signed-off-by: Justin M. Forbes --- ...i4-remove-the-need-for-artifical-IRQ.patch | 96 +++++++++---------- kernel-aarch64-debug-fedora.config | 2 +- kernel-aarch64-fedora.config | 2 +- kernel-armv7hl-debug-fedora.config | 2 +- kernel-armv7hl-fedora.config | 2 +- kernel-armv7hl-lpae-debug-fedora.config | 2 +- kernel-armv7hl-lpae-fedora.config | 2 +- kernel-i686-debug-fedora.config | 2 +- kernel-i686-fedora.config | 2 +- kernel-ppc64le-debug-fedora.config | 2 +- kernel-ppc64le-fedora.config | 2 +- kernel-s390x-debug-fedora.config | 2 +- kernel-s390x-fedora.config | 2 +- kernel-x86_64-debug-fedora.config | 2 +- kernel-x86_64-fedora.config | 2 +- kernel.spec | 5 +- sources | 2 +- 17 files changed, 67 insertions(+), 64 deletions(-) diff --git a/input-rmi4-remove-the-need-for-artifical-IRQ.patch b/input-rmi4-remove-the-need-for-artifical-IRQ.patch index 9a1794558..4d7bef554 100644 --- a/input-rmi4-remove-the-need-for-artifical-IRQ.patch +++ b/input-rmi4-remove-the-need-for-artifical-IRQ.patch @@ -1,4 +1,4 @@ -From 0a74d0f27e8d60e427b447a041bc061917d85fac Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires Date: Mon, 3 Apr 2017 18:18:21 +0200 Subject: [PATCH] Input: rmi4 - remove the need for artificial IRQ in case of @@ -22,33 +22,33 @@ Signed-off-by: Lyude 3 files changed, 75 insertions(+), 114 deletions(-) diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c -index 9e33165250a3..e7e33a160b47 100644 +index 8cffa84c9650..6c4e3675601a 100644 --- a/drivers/hid/hid-rmi.c +++ b/drivers/hid/hid-rmi.c -@@ -316,19 +316,12 @@ static int rmi_input_event(struct hid_device *hdev, u8 *data, int size) +@@ -322,19 +322,12 @@ static int rmi_input_event(struct hid_device *hdev, u8 *data, int size) { struct rmi_data *hdata = hid_get_drvdata(hdev); struct rmi_device *rmi_dev = hdata->xport.rmi_dev; - unsigned long flags; - + if (!(test_bit(RMI_STARTED, &hdata->flags))) return 0; - + - local_irq_save(flags); - rmi_set_attn_data(rmi_dev, data[1], &data[2], size - 2); - + - generic_handle_irq(hdata->rmi_irq); - - local_irq_restore(flags); - return 1; } - -@@ -586,56 +579,6 @@ static const struct rmi_transport_ops hid_rmi_ops = { + +@@ -592,56 +585,6 @@ static const struct rmi_transport_ops hid_rmi_ops = { .reset = rmi_hid_reset, }; - + -static void rmi_irq_teardown(void *data) -{ - struct rmi_data *hdata = data; @@ -102,10 +102,10 @@ index 9e33165250a3..e7e33a160b47 100644 static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) { struct rmi_data *data = NULL; -@@ -708,18 +651,11 @@ static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) - +@@ -714,18 +657,11 @@ static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) + mutex_init(&data->page_mutex); - + - ret = rmi_setup_irq_domain(hdev); - if (ret) { - hid_err(hdev, "failed to allocate IRQ domain\n"); @@ -114,26 +114,26 @@ index 9e33165250a3..e7e33a160b47 100644 - if (data->device_flags & RMI_DEVICE_HAS_PHYS_BUTTONS) rmi_hid_pdata.f30_data.disable = true; - + data->xport.dev = hdev->dev.parent; data->xport.pdata = rmi_hid_pdata; - data->xport.pdata.irq = data->rmi_irq; data->xport.proto_name = "hid"; data->xport.ops = &hid_rmi_ops; - + diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c -index fc3ab93b7aea..35bc90141db8 100644 +index 258d5fe3d395..f7298e3dc8f3 100644 --- a/drivers/input/rmi4/rmi_driver.c +++ b/drivers/input/rmi4/rmi_driver.c -@@ -185,34 +185,47 @@ void rmi_set_attn_data(struct rmi_device *rmi_dev, unsigned long irq_status, +@@ -182,34 +182,47 @@ void rmi_set_attn_data(struct rmi_device *rmi_dev, unsigned long irq_status, attn_data.data = fifo_data; - + kfifo_put(&drvdata->attn_fifo, attn_data); + + schedule_work(&drvdata->attn_work); } EXPORT_SYMBOL_GPL(rmi_set_attn_data); - + -static irqreturn_t rmi_irq_fn(int irq, void *dev_id) +static void attn_callback(struct work_struct *work) { @@ -144,7 +144,7 @@ index fc3ab93b7aea..35bc90141db8 100644 + attn_work); struct rmi4_attn_data attn_data = {0}; int ret, count; - + count = kfifo_get(&drvdata->attn_fifo, &attn_data); - if (count) { - *(drvdata->irq_status) = attn_data.irq_status; @@ -152,7 +152,7 @@ index fc3ab93b7aea..35bc90141db8 100644 - } + if (!count) + return; - + - ret = rmi_process_interrupt_requests(rmi_dev); + *(drvdata->irq_status) = attn_data.irq_status; + drvdata->attn_data = attn_data; @@ -162,14 +162,14 @@ index fc3ab93b7aea..35bc90141db8 100644 - rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, + rmi_dbg(RMI_DEBUG_CORE, &drvdata->rmi_dev->dev, "Failed to process interrupt request: %d\n", ret); - + - if (count) { - kfree(attn_data.data); -- attn_data.data = NULL; +- drvdata->attn_data.data = NULL; - } + kfree(attn_data.data); -+ attn_data.data = NULL; - ++ drvdata->attn_data.data = NULL; + if (!kfifo_is_empty(&drvdata->attn_fifo)) - return rmi_irq_fn(irq, dev_id); + schedule_work(&drvdata->attn_work); @@ -184,30 +184,30 @@ index fc3ab93b7aea..35bc90141db8 100644 + if (ret) + rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, + "Failed to process interrupt request: %d\n", ret); - + return IRQ_HANDLED; } -@@ -220,7 +233,6 @@ static irqreturn_t rmi_irq_fn(int irq, void *dev_id) +@@ -217,7 +230,6 @@ static irqreturn_t rmi_irq_fn(int irq, void *dev_id) static int rmi_irq_init(struct rmi_device *rmi_dev) { struct rmi_device_platform_data *pdata = rmi_get_platform_data(rmi_dev); - struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev); int irq_flags = irq_get_trigger_type(pdata->irq); int ret; - -@@ -238,8 +250,6 @@ static int rmi_irq_init(struct rmi_device *rmi_dev) + +@@ -235,8 +247,6 @@ static int rmi_irq_init(struct rmi_device *rmi_dev) return ret; } - + - data->enabled = true; - return 0; } - -@@ -889,23 +899,27 @@ void rmi_enable_irq(struct rmi_device *rmi_dev, bool clear_wake) + +@@ -886,23 +896,27 @@ void rmi_enable_irq(struct rmi_device *rmi_dev, bool clear_wake) if (data->enabled) goto out; - + - enable_irq(irq); - data->enabled = true; - if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) { @@ -227,7 +227,7 @@ index fc3ab93b7aea..35bc90141db8 100644 + "Failed to disable irq for wake: %d\n", + retval); + } - + - /* - * Call rmi_process_interrupt_requests() after enabling irq, - * otherwise we may lose interrupt on edge-triggered systems. @@ -245,12 +245,12 @@ index fc3ab93b7aea..35bc90141db8 100644 + } else { + data->enabled = true; + } - + out: mutex_unlock(&data->enabled_mutex); -@@ -925,20 +939,22 @@ void rmi_disable_irq(struct rmi_device *rmi_dev, bool enable_wake) +@@ -922,20 +936,22 @@ void rmi_disable_irq(struct rmi_device *rmi_dev, bool enable_wake) goto out; - + data->enabled = false; - disable_irq(irq); - if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) { @@ -283,21 +283,21 @@ index fc3ab93b7aea..35bc90141db8 100644 + kfree(attn_data.data); + } } - + out: -@@ -984,6 +1000,8 @@ static int rmi_driver_remove(struct device *dev) +@@ -981,6 +997,8 @@ static int rmi_driver_remove(struct device *dev) irq_domain_remove(data->irqdomain); data->irqdomain = NULL; - + + cancel_work_sync(&data->attn_work); + rmi_f34_remove_sysfs(rmi_dev); rmi_free_function_list(rmi_dev); - -@@ -1221,9 +1239,15 @@ static int rmi_driver_probe(struct device *dev) + +@@ -1219,9 +1237,15 @@ static int rmi_driver_probe(struct device *dev) } } - + - retval = rmi_irq_init(rmi_dev); - if (retval < 0) - goto err_destroy_functions; @@ -310,21 +310,21 @@ index fc3ab93b7aea..35bc90141db8 100644 + data->enabled = true; + + INIT_WORK(&data->attn_work, attn_callback); - + if (data->f01_container->dev.driver) { /* Driver already bound, so enable ATTN now. */ diff --git a/include/linux/rmi.h b/include/linux/rmi.h -index 5ef5c7c412a7..21f48f2807de 100644 +index 7b22366d0065..307a651b2755 100644 --- a/include/linux/rmi.h +++ b/include/linux/rmi.h -@@ -366,6 +366,7 @@ struct rmi_driver_data { - +@@ -363,6 +363,7 @@ struct rmi_driver_data { + struct rmi4_attn_data attn_data; DECLARE_KFIFO(attn_fifo, struct rmi4_attn_data, 16); + struct work_struct attn_work; }; - + int rmi_register_transport_device(struct rmi_transport_dev *xport); -- -2.17.1 +2.26.2 diff --git a/kernel-aarch64-debug-fedora.config b/kernel-aarch64-debug-fedora.config index 0a2eab1f2..03f9352a4 100644 --- a/kernel-aarch64-debug-fedora.config +++ b/kernel-aarch64-debug-fedora.config @@ -5520,7 +5520,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel-aarch64-fedora.config b/kernel-aarch64-fedora.config index 7532f0f4b..b706406c7 100644 --- a/kernel-aarch64-fedora.config +++ b/kernel-aarch64-fedora.config @@ -5499,7 +5499,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel-armv7hl-debug-fedora.config b/kernel-armv7hl-debug-fedora.config index 908fe1217..329f4efd1 100644 --- a/kernel-armv7hl-debug-fedora.config +++ b/kernel-armv7hl-debug-fedora.config @@ -5633,7 +5633,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel-armv7hl-fedora.config b/kernel-armv7hl-fedora.config index c56bd894e..818921707 100644 --- a/kernel-armv7hl-fedora.config +++ b/kernel-armv7hl-fedora.config @@ -5613,7 +5613,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel-armv7hl-lpae-debug-fedora.config b/kernel-armv7hl-lpae-debug-fedora.config index bb077007b..bb8361837 100644 --- a/kernel-armv7hl-lpae-debug-fedora.config +++ b/kernel-armv7hl-lpae-debug-fedora.config @@ -5450,7 +5450,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel-armv7hl-lpae-fedora.config b/kernel-armv7hl-lpae-fedora.config index d06900a42..2bc45fa97 100644 --- a/kernel-armv7hl-lpae-fedora.config +++ b/kernel-armv7hl-lpae-fedora.config @@ -5430,7 +5430,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel-i686-debug-fedora.config b/kernel-i686-debug-fedora.config index 2c0c7ec6a..eae66431d 100644 --- a/kernel-i686-debug-fedora.config +++ b/kernel-i686-debug-fedora.config @@ -4944,7 +4944,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel-i686-fedora.config b/kernel-i686-fedora.config index 0cf5f785a..1c235651f 100644 --- a/kernel-i686-fedora.config +++ b/kernel-i686-fedora.config @@ -4924,7 +4924,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel-ppc64le-debug-fedora.config b/kernel-ppc64le-debug-fedora.config index 7488797de..d19eb7b28 100644 --- a/kernel-ppc64le-debug-fedora.config +++ b/kernel-ppc64le-debug-fedora.config @@ -4634,7 +4634,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel-ppc64le-fedora.config b/kernel-ppc64le-fedora.config index e59a04250..8074efba2 100644 --- a/kernel-ppc64le-fedora.config +++ b/kernel-ppc64le-fedora.config @@ -4612,7 +4612,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel-s390x-debug-fedora.config b/kernel-s390x-debug-fedora.config index 675cdacee..0847ad850 100644 --- a/kernel-s390x-debug-fedora.config +++ b/kernel-s390x-debug-fedora.config @@ -4576,7 +4576,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel-s390x-fedora.config b/kernel-s390x-fedora.config index 251997b4d..a6b43f2e9 100644 --- a/kernel-s390x-fedora.config +++ b/kernel-s390x-fedora.config @@ -4554,7 +4554,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel-x86_64-debug-fedora.config b/kernel-x86_64-debug-fedora.config index c52f99776..afac3b473 100644 --- a/kernel-x86_64-debug-fedora.config +++ b/kernel-x86_64-debug-fedora.config @@ -4989,7 +4989,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel-x86_64-fedora.config b/kernel-x86_64-fedora.config index 24121b0e7..aeab9a13e 100644 --- a/kernel-x86_64-fedora.config +++ b/kernel-x86_64-fedora.config @@ -4969,7 +4969,7 @@ CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_SAFESETID is not set CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 diff --git a/kernel.spec b/kernel.spec index c69953175..0b22db525 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 15 +%define stable_update 16 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -3017,6 +3017,9 @@ fi # # %changelog +* Wed Jun 03 2020 Justin M. Forbes - 5.6.16-300 +- Linux v5.6.16 + * Thu May 28 2020 Justin M. Forbes - 5.6.15-300 - Linux v5.6.15 diff --git a/sources b/sources index aa6d96ede..7d2006d87 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.15.xz) = e1c882595806f0bceaf2341ebb569a8b28706c7bd5224f2cd780d6fe31562286fa134cca8381ec3ce3ce481847684e29c580a1b24fef7985863683ff6544dc81 +SHA512 (patch-5.6.16.xz) = 6a8b2defef415511386b4a792582cdf657d6fbdf6a0648cad99465d5b91fdc65729b2255a73a0af5db2577f452544f59b57cfce84a45e21aecf253648a40eabc From 22d13b8a2162a7a8fb3caf0e08ec00414c044906 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 4 Jun 2020 12:29:28 -0500 Subject: [PATCH 064/191] Fix CVE-2020-10757 (rhbz 1842525 184388) Signed-off-by: Justin M. Forbes --- kernel.spec | 8 +- ...emap-not-considering-huge-pmd-devmap.patch | 79 +++++++++++++++++++ 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 mm-fix-mremap-not-considering-huge-pmd-devmap.patch diff --git a/kernel.spec b/kernel.spec index 0b22db525..d50056bc8 100644 --- a/kernel.spec +++ b/kernel.spec @@ -921,6 +921,9 @@ Patch519: vboxguest-fixes.patch # rhbz 1830150 Patch520: 0001-platform-x86-sony-laptop-SNC-calls-should-handle-BUF.patch +# CVE-2020-10757 rhbz 1842525 1843883 +Patch521: mm-fix-mremap-not-considering-huge-pmd-devmap.patch + # END OF PATCH DEFINITIONS %endif @@ -3017,7 +3020,10 @@ fi # # %changelog -* Wed Jun 03 2020 Justin M. Forbes - 5.6.16-300 +* Thu Jun 04 2020 Justin M. Forbes - 5.6.16-300 +- Fix CVE-2020-10757 (rhbz 1842525 184388) + +* Wed Jun 03 2020 Justin M. Forbes - Linux v5.6.16 * Thu May 28 2020 Justin M. Forbes - 5.6.15-300 diff --git a/mm-fix-mremap-not-considering-huge-pmd-devmap.patch b/mm-fix-mremap-not-considering-huge-pmd-devmap.patch new file mode 100644 index 000000000..328154df9 --- /dev/null +++ b/mm-fix-mremap-not-considering-huge-pmd-devmap.patch @@ -0,0 +1,79 @@ +From MAILER-DAEMON Thu Jun 4 17:23:35 2020 +From: Fan Yang +Subject: [PATCH v3] mm: Fix mremap not considering huge pmd devmap +Message-Id: +Date: Thu, 04 Jun 2020 18:22:07 +0800 +Cc: "Williams, Dan J" , "Kirill A. Shutemov" , Linus Torvalds +To: linux-kernel@vger.kernel.org +Sender: linux-kernel-owner@vger.kernel.org +List-ID: +X-Mailing-List: linux-kernel@vger.kernel.org +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 7bit + +The original code in mm/mremap.c checks huge pmd by: + + if (is_swap_pmd(*old_pmd) || pmd_trans_huge(*old_pmd)) { + +However, a DAX mapped nvdimm is mapped as huge page (by default) but +it is not transparent huge page (_PAGE_PSE | PAGE_DEVMAP). This +commit changes the condition to include the case. + +This addresses CVE-2020-10757. + +Fixes: 5c7fb56e5e3f ("mm, dax: dax-pmd vs thp-pmd vs hugetlbfs-pmd") +Cc: +Reported-by: Fan Yang +Signed-off-by: Fan Yang +Tested-by: Fan Yang +Tested-by: Dan Williams +Reviewed-by: Dan Williams +Acked-by: Kirill A. Shutemov + +--- + +Changelog v2->v3: +- Added "Acked-by: Kirill..." + +Changelog v1->v2: +- Removed some paragraph in commit msg, removed the comment in + mm/mremap.c, and added a NOTE in where pmd_trans_huge is defined. +- Added "Reviewed-by: Dan..." +- Added "Fixes: 5c7fb56e5e3f..." +- Added "Cc: " +--- + arch/x86/include/asm/pgtable.h | 1 + + mm/mremap.c | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h +index 4d02e64af1b3..19cdeebfbde6 100644 +--- a/arch/x86/include/asm/pgtable.h ++++ b/arch/x86/include/asm/pgtable.h +@@ -257,6 +257,7 @@ static inline int pmd_large(pmd_t pte) + } + + #ifdef CONFIG_TRANSPARENT_HUGEPAGE ++/* NOTE: when predicate huge page, consider also pmd_devmap, or use pmd_large */ + static inline int pmd_trans_huge(pmd_t pmd) + { + return (pmd_val(pmd) & (_PAGE_PSE|_PAGE_DEVMAP)) == _PAGE_PSE; +diff --git a/mm/mremap.c b/mm/mremap.c +index 6aa6ea605068..57b1f999f789 100644 +--- a/mm/mremap.c ++++ b/mm/mremap.c +@@ -266,7 +266,7 @@ unsigned long move_page_tables(struct vm_area_struct *vma, + new_pmd = alloc_new_pmd(vma->vm_mm, vma, new_addr); + if (!new_pmd) + break; +- if (is_swap_pmd(*old_pmd) || pmd_trans_huge(*old_pmd)) { ++ if (is_swap_pmd(*old_pmd) || pmd_trans_huge(*old_pmd) || pmd_devmap(*old_pmd)) { + if (extent == HPAGE_PMD_SIZE) { + bool moved; + /* See comment in move_ptes() */ +-- +2.25.4 + + + From 0a8acb1c3352cdc9bb871dd5d3f7096282d9364e Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 8 Jun 2020 07:48:27 -0500 Subject: [PATCH 065/191] Linux v 5.6.17 Signed-off-by: Justin M. Forbes --- ...emap-not-considering-huge-pmd-devmap.patch | 79 ------------------- sources | 1 + 2 files changed, 1 insertion(+), 79 deletions(-) delete mode 100644 mm-fix-mremap-not-considering-huge-pmd-devmap.patch diff --git a/mm-fix-mremap-not-considering-huge-pmd-devmap.patch b/mm-fix-mremap-not-considering-huge-pmd-devmap.patch deleted file mode 100644 index 328154df9..000000000 --- a/mm-fix-mremap-not-considering-huge-pmd-devmap.patch +++ /dev/null @@ -1,79 +0,0 @@ -From MAILER-DAEMON Thu Jun 4 17:23:35 2020 -From: Fan Yang -Subject: [PATCH v3] mm: Fix mremap not considering huge pmd devmap -Message-Id: -Date: Thu, 04 Jun 2020 18:22:07 +0800 -Cc: "Williams, Dan J" , "Kirill A. Shutemov" , Linus Torvalds -To: linux-kernel@vger.kernel.org -Sender: linux-kernel-owner@vger.kernel.org -List-ID: -X-Mailing-List: linux-kernel@vger.kernel.org -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 7bit - -The original code in mm/mremap.c checks huge pmd by: - - if (is_swap_pmd(*old_pmd) || pmd_trans_huge(*old_pmd)) { - -However, a DAX mapped nvdimm is mapped as huge page (by default) but -it is not transparent huge page (_PAGE_PSE | PAGE_DEVMAP). This -commit changes the condition to include the case. - -This addresses CVE-2020-10757. - -Fixes: 5c7fb56e5e3f ("mm, dax: dax-pmd vs thp-pmd vs hugetlbfs-pmd") -Cc: -Reported-by: Fan Yang -Signed-off-by: Fan Yang -Tested-by: Fan Yang -Tested-by: Dan Williams -Reviewed-by: Dan Williams -Acked-by: Kirill A. Shutemov - ---- - -Changelog v2->v3: -- Added "Acked-by: Kirill..." - -Changelog v1->v2: -- Removed some paragraph in commit msg, removed the comment in - mm/mremap.c, and added a NOTE in where pmd_trans_huge is defined. -- Added "Reviewed-by: Dan..." -- Added "Fixes: 5c7fb56e5e3f..." -- Added "Cc: " ---- - arch/x86/include/asm/pgtable.h | 1 + - mm/mremap.c | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h -index 4d02e64af1b3..19cdeebfbde6 100644 ---- a/arch/x86/include/asm/pgtable.h -+++ b/arch/x86/include/asm/pgtable.h -@@ -257,6 +257,7 @@ static inline int pmd_large(pmd_t pte) - } - - #ifdef CONFIG_TRANSPARENT_HUGEPAGE -+/* NOTE: when predicate huge page, consider also pmd_devmap, or use pmd_large */ - static inline int pmd_trans_huge(pmd_t pmd) - { - return (pmd_val(pmd) & (_PAGE_PSE|_PAGE_DEVMAP)) == _PAGE_PSE; -diff --git a/mm/mremap.c b/mm/mremap.c -index 6aa6ea605068..57b1f999f789 100644 ---- a/mm/mremap.c -+++ b/mm/mremap.c -@@ -266,7 +266,7 @@ unsigned long move_page_tables(struct vm_area_struct *vma, - new_pmd = alloc_new_pmd(vma->vm_mm, vma, new_addr); - if (!new_pmd) - break; -- if (is_swap_pmd(*old_pmd) || pmd_trans_huge(*old_pmd)) { -+ if (is_swap_pmd(*old_pmd) || pmd_trans_huge(*old_pmd) || pmd_devmap(*old_pmd)) { - if (extent == HPAGE_PMD_SIZE) { - bool moved; - /* See comment in move_ptes() */ --- -2.25.4 - - - diff --git a/sources b/sources index 7d2006d87..599958b6c 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 SHA512 (patch-5.6.16.xz) = 6a8b2defef415511386b4a792582cdf657d6fbdf6a0648cad99465d5b91fdc65729b2255a73a0af5db2577f452544f59b57cfce84a45e21aecf253648a40eabc +SHA512 (patch-5.6.17.xz) = be922570e079a5bab8d23b504050afccca9e94b149e1460c49b78054735afe2469b5b49d056120eee5d774fff90059772ac105f7fa476d052d9cb18f81688846 From bfafe6a7f6c4672169a8f30e1aaca6bcf0053bcf Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 8 Jun 2020 07:49:03 -0500 Subject: [PATCH 066/191] Linux v 5.6.17 (this time with spec) Signed-off-by: Justin M. Forbes --- kernel.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel.spec b/kernel.spec index d50056bc8..3afa69ac9 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 16 +%define stable_update 17 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -921,9 +921,6 @@ Patch519: vboxguest-fixes.patch # rhbz 1830150 Patch520: 0001-platform-x86-sony-laptop-SNC-calls-should-handle-BUF.patch -# CVE-2020-10757 rhbz 1842525 1843883 -Patch521: mm-fix-mremap-not-considering-huge-pmd-devmap.patch - # END OF PATCH DEFINITIONS %endif @@ -3020,6 +3017,9 @@ fi # # %changelog +* Mon Jun 08 2020 Justin M. Forbes - 5.6.17-300 +- Linux v5.6.17 + * Thu Jun 04 2020 Justin M. Forbes - 5.6.16-300 - Fix CVE-2020-10757 (rhbz 1842525 184388) From c90c2f5363416bffedbee438fec2b79e1cc14217 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 8 Jun 2020 07:49:42 -0500 Subject: [PATCH 067/191] Linux v 5.6.17 (this time with sources) Signed-off-by: Justin M. Forbes --- sources | 1 - 1 file changed, 1 deletion(-) diff --git a/sources b/sources index 599958b6c..fc7e534a8 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.16.xz) = 6a8b2defef415511386b4a792582cdf657d6fbdf6a0648cad99465d5b91fdc65729b2255a73a0af5db2577f452544f59b57cfce84a45e21aecf253648a40eabc SHA512 (patch-5.6.17.xz) = be922570e079a5bab8d23b504050afccca9e94b149e1460c49b78054735afe2469b5b49d056120eee5d774fff90059772ac105f7fa476d052d9cb18f81688846 From 007252f0a039c36e464157443275adf81ec15580 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 10 Jun 2020 16:19:16 -0500 Subject: [PATCH 068/191] Linux v5.6.18 Signed-off-by: Justin M. Forbes --- kernel.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 3afa69ac9..d0ee89493 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 17 +%define stable_update 18 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -3017,6 +3017,9 @@ fi # # %changelog +* Wed Jun 10 2020 Justin M. Forbes - 5.6.18-300 +- Linux v5.6.18 + * Mon Jun 08 2020 Justin M. Forbes - 5.6.17-300 - Linux v5.6.17 diff --git a/sources b/sources index fc7e534a8..06183057e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.17.xz) = be922570e079a5bab8d23b504050afccca9e94b149e1460c49b78054735afe2469b5b49d056120eee5d774fff90059772ac105f7fa476d052d9cb18f81688846 +SHA512 (patch-5.6.18.xz) = c7191fdaf6bd231a38a41b4a876f7855b1038a8b2be52882aba8ac42704b5e4101ff151b29991233a7db6c8d191e2a547a78a00c027d79f63d4e99054aefb9ba From 5e4fb76d9ebf2f2d900a65c125c50a6e05093fc3 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Tue, 16 Jun 2020 11:57:49 -0500 Subject: [PATCH 069/191] Add dual fan control for several Lenovo notebooks Signed-off-by: Justin M. Forbes --- ...nkpad_acpi-Add-support-for-dual-fan-.patch | 136 ++++++++++++++++++ kernel.spec | 7 + 2 files changed, 143 insertions(+) create mode 100644 0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch diff --git a/0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch b/0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch new file mode 100644 index 000000000..4ba03934d --- /dev/null +++ b/0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch @@ -0,0 +1,136 @@ +From 14232c6e788cb1f7b96dbd08b077f90923324b24 Mon Sep 17 00:00:00 2001 +From: Lars Hofhansl +Date: Thu, 23 Apr 2020 14:57:09 -0700 +Subject: [PATCH] platform/x86: thinkpad_acpi: Add support for dual fan control + +This adds dual fan control for the following models: +P50, P51, P52, P70, P71, P72, P1 gen1, P2 gen2, X1E gen1 and X1E gen2. + +Both fans are controlled together as if they were a single fan. + +Tested on an X1 Extreme Gen1, an X1 Extreme Gen2, and a P50. + +The patch is defensive, it adds only specific supported machines, and falls +back to the old behavior if both fans cannot be controlled. + +Background: +I tested the BIOS default behavior on my X1E gen2 and both fans are always +changed together. So rather than adding controls for each fan, this controls +both fans together as the BIOS would do. + +This was inspired by a discussion on dual fan support for the thinkfan tool +(see link below). All BIOS IDs are taken from there. The X1E gen2 ID is +verified on my machine. + +Thanks to GitHub users voidworker and civic9 for the earlier patches and +BIOS IDs, and to users peter-stoll and sassman for testing the patch on +their machines. + +BugLink: https://github.com/vmatare/thinkfan/issues/58 +Signed-off-by: Lars Hofhansl +[andy: massaged commit message to capitalize ID and convert to BugLink] +Signed-off-by: Andy Shevchenko +--- + drivers/platform/x86/thinkpad_acpi.c | 43 ++++++++++++++++++++++++---- + 1 file changed, 37 insertions(+), 6 deletions(-) + +diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c +index 8eaadbaf8ffa..83b4a83da967 100644 +--- a/drivers/platform/x86/thinkpad_acpi.c ++++ b/drivers/platform/x86/thinkpad_acpi.c +@@ -318,6 +318,7 @@ static struct { + u32 uwb:1; + u32 fan_ctrl_status_undef:1; + u32 second_fan:1; ++ u32 second_fan_ctl:1; + u32 beep_needs_two_args:1; + u32 mixer_no_level_control:1; + u32 battery_force_primary:1; +@@ -8324,11 +8325,19 @@ static int fan_set_level(int level) + + switch (fan_control_access_mode) { + case TPACPI_FAN_WR_ACPI_SFAN: +- if (level >= 0 && level <= 7) { +- if (!acpi_evalf(sfan_handle, NULL, NULL, "vd", level)) +- return -EIO; +- } else ++ if ((level < 0) || (level > 7)) + return -EINVAL; ++ ++ if (tp_features.second_fan_ctl) { ++ if (!fan_select_fan2() || ++ !acpi_evalf(sfan_handle, NULL, NULL, "vd", level)) { ++ pr_warn("Couldn't set 2nd fan level, disabling support\n"); ++ tp_features.second_fan_ctl = 0; ++ } ++ fan_select_fan1(); ++ } ++ if (!acpi_evalf(sfan_handle, NULL, NULL, "vd", level)) ++ return -EIO; + break; + + case TPACPI_FAN_WR_ACPI_FANS: +@@ -8345,6 +8354,15 @@ static int fan_set_level(int level) + else if (level & TP_EC_FAN_AUTO) + level |= 4; /* safety min speed 4 */ + ++ if (tp_features.second_fan_ctl) { ++ if (!fan_select_fan2() || ++ !acpi_ec_write(fan_status_offset, level)) { ++ pr_warn("Couldn't set 2nd fan level, disabling support\n"); ++ tp_features.second_fan_ctl = 0; ++ } ++ fan_select_fan1(); ++ ++ } + if (!acpi_ec_write(fan_status_offset, level)) + return -EIO; + else +@@ -8763,6 +8781,7 @@ static const struct attribute_group fan_attr_group = { + + #define TPACPI_FAN_Q1 0x0001 /* Unitialized HFSP */ + #define TPACPI_FAN_2FAN 0x0002 /* EC 0x31 bit 0 selects fan2 */ ++#define TPACPI_FAN_2CTL 0x0004 /* selects fan2 control */ + + static const struct tpacpi_quirk fan_quirk_table[] __initconst = { + TPACPI_QEC_IBM('1', 'Y', TPACPI_FAN_Q1), +@@ -8771,6 +8790,13 @@ static const struct tpacpi_quirk fan_quirk_table[] __initconst = { + TPACPI_QEC_IBM('7', '0', TPACPI_FAN_Q1), + TPACPI_QEC_LNV('7', 'M', TPACPI_FAN_2FAN), + TPACPI_Q_LNV('N', '1', TPACPI_FAN_2FAN), ++ TPACPI_Q_LNV3('N', '1', 'D', TPACPI_FAN_2CTL), /* P70 */ ++ TPACPI_Q_LNV3('N', '1', 'E', TPACPI_FAN_2CTL), /* P50 */ ++ TPACPI_Q_LNV3('N', '1', 'T', TPACPI_FAN_2CTL), /* P71 */ ++ TPACPI_Q_LNV3('N', '1', 'U', TPACPI_FAN_2CTL), /* P51 */ ++ TPACPI_Q_LNV3('N', '2', 'C', TPACPI_FAN_2CTL), /* P52 / P72 */ ++ TPACPI_Q_LNV3('N', '2', 'E', TPACPI_FAN_2CTL), /* P1 / X1 Extreme (1st gen) */ ++ TPACPI_Q_LNV3('N', '2', 'O', TPACPI_FAN_2CTL), /* P1 / X1 Extreme (2nd gen) */ + }; + + static int __init fan_init(struct ibm_init_struct *iibm) +@@ -8788,6 +8814,7 @@ static int __init fan_init(struct ibm_init_struct *iibm) + fan_watchdog_maxinterval = 0; + tp_features.fan_ctrl_status_undef = 0; + tp_features.second_fan = 0; ++ tp_features.second_fan_ctl = 0; + fan_control_desired_level = 7; + + if (tpacpi_is_ibm()) { +@@ -8812,8 +8839,12 @@ static int __init fan_init(struct ibm_init_struct *iibm) + fan_quirk1_setup(); + if (quirks & TPACPI_FAN_2FAN) { + tp_features.second_fan = 1; +- dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_FAN, +- "secondary fan support enabled\n"); ++ pr_info("secondary fan support enabled\n"); ++ } ++ if (quirks & TPACPI_FAN_2CTL) { ++ tp_features.second_fan = 1; ++ tp_features.second_fan_ctl = 1; ++ pr_info("secondary fan control enabled\n"); + } + } else { + pr_err("ThinkPad ACPI EC access misbehaving, fan status and control unavailable\n"); +-- +2.26.2 + diff --git a/kernel.spec b/kernel.spec index d0ee89493..3aedb338b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -921,6 +921,9 @@ Patch519: vboxguest-fixes.patch # rhbz 1830150 Patch520: 0001-platform-x86-sony-laptop-SNC-calls-should-handle-BUF.patch +# Thinkpad dual fan control +Patch521: 0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch + # END OF PATCH DEFINITIONS %endif @@ -3017,6 +3020,10 @@ fi # # %changelog +* Mon Jun 15 2020 Stefan Assmann +- Add dual fan control for P50, P51, P52, P70, P71, P72, P1 gen1, P2 gen2, + X1E gen1 and X1E gen2. + * Wed Jun 10 2020 Justin M. Forbes - 5.6.18-300 - Linux v5.6.18 From 618d5f540f5dc8c702c4bdd6f65fa2455f7fb13e Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 17 Jun 2020 10:40:18 -0500 Subject: [PATCH 070/191] Linux v5.6.19 Signed-off-by: Justin M. Forbes --- ...y-laptop-SNC-calls-should-handle-BUF.patch | 114 ------------------ kernel.spec | 8 +- sources | 2 +- 3 files changed, 5 insertions(+), 119 deletions(-) delete mode 100644 0001-platform-x86-sony-laptop-SNC-calls-should-handle-BUF.patch diff --git a/0001-platform-x86-sony-laptop-SNC-calls-should-handle-BUF.patch b/0001-platform-x86-sony-laptop-SNC-calls-should-handle-BUF.patch deleted file mode 100644 index dcae360a7..000000000 --- a/0001-platform-x86-sony-laptop-SNC-calls-should-handle-BUF.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 47828d22539f76c8c9dcf2a55f18ea3a8039d8ef Mon Sep 17 00:00:00 2001 -From: Mattia Dongili -Date: Fri, 8 May 2020 09:14:04 +0900 -Subject: [PATCH] platform/x86: sony-laptop: SNC calls should handle BUFFER - types - -After commit 6d232b29cfce ("ACPICA: Dispatcher: always generate buffer -objects for ASL create_field() operator") ACPICA creates buffers even -when new fields are small enough to fit into an integer. -Many SNC calls counted on the old behaviour. -Since sony-laptop already handles the INTEGER/BUFFER case in -sony_nc_buffer_call, switch sony_nc_int_call to use its more generic -function instead. - -Fixes: 6d232b29cfce ("ACPICA: Dispatcher: always generate buffer objects for ASL create_field() operator") -Reported-by: Dominik Mierzejewski -Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=207491 -Reported-by: William Bader -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1830150 -Signed-off-by: Mattia Dongili -Signed-off-by: Andy Shevchenko ---- - drivers/platform/x86/sony-laptop.c | 53 +++++++++++++----------------- - 1 file changed, 23 insertions(+), 30 deletions(-) - -diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c -index 51309f7ceede..6932cd11e660 100644 ---- a/drivers/platform/x86/sony-laptop.c -+++ b/drivers/platform/x86/sony-laptop.c -@@ -757,33 +757,6 @@ static union acpi_object *__call_snc_method(acpi_handle handle, char *method, - return result; - } - --static int sony_nc_int_call(acpi_handle handle, char *name, int *value, -- int *result) --{ -- union acpi_object *object = NULL; -- if (value) { -- u64 v = *value; -- object = __call_snc_method(handle, name, &v); -- } else -- object = __call_snc_method(handle, name, NULL); -- -- if (!object) -- return -EINVAL; -- -- if (object->type != ACPI_TYPE_INTEGER) { -- pr_warn("Invalid acpi_object: expected 0x%x got 0x%x\n", -- ACPI_TYPE_INTEGER, object->type); -- kfree(object); -- return -EINVAL; -- } -- -- if (result) -- *result = object->integer.value; -- -- kfree(object); -- return 0; --} -- - #define MIN(a, b) (a > b ? b : a) - static int sony_nc_buffer_call(acpi_handle handle, char *name, u64 *value, - void *buffer, size_t buflen) -@@ -795,17 +768,20 @@ static int sony_nc_buffer_call(acpi_handle handle, char *name, u64 *value, - if (!object) - return -EINVAL; - -- if (object->type == ACPI_TYPE_BUFFER) { -+ if (!buffer) { -+ /* do nothing */ -+ } else if (object->type == ACPI_TYPE_BUFFER) { - len = MIN(buflen, object->buffer.length); -+ memset(buffer, 0, buflen); - memcpy(buffer, object->buffer.pointer, len); - - } else if (object->type == ACPI_TYPE_INTEGER) { - len = MIN(buflen, sizeof(object->integer.value)); -+ memset(buffer, 0, buflen); - memcpy(buffer, &object->integer.value, len); - - } else { -- pr_warn("Invalid acpi_object: expected 0x%x got 0x%x\n", -- ACPI_TYPE_BUFFER, object->type); -+ pr_warn("Unexpected acpi_object: 0x%x\n", object->type); - ret = -EINVAL; - } - -@@ -813,6 +789,23 @@ static int sony_nc_buffer_call(acpi_handle handle, char *name, u64 *value, - return ret; - } - -+static int sony_nc_int_call(acpi_handle handle, char *name, int *value, int -+ *result) -+{ -+ int ret; -+ -+ if (value) { -+ u64 v = *value; -+ -+ ret = sony_nc_buffer_call(handle, name, &v, result, -+ sizeof(*result)); -+ } else { -+ ret = sony_nc_buffer_call(handle, name, NULL, result, -+ sizeof(*result)); -+ } -+ return ret; -+} -+ - struct sony_nc_handles { - u16 cap[0x10]; - struct device_attribute devattr; --- -2.26.2 - diff --git a/kernel.spec b/kernel.spec index 3aedb338b..677d01402 100644 --- a/kernel.spec +++ b/kernel.spec @@ -92,7 +92,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 18 +%define stable_update 19 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -918,9 +918,6 @@ Patch518: vfio-pci-block-user-access-to-disabled-device-MMIO.patch # rhbz 1789545 Patch519: vboxguest-fixes.patch -# rhbz 1830150 -Patch520: 0001-platform-x86-sony-laptop-SNC-calls-should-handle-BUF.patch - # Thinkpad dual fan control Patch521: 0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch @@ -3020,6 +3017,9 @@ fi # # %changelog +* Wed Jun 17 2020 Justin M. Forbes - 5.6.19-300 +- Linux v5.6.19 + * Mon Jun 15 2020 Stefan Assmann - Add dual fan control for P50, P51, P52, P70, P71, P72, P1 gen1, P2 gen2, X1E gen1 and X1E gen2. diff --git a/sources b/sources index 06183057e..067ac998e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.18.xz) = c7191fdaf6bd231a38a41b4a876f7855b1038a8b2be52882aba8ac42704b5e4101ff151b29991233a7db6c8d191e2a547a78a00c027d79f63d4e99054aefb9ba +SHA512 (patch-5.6.19.xz) = f967f9ffc12249db757bd38fd890ac69d327f23bcb767ffa0c178aa7e541bb4a10715664d703315ac3b96ed35909046350f97752c2a4691526ad55a9f03f2c24 From 60fd6260b95af92864e0038226b58de78d7fb9a6 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 29 Jun 2020 09:39:00 -0500 Subject: [PATCH 071/191] Linux v5.7.6 rebase Signed-off-by: Justin M. Forbes --- ...Ignore-broken-HPE-moonshot-APEI-supp.patch | 71 + ...und-firmware-issue-on-X-Gene-based-m.patch | 33 +- ...er_check-in-case-uaccess_-calls-are-.patch | 71 +- ...patch => 0001-ARM-tegra-usb-no-reset.patch | 10 +- ..._to_str-and-rework-efi_status_to_err.patch | 82 +- ...option-of-13-for-FORCE_MAX_ZONEORDER.patch | 15 +- 0001-Drop-that-for-now.patch | 8 +- ...m.h-and-kvm_arm.h-in-kvm-arm-trace.h.patch | 28 - ...e-the-need-for-artificial-IRQ-in-cas.patch | 0 ...-platform-keyring-for-module-signatu.patch | 11 +- ...st-use-efi_status_to_str-to-print-er.patch | 15 +- ...-for-Raspberry-Pi-s-firmware-when-pr.patch | 57 + ...-pci-quirks-Add-Raspberry-Pi-4-quirk.patch | 72 + ...bar-fix-for-Broadcom-Vulcan-early-si.patch | 75 + ...n-Fix-regression-related-to-X-Gene-U.patch | 33 +- ...pi-prefer-booting-with-ACPI-over-DTS.patch | 56 + ...memdup-instead-of-kmalloc-and-memcpy.patch | 55 + ...ix-for-errata-that-affects-stop-engi.patch | 89 ++ ...-the-EXPERT-setting-from-ARM64_FORCE.patch | 38 + ...HIGHPTE-optional-without-CONFIG_EXPE.patch | 10 +- ...om-Replace-.ioctl-with-.compat_ioctl.patch | 83 - ...ve-redundant-assignments-to-variable.patch | 32 + ...detect-if-changing-endianness-failed.patch | 62 + 0001-device-detect-vGPUs.patch | 59 + ...io-mapping-code-to-get-rid-of-second.patch | 84 + ...ar-PRI-accessors-in-chipset-detectio.patch | 113 ++ ...disp-gv100-expose-capabilities-class.patch | 149 ++ ...dd-HAL-for-programming-device-entry-.patch | 146 ++ ...elect-HDA-device-entry-based-on-boun.patch | 49 + ...-gt215-pass-head-to-nvkm_ior.hda.eld.patch | 83 + ...V_PDISP_SF_AUDIO_CNTRL0-register-mov.patch | 105 ++ ...se-timeout-on-pio-channel-free-polli.patch | 26 + ...eneric-helper-to-check-_PR3-presence.patch | 96 ++ ...imeout-to-wait-when-ME-un-configure-.patch | 35 + ...ECURE_BOOT-flag-to-indicate-secure-b.patch | 161 ++ ...e-kernel-if-booted-in-secure-boot-mo.patch | 72 + ...berrypi-Introduce-vl805-init-routine.patch | 110 ++ ...-arm-smmu-workaround-DMA-mode-issues.patch | 98 ++ ...i-do-not-configure-ipmi-for-HPE-m400.patch | 123 ++ ...ump-add-support-for-crashkernel-auto.patch | 189 +++ ...-a-grammar-issue-in-a-kernel-message.patch | 43 + ...he-total-memory-size-to-128M-for-cra.patch | 93 ++ ...100-Add-support-for-interlaced-modes.patch | 64 + ...ize-core-channel-in-nouveau_display_.patch | 47 + ...PC-limit-for-MST-into-nv50_mstc_get_.patch | 65 + ...OR-and-PIOR-caps-for-DP-interlacing-.patch | 439 ++++++ ...-DP-SST-mode_valid-handling-with-MST.patch | 209 +++ ...k-skip-late_init-if-not-skip-disable.patch | 10 +- 0001-mmu-Remove-unneeded-semicolon.patch | 47 + ...-cs-etm-Move-defined-of-traceid_list.patch | 58 + ..._state-runtime-pm-reference-handling.patch | 100 -- ...he-kernel-when-the-IPL-secure-flag-i.patch | 27 +- ...si-smartpqi-add-inspur-advantech-ids.patch | 70 + ...n-expose-a-hook-to-lock-the-kernel-d.patch | 103 ++ ...-xHCI-reset-firmware-property-with-d.patch | 32 + ...few-new-vmmdev-request-types-to-the-.patch | 58 + ...pport-for-the-new-VBG_IOCTL_ACQUIRE_.patch | 320 ++++ ...g_set_host_capabilities-helper-funct.patch | 130 ++ ...GL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch | 123 ++ ...ox-Fix-guest-capabilities-mask-check.patch | 47 + ...-Log-unknown-ioctl-requests-as-error.patch | 30 + ...-guest_caps-struct-members-to-set_gu.patch | 103 ++ ...-freeblocks-verify-in-xfs_agf_verify.patch | 107 -- ...-bcm2711-Move-emmc2-into-its-own-bus.patch | 168 -- ARM64-Tegra-fixes.patch | 477 ------ ...CD-support-for-Pine64-Pinebook-1080p.patch | 1033 ------------- Add-support-for-PinePhone-LCD-panel.patch | 1121 -------------- Add-support-for-the-pine64-Pinebook-Pro.patch | 1360 ----------------- ...quirks-for-Tegra194-host-controllers.patch | 481 ------ ...ert-raw_violation_fixup-for-tegra124.patch | 144 -- USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch | 714 --------- ...-iproc-Add-custom-set_power-callback.patch | 374 ----- ...5-serial-8250_early-support-aux-uart.patch | 47 - ...-Fix-some-GPIO-setup-on-Pinebook-Pro.patch | 50 - arm64-a64-mbus.patch | 69 - ...mq-phanbell-Add-support-for-ethernet.patch | 200 --- ...35-Add-support-for-all-BCM2711-GPIOs.patch | 868 ----------- arm64-pine64-pinephone.patch | 568 ------- arm64-pine64-pinetab.patch | 583 ------- arm64-pinebook-fixes.patch | 429 ------ ...ra-Create-Tegra-specific-8250-driver.patch | 396 ----- ...-ethernet-phy-mode-for-Jetson-Xavier.patch | 102 -- ...lators-are-disabled-on-probe-failure.patch | 186 --- ...esce-IRQs-left-enabled-by-bootloader.patch | 232 --- .../debug/CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE | 2 +- configs/fedora/debug/CONFIG_TEST_LOCKUP | 1 + configs/fedora/debug/x86/x86_64/README | 3 +- configs/fedora/generic/CONFIG_AD5770R | 1 + configs/fedora/generic/CONFIG_AL3010 | 1 + .../CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ | 1 + .../generic/CONFIG_APPLE_MFI_FASTCHARGE | 1 + configs/fedora/generic/CONFIG_BAREUDP | 1 + configs/fedora/generic/CONFIG_BPF_LSM | 1 + .../fedora/generic/CONFIG_CHELSIO_TLS_DEVICE | 1 + configs/fedora/generic/CONFIG_CLK_RASPBERRYPI | 1 + configs/fedora/generic/CONFIG_CROS_EC_TYPEC | 1 + .../fedora/generic/CONFIG_CROS_USBPD_NOTIFY | 1 + .../fedora/generic/CONFIG_DMABUF_MOVE_NOTIFY | 1 + .../generic/CONFIG_DRM_DISPLAY_CONNECTOR | 1 + .../generic/CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 | 1 + .../generic/CONFIG_DRM_PANEL_ELIDA_KD35T133 | 1 + .../CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 | 1 + .../generic/CONFIG_DRM_PANEL_NOVATEK_NT35510 | 1 + .../CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 | 1 - ...ONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 | 1 + .../generic/CONFIG_DRM_PANEL_SITRONIX_ST7703 | 1 + .../CONFIG_DRM_PANEL_XINGBANGDA_XBD599 | 1 - .../fedora/generic/CONFIG_DRM_PARADE_PS8640 | 1 + .../fedora/generic/CONFIG_DRM_SIMPLE_BRIDGE | 1 + configs/fedora/generic/CONFIG_DRM_TIDSS | 1 + .../fedora/generic/CONFIG_DRM_TI_TPD12S015 | 1 + .../generic/CONFIG_DRM_TOSHIBA_TC358768 | 1 + .../generic/CONFIG_EXFAT_DEFAULT_IOCHARSET | 1 + configs/fedora/generic/CONFIG_EXFAT_FS | 1 + configs/fedora/generic/CONFIG_F2FS_FS_ZSTD | 1 + configs/fedora/generic/CONFIG_FSL_ENETC | 1 + configs/fedora/generic/CONFIG_FSL_ENETC_MDIO | 1 + configs/fedora/generic/CONFIG_FSL_ENETC_VF | 1 + configs/fedora/generic/CONFIG_GP2AP002 | 1 + .../fedora/generic/CONFIG_HID_CREATIVE_SB0540 | 2 +- configs/fedora/generic/CONFIG_HID_GLORIOUS | 1 + configs/fedora/generic/CONFIG_HID_MCP2221 | 1 + configs/fedora/generic/CONFIG_HMC425 | 1 + .../fedora/generic/CONFIG_HW_RANDOM_HISI_V2 | 1 + configs/fedora/generic/CONFIG_ICP10100 | 1 + configs/fedora/generic/CONFIG_IFCVF | 1 + .../fedora/generic/CONFIG_IPV6_RPL_LWTUNNEL | 1 + .../CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE | 1 + configs/fedora/generic/CONFIG_MDIO_MVUSB | 1 + configs/fedora/generic/CONFIG_MDIO_XPCS | 1 + configs/fedora/generic/CONFIG_MFD_IQS62X | 1 + configs/fedora/generic/CONFIG_MHI_BUS | 1 + configs/fedora/generic/CONFIG_MLX5_TC_CT | 1 + configs/fedora/generic/CONFIG_MMC_HSQ | 1 + configs/fedora/generic/CONFIG_PCIE_EDR | 1 + .../fedora/generic/CONFIG_PHY_CADENCE_TORRENT | 1 + configs/fedora/generic/CONFIG_PINCTRL_IPQ6018 | 1 + .../generic/CONFIG_PROVE_RAW_LOCK_NESTING | 1 + .../generic/CONFIG_PTP_1588_CLOCK_IDT82P33 | 1 + configs/fedora/generic/CONFIG_PWM_DEBUG | 1 + .../CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT | 1 + .../fedora/generic/CONFIG_REGULATOR_MP5416 | 1 + .../fedora/generic/CONFIG_REGULATOR_MP886X | 1 + .../fedora/generic/CONFIG_RHEL_DIFFERENCES | 1 + .../generic/CONFIG_RH_DISABLE_DEPRECATED | 1 + .../generic/CONFIG_SCHED_THERMAL_PRESSURE | 1 + .../generic/CONFIG_SENSORS_AXI_FAN_CONTROL | 1 + .../fedora/generic/CONFIG_SERIAL_SC16IS7XX | 2 +- .../generic/CONFIG_SERIAL_SC16IS7XX_I2C | 1 + .../generic/CONFIG_SERIAL_SC16IS7XX_SPI | 1 + configs/fedora/generic/CONFIG_SERIAL_SPRD | 1 + .../generic/CONFIG_SND_BCM63XX_I2S_WHISTLER | 1 + .../fedora/generic/CONFIG_SND_SOC_PCM512x_I2C | 2 +- .../fedora/generic/CONFIG_SND_SOC_RT5682_SDW | 1 + .../generic/CONFIG_SND_SOC_SOF_DEBUG_PROBES | 1 + .../generic/CONFIG_SND_SOC_TLV320ADCX140 | 1 + configs/fedora/generic/CONFIG_SPI_FSI | 1 + configs/fedora/generic/CONFIG_SPI_MUX | 1 + configs/fedora/generic/CONFIG_TEST_LOCKUP | 1 + configs/fedora/generic/CONFIG_TEST_MIN_HEAP | 1 + configs/fedora/generic/CONFIG_TINYDRM_ILI9486 | 1 + configs/fedora/generic/CONFIG_UACCE | 1 + configs/fedora/generic/CONFIG_USB_MAX3420_UDC | 1 + configs/fedora/generic/CONFIG_USB_RAW_GADGET | 1 + configs/fedora/generic/CONFIG_VDPA | 16 + configs/fedora/generic/CONFIG_VDPA_MENU | 1 + configs/fedora/generic/CONFIG_VDPA_SIM | 1 + configs/fedora/generic/CONFIG_VHOST_MENU | 1 + configs/fedora/generic/CONFIG_VHOST_VDPA | 1 + configs/fedora/generic/CONFIG_VIDEO_USBVISION | 2 +- configs/fedora/generic/CONFIG_VIRTIO_VDPA | 1 + configs/fedora/generic/CONFIG_XILINX_LL_TEMAC | 1 + .../CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 | 1 + .../CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE | 1 + .../CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 | 1 + .../CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC | 1 + .../CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO | 1 + .../CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD | 1 + .../fedora/generic/CONFIG_ZSWAP_DEFAULT_ON | 1 + .../generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD | 1 + .../generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD | 1 + .../CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC | 1 + .../generic/arm/CONFIG_HISILICON_IRQ_MBIGEN | 2 +- .../fedora/generic/arm/CONFIG_ROCKCHIP_CDN_DP | 2 +- .../CONFIG_DRM_PANEL_XINGBANGDA_XBD599 | 1 - .../arm/aarch64/CONFIG_FORCE_MAX_ZONEORDER | 3 + .../fedora/generic/arm/armv7/CONFIG_HIGHPTE | 3 +- configs/fedora/generic/powerpc/CONFIG_COMPAT | 1 + .../fedora/generic/powerpc/CONFIG_PMU_SYSFS | 1 + configs/fedora/generic/s390x/CONFIG_64BIT | 1 + .../fedora/generic/s390x/CONFIG_NODES_SHIFT | 2 +- configs/fedora/generic/s390x/CONFIG_QETH_OSN | 1 + configs/fedora/generic/s390x/CONFIG_QETH_OSX | 1 + .../generic/x86/CONFIG_CRC_PMIC_OPREGION | 1 + .../fedora/generic/x86/CONFIG_DRM_NOUVEAU_SVM | 1 + configs/fedora/generic/x86/CONFIG_DWMAC_INTEL | 1 + .../fedora/generic/x86/CONFIG_IMA_ARCH_POLICY | 1 + .../generic/x86/CONFIG_KEYBOARD_APPLESPI | 1 + .../generic/x86/CONFIG_PTP_1588_CLOCK_VMW | 1 + .../x86/CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH | 1 + .../x86/CONFIG_SURFACE_3_POWER_OPREGION | 1 + .../generic/x86/CONFIG_TYPEC_MUX_INTEL_PMC | 1 + .../fedora/generic/x86/CONFIG_X86_INTEL_MPX | 1 + drm-dp-mst-error-handling-improvements.patch | 471 ------ ...x-drm_dp_send_dpcd_write-return-code.patch | 47 - drm-i915-backports.patch | 894 ----------- ...o-wait-when-ME-un-configure-ULP-mode.patch | 112 -- efi-secureboot.patch | 337 ---- filter-aarch64.sh.rhel | 18 + filter-modules.sh | 17 + filter-modules.sh.fedora | 17 + filter-modules.sh.rhel | 168 ++ filter-ppc64le.sh.rhel | 14 + filter-s390x.sh.rhel | 12 + filter-x86_64.sh.rhel | 12 + kernel-aarch64-debug-fedora.config | 138 +- kernel-aarch64-fedora.config | 136 +- kernel-armv7hl-debug-fedora.config | 129 +- kernel-armv7hl-fedora.config | 127 +- kernel-armv7hl-lpae-debug-fedora.config | 136 +- kernel-armv7hl-lpae-fedora.config | 134 +- kernel-i686-debug-fedora.config | 110 +- kernel-i686-fedora.config | 108 +- kernel-ppc64le-debug-fedora.config | 103 +- kernel-ppc64le-fedora.config | 101 +- kernel-s390x-debug-fedora.config | 106 +- kernel-s390x-fedora.config | 104 +- kernel-x86_64-debug-fedora.config | 108 +- kernel-x86_64-fedora.config | 106 +- kernel.spec | 218 ++- ...vent-memory-leak-in-cx23888_ir_probe.patch | 103 -- ...erflow-in-mwifiex_process_country_ie.patch | 129 -- net-netlabel-cope-with-NULL-catmap.patch | 95 -- nouveau-add-missing-MODULE_FIRMWARE.patch | 59 - ...tor-pwm-Don-t-warn-on-probe-deferral.patch | 36 - scripts/create_headers_tarball.sh | 2 +- sources | 4 +- ...b302-Convert-to-use-GPIO-descriptors.patch | 155 -- vboxguest-fixes.patch | 843 ---------- ...-user-access-to-disabled-device-MMIO.patch | 857 ----------- 240 files changed, 6556 insertions(+), 14489 deletions(-) create mode 100644 0001-ACPI-APEI-arm64-Ignore-broken-HPE-moonshot-APEI-supp.patch rename ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch => 0001-ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m.patch (70%) rename ARM-fix-__get_user_check-in-case-uaccess_-calls-are-not-inlined.patch => 0001-ARM-fix-__get_user_check-in-case-uaccess_-calls-are-.patch (50%) rename ARM-tegra-usb-no-reset.patch => 0001-ARM-tegra-usb-no-reset.patch (81%) rename 0002-Add-efi_status_to_str-and-rework-efi_status_to_err.patch => 0001-Add-efi_status_to_str-and-rework-efi_status_to_err.patch (89%) rename arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch => 0001-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch (65%) delete mode 100644 0001-Include-kvm_asm.h-and-kvm_arm.h-in-kvm-arm-trace.h.patch rename input-rmi4-remove-the-need-for-artifical-IRQ.patch => 0001-Input-rmi4-remove-the-need-for-artificial-IRQ-in-cas.patch (100%) rename KEYS-Make-use-of-platform-keyring-for-module-signature.patch => 0001-KEYS-Make-use-of-platform-keyring-for-module-signatu.patch (89%) rename 0003-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch => 0001-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch (90%) create mode 100644 0001-PCI-brcmstb-Wait-for-Raspberry-Pi-s-firmware-when-pr.patch create mode 100644 0001-USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch create mode 100644 0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch rename ACPI-scan-Fix-regression-related-to-X-Gene-UARTs.patch => 0001-aarch64-acpi-scan-Fix-regression-related-to-X-Gene-U.patch (53%) create mode 100644 0001-acpi-prefer-booting-with-ACPI-over-DTS.patch create mode 100644 0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch create mode 100644 0001-ahci-thunderx2-Fix-for-errata-that-affects-stop-engi.patch create mode 100644 0001-arm-aarch64-Drop-the-EXPERT-setting-from-ARM64_FORCE.patch rename arm-make-highpte-not-expert.patch => 0001-arm-make-CONFIG_HIGHPTE-optional-without-CONFIG_EXPE.patch (83%) delete mode 100644 0001-compat_ioctl-cdrom-Replace-.ioctl-with-.compat_ioctl.patch create mode 100644 0001-core-memory-remove-redundant-assignments-to-variable.patch create mode 100644 0001-device-detect-if-changing-endianness-failed.patch create mode 100644 0001-device-detect-vGPUs.patch create mode 100644 0001-device-rework-mmio-mapping-code-to-get-rid-of-second.patch create mode 100644 0001-device-use-regular-PRI-accessors-in-chipset-detectio.patch create mode 100644 0001-disp-gv100-expose-capabilities-class.patch create mode 100644 0001-disp-hda-gf119-add-HAL-for-programming-device-entry-.patch create mode 100644 0001-disp-hda-gf119-select-HDA-device-entry-based-on-boun.patch create mode 100644 0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch create mode 100644 0001-disp-hda-gv100-NV_PDISP_SF_AUDIO_CNTRL0-register-mov.patch create mode 100644 0001-disp-nv50-increase-timeout-on-pio-channel-free-polli.patch create mode 100644 0001-drm-Use-generic-helper-to-check-_PR3-presence.patch create mode 100644 0001-e1000e-bump-up-timeout-to-wait-when-ME-un-configure-.patch create mode 100644 0001-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch create mode 100644 0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch create mode 100644 0001-firmware-raspberrypi-Introduce-vl805-init-routine.patch create mode 100644 0001-iommu-arm-smmu-workaround-DMA-mode-issues.patch create mode 100644 0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch create mode 100644 0001-kdump-add-support-for-crashkernel-auto.patch create mode 100644 0001-kdump-fix-a-grammar-issue-in-a-kernel-message.patch create mode 100644 0001-kdump-round-up-the-total-memory-size-to-128M-for-cra.patch create mode 100644 0001-kms-gv100-Add-support-for-interlaced-modes.patch create mode 100644 0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch create mode 100644 0001-kms-nv50-Move-8BPC-limit-for-MST-into-nv50_mstc_get_.patch create mode 100644 0001-kms-nv50-Probe-SOR-and-PIOR-caps-for-DP-interlacing-.patch create mode 100644 0001-kms-nv50-Share-DP-SST-mode_valid-handling-with-MST.patch create mode 100644 0001-mmu-Remove-unneeded-semicolon.patch create mode 100644 0001-perf-cs-etm-Move-defined-of-traceid_list.patch delete mode 100644 0001-pwm-lpss-Fix-get_state-runtime-pm-reference-handling.patch rename s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch => 0001-s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch (80%) create mode 100644 0001-scsi-smartpqi-add-inspur-advantech-ids.patch create mode 100644 0001-security-lockdown-expose-a-hook-to-lock-the-kernel-d.patch create mode 100644 0001-soc-bcm2835-Sync-xHCI-reset-firmware-property-with-d.patch create mode 100644 0001-virt-vbox-Add-a-few-new-vmmdev-request-types-to-the-.patch create mode 100644 0001-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch create mode 100644 0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch create mode 100644 0001-virt-vbox-Fix-VBGL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch create mode 100644 0001-virt-vbox-Fix-guest-capabilities-mask-check.patch create mode 100644 0001-virt-vbox-Log-unknown-ioctl-requests-as-error.patch create mode 100644 0001-virt-vbox-Rename-guest_caps-struct-members-to-set_gu.patch delete mode 100644 0001-xfs-add-agf-freeblocks-verify-in-xfs_agf_verify.patch delete mode 100644 ARM-dts-bcm2711-Move-emmc2-into-its-own-bus.patch delete mode 100644 ARM64-Tegra-fixes.patch delete mode 100644 Add-LCD-support-for-Pine64-Pinebook-1080p.patch delete mode 100644 Add-support-for-PinePhone-LCD-panel.patch delete mode 100644 Add-support-for-the-pine64-Pinebook-Pro.patch delete mode 100644 PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch delete mode 100644 RFC-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch delete mode 100644 USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch delete mode 100644 arm-bcm2711-mmc-sdhci-iproc-Add-custom-set_power-callback.patch delete mode 100644 arm-bcm2835-serial-8250_early-support-aux-uart.patch delete mode 100644 arm64-Fix-some-GPIO-setup-on-Pinebook-Pro.patch delete mode 100644 arm64-a64-mbus.patch delete mode 100644 arm64-dts-imx8mq-phanbell-Add-support-for-ethernet.patch delete mode 100644 arm64-pinctrl-bcm2835-Add-support-for-all-BCM2711-GPIOs.patch delete mode 100644 arm64-pine64-pinephone.patch delete mode 100644 arm64-pine64-pinetab.patch delete mode 100644 arm64-pinebook-fixes.patch delete mode 100644 arm64-serial-8250_tegra-Create-Tegra-specific-8250-driver.patch delete mode 100644 arm64-tegra-Fix-ethernet-phy-mode-for-Jetson-Xavier.patch delete mode 100644 backlight-lp855x-Ensure-regulators-are-disabled-on-probe-failure.patch delete mode 100644 bcm2835-irqchip-Quiesce-IRQs-left-enabled-by-bootloader.patch create mode 100644 configs/fedora/debug/CONFIG_TEST_LOCKUP create mode 100644 configs/fedora/generic/CONFIG_AD5770R create mode 100644 configs/fedora/generic/CONFIG_AL3010 create mode 100644 configs/fedora/generic/CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ create mode 100644 configs/fedora/generic/CONFIG_APPLE_MFI_FASTCHARGE create mode 100644 configs/fedora/generic/CONFIG_BAREUDP create mode 100644 configs/fedora/generic/CONFIG_BPF_LSM create mode 100644 configs/fedora/generic/CONFIG_CHELSIO_TLS_DEVICE create mode 100644 configs/fedora/generic/CONFIG_CLK_RASPBERRYPI create mode 100644 configs/fedora/generic/CONFIG_CROS_EC_TYPEC create mode 100644 configs/fedora/generic/CONFIG_CROS_USBPD_NOTIFY create mode 100644 configs/fedora/generic/CONFIG_DMABUF_MOVE_NOTIFY create mode 100644 configs/fedora/generic/CONFIG_DRM_DISPLAY_CONNECTOR create mode 100644 configs/fedora/generic/CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 create mode 100644 configs/fedora/generic/CONFIG_DRM_PANEL_ELIDA_KD35T133 create mode 100644 configs/fedora/generic/CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 create mode 100644 configs/fedora/generic/CONFIG_DRM_PANEL_NOVATEK_NT35510 delete mode 100644 configs/fedora/generic/CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 create mode 100644 configs/fedora/generic/CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 create mode 100644 configs/fedora/generic/CONFIG_DRM_PANEL_SITRONIX_ST7703 delete mode 100644 configs/fedora/generic/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 create mode 100644 configs/fedora/generic/CONFIG_DRM_PARADE_PS8640 create mode 100644 configs/fedora/generic/CONFIG_DRM_SIMPLE_BRIDGE create mode 100644 configs/fedora/generic/CONFIG_DRM_TIDSS create mode 100644 configs/fedora/generic/CONFIG_DRM_TI_TPD12S015 create mode 100644 configs/fedora/generic/CONFIG_DRM_TOSHIBA_TC358768 create mode 100644 configs/fedora/generic/CONFIG_EXFAT_DEFAULT_IOCHARSET create mode 100644 configs/fedora/generic/CONFIG_EXFAT_FS create mode 100644 configs/fedora/generic/CONFIG_F2FS_FS_ZSTD create mode 100644 configs/fedora/generic/CONFIG_FSL_ENETC create mode 100644 configs/fedora/generic/CONFIG_FSL_ENETC_MDIO create mode 100644 configs/fedora/generic/CONFIG_FSL_ENETC_VF create mode 100644 configs/fedora/generic/CONFIG_GP2AP002 create mode 100644 configs/fedora/generic/CONFIG_HID_GLORIOUS create mode 100644 configs/fedora/generic/CONFIG_HID_MCP2221 create mode 100644 configs/fedora/generic/CONFIG_HMC425 create mode 100644 configs/fedora/generic/CONFIG_HW_RANDOM_HISI_V2 create mode 100644 configs/fedora/generic/CONFIG_ICP10100 create mode 100644 configs/fedora/generic/CONFIG_IFCVF create mode 100644 configs/fedora/generic/CONFIG_IPV6_RPL_LWTUNNEL create mode 100644 configs/fedora/generic/CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE create mode 100644 configs/fedora/generic/CONFIG_MDIO_MVUSB create mode 100644 configs/fedora/generic/CONFIG_MDIO_XPCS create mode 100644 configs/fedora/generic/CONFIG_MFD_IQS62X create mode 100644 configs/fedora/generic/CONFIG_MHI_BUS create mode 100644 configs/fedora/generic/CONFIG_MLX5_TC_CT create mode 100644 configs/fedora/generic/CONFIG_MMC_HSQ create mode 100644 configs/fedora/generic/CONFIG_PCIE_EDR create mode 100644 configs/fedora/generic/CONFIG_PHY_CADENCE_TORRENT create mode 100644 configs/fedora/generic/CONFIG_PINCTRL_IPQ6018 create mode 100644 configs/fedora/generic/CONFIG_PROVE_RAW_LOCK_NESTING create mode 100644 configs/fedora/generic/CONFIG_PTP_1588_CLOCK_IDT82P33 create mode 100644 configs/fedora/generic/CONFIG_PWM_DEBUG create mode 100644 configs/fedora/generic/CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT create mode 100644 configs/fedora/generic/CONFIG_REGULATOR_MP5416 create mode 100644 configs/fedora/generic/CONFIG_REGULATOR_MP886X create mode 100644 configs/fedora/generic/CONFIG_RHEL_DIFFERENCES create mode 100644 configs/fedora/generic/CONFIG_RH_DISABLE_DEPRECATED create mode 100644 configs/fedora/generic/CONFIG_SCHED_THERMAL_PRESSURE create mode 100644 configs/fedora/generic/CONFIG_SENSORS_AXI_FAN_CONTROL create mode 100644 configs/fedora/generic/CONFIG_SERIAL_SC16IS7XX_I2C create mode 100644 configs/fedora/generic/CONFIG_SERIAL_SC16IS7XX_SPI create mode 100644 configs/fedora/generic/CONFIG_SERIAL_SPRD create mode 100644 configs/fedora/generic/CONFIG_SND_BCM63XX_I2S_WHISTLER create mode 100644 configs/fedora/generic/CONFIG_SND_SOC_RT5682_SDW create mode 100644 configs/fedora/generic/CONFIG_SND_SOC_SOF_DEBUG_PROBES create mode 100644 configs/fedora/generic/CONFIG_SND_SOC_TLV320ADCX140 create mode 100644 configs/fedora/generic/CONFIG_SPI_FSI create mode 100644 configs/fedora/generic/CONFIG_SPI_MUX create mode 100644 configs/fedora/generic/CONFIG_TEST_LOCKUP create mode 100644 configs/fedora/generic/CONFIG_TEST_MIN_HEAP create mode 100644 configs/fedora/generic/CONFIG_TINYDRM_ILI9486 create mode 100644 configs/fedora/generic/CONFIG_UACCE create mode 100644 configs/fedora/generic/CONFIG_USB_MAX3420_UDC create mode 100644 configs/fedora/generic/CONFIG_USB_RAW_GADGET create mode 100644 configs/fedora/generic/CONFIG_VDPA create mode 100644 configs/fedora/generic/CONFIG_VDPA_MENU create mode 100644 configs/fedora/generic/CONFIG_VDPA_SIM create mode 100644 configs/fedora/generic/CONFIG_VHOST_MENU create mode 100644 configs/fedora/generic/CONFIG_VHOST_VDPA create mode 100644 configs/fedora/generic/CONFIG_VIRTIO_VDPA create mode 100644 configs/fedora/generic/CONFIG_XILINX_LL_TEMAC create mode 100644 configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 create mode 100644 configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE create mode 100644 configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 create mode 100644 configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC create mode 100644 configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO create mode 100644 configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD create mode 100644 configs/fedora/generic/CONFIG_ZSWAP_DEFAULT_ON create mode 100644 configs/fedora/generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD create mode 100644 configs/fedora/generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD create mode 100644 configs/fedora/generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC delete mode 100644 configs/fedora/generic/arm/aarch64/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 create mode 100644 configs/fedora/generic/powerpc/CONFIG_COMPAT create mode 100644 configs/fedora/generic/powerpc/CONFIG_PMU_SYSFS create mode 100644 configs/fedora/generic/s390x/CONFIG_64BIT create mode 100644 configs/fedora/generic/s390x/CONFIG_QETH_OSN create mode 100644 configs/fedora/generic/s390x/CONFIG_QETH_OSX create mode 100644 configs/fedora/generic/x86/CONFIG_CRC_PMIC_OPREGION create mode 100644 configs/fedora/generic/x86/CONFIG_DRM_NOUVEAU_SVM create mode 100644 configs/fedora/generic/x86/CONFIG_DWMAC_INTEL create mode 100644 configs/fedora/generic/x86/CONFIG_IMA_ARCH_POLICY create mode 100644 configs/fedora/generic/x86/CONFIG_KEYBOARD_APPLESPI create mode 100644 configs/fedora/generic/x86/CONFIG_PTP_1588_CLOCK_VMW create mode 100644 configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH create mode 100644 configs/fedora/generic/x86/CONFIG_SURFACE_3_POWER_OPREGION create mode 100644 configs/fedora/generic/x86/CONFIG_TYPEC_MUX_INTEL_PMC create mode 100644 configs/fedora/generic/x86/CONFIG_X86_INTEL_MPX delete mode 100644 drm-dp-mst-error-handling-improvements.patch delete mode 100644 drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch delete mode 100644 drm-i915-backports.patch delete mode 100644 e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch delete mode 100644 efi-secureboot.patch delete mode 100644 media-rc-prevent-memory-leak-in-cx23888_ir_probe.patch delete mode 100644 mwifiex-fix-possible-heap-overflow-in-mwifiex_process_country_ie.patch delete mode 100644 net-netlabel-cope-with-NULL-catmap.patch delete mode 100644 nouveau-add-missing-MODULE_FIRMWARE.patch delete mode 100644 regulator-pwm-Don-t-warn-on-probe-deferral.patch delete mode 100644 usb-fusb302-Convert-to-use-GPIO-descriptors.patch delete mode 100644 vboxguest-fixes.patch delete mode 100644 vfio-pci-block-user-access-to-disabled-device-MMIO.patch diff --git a/0001-ACPI-APEI-arm64-Ignore-broken-HPE-moonshot-APEI-supp.patch b/0001-ACPI-APEI-arm64-Ignore-broken-HPE-moonshot-APEI-supp.patch new file mode 100644 index 000000000..ec362d9b2 --- /dev/null +++ b/0001-ACPI-APEI-arm64-Ignore-broken-HPE-moonshot-APEI-supp.patch @@ -0,0 +1,71 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Al Stone +Date: Tue, 27 Feb 2018 00:21:23 -0500 +Subject: [PATCH] ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support + +Message-id: <20180227002123.21608-1-ahs3@redhat.com> +Patchwork-id: 206052 +O-Subject: [RHEL8 BZ1518076 PATCH] ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support +Bugzilla: 1518076 +RH-Acked-by: Mark Salter +RH-Acked-by: Jeremy McNicoll + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1518076 +Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=15417197 +Tested: compile-only; several other patches are required for full booting + QE has tested limited boot (see comment#12 of BZ) + +This is a re-post of a RHEL-ALT-7.5 patch specific to aarch64 moonshots +that we use in beaker. It is required for these machines to boot. + + commit 8a663a264863efedf8bb4a9d76ac603920fdd739 + Author: Robert Richter + Date: Wed Aug 16 19:49:30 2017 -0400 + + [acpi] APEI: arm64: Ignore broken HPE moonshot APEI support + + From: Mark Salter + Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1344237 + Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=13768971 + Tested: Booted on moonshot with patched 4.11.0-20 kernel + Upstream: RHEL-only + + The aarch64 HP moonshot platforms we have in beaker and elsewhere have + a firmware bug which causes a spurious fatal memory error via APEI at + boot time. This platform is no longer supported and no further firmware + updates are expected. This is a downstream-only hack to avoid the problem + by bailing out of HEST table probing if we detect a moonshot HEST table. + + Signed-off-by: Mark Salter + Signed-off-by: Robert Richter + Signed-off-by: Herton R. Krzesinski + +Upstream Status: RHEL only +Signed-off-by: Al Stone +Signed-off-by: Herton R. Krzesinski +--- + drivers/acpi/apei/hest.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c +index 822402480f7d..3f87d8602560 100644 +--- a/drivers/acpi/apei/hest.c ++++ b/drivers/acpi/apei/hest.c +@@ -88,6 +88,14 @@ int apei_hest_parse(apei_hest_func_t func, void *data) + if (hest_disable || !hest_tab) + return -EINVAL; + ++#ifdef CONFIG_ARM64 ++ /* Ignore broken firmware */ ++ if (!strncmp(hest_tab->header.oem_id, "HPE ", 6) && ++ !strncmp(hest_tab->header.oem_table_id, "ProLiant", 8) && ++ MIDR_IMPLEMENTOR(read_cpuid_id()) == ARM_CPU_IMP_APM) ++ return -EINVAL; ++#endif ++ + hest_hdr = (struct acpi_hest_header *)(hest_tab + 1); + for (i = 0; i < hest_tab->error_source_count; i++) { + len = hest_esrc_len(hest_hdr); +-- +2.26.2 + diff --git a/ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch b/0001-ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m.patch similarity index 70% rename from ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch rename to 0001-ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m.patch index 3dcfd4969..1cc560ee8 100644 --- a/ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch +++ b/0001-ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m.patch @@ -1,8 +1,17 @@ -From dbdda4277cf0422a9ccb7ea98d0263c3cdbecdf6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mark Salter -Date: Tue, 8 May 2018 21:54:39 -0400 -Subject: [PATCH] ACPI / irq: Workaround firmware issue on X-Gene based - m400 +Date: Thu, 10 May 2018 17:38:43 -0400 +Subject: [PATCH] ACPI / irq: Workaround firmware issue on X-Gene based m400 + +Message-id: <20180510173844.29580-3-msalter@redhat.com> +Patchwork-id: 214383 +O-Subject: [RHEL-8 BZ1519554 2/3] ACPI / irq: Workaround firmware issue on X-Gene based m400 +Bugzilla: 1519554 +RH-Acked-by: Al Stone +RH-Acked-by: Tony Camuso + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1519554 +Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=16144520 The ACPI firmware on the xgene-based m400 platorms erroneously describes its UART interrupt as ACPI_PRODUCER rather than @@ -11,24 +20,26 @@ find its interrupt and the kernel unable find a console. Work around this by avoiding the producer/consumer check for X-Gene UARTs. +Upstream Status: RHEL only Signed-off-by: Mark Salter +Signed-off-by: Herton R. Krzesinski --- drivers/acpi/irq.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/acpi/irq.c b/drivers/acpi/irq.c -index 7c352cba0528..028c1a564cff 100644 +index e209081d644b..7484bcf59a1b 100644 --- a/drivers/acpi/irq.c +++ b/drivers/acpi/irq.c -@@ -129,6 +129,7 @@ struct acpi_irq_parse_one_ctx { +@@ -126,6 +126,7 @@ struct acpi_irq_parse_one_ctx { unsigned int index; unsigned long *res_flags; struct irq_fwspec *fwspec; + bool skip_producer_check; }; - + /** -@@ -200,7 +201,8 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, +@@ -197,7 +198,8 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, return AE_CTRL_TERMINATE; case ACPI_RESOURCE_TYPE_EXTENDED_IRQ: eirq = &ares->data.extended_irq; @@ -38,13 +49,13 @@ index 7c352cba0528..028c1a564cff 100644 return AE_OK; if (ctx->index >= eirq->interrupt_count) { ctx->index -= eirq->interrupt_count; -@@ -235,8 +237,19 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, +@@ -232,8 +234,19 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, static int acpi_irq_parse_one(acpi_handle handle, unsigned int index, struct irq_fwspec *fwspec, unsigned long *flags) { - struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec }; + struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec, false }; - + + /* + * Firmware on arm64-based HPE m400 platform incorrectly marks + * its UART interrupt as ACPI_PRODUCER rather than ACPI_CONSUMER. @@ -60,5 +71,5 @@ index 7c352cba0528..028c1a564cff 100644 return ctx.rc; } -- -2.17.0 +2.26.2 diff --git a/ARM-fix-__get_user_check-in-case-uaccess_-calls-are-not-inlined.patch b/0001-ARM-fix-__get_user_check-in-case-uaccess_-calls-are-.patch similarity index 50% rename from ARM-fix-__get_user_check-in-case-uaccess_-calls-are-not-inlined.patch rename to 0001-ARM-fix-__get_user_check-in-case-uaccess_-calls-are-.patch index db893d26e..c5a43608f 100644 --- a/ARM-fix-__get_user_check-in-case-uaccess_-calls-are-not-inlined.patch +++ b/0001-ARM-fix-__get_user_check-in-case-uaccess_-calls-are-.patch @@ -1,67 +1,8 @@ -From patchwork Mon Sep 30 05:59:25 2019 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Masahiro Yamada -X-Patchwork-Id: 1132459 -Return-Path: -Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) - by smtp.lore.kernel.org (Postfix) with ESMTP id DF215C4360C - for ; Mon, 30 Sep 2019 06:02:56 +0000 (UTC) -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mail.kernel.org (Postfix) with ESMTP id B032A20815 - for ; Mon, 30 Sep 2019 06:02:56 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=nifty.com header.i=@nifty.com - header.b="sVJyT1RO" -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1729635AbfI3GCz (ORCPT - ); - Mon, 30 Sep 2019 02:02:55 -0400 -Received: from conuserg-10.nifty.com ([210.131.2.77]:65305 "EHLO - conuserg-10.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1726121AbfI3GCz (ORCPT - ); - Mon, 30 Sep 2019 02:02:55 -0400 -Received: from localhost.localdomain (p14092-ipngnfx01kyoto.kyoto.ocn.ne.jp - [153.142.97.92]) (authenticated) - by conuserg-10.nifty.com with ESMTP id x8U60ANM011158; - Mon, 30 Sep 2019 15:00:10 +0900 -DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-10.nifty.com x8U60ANM011158 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; - s=dec2015msa; t=1569823213; - bh=31RHoPop8t0h2pCPRnwABR+VMelvfuLJ6qwFWQxvRAk=; - h=From:To:Cc:Subject:Date:From; - b=sVJyT1ROU+6mzkZMRTb0M214/0QcKkmxRbNgDwh2q1TPJpEjPLOoE+y1jkVndgyce - qBfr7v3nYiN5WSsx5xTwPYvHohsWcSS3AWwyVRw8Kxjd0CGrX8l5WcF76SmCvJPLCB - wLRZ7C1/Z/zv9v8AVlB2BGhDmSvNQJ9bvuGi42d+JbBXGDfg0HZGGHEj7yDDLBV9nW - EZkTGzP6wtIdqgD6DM5Lj4LA7FnlzH8Ocy6yp5agIZ7tdaiVh4E+Xb97KFsLgRin/o - kTPCap5ub1TziurVW+1pbzwH+G3TNVeY+yJdYcAQRFzXXOrTa7s5zIJUtObrYVGCA2 - ctH5uaN1kjx1g== -X-Nifty-SrcIP: [153.142.97.92] +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada -To: linux-arm-kernel@lists.infradead.org, - Russell King -Cc: Linus Torvalds , - Olof Johansson , Arnd Bergmann , - Nick Desaulniers , - Nicolas Saenz Julienne , - Masahiro Yamada , - Julien Thierry , - Russell King , - Stefan Agner , - Thomas Gleixner , - Vincent Whitchurch , - linux-kernel@vger.kernel.org +Date: Mon, 30 Sep 2019 14:59:25 +0900 Subject: [PATCH] ARM: fix __get_user_check() in case uaccess_* calls are not inlined -Date: Mon, 30 Sep 2019 14:59:25 +0900 -Message-Id: <20190930055925.25842-1-yamada.masahiro@socionext.com> -X-Mailer: git-send-email 2.17.1 -Sender: linux-kernel-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-kernel@vger.kernel.org KernelCI reports that bcm2835_defconfig is no longer booting since commit ac7c3e4ff401 ("compiler: enable CONFIG_OPTIMIZE_INLINING @@ -106,12 +47,11 @@ Tested-by: Nicolas Saenz Julienne Tested-by: Fabrizio Castro Tested-by: Geert Uytterhoeven --- - arch/arm/include/asm/uaccess.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h -index 303248e5b990..559f252d7e3c 100644 +index 98c6b91be4a8..60055827dddc 100644 --- a/arch/arm/include/asm/uaccess.h +++ b/arch/arm/include/asm/uaccess.h @@ -191,11 +191,12 @@ extern int __get_user_64t_4(void *); @@ -139,5 +79,8 @@ index 303248e5b990..559f252d7e3c 100644 + uaccess_restore(__ua_flags); \ + __err; \ }) - + #define get_user(x, p) \ +-- +2.26.2 + diff --git a/ARM-tegra-usb-no-reset.patch b/0001-ARM-tegra-usb-no-reset.patch similarity index 81% rename from ARM-tegra-usb-no-reset.patch rename to 0001-ARM-tegra-usb-no-reset.patch index 8ea4f5174..f91c6b83e 100644 --- a/ARM-tegra-usb-no-reset.patch +++ b/0001-ARM-tegra-usb-no-reset.patch @@ -1,3 +1,4 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 3 May 2012 20:27:11 +0100 Subject: [PATCH] ARM: tegra: usb no reset @@ -9,13 +10,13 @@ Patch for disconnect issues with storage attached to a 1 file changed, 7 insertions(+) diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index 43cb2f2e3b43..7f838ec11c81 100644 +index fc748c731832..7d35e12de70f 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -4996,6 +4996,13 @@ static void hub_event(struct work_struct *work) +@@ -5517,6 +5517,13 @@ static void hub_event(struct work_struct *work) (u16) hub->change_bits[0], (u16) hub->event_bits[0]); - + + /* Don't disconnect USB-SATA on TrimSlice */ + if (strcmp(dev_name(hdev->bus->controller), "tegra-ehci.0") == 0) { + if ((hdev->state == 7) && (hub->change_bits[0] == 0) && @@ -26,3 +27,6 @@ index 43cb2f2e3b43..7f838ec11c81 100644 /* Lock the device, then check to see if we were * disconnected while waiting for the lock to succeed. */ usb_lock_device(hdev); +-- +2.26.2 + diff --git a/0002-Add-efi_status_to_str-and-rework-efi_status_to_err.patch b/0001-Add-efi_status_to_str-and-rework-efi_status_to_err.patch similarity index 89% rename from 0002-Add-efi_status_to_str-and-rework-efi_status_to_err.patch rename to 0001-Add-efi_status_to_str-and-rework-efi_status_to_err.patch index 871105093..ee11a2428 100644 --- a/0002-Add-efi_status_to_str-and-rework-efi_status_to_err.patch +++ b/0001-Add-efi_status_to_str-and-rework-efi_status_to_err.patch @@ -1,41 +1,21 @@ -From c8218e9b3c38fcd36a2d06eec09952a0c6cee9e0 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 2 Oct 2017 18:22:13 -0400 -Subject: [PATCH 2/3] Add efi_status_to_str() and rework efi_status_to_err(). +Subject: [PATCH] Add efi_status_to_str() and rework efi_status_to_err(). This adds efi_status_to_str() for use when printing efi_status_t messages, and reworks efi_status_to_err() so that the two use a common list of errors. +Upstream Status: RHEL only Signed-off-by: Peter Jones --- - include/linux/efi.h | 3 ++ - drivers/firmware/efi/efi.c | 122 ++++++++++++++++++++++++++++++++++----------- - 2 files changed, 95 insertions(+), 30 deletions(-) + drivers/firmware/efi/efi.c | 124 +++++++++++++++++++++++++++---------- + include/linux/efi.h | 3 + + 2 files changed, 96 insertions(+), 31 deletions(-) -diff --git a/include/linux/efi.h b/include/linux/efi.h -index 18b16bf5ce1..436b3c93c3d 100644 ---- a/include/linux/efi.h -+++ b/include/linux/efi.h -@@ -42,6 +42,8 @@ - #define EFI_ABORTED (21 | (1UL << (BITS_PER_LONG-1))) - #define EFI_SECURITY_VIOLATION (26 | (1UL << (BITS_PER_LONG-1))) - -+#define EFI_IS_ERROR(x) ((x) & (1UL << (BITS_PER_LONG-1))) -+ - typedef unsigned long efi_status_t; - typedef u8 efi_bool_t; - typedef u16 efi_char16_t; /* UNICODE character */ -@@ -1183,6 +1185,7 @@ static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {} - #endif - - extern int efi_status_to_err(efi_status_t status); -+extern const char *efi_status_to_str(efi_status_t status); - - /* - * Variable Attributes diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c -index 557a47829d0..e8f9c7d84e9 100644 +index 4e3055238f31..36ca9e2943ce 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -31,6 +31,7 @@ @@ -43,13 +23,13 @@ index 557a47829d0..e8f9c7d84e9 100644 #include #include +#include - + #include - -@@ -865,40 +866,101 @@ int efi_mem_type(unsigned long phys_addr) + +@@ -828,40 +829,101 @@ int efi_mem_type(unsigned long phys_addr) } #endif - + +struct efi_error_code { + efi_status_t status; + int errno; @@ -123,9 +103,7 @@ index 557a47829d0..e8f9c7d84e9 100644 int efi_status_to_err(efi_status_t status) { - int err; -+ struct efi_error_code *found; -+ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code); - +- - switch (status) { - case EFI_SUCCESS: - err = 0; @@ -154,6 +132,10 @@ index 557a47829d0..e8f9c7d84e9 100644 - default: - err = -EINVAL; - } ++ struct efi_error_code *found; ++ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code); + +- return err; + found = bsearch((void *)(uintptr_t)status, efi_error_codes, + sizeof(struct efi_error_code), num, + efi_status_cmp_bsearch); @@ -161,8 +143,7 @@ index 557a47829d0..e8f9c7d84e9 100644 + return -EINVAL; + return found->errno; +} - -- return err; ++ +const char * +efi_status_to_str(efi_status_t status) +{ @@ -176,8 +157,29 @@ index 557a47829d0..e8f9c7d84e9 100644 + return "Unknown error code"; + return found->description; } - - static DEFINE_SPINLOCK(efi_mem_reserve_persistent_lock); --- -2.15.0 + + static DEFINE_SPINLOCK(efi_mem_reserve_persistent_lock); +diff --git a/include/linux/efi.h b/include/linux/efi.h +index 9430d01c0c3d..51503bf118ab 100644 +--- a/include/linux/efi.h ++++ b/include/linux/efi.h +@@ -42,6 +42,8 @@ + #define EFI_ABORTED (21 | (1UL << (BITS_PER_LONG-1))) + #define EFI_SECURITY_VIOLATION (26 | (1UL << (BITS_PER_LONG-1))) + ++#define EFI_IS_ERROR(x) ((x) & (1UL << (BITS_PER_LONG-1))) ++ + typedef unsigned long efi_status_t; + typedef u8 efi_bool_t; + typedef u16 efi_char16_t; /* UNICODE character */ +@@ -825,6 +827,7 @@ static inline bool efi_rt_services_supported(unsigned int mask) + #endif + + extern int efi_status_to_err(efi_status_t status); ++extern const char *efi_status_to_str(efi_status_t status); + + /* + * Variable Attributes +-- +2.26.2 diff --git a/arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch b/0001-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch similarity index 65% rename from arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch rename to 0001-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch index 6417bc29a..970824d59 100644 --- a/arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch +++ b/0001-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch @@ -1,29 +1,32 @@ -From 487ff7b0e537506057960a0c2d9482d19f2acf4a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Robinson -Date: Wed, 26 Apr 2017 11:12:54 +0100 +Date: Wed, 26 Feb 2020 13:38:40 -0500 Subject: [PATCH] Add option of 13 for FORCE_MAX_ZONEORDER This is a hack, but it's what the other distros currently use for aarch64 with 4K pages so we'll do the same while upstream decides what the best outcome is (which isn't this). +Upstream Status: RHEL only Signed-off-by: Peter Robinson +[Add a dependency on RHEL_DIFFERENCES] +Signed-off-by: Jeremy Cline --- arch/arm64/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 3741859765cf..deec9511f1d3 100644 +index 7f37a6d0658a..c88ee0e8ce6e 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig -@@ -751,6 +751,7 @@ config XEN +@@ -1126,6 +1126,7 @@ config XEN config FORCE_MAX_ZONEORDER int default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE) -+ default "13" if (ARCH_THUNDER && !ARM64_64K_PAGES) ++ default "13" if (ARCH_THUNDER && !ARM64_64K_PAGES && !RHEL_DIFFERENCES) default "12" if (ARM64_16K_PAGES && TRANSPARENT_HUGEPAGE) default "11" help -- -2.12.2 +2.26.2 diff --git a/0001-Drop-that-for-now.patch b/0001-Drop-that-for-now.patch index 1d1850944..bc898b654 100644 --- a/0001-Drop-that-for-now.patch +++ b/0001-Drop-that-for-now.patch @@ -1,4 +1,4 @@ -From 12cec6680e67d6b4fed9e30cd8c1f13871996cc1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Wed, 23 Jan 2019 14:36:37 +0100 Subject: [PATCH] Drop that for now @@ -8,10 +8,10 @@ Subject: [PATCH] Drop that for now 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index f5b1d0d168e0..5f31107b22d1 100644 +index 3d65d1153aac..0e2fb7fe2675 100644 --- a/Makefile +++ b/Makefile -@@ -430,7 +430,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE +@@ -479,7 +479,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \ -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \ -Werror=implicit-function-declaration -Werror=implicit-int \ @@ -21,5 +21,5 @@ index f5b1d0d168e0..5f31107b22d1 100644 KBUILD_CPPFLAGS := -D__KERNEL__ KBUILD_AFLAGS_KERNEL := -- -2.20.1 +2.26.2 diff --git a/0001-Include-kvm_asm.h-and-kvm_arm.h-in-kvm-arm-trace.h.patch b/0001-Include-kvm_asm.h-and-kvm_arm.h-in-kvm-arm-trace.h.patch deleted file mode 100644 index 9d2694b32..000000000 --- a/0001-Include-kvm_asm.h-and-kvm_arm.h-in-kvm-arm-trace.h.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 3f16f4a34eeb22d70afe1bebdd2cfcded179f22a Mon Sep 17 00:00:00 2001 -From: Jeremy Cline -Date: Tue, 4 Feb 2020 15:31:19 -0500 -Subject: [PATCH] Include kvm_asm.h and kvm_arm.h in kvm/arm/trace.h - -commit 0e20f5e25556 maybe broke this. - -Signed-off-by: Jeremy Cline ---- - virt/kvm/arm/trace.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/virt/kvm/arm/trace.h b/virt/kvm/arm/trace.h -index 204d210d01c2..1c88e60a6b00 100644 ---- a/virt/kvm/arm/trace.h -+++ b/virt/kvm/arm/trace.h -@@ -4,6 +4,8 @@ - - #include - #include -+#include -+#include - - #undef TRACE_SYSTEM - #define TRACE_SYSTEM kvm --- -2.24.1 - diff --git a/input-rmi4-remove-the-need-for-artifical-IRQ.patch b/0001-Input-rmi4-remove-the-need-for-artificial-IRQ-in-cas.patch similarity index 100% rename from input-rmi4-remove-the-need-for-artifical-IRQ.patch rename to 0001-Input-rmi4-remove-the-need-for-artificial-IRQ-in-cas.patch diff --git a/KEYS-Make-use-of-platform-keyring-for-module-signature.patch b/0001-KEYS-Make-use-of-platform-keyring-for-module-signatu.patch similarity index 89% rename from KEYS-Make-use-of-platform-keyring-for-module-signature.patch rename to 0001-KEYS-Make-use-of-platform-keyring-for-module-signatu.patch index 7c2a0b68d..b53addbe3 100644 --- a/KEYS-Make-use-of-platform-keyring-for-module-signature.patch +++ b/0001-KEYS-Make-use-of-platform-keyring-for-module-signatu.patch @@ -1,4 +1,4 @@ -From 70cecc97a4fc1667472224558a50dd7b6c42c789 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Robert Holmes Date: Tue, 23 Apr 2019 07:39:29 +0000 Subject: [PATCH] KEYS: Make use of platform keyring for module signature @@ -15,8 +15,8 @@ were not successfully verified. Signed-off-by: Robert Holmes Signed-off-by: Jeremy Cline --- - kernel/module_signing.c | 16 ++++++++++++---- - 1 file changed, 12 insertions(+), 4 deletions(-) + kernel/module_signing.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel/module_signing.c b/kernel/module_signing.c index 9d9fc678c91d..84ad75a53c83 100644 @@ -25,7 +25,7 @@ index 9d9fc678c91d..84ad75a53c83 100644 @@ -38,8 +38,15 @@ int mod_verify_sig(const void *mod, struct load_info *info) modlen -= sig_len + sizeof(ms); info->len = modlen; - + - return verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, + ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, VERIFY_USE_SECONDARY_KEYRING, @@ -40,4 +40,5 @@ index 9d9fc678c91d..84ad75a53c83 100644 + return ret; } -- -2.21.0 +2.26.2 + diff --git a/0003-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch b/0001-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch similarity index 90% rename from 0003-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch rename to 0001-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch index d1e43ed3f..671b7402f 100644 --- a/0003-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch +++ b/0001-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch @@ -1,9 +1,10 @@ -From 46daeedffe98b489014dcdcf14c89438362de7eb Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 2 Oct 2017 18:18:30 -0400 Subject: [PATCH] Make get_cert_list() use efi_status_to_str() to print error messages. +Upstream Status: RHEL only Signed-off-by: Peter Jones Signed-off-by: Jeremy Cline --- @@ -11,19 +12,19 @@ Signed-off-by: Jeremy Cline 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/security/integrity/platform_certs/load_uefi.c b/security/integrity/platform_certs/load_uefi.c -index f0c908241966..4e783f6c6cfb 100644 +index 253fb9a7fc98..8c95b68d86d4 100644 --- a/security/integrity/platform_certs/load_uefi.c +++ b/security/integrity/platform_certs/load_uefi.c @@ -46,7 +46,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, return NULL; - + if (*status != EFI_BUFFER_TOO_SMALL) { - pr_err("Couldn't get size: 0x%lx\n", *status); + pr_err("Couldn't get size: %s (0x%lx)\n", + efi_status_to_str(*status), *status); return NULL; } - + @@ -57,7 +58,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, *status = efi.get_variable(name, guid, NULL, &lsize, db); if (*status != EFI_SUCCESS) { @@ -33,7 +34,7 @@ index f0c908241966..4e783f6c6cfb 100644 + efi_status_to_str(*status), *status); return NULL; } - --- -2.24.1 + +-- +2.26.2 diff --git a/0001-PCI-brcmstb-Wait-for-Raspberry-Pi-s-firmware-when-pr.patch b/0001-PCI-brcmstb-Wait-for-Raspberry-Pi-s-firmware-when-pr.patch new file mode 100644 index 000000000..07f8b4e26 --- /dev/null +++ b/0001-PCI-brcmstb-Wait-for-Raspberry-Pi-s-firmware-when-pr.patch @@ -0,0 +1,57 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne +Date: Tue, 10 Mar 2020 13:52:41 +0100 +Subject: [PATCH] PCI: brcmstb: Wait for Raspberry Pi's firmware when present + +xHCI's PCI fixup, run at the end of pcie-brcmstb's probe, depends on +RPi4's VideoCore firmware interface to be up and running. It's possible +for both initializations to race, so make sure it's available prior to +starting. + +Signed-off-by: Nicolas Saenz Julienne +Reviewed-by: Florian Fainelli +--- + drivers/pci/controller/pcie-brcmstb.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c +index 6d79d14527a6..aee84679a997 100644 +--- a/drivers/pci/controller/pcie-brcmstb.c ++++ b/drivers/pci/controller/pcie-brcmstb.c +@@ -28,6 +28,8 @@ + #include + #include + ++#include ++ + #include "../pci.h" + + /* BRCM_PCIE_CAP_REGS - Offset for the mandatory capability config regs */ +@@ -917,11 +919,24 @@ static int brcm_pcie_probe(struct platform_device *pdev) + { + struct device_node *np = pdev->dev.of_node, *msi_np; + struct pci_host_bridge *bridge; ++ struct device_node *fw_np; + struct brcm_pcie *pcie; + struct pci_bus *child; + struct resource *res; + int ret; + ++ /* ++ * We have to wait for the Raspberry Pi's firmware interface to be up ++ * as some PCI fixups depend on it. ++ */ ++ fw_np = of_find_compatible_node(NULL, NULL, ++ "raspberrypi,bcm2835-firmware"); ++ if (fw_np && !rpi_firmware_get(fw_np)) { ++ of_node_put(fw_np); ++ return -EPROBE_DEFER; ++ } ++ of_node_put(fw_np); ++ + bridge = devm_pci_alloc_host_bridge(&pdev->dev, sizeof(*pcie)); + if (!bridge) + return -ENOMEM; +-- +2.26.2 + diff --git a/0001-USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch b/0001-USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch new file mode 100644 index 000000000..7f13ec1f5 --- /dev/null +++ b/0001-USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch @@ -0,0 +1,72 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne +Date: Tue, 10 Mar 2020 13:52:42 +0100 +Subject: [PATCH] USB: pci-quirks: Add Raspberry Pi 4 quirk + +On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be +loaded directly from an EEPROM or, if not present, by the SoC's +VideCore. Inform VideCore that VL805 was just reset. + +Also, as this creates a dependency between XHCI_PCI and VideoCore's +firmware interface, reflect that on the firmware interface Kconfg. + +Signed-off-by: Nicolas Saenz Julienne +--- + drivers/firmware/Kconfig | 1 + + drivers/usb/host/pci-quirks.c | 16 ++++++++++++++++ + 2 files changed, 17 insertions(+) + +diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig +index 8007d4aa76dc..7ca346d3d337 100644 +--- a/drivers/firmware/Kconfig ++++ b/drivers/firmware/Kconfig +@@ -180,6 +180,7 @@ config ISCSI_IBFT + config RASPBERRYPI_FIRMWARE + tristate "Raspberry Pi Firmware Driver" + depends on BCM2835_MBOX ++ default XHCI_PCI + help + This option enables support for communicating with the firmware on the + Raspberry Pi. +diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c +index beb2efa71341..0dc34668bb2a 100644 +--- a/drivers/usb/host/pci-quirks.c ++++ b/drivers/usb/host/pci-quirks.c +@@ -16,6 +16,9 @@ + #include + #include + #include ++ ++#include ++ + #include "pci-quirks.h" + #include "xhci-ext-caps.h" + +@@ -1243,11 +1246,24 @@ static void quirk_usb_handoff_xhci(struct pci_dev *pdev) + + static void quirk_usb_early_handoff(struct pci_dev *pdev) + { ++ int ret; ++ + /* Skip Netlogic mips SoC's internal PCI USB controller. + * This device does not need/support EHCI/OHCI handoff + */ + if (pdev->vendor == 0x184e) /* vendor Netlogic */ + return; ++ ++ if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) { ++ ret = rpi_firmware_init_vl805(pdev); ++ if (ret) { ++ /* Firmware might be outdated, or something failed */ ++ dev_warn(&pdev->dev, ++ "Failed to load VL805's firmware: %d. Will continue to attempt to work, but bad things might happen. You should fix this...\n", ++ ret); ++ } ++ } ++ + if (pdev->class != PCI_CLASS_SERIAL_USB_UHCI && + pdev->class != PCI_CLASS_SERIAL_USB_OHCI && + pdev->class != PCI_CLASS_SERIAL_USB_EHCI && +-- +2.26.2 + diff --git a/0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch b/0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch new file mode 100644 index 000000000..828ed5d9a --- /dev/null +++ b/0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch @@ -0,0 +1,75 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Robert Richter +Date: Thu, 7 Jun 2018 22:59:32 -0400 +Subject: [PATCH] Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon + +Message-id: <1528412373-19128-2-git-send-email-rrichter@redhat.com> +Patchwork-id: 220950 +O-Subject: [RHEL-8.0 BZ 1563590 v2 1/2] PCI: Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon +Bugzilla: 1563590 +RH-Acked-by: Dean Nelson +RH-Acked-by: Mark Langsdorf +RH-Acked-by: Mark Salter + +From: Ashok Kumar Sekar + +PCI BAR 5 is not setup correctly for the on-board AHCI +controller on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 +by using BAR 4's resources which are populated correctly but NOT used +by the AHCI controller actually. + +RHEL-only: + +Both patches are in RHEL-7.6 also. Inclusion of the patches into RHEL-8 +was discussed. Since there are partners with Ax system configurations it +was decided to carry them in RHEL8 too. See: + + https://bugzilla.redhat.com/show_bug.cgi?id=1563590#c1 + +Upstream Status: RHEL only +Signed-off-by: Ashok Kumar Sekar +Signed-off-by: Jayachandran C +Signed-off-by: Robert Richter +Signed-off-by: Herton R. Krzesinski +--- + drivers/pci/quirks.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c +index ca9ed5774eb1..bd0cee4236b0 100644 +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -4183,6 +4183,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9000, + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084, + quirk_bridge_cavm_thrx2_pcie_root); + ++/* ++ * PCI BAR 5 is not setup correctly for the on-board AHCI controller ++ * on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 by ++ * using BAR 4's resources which are populated correctly and NOT ++ * actually used by the AHCI controller. ++ */ ++static void quirk_fix_vulcan_ahci_bars(struct pci_dev *dev) ++{ ++ struct resource *r = &dev->resource[4]; ++ ++ if (!(r->flags & IORESOURCE_MEM) || (r->start == 0)) ++ return; ++ ++ /* Set BAR5 resource to BAR4 */ ++ dev->resource[5] = *r; ++ ++ /* Update BAR5 in pci config space */ ++ pci_write_config_dword(dev, PCI_BASE_ADDRESS_5, r->start); ++ ++ /* Clear BAR4's resource */ ++ memset(r, 0, sizeof(*r)); ++} ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9027, quirk_fix_vulcan_ahci_bars); ++ + /* + * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) + * class code. Fix it. +-- +2.26.2 + diff --git a/ACPI-scan-Fix-regression-related-to-X-Gene-UARTs.patch b/0001-aarch64-acpi-scan-Fix-regression-related-to-X-Gene-U.patch similarity index 53% rename from ACPI-scan-Fix-regression-related-to-X-Gene-UARTs.patch rename to 0001-aarch64-acpi-scan-Fix-regression-related-to-X-Gene-U.patch index 697d76e13..86cbf5dad 100644 --- a/ACPI-scan-Fix-regression-related-to-X-Gene-UARTs.patch +++ b/0001-aarch64-acpi-scan-Fix-regression-related-to-X-Gene-U.patch @@ -1,7 +1,17 @@ -From 1e494dc5f3140005ff1f17bc06c0c16d6d50d580 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mark Salter -Date: Thu, 19 Apr 2018 23:29:47 -0400 -Subject: [PATCH] ACPI / scan: Fix regression related to X-Gene UARTs +Date: Thu, 10 May 2018 17:38:44 -0400 +Subject: [PATCH] aarch64: acpi scan: Fix regression related to X-Gene UARTs + +Message-id: <20180510173844.29580-4-msalter@redhat.com> +Patchwork-id: 214381 +O-Subject: [RHEL-8 BZ1519554 3/3] aarch64: acpi scan: Fix regression related to X-Gene UARTs +Bugzilla: 1519554 +RH-Acked-by: Al Stone +RH-Acked-by: Tony Camuso + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1519554 +Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=16144520 Commit e361d1f85855 ("ACPI / scan: Fix enumeration for special UART devices") caused a regression with some X-Gene based platforms (Mustang @@ -10,30 +20,33 @@ device is also a slave device attached to itself. With the above commit the UART won't be enumerated by ACPI scan (slave serial devices shouldn't be). So check for X-Gene UART device and skip slace device check on it. +Upstream Status: RHEL only Signed-off-by: Mark Salter +Signed-off-by: Herton R. Krzesinski --- - drivers/acpi/scan.c | 8 ++++++++ - 1 file changed, 8 insertions(+) + drivers/acpi/scan.c | 9 +++++++++ + 1 file changed, 9 insertions(+) diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c -index e1b6231cfa1c..542dafac4306 100644 +index 6d3448895382..221255007dc8 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c -@@ -1567,6 +1567,14 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device) +@@ -1563,6 +1563,15 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device) if (!acpi_match_device_ids(device, i2c_multi_instantiate_ids)) return false; - + + /* + * Firmware on some arm64 X-Gene platforms will make the UART + * device appear as both a UART and a slave of that UART. Just + * bail out here for X-Gene UARTs. + */ -+ if (!strcmp(acpi_device_hid(device), "APMC0D08")) ++ if (IS_ENABLED(CONFIG_ARM64) && ++ !strcmp(acpi_device_hid(device), "APMC0D08")) + return false; + INIT_LIST_HEAD(&resource_list); acpi_dev_get_resources(device, &resource_list, acpi_check_serial_bus_slave, -- -2.17.1 +2.26.2 diff --git a/0001-acpi-prefer-booting-with-ACPI-over-DTS.patch b/0001-acpi-prefer-booting-with-ACPI-over-DTS.patch new file mode 100644 index 000000000..e188b5a2d --- /dev/null +++ b/0001-acpi-prefer-booting-with-ACPI-over-DTS.patch @@ -0,0 +1,56 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Mark Salter +Date: Fri, 11 May 2018 21:01:17 -0400 +Subject: [PATCH] acpi: prefer booting with ACPI over DTS + +Message-id: <20180511210117.10457-1-msalter@redhat.com> +Patchwork-id: 214708 +O-Subject: [RHEL-8 BZ1576869] [RHEL only] acpi: prefer booting with ACPI over DTS +Bugzilla: 1576869 +RH-Acked-by: Jonathan Toppins +RH-Acked-by: Tony Camuso +RH-Acked-by: Bhupesh Sharma +RH-Acked-by: Dean Nelson + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1576869 +Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=16208479 +Testing: Verified kernel defaults to ACPI on Mustang + +From: Jonathan Toppins + + This patch forces ACPI boot tables to be preferred over DTS. + + Currently for ACPI to be used a user either has to set acpi=on on the + kernel command line or make sure any device tree passed to the kernel + is empty. If the dtb passed to the kernel is non-empty then device-tree + will be chosen as the boot method of choice. + + RHEL does not wish to support this boot method so change table boot + preferences to use ACPI. In the event ACPI table checks fail the kernel + will fallback to using DTS to boot. + + Signed-off-by: Jonathan Toppins + +Upstream Status: RHEL only +Signed-off-by: Mark Salter +Signed-off-by: Herton R. Krzesinski +--- + arch/arm64/kernel/acpi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c +index a100483b47c4..29f693734edb 100644 +--- a/arch/arm64/kernel/acpi.c ++++ b/arch/arm64/kernel/acpi.c +@@ -39,7 +39,7 @@ int acpi_pci_disabled = 1; /* skip ACPI PCI scan and IRQ initialization */ + EXPORT_SYMBOL(acpi_pci_disabled); + + static bool param_acpi_off __initdata; +-static bool param_acpi_on __initdata; ++static bool param_acpi_on __initdata = true; + static bool param_acpi_force __initdata; + + static int __init parse_acpi(char *arg) +-- +2.26.2 + diff --git a/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch b/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch new file mode 100644 index 000000000..9470c4608 --- /dev/null +++ b/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch @@ -0,0 +1,55 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Zou Wei +Date: Tue, 21 Apr 2020 20:37:31 +0800 +Subject: [PATCH] acr: Use kmemdup instead of kmalloc and memcpy + +Fixes coccicheck warning: + +drivers/gpu/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c:103:23-30: WARNING opportunity for kmemdup +drivers/gpu/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c:113:22-29: WARNING opportunity for kmemdup + +Fixes: 22dcda45a3d1 ("drivers/gpu/drm/nouveau/acr: implement new subdev to replace "secure boot"") +Reported-by: Hulk Robot +Signed-off-by: Zou Wei +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c | 12 ++++-------- + 1 file changed, 4 insertions(+), 8 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c +index aecce2dac558..667fa016496e 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c ++++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c +@@ -100,25 +100,21 @@ nvkm_acr_hsfw_load_image(struct nvkm_acr *acr, const char *name, int ver, + hsfw->data_size = lhdr->data_size; + + hsfw->sig.prod.size = fwhdr->sig_prod_size; +- hsfw->sig.prod.data = kmalloc(hsfw->sig.prod.size, GFP_KERNEL); ++ hsfw->sig.prod.data = kmemdup(fw->data + fwhdr->sig_prod_offset + sig, ++ hsfw->sig.prod.size, GFP_KERNEL); + if (!hsfw->sig.prod.data) { + ret = -ENOMEM; + goto done; + } + +- memcpy(hsfw->sig.prod.data, fw->data + fwhdr->sig_prod_offset + sig, +- hsfw->sig.prod.size); +- + hsfw->sig.dbg.size = fwhdr->sig_dbg_size; +- hsfw->sig.dbg.data = kmalloc(hsfw->sig.dbg.size, GFP_KERNEL); ++ hsfw->sig.dbg.data = kmemdup(fw->data + fwhdr->sig_dbg_offset + sig, ++ hsfw->sig.dbg.size, GFP_KERNEL); + if (!hsfw->sig.dbg.data) { + ret = -ENOMEM; + goto done; + } + +- memcpy(hsfw->sig.dbg.data, fw->data + fwhdr->sig_dbg_offset + sig, +- hsfw->sig.dbg.size); +- + hsfw->sig.patch_loc = loc; + done: + nvkm_firmware_put(fw); +-- +2.26.2 + diff --git a/0001-ahci-thunderx2-Fix-for-errata-that-affects-stop-engi.patch b/0001-ahci-thunderx2-Fix-for-errata-that-affects-stop-engi.patch new file mode 100644 index 000000000..0299e965c --- /dev/null +++ b/0001-ahci-thunderx2-Fix-for-errata-that-affects-stop-engi.patch @@ -0,0 +1,89 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Robert Richter +Date: Thu, 7 Jun 2018 22:59:33 -0400 +Subject: [PATCH] ahci: thunderx2: Fix for errata that affects stop engine + +Message-id: <1528412373-19128-3-git-send-email-rrichter@redhat.com> +Patchwork-id: 220952 +O-Subject: [RHEL-8.0 BZ 1563590 v2 2/2] ahci: thunderx2: Fix for errata that affects stop engine +Bugzilla: 1563590 +RH-Acked-by: Dean Nelson +RH-Acked-by: Mark Langsdorf +RH-Acked-by: Mark Salter + +From: Jayachandran C + +Apply workaround for this errata: + Synopsis: Resetting PxCMD.ST may hang the SATA device + + Description: An internal ping-pong buffer state is not reset + correctly for an PxCMD.ST=0 command for a SATA channel. This + may cause the SATA interface to hang when a PxCMD.ST=0 command + is received. + + Workaround: A SATA_BIU_CORE_ENABLE.sw_init_bsi must be asserted + by the driver whenever the PxCMD.ST needs to be de-asserted. This + will reset both the ports. So, it may not always work in a 2 + channel SATA system. + + Resolution: Fix in B0. + +Add the code to ahci_stop_engine() to do this. It is not easy to +stop the other "port" since it is associated with a different AHCI +interface. Please note that with this fix, SATA reset does not +hang any more, but it can cause failures on the other interface +if that is in active use. + +Unfortunately, we have nothing other the the CPU ID to check if the +SATA block has this issue. + +RHEL-only: + +Both patches are in RHEL-7.6 also. Inclusion of the patches into RHEL-8 +was discussed. Since there are partners with Ax system configurations it +was decided to carry them in RHEL8 too. See: + + https://bugzilla.redhat.com/show_bug.cgi?id=1563590#c1 + +[v3 with new delays] +Signed-off-by: Jayachandran C + +Upstream Status: RHEL only +Signed-off-by: Robert Richter +Signed-off-by: Herton R. Krzesinski +--- + drivers/ata/libahci.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c +index ea5bf5f4cbed..71c55cae27ac 100644 +--- a/drivers/ata/libahci.c ++++ b/drivers/ata/libahci.c +@@ -666,6 +666,24 @@ int ahci_stop_engine(struct ata_port *ap) + tmp &= ~PORT_CMD_START; + writel(tmp, port_mmio + PORT_CMD); + ++#ifdef CONFIG_ARM64 ++ /* Rev Ax of Cavium CN99XX needs a hack for port stop */ ++ if (dev_is_pci(ap->host->dev) && ++ to_pci_dev(ap->host->dev)->vendor == 0x14e4 && ++ to_pci_dev(ap->host->dev)->device == 0x9027 && ++ midr_is_cpu_model_range(read_cpuid_id(), ++ MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN), ++ MIDR_CPU_VAR_REV(0, 0), ++ MIDR_CPU_VAR_REV(0, MIDR_REVISION_MASK))) { ++ tmp = readl(hpriv->mmio + 0x8000); ++ udelay(100); ++ writel(tmp | (1 << 26), hpriv->mmio + 0x8000); ++ udelay(100); ++ writel(tmp & ~(1 << 26), hpriv->mmio + 0x8000); ++ dev_warn(ap->host->dev, "CN99XX SATA reset workaround applied\n"); ++ } ++#endif ++ + /* wait for engine to stop. This could be as long as 500 msec */ + tmp = ata_wait_register(ap, port_mmio + PORT_CMD, + PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1, 500); +-- +2.26.2 + diff --git a/0001-arm-aarch64-Drop-the-EXPERT-setting-from-ARM64_FORCE.patch b/0001-arm-aarch64-Drop-the-EXPERT-setting-from-ARM64_FORCE.patch new file mode 100644 index 000000000..286c898cb --- /dev/null +++ b/0001-arm-aarch64-Drop-the-EXPERT-setting-from-ARM64_FORCE.patch @@ -0,0 +1,38 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jeremy Cline +Date: Tue, 1 Oct 2019 15:51:23 +0000 +Subject: [PATCH] arm: aarch64: Drop the EXPERT setting from ARM64_FORCE_52BIT + +Message-id: <20191001181256.22935-1-jcline@redhat.com> +Patchwork-id: 275498 +O-Subject: [ARK INTERNAL PATCH] [ARK INTERNAL PATCH] [redhat] Add patch + to drop the EXPERT setting from ARM64_FORCE_52BIT +Bugzilla: +RH-Acked-by: Laura Abbott + +We don't turn on EXPERT as there are few settings we actually want to +mess with. Remove the dependency for ARM64_FORCE_52BIT as we do want +that on in debug builds to help find 52-bit bugs. + +Upstream Status: RHEL only +Signed-off-by: Jeremy Cline +--- + arch/arm64/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig +index 5d513f461957..7f37a6d0658a 100644 +--- a/arch/arm64/Kconfig ++++ b/arch/arm64/Kconfig +@@ -858,7 +858,7 @@ endchoice + + config ARM64_FORCE_52BIT + bool "Force 52-bit virtual addresses for userspace" +- depends on ARM64_VA_BITS_52 && EXPERT ++ depends on ARM64_VA_BITS_52 + help + For systems with 52-bit userspace VAs enabled, the kernel will attempt + to maintain compatibility with older software by providing 48-bit VAs +-- +2.26.2 + diff --git a/arm-make-highpte-not-expert.patch b/0001-arm-make-CONFIG_HIGHPTE-optional-without-CONFIG_EXPE.patch similarity index 83% rename from arm-make-highpte-not-expert.patch rename to 0001-arm-make-CONFIG_HIGHPTE-optional-without-CONFIG_EXPE.patch index 09630fda1..040f33cb1 100644 --- a/arm-make-highpte-not-expert.patch +++ b/0001-arm-make-CONFIG_HIGHPTE-optional-without-CONFIG_EXPE.patch @@ -1,4 +1,4 @@ -From 19908e5fe3e63ed2d39f0a8a9135f35fd428d766 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jon Masters Date: Thu, 18 Jul 2019 15:47:26 -0400 Subject: [PATCH] arm: make CONFIG_HIGHPTE optional without CONFIG_EXPERT @@ -11,12 +11,12 @@ Signed-off-by: Jon Masters 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index 2bf1ce39a96d..e792b3e60095 100644 +index c77c93c485a0..f808c4e0727f 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig -@@ -1644,9 +1644,9 @@ config HIGHMEM +@@ -1543,9 +1543,9 @@ config HIGHMEM If unsure, say n. - + config HIGHPTE - bool "Allocate 2nd-level pagetables from highmem" if EXPERT + bool "Allocate 2nd-level pagetables from highmem" @@ -27,5 +27,5 @@ index 2bf1ce39a96d..e792b3e60095 100644 The VM uses one page of physical memory for each page table. For systems with a lot of processes, this can use a lot of -- -2.17.2 +2.26.2 diff --git a/0001-compat_ioctl-cdrom-Replace-.ioctl-with-.compat_ioctl.patch b/0001-compat_ioctl-cdrom-Replace-.ioctl-with-.compat_ioctl.patch deleted file mode 100644 index be10f81af..000000000 --- a/0001-compat_ioctl-cdrom-Replace-.ioctl-with-.compat_ioctl.patch +++ /dev/null @@ -1,83 +0,0 @@ -From cef57541cdc079165e9af419ccacd36dce863d3a Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Wed, 19 Feb 2020 17:50:07 +0100 -Subject: [PATCH] compat_ioctl, cdrom: Replace .ioctl with .compat_ioctl in - four appropriate places - -Arnd Bergmann inadvertently typoed these in d320a9551e394 and -64cbfa96551a; they seem to be the cause of -https://bugzilla.redhat.com/show_bug.cgi?id=1801353 , invalid -SCSI commands when udev tries to query a DVD drive. - -[arnd] Found another instance of the same bug, also introduced -in my compat_ioctl series. - -Fixes: d320a9551e39 ("compat_ioctl: scsi: move ioctl handling into drivers") -Fixes: 64cbfa96551a ("compat_ioctl: move cdrom commands into cdrom.c") -Fixes: c103d6ee69f9 ("compat_ioctl: ide: floppy: add handler") -Link: https://bugzilla.redhat.com/show_bug.cgi?id=1801353 -Bisected-by: Chris Murphy -Signed-off-by: Adam Williamson -Signed-off-by: Arnd Bergmann ---- - drivers/block/paride/pcd.c | 2 +- - drivers/cdrom/gdrom.c | 2 +- - drivers/ide/ide-gd.c | 2 +- - drivers/scsi/sr.c | 2 +- - 4 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/drivers/block/paride/pcd.c b/drivers/block/paride/pcd.c -index 117cfc8cd05a..cda5cf917e9a 100644 ---- a/drivers/block/paride/pcd.c -+++ b/drivers/block/paride/pcd.c -@@ -276,7 +276,7 @@ static const struct block_device_operations pcd_bdops = { - .release = pcd_block_release, - .ioctl = pcd_block_ioctl, - #ifdef CONFIG_COMPAT -- .ioctl = blkdev_compat_ptr_ioctl, -+ .compat_ioctl = blkdev_compat_ptr_ioctl, - #endif - .check_events = pcd_block_check_events, - }; -diff --git a/drivers/cdrom/gdrom.c b/drivers/cdrom/gdrom.c -index 886b2638c730..c51292c2a131 100644 ---- a/drivers/cdrom/gdrom.c -+++ b/drivers/cdrom/gdrom.c -@@ -519,7 +519,7 @@ static const struct block_device_operations gdrom_bdops = { - .check_events = gdrom_bdops_check_events, - .ioctl = gdrom_bdops_ioctl, - #ifdef CONFIG_COMPAT -- .ioctl = blkdev_compat_ptr_ioctl, -+ .compat_ioctl = blkdev_compat_ptr_ioctl, - #endif - }; - -diff --git a/drivers/ide/ide-gd.c b/drivers/ide/ide-gd.c -index 1bb99b556393..05c26986637b 100644 ---- a/drivers/ide/ide-gd.c -+++ b/drivers/ide/ide-gd.c -@@ -361,7 +361,7 @@ static const struct block_device_operations ide_gd_ops = { - .release = ide_gd_release, - .ioctl = ide_gd_ioctl, - #ifdef CONFIG_COMPAT -- .ioctl = ide_gd_compat_ioctl, -+ .compat_ioctl = ide_gd_compat_ioctl, - #endif - .getgeo = ide_gd_getgeo, - .check_events = ide_gd_check_events, -diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c -index 0fbb8fe6e521..e4240e4ae8bb 100644 ---- a/drivers/scsi/sr.c -+++ b/drivers/scsi/sr.c -@@ -688,7 +688,7 @@ static const struct block_device_operations sr_bdops = - .release = sr_block_release, - .ioctl = sr_block_ioctl, - #ifdef CONFIG_COMPAT -- .ioctl = sr_block_compat_ioctl, -+ .compat_ioctl = sr_block_compat_ioctl, - #endif - .check_events = sr_block_check_events, - .revalidate_disk = sr_block_revalidate_disk, --- -2.24.1 - diff --git a/0001-core-memory-remove-redundant-assignments-to-variable.patch b/0001-core-memory-remove-redundant-assignments-to-variable.patch new file mode 100644 index 000000000..d490d68d2 --- /dev/null +++ b/0001-core-memory-remove-redundant-assignments-to-variable.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Colin Ian King +Date: Sat, 29 Feb 2020 00:53:07 +0000 +Subject: [PATCH] core/memory: remove redundant assignments to variable ret + +The variable ret is being initialized with a value that is never +read and it is being updated later with a new value. The initialization +is redundant and can be removed. + +Addresses-Coverity: ("Unused value") +Signed-off-by: Colin Ian King +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/nvkm/core/memory.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/nouveau/nvkm/core/memory.c b/drivers/gpu/drm/nouveau/nvkm/core/memory.c +index 4cc186262d34..38130ef272d6 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/core/memory.c ++++ b/drivers/gpu/drm/nouveau/nvkm/core/memory.c +@@ -140,7 +140,7 @@ nvkm_memory_new(struct nvkm_device *device, enum nvkm_memory_target target, + { + struct nvkm_instmem *imem = device->imem; + struct nvkm_memory *memory; +- int ret = -ENOSYS; ++ int ret; + + if (unlikely(target != NVKM_MEM_TARGET_INST || !imem)) + return -ENOSYS; +-- +2.26.2 + diff --git a/0001-device-detect-if-changing-endianness-failed.patch b/0001-device-detect-if-changing-endianness-failed.patch new file mode 100644 index 000000000..1089b7e87 --- /dev/null +++ b/0001-device-detect-if-changing-endianness-failed.patch @@ -0,0 +1,62 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Karol Herbst +Date: Tue, 28 Apr 2020 18:54:03 +0200 +Subject: [PATCH] device: detect if changing endianness failed + +v2: relax the checks a little + +Signed-off-by: Karol Herbst +Signed-off-by: Ben Skeggs +--- + .../gpu/drm/nouveau/nvkm/engine/device/base.c | 26 +++++++++++++++---- + 1 file changed, 21 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +index 37589f36546d..c732074bf790 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +@@ -2924,6 +2924,20 @@ nvkm_device_del(struct nvkm_device **pdevice) + } + } + ++static inline bool ++nvkm_device_endianness(void __iomem *pri) ++{ ++ u32 boot1 = ioread32_native(pri + 0x000004) & 0x01000001; ++#ifdef __BIG_ENDIAN ++ if (!boot1) ++ return false; ++#else ++ if (boot1) ++ return false; ++#endif ++ return true; ++} ++ + int + nvkm_device_ctor(const struct nvkm_device_func *func, + const struct nvkm_device_quirk *quirk, +@@ -2973,13 +2987,15 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + /* identify the chipset, and determine classes of subdev/engines */ + if (detect) { + /* switch mmio to cpu's native endianness */ +-#ifndef __BIG_ENDIAN +- if (ioread32_native(map + 0x000004) != 0x00000000) { +-#else +- if (ioread32_native(map + 0x000004) == 0x00000000) { +-#endif ++ if (!nvkm_device_endianness(map)) { + iowrite32_native(0x01000001, map + 0x000004); + ioread32_native(map); ++ if (!nvkm_device_endianness(map)) { ++ nvdev_error(device, ++ "GPU not supported on big-endian\n"); ++ ret = -ENOSYS; ++ goto done; ++ } + } + + /* read boot0 and strapping information */ +-- +2.26.2 + diff --git a/0001-device-detect-vGPUs.patch b/0001-device-detect-vGPUs.patch new file mode 100644 index 000000000..08f591ff7 --- /dev/null +++ b/0001-device-detect-vGPUs.patch @@ -0,0 +1,59 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Karol Herbst +Date: Tue, 28 Apr 2020 18:54:04 +0200 +Subject: [PATCH] device: detect vGPUs + +Using ENODEV as this prevents probe failed errors in dmesg. + +v2: move check further down + +Signed-off-by: Karol Herbst +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +index c732074bf790..f977dddcd809 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +@@ -2948,7 +2948,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + { + struct nvkm_subdev *subdev; + u64 mmio_base, mmio_size; +- u32 boot0, strap; ++ u32 boot0, boot1, strap; + void __iomem *map = NULL; + int ret = -EEXIST, i; + unsigned chipset; +@@ -2998,9 +2998,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + } + } + +- /* read boot0 and strapping information */ + boot0 = ioread32_native(map + 0x000000); +- strap = ioread32_native(map + 0x101000); + + /* chipset can be overridden for devel/testing purposes */ + chipset = nvkm_longopt(device->cfgopt, "NvChipset", 0); +@@ -3158,6 +3156,17 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + nvdev_info(device, "NVIDIA %s (%08x)\n", + device->chip->name, boot0); + ++ /* vGPU detection */ ++ boot1 = ioread32_native(map + 0x000004); ++ if (device->card_type >= TU100 && (boot1 & 0x00030000)) { ++ nvdev_info(device, "vGPUs are not supported\n"); ++ ret = -ENODEV; ++ goto done; ++ } ++ ++ /* read strapping information */ ++ strap = ioread32_native(map + 0x101000); ++ + /* determine frequency of timing crystal */ + if ( device->card_type <= NV_10 || device->chipset < 0x17 || + (device->chipset >= 0x20 && device->chipset < 0x25)) +-- +2.26.2 + diff --git a/0001-device-rework-mmio-mapping-code-to-get-rid-of-second.patch b/0001-device-rework-mmio-mapping-code-to-get-rid-of-second.patch new file mode 100644 index 000000000..bde820ba5 --- /dev/null +++ b/0001-device-rework-mmio-mapping-code-to-get-rid-of-second.patch @@ -0,0 +1,84 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Karol Herbst +Date: Tue, 28 Apr 2020 18:54:02 +0200 +Subject: [PATCH] device: rework mmio mapping code to get rid of second map + +Fixes warnings on GPUs with smaller a smaller mmio region like vGPUs. + +Signed-off-by: Karol Herbst +Signed-off-by: Ben Skeggs +--- + .../gpu/drm/nouveau/nvkm/engine/device/base.c | 27 ++++++++++--------- + 1 file changed, 15 insertions(+), 12 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +index 8ebbe1656008..37589f36546d 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +@@ -2935,7 +2935,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + struct nvkm_subdev *subdev; + u64 mmio_base, mmio_size; + u32 boot0, strap; +- void __iomem *map; ++ void __iomem *map = NULL; + int ret = -EEXIST, i; + unsigned chipset; + +@@ -2961,12 +2961,17 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + mmio_base = device->func->resource_addr(device, 0); + mmio_size = device->func->resource_size(device, 0); + +- /* identify the chipset, and determine classes of subdev/engines */ +- if (detect) { +- map = ioremap(mmio_base, 0x102000); +- if (ret = -ENOMEM, map == NULL) ++ if (detect || mmio) { ++ map = ioremap(mmio_base, mmio_size); ++ if (map == NULL) { ++ nvdev_error(device, "unable to map PRI\n"); ++ ret = -ENOMEM; + goto done; ++ } ++ } + ++ /* identify the chipset, and determine classes of subdev/engines */ ++ if (detect) { + /* switch mmio to cpu's native endianness */ + #ifndef __BIG_ENDIAN + if (ioread32_native(map + 0x000004) != 0x00000000) { +@@ -2980,7 +2985,6 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + /* read boot0 and strapping information */ + boot0 = ioread32_native(map + 0x000000); + strap = ioread32_native(map + 0x101000); +- iounmap(map); + + /* chipset can be overridden for devel/testing purposes */ + chipset = nvkm_longopt(device->cfgopt, "NvChipset", 0); +@@ -3159,12 +3163,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + device->name = device->chip->name; + + if (mmio) { +- device->pri = ioremap(mmio_base, mmio_size); +- if (!device->pri) { +- nvdev_error(device, "unable to map PRI\n"); +- ret = -ENOMEM; +- goto done; +- } ++ device->pri = map; + } + + mutex_init(&device->mutex); +@@ -3254,6 +3253,10 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + + ret = 0; + done: ++ if (map && (!mmio || ret)) { ++ device->pri = NULL; ++ iounmap(map); ++ } + mutex_unlock(&nv_devices_mutex); + return ret; + } +-- +2.26.2 + diff --git a/0001-device-use-regular-PRI-accessors-in-chipset-detectio.patch b/0001-device-use-regular-PRI-accessors-in-chipset-detectio.patch new file mode 100644 index 000000000..ec4345169 --- /dev/null +++ b/0001-device-use-regular-PRI-accessors-in-chipset-detectio.patch @@ -0,0 +1,113 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ben Skeggs +Date: Thu, 30 Apr 2020 14:08:53 +1000 +Subject: [PATCH] device: use regular PRI accessors in chipset detection + +Signed-off-by: Ben Skeggs +--- + .../gpu/drm/nouveau/nvkm/engine/device/base.c | 31 ++++++++----------- + 1 file changed, 13 insertions(+), 18 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +index f977dddcd809..5b90c2a1bf3d 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +@@ -2925,9 +2925,9 @@ nvkm_device_del(struct nvkm_device **pdevice) + } + + static inline bool +-nvkm_device_endianness(void __iomem *pri) ++nvkm_device_endianness(struct nvkm_device *device) + { +- u32 boot1 = ioread32_native(pri + 0x000004) & 0x01000001; ++ u32 boot1 = nvkm_rd32(device, 0x000004) & 0x01000001; + #ifdef __BIG_ENDIAN + if (!boot1) + return false; +@@ -2949,7 +2949,6 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + struct nvkm_subdev *subdev; + u64 mmio_base, mmio_size; + u32 boot0, boot1, strap; +- void __iomem *map = NULL; + int ret = -EEXIST, i; + unsigned chipset; + +@@ -2976,8 +2975,8 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + mmio_size = device->func->resource_size(device, 0); + + if (detect || mmio) { +- map = ioremap(mmio_base, mmio_size); +- if (map == NULL) { ++ device->pri = ioremap(mmio_base, mmio_size); ++ if (device->pri == NULL) { + nvdev_error(device, "unable to map PRI\n"); + ret = -ENOMEM; + goto done; +@@ -2987,10 +2986,10 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + /* identify the chipset, and determine classes of subdev/engines */ + if (detect) { + /* switch mmio to cpu's native endianness */ +- if (!nvkm_device_endianness(map)) { +- iowrite32_native(0x01000001, map + 0x000004); +- ioread32_native(map); +- if (!nvkm_device_endianness(map)) { ++ if (!nvkm_device_endianness(device)) { ++ nvkm_wr32(device, 0x000004, 0x01000001); ++ nvkm_rd32(device, 0x000000); ++ if (!nvkm_device_endianness(device)) { + nvdev_error(device, + "GPU not supported on big-endian\n"); + ret = -ENOSYS; +@@ -2998,7 +2997,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + } + } + +- boot0 = ioread32_native(map + 0x000000); ++ boot0 = nvkm_rd32(device, 0x000000); + + /* chipset can be overridden for devel/testing purposes */ + chipset = nvkm_longopt(device->cfgopt, "NvChipset", 0); +@@ -3157,7 +3156,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + device->chip->name, boot0); + + /* vGPU detection */ +- boot1 = ioread32_native(map + 0x000004); ++ boot1 = nvkm_rd32(device, 0x0000004); + if (device->card_type >= TU100 && (boot1 & 0x00030000)) { + nvdev_info(device, "vGPUs are not supported\n"); + ret = -ENODEV; +@@ -3165,7 +3164,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + } + + /* read strapping information */ +- strap = ioread32_native(map + 0x101000); ++ strap = nvkm_rd32(device, 0x101000); + + /* determine frequency of timing crystal */ + if ( device->card_type <= NV_10 || device->chipset < 0x17 || +@@ -3187,10 +3186,6 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + if (!device->name) + device->name = device->chip->name; + +- if (mmio) { +- device->pri = map; +- } +- + mutex_init(&device->mutex); + + for (i = 0; i < NVKM_SUBDEV_NR; i++) { +@@ -3278,9 +3273,9 @@ nvkm_device_ctor(const struct nvkm_device_func *func, + + ret = 0; + done: +- if (map && (!mmio || ret)) { ++ if (device->pri && (!mmio || ret)) { ++ iounmap(device->pri); + device->pri = NULL; +- iounmap(map); + } + mutex_unlock(&nv_devices_mutex); + return ret; +-- +2.26.2 + diff --git a/0001-disp-gv100-expose-capabilities-class.patch b/0001-disp-gv100-expose-capabilities-class.patch new file mode 100644 index 000000000..60293792f --- /dev/null +++ b/0001-disp-gv100-expose-capabilities-class.patch @@ -0,0 +1,149 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ben Skeggs +Date: Thu, 13 Feb 2020 09:39:34 +1000 +Subject: [PATCH] disp/gv100-: expose capabilities class + +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/include/nvif/class.h | 2 + + .../gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 2 + + .../drm/nouveau/nvkm/engine/disp/capsgv100.c | 60 +++++++++++++++++++ + .../drm/nouveau/nvkm/engine/disp/rootgv100.c | 1 + + .../drm/nouveau/nvkm/engine/disp/rootnv50.h | 3 + + .../drm/nouveau/nvkm/engine/disp/roottu102.c | 1 + + 6 files changed, 69 insertions(+) + create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/capsgv100.c + +diff --git a/drivers/gpu/drm/nouveau/include/nvif/class.h b/drivers/gpu/drm/nouveau/include/nvif/class.h +index 30659747ffe8..2c79beb41126 100644 +--- a/drivers/gpu/drm/nouveau/include/nvif/class.h ++++ b/drivers/gpu/drm/nouveau/include/nvif/class.h +@@ -89,6 +89,8 @@ + #define GV100_DISP /* cl5070.h */ 0x0000c370 + #define TU102_DISP /* cl5070.h */ 0x0000c570 + ++#define GV100_DISP_CAPS 0x0000c373 ++ + #define NV31_MPEG 0x00003174 + #define G82_MPEG 0x00008274 + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild +index 0d584d0da59c..f7af648e0c17 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild +@@ -74,6 +74,8 @@ nvkm-y += nvkm/engine/disp/rootgp102.o + nvkm-y += nvkm/engine/disp/rootgv100.o + nvkm-y += nvkm/engine/disp/roottu102.o + ++nvkm-y += nvkm/engine/disp/capsgv100.o ++ + nvkm-y += nvkm/engine/disp/channv50.o + nvkm-y += nvkm/engine/disp/changf119.o + nvkm-y += nvkm/engine/disp/changv100.o +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/capsgv100.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/capsgv100.c +new file mode 100644 +index 000000000000..5026e530f4bb +--- /dev/null ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/capsgv100.c +@@ -0,0 +1,60 @@ ++/* ++ * Copyright 2020 Red Hat Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR ++ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++#define gv100_disp_caps(p) container_of((p), struct gv100_disp_caps, object) ++#include "rootnv50.h" ++ ++struct gv100_disp_caps { ++ struct nvkm_object object; ++ struct nv50_disp *disp; ++}; ++ ++static int ++gv100_disp_caps_map(struct nvkm_object *object, void *argv, u32 argc, ++ enum nvkm_object_map *type, u64 *addr, u64 *size) ++{ ++ struct gv100_disp_caps *caps = gv100_disp_caps(object); ++ struct nvkm_device *device = caps->disp->base.engine.subdev.device; ++ *type = NVKM_OBJECT_MAP_IO; ++ *addr = 0x640000 + device->func->resource_addr(device, 0); ++ *size = 0x1000; ++ return 0; ++} ++ ++static const struct nvkm_object_func ++gv100_disp_caps = { ++ .map = gv100_disp_caps_map, ++}; ++ ++int ++gv100_disp_caps_new(const struct nvkm_oclass *oclass, void *argv, u32 argc, ++ struct nv50_disp *disp, struct nvkm_object **pobject) ++{ ++ struct gv100_disp_caps *caps; ++ ++ if (!(caps = kzalloc(sizeof(*caps), GFP_KERNEL))) ++ return -ENOMEM; ++ *pobject = &caps->object; ++ ++ nvkm_object_ctor(&gv100_disp_caps, oclass, &caps->object); ++ caps->disp = disp; ++ return 0; ++} +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgv100.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgv100.c +index 9c658d632d37..47efb48d769a 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgv100.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgv100.c +@@ -27,6 +27,7 @@ + static const struct nv50_disp_root_func + gv100_disp_root = { + .user = { ++ {{-1,-1,GV100_DISP_CAPS }, gv100_disp_caps_new }, + {{0,0,GV100_DISP_CURSOR }, gv100_disp_curs_new }, + {{0,0,GV100_DISP_WINDOW_IMM_CHANNEL_DMA}, gv100_disp_wimm_new }, + {{0,0,GV100_DISP_CORE_CHANNEL_DMA }, gv100_disp_core_new }, +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h +index a1f942793f98..7070f5408d92 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h +@@ -24,6 +24,9 @@ int nv50_disp_root_new_(const struct nv50_disp_root_func *, struct nvkm_disp *, + const struct nvkm_oclass *, void *data, u32 size, + struct nvkm_object **); + ++int gv100_disp_caps_new(const struct nvkm_oclass *, void *, u32, ++ struct nv50_disp *, struct nvkm_object **); ++ + extern const struct nvkm_disp_oclass nv50_disp_root_oclass; + extern const struct nvkm_disp_oclass g84_disp_root_oclass; + extern const struct nvkm_disp_oclass g94_disp_root_oclass; +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu102.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu102.c +index 579a5d02308a..d8719d38b98a 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu102.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu102.c +@@ -27,6 +27,7 @@ + static const struct nv50_disp_root_func + tu102_disp_root = { + .user = { ++ {{-1,-1,GV100_DISP_CAPS }, gv100_disp_caps_new }, + {{0,0,TU102_DISP_CURSOR }, gv100_disp_curs_new }, + {{0,0,TU102_DISP_WINDOW_IMM_CHANNEL_DMA}, gv100_disp_wimm_new }, + {{0,0,TU102_DISP_CORE_CHANNEL_DMA }, gv100_disp_core_new }, +-- +2.26.2 + diff --git a/0001-disp-hda-gf119-add-HAL-for-programming-device-entry-.patch b/0001-disp-hda-gf119-add-HAL-for-programming-device-entry-.patch new file mode 100644 index 000000000..cba6699dc --- /dev/null +++ b/0001-disp-hda-gf119-add-HAL-for-programming-device-entry-.patch @@ -0,0 +1,146 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ben Skeggs +Date: Wed, 6 May 2020 14:40:56 +1000 +Subject: [PATCH] disp/hda/gf119-: add HAL for programming device entry in SF + +Register has moved on GV100. + +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c | 11 +++++++++-- + drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h | 2 ++ + drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c | 1 + + drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c | 1 + + drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c | 1 + + drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c | 1 + + drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c | 1 + + drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c | 1 + + 8 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c +index 1080ba6ecd64..8a0ec7db5145 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c +@@ -23,6 +23,14 @@ + */ + #include "ior.h" + ++void ++gf119_hda_device_entry(struct nvkm_ior *ior, int head) ++{ ++ struct nvkm_device *device = ior->disp->engine.subdev.device; ++ const u32 hoff = 0x800 * head; ++ nvkm_mask(device, 0x616548 + hoff, 0x00000070, 0x00000000); ++} ++ + void + gf119_hda_eld(struct nvkm_ior *ior, int head, u8 *data, u8 size) + { +@@ -41,11 +49,10 @@ void + gf119_hda_hpd(struct nvkm_ior *ior, int head, bool present) + { + struct nvkm_device *device = ior->disp->engine.subdev.device; +- const u32 hoff = 0x800 * head; + u32 data = 0x80000000; + u32 mask = 0x80000001; + if (present) { +- nvkm_mask(device, 0x616548 + hoff, 0x00000070, 0x00000000); ++ ior->func->hda.device_entry(ior, head); + data |= 0x00000001; + } else { + mask |= 0x00000002; +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h +index c60acf71831e..eb1155e47ecd 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h +@@ -88,6 +88,7 @@ struct nvkm_ior_func { + struct { + void (*hpd)(struct nvkm_ior *, int head, bool present); + void (*eld)(struct nvkm_ior *, int head, u8 *data, u8 size); ++ void (*device_entry)(struct nvkm_ior *, int head); + } hda; + }; + +@@ -162,6 +163,7 @@ void gt215_hda_eld(struct nvkm_ior *, int, u8 *, u8); + + void gf119_hda_hpd(struct nvkm_ior *, int, bool); + void gf119_hda_eld(struct nvkm_ior *, int, u8 *, u8); ++void gf119_hda_device_entry(struct nvkm_ior *, int); + + #define IOR_MSG(i,l,f,a...) do { \ + struct nvkm_ior *_ior = (i); \ +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c +index 456a5a143522..3b3643fb1019 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c +@@ -177,6 +177,7 @@ gf119_sor = { + .hda = { + .hpd = gf119_hda_hpd, + .eld = gf119_hda_eld, ++ .device_entry = gf119_hda_device_entry, + }, + }; + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c +index b94090edaebf..0c0925680790 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c +@@ -43,6 +43,7 @@ gk104_sor = { + .hda = { + .hpd = gf119_hda_hpd, + .eld = gf119_hda_eld, ++ .device_entry = gf119_hda_device_entry, + }, + }; + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c +index e6965dec09c9..38045c92197f 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c +@@ -57,6 +57,7 @@ gm107_sor = { + .hda = { + .hpd = gf119_hda_hpd, + .eld = gf119_hda_eld, ++ .device_entry = gf119_hda_device_entry, + }, + }; + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c +index 384f82652bec..cf2075db742a 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c +@@ -115,6 +115,7 @@ gm200_sor = { + .hda = { + .hpd = gf119_hda_hpd, + .eld = gf119_hda_eld, ++ .device_entry = gf119_hda_device_entry, + }, + }; + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c +index b0597ff9a714..565cfbc65550 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c +@@ -103,6 +103,7 @@ gv100_sor = { + .hda = { + .hpd = gf119_hda_hpd, + .eld = gf119_hda_eld, ++ .device_entry = gf119_hda_device_entry, + }, + }; + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c +index 4d5f3791ea7b..b16ecea098c7 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c +@@ -88,6 +88,7 @@ tu102_sor = { + .hda = { + .hpd = gf119_hda_hpd, + .eld = gf119_hda_eld, ++ .device_entry = gf119_hda_device_entry, + }, + }; + +-- +2.26.2 + diff --git a/0001-disp-hda-gf119-select-HDA-device-entry-based-on-boun.patch b/0001-disp-hda-gf119-select-HDA-device-entry-based-on-boun.patch new file mode 100644 index 000000000..714d1a0f3 --- /dev/null +++ b/0001-disp-hda-gf119-select-HDA-device-entry-based-on-boun.patch @@ -0,0 +1,49 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ben Skeggs +Date: Wed, 6 May 2020 14:40:58 +1000 +Subject: [PATCH] disp/hda/gf119-: select HDA device entry based on bound head + +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c +index 8a0ec7db5145..19d2d58344e4 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c +@@ -28,14 +28,14 @@ gf119_hda_device_entry(struct nvkm_ior *ior, int head) + { + struct nvkm_device *device = ior->disp->engine.subdev.device; + const u32 hoff = 0x800 * head; +- nvkm_mask(device, 0x616548 + hoff, 0x00000070, 0x00000000); ++ nvkm_mask(device, 0x616548 + hoff, 0x00000070, head << 4); + } + + void + gf119_hda_eld(struct nvkm_ior *ior, int head, u8 *data, u8 size) + { + struct nvkm_device *device = ior->disp->engine.subdev.device; +- const u32 soff = 0x030 * ior->id; ++ const u32 soff = 0x030 * ior->id + (head * 0x04); + int i; + + for (i = 0; i < size; i++) +@@ -49,6 +49,7 @@ void + gf119_hda_hpd(struct nvkm_ior *ior, int head, bool present) + { + struct nvkm_device *device = ior->disp->engine.subdev.device; ++ const u32 soff = 0x030 * ior->id + (head * 0x04); + u32 data = 0x80000000; + u32 mask = 0x80000001; + if (present) { +@@ -57,5 +58,5 @@ gf119_hda_hpd(struct nvkm_ior *ior, int head, bool present) + } else { + mask |= 0x00000002; + } +- nvkm_mask(device, 0x10ec10 + ior->id * 0x030, mask, data); ++ nvkm_mask(device, 0x10ec10 + soff, mask, data); + } +-- +2.26.2 + diff --git a/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch b/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch new file mode 100644 index 000000000..0011e60ae --- /dev/null +++ b/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch @@ -0,0 +1,83 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ben Skeggs +Date: Wed, 6 May 2020 14:40:52 +1000 +Subject: [PATCH] disp/hda/gt215-: pass head to nvkm_ior.hda.eld() + +We're going to use the bound head to select HDA device entry. + +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c | 2 +- + drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c | 2 +- + drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h | 6 +++--- + drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c | 2 +- + 4 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c +index 0fa0ec0a1de0..1080ba6ecd64 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c +@@ -24,7 +24,7 @@ + #include "ior.h" + + void +-gf119_hda_eld(struct nvkm_ior *ior, u8 *data, u8 size) ++gf119_hda_eld(struct nvkm_ior *ior, int head, u8 *data, u8 size) + { + struct nvkm_device *device = ior->disp->engine.subdev.device; + const u32 soff = 0x030 * ior->id; +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c +index 4509d2ba880e..0d1b81fe1093 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c +@@ -24,7 +24,7 @@ + #include "ior.h" + + void +-gt215_hda_eld(struct nvkm_ior *ior, u8 *data, u8 size) ++gt215_hda_eld(struct nvkm_ior *ior, int head, u8 *data, u8 size) + { + struct nvkm_device *device = ior->disp->engine.subdev.device; + const u32 soff = ior->id * 0x800; +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h +index 009d3a8b7a50..c60acf71831e 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h +@@ -87,7 +87,7 @@ struct nvkm_ior_func { + + struct { + void (*hpd)(struct nvkm_ior *, int head, bool present); +- void (*eld)(struct nvkm_ior *, u8 *data, u8 size); ++ void (*eld)(struct nvkm_ior *, int head, u8 *data, u8 size); + } hda; + }; + +@@ -158,10 +158,10 @@ void gv100_hdmi_ctrl(struct nvkm_ior *, int, bool, u8, u8, u8 *, u8 , u8 *, u8); + void gm200_hdmi_scdc(struct nvkm_ior *, int, u8); + + void gt215_hda_hpd(struct nvkm_ior *, int, bool); +-void gt215_hda_eld(struct nvkm_ior *, u8 *, u8); ++void gt215_hda_eld(struct nvkm_ior *, int, u8 *, u8); + + void gf119_hda_hpd(struct nvkm_ior *, int, bool); +-void gf119_hda_eld(struct nvkm_ior *, u8 *, u8); ++void gf119_hda_eld(struct nvkm_ior *, int, u8 *, u8); + + #define IOR_MSG(i,l,f,a...) do { \ + struct nvkm_ior *_ior = (i); \ +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c +index 5f758948d6e1..a7672ef17d3b 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c +@@ -155,7 +155,7 @@ nv50_disp_root_mthd_(struct nvkm_object *object, u32 mthd, void *data, u32 size) + if (outp->info.type == DCB_OUTPUT_DP) + ior->func->dp.audio(ior, hidx, true); + ior->func->hda.hpd(ior, hidx, true); +- ior->func->hda.eld(ior, data, size); ++ ior->func->hda.eld(ior, hidx, data, size); + } else { + if (outp->info.type == DCB_OUTPUT_DP) + ior->func->dp.audio(ior, hidx, false); +-- +2.26.2 + diff --git a/0001-disp-hda-gv100-NV_PDISP_SF_AUDIO_CNTRL0-register-mov.patch b/0001-disp-hda-gv100-NV_PDISP_SF_AUDIO_CNTRL0-register-mov.patch new file mode 100644 index 000000000..b93c9f13b --- /dev/null +++ b/0001-disp-hda-gv100-NV_PDISP_SF_AUDIO_CNTRL0-register-mov.patch @@ -0,0 +1,105 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ben Skeggs +Date: Wed, 6 May 2020 14:41:01 +1000 +Subject: [PATCH] disp/hda/gv100-: NV_PDISP_SF_AUDIO_CNTRL0 register moved + +Signed-off-by: Ben Skeggs +--- + .../gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 1 + + .../drm/nouveau/nvkm/engine/disp/hdagv100.c | 30 +++++++++++++++++++ + .../gpu/drm/nouveau/nvkm/engine/disp/ior.h | 2 ++ + .../drm/nouveau/nvkm/engine/disp/sorgv100.c | 2 +- + .../drm/nouveau/nvkm/engine/disp/sortu102.c | 2 +- + 5 files changed, 35 insertions(+), 2 deletions(-) + create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagv100.c + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild +index f7af648e0c17..571687ba85b8 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild +@@ -47,6 +47,7 @@ nvkm-y += nvkm/engine/disp/dp.o + + nvkm-y += nvkm/engine/disp/hdagt215.o + nvkm-y += nvkm/engine/disp/hdagf119.o ++nvkm-y += nvkm/engine/disp/hdagv100.o + + nvkm-y += nvkm/engine/disp/hdmi.o + nvkm-y += nvkm/engine/disp/hdmig84.o +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagv100.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagv100.c +new file mode 100644 +index 000000000000..57d374ecfeef +--- /dev/null ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagv100.c +@@ -0,0 +1,30 @@ ++/* ++ * Copyright 2020 Red Hat Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR ++ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++#include "ior.h" ++ ++void ++gv100_hda_device_entry(struct nvkm_ior *ior, int head) ++{ ++ struct nvkm_device *device = ior->disp->engine.subdev.device; ++ const u32 hoff = 0x800 * head; ++ nvkm_mask(device, 0x616528 + hoff, 0x00000070, head << 4); ++} +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h +index eb1155e47ecd..c1d7a36e4d3c 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h +@@ -165,6 +165,8 @@ void gf119_hda_hpd(struct nvkm_ior *, int, bool); + void gf119_hda_eld(struct nvkm_ior *, int, u8 *, u8); + void gf119_hda_device_entry(struct nvkm_ior *, int); + ++void gv100_hda_device_entry(struct nvkm_ior *, int); ++ + #define IOR_MSG(i,l,f,a...) do { \ + struct nvkm_ior *_ior = (i); \ + nvkm_##l(&_ior->disp->engine.subdev, "%s: "f"\n", _ior->name, ##a); \ +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c +index 565cfbc65550..d11a0dff10c6 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c +@@ -103,7 +103,7 @@ gv100_sor = { + .hda = { + .hpd = gf119_hda_hpd, + .eld = gf119_hda_eld, +- .device_entry = gf119_hda_device_entry, ++ .device_entry = gv100_hda_device_entry, + }, + }; + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c +index b16ecea098c7..fa6d74251237 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c +@@ -88,7 +88,7 @@ tu102_sor = { + .hda = { + .hpd = gf119_hda_hpd, + .eld = gf119_hda_eld, +- .device_entry = gf119_hda_device_entry, ++ .device_entry = gv100_hda_device_entry, + }, + }; + +-- +2.26.2 + diff --git a/0001-disp-nv50-increase-timeout-on-pio-channel-free-polli.patch b/0001-disp-nv50-increase-timeout-on-pio-channel-free-polli.patch new file mode 100644 index 000000000..d8c1a93d5 --- /dev/null +++ b/0001-disp-nv50-increase-timeout-on-pio-channel-free-polli.patch @@ -0,0 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ben Skeggs +Date: Wed, 6 May 2020 14:40:45 +1000 +Subject: [PATCH] disp/nv50-: increase timeout on pio channel free() polling + +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/dispnv50/curs507a.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/nouveau/dispnv50/curs507a.c b/drivers/gpu/drm/nouveau/dispnv50/curs507a.c +index 8c5cf096f69b..658a200ab616 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/curs507a.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/curs507a.c +@@ -32,7 +32,7 @@ + bool + curs507a_space(struct nv50_wndw *wndw) + { +- nvif_msec(&nouveau_drm(wndw->plane.dev)->client.device, 2, ++ nvif_msec(&nouveau_drm(wndw->plane.dev)->client.device, 100, + if (nvif_rd32(&wndw->wimm.base.user, 0x0008) >= 4) + return true; + ); +-- +2.26.2 + diff --git a/0001-drm-Use-generic-helper-to-check-_PR3-presence.patch b/0001-drm-Use-generic-helper-to-check-_PR3-presence.patch new file mode 100644 index 000000000..f0f9e0dfd --- /dev/null +++ b/0001-drm-Use-generic-helper-to-check-_PR3-presence.patch @@ -0,0 +1,96 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Kai-Heng Feng +Date: Thu, 23 Apr 2020 14:23:58 +0800 +Subject: [PATCH] drm: Use generic helper to check _PR3 presence + +Replace nouveau_pr3_present() in favor of a more generic one, +pci_pr3_present(). + +Also the presence of upstream bridge _PR3 doesn't need to go hand in +hand with device's _DSM, so check _PR3 before _DSM. + +Signed-off-by: Kai-Heng Feng +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/nouveau_acpi.c | 44 ++++++-------------------- + 1 file changed, 10 insertions(+), 34 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c +index fe3a10255c36..b84dff1b0f28 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_acpi.c ++++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c +@@ -212,37 +212,6 @@ static const struct vga_switcheroo_handler nouveau_dsm_handler = { + .get_client_id = nouveau_dsm_get_client_id, + }; + +-/* +- * Firmware supporting Windows 8 or later do not use _DSM to put the device into +- * D3cold, they instead rely on disabling power resources on the parent. +- */ +-static bool nouveau_pr3_present(struct pci_dev *pdev) +-{ +- struct pci_dev *parent_pdev = pci_upstream_bridge(pdev); +- struct acpi_device *parent_adev; +- +- if (!parent_pdev) +- return false; +- +- if (!parent_pdev->bridge_d3) { +- /* +- * Parent PCI bridge is currently not power managed. +- * Since userspace can change these afterwards to be on +- * the safe side we stick with _DSM and prevent usage of +- * _PR3 from the bridge. +- */ +- pci_d3cold_disable(pdev); +- return false; +- } +- +- parent_adev = ACPI_COMPANION(&parent_pdev->dev); +- if (!parent_adev) +- return false; +- +- return parent_adev->power.flags.power_resources && +- acpi_has_method(parent_adev->handle, "_PR3"); +-} +- + static void nouveau_dsm_pci_probe(struct pci_dev *pdev, acpi_handle *dhandle_out, + bool *has_mux, bool *has_opt, + bool *has_opt_flags, bool *has_pr3) +@@ -250,6 +219,16 @@ static void nouveau_dsm_pci_probe(struct pci_dev *pdev, acpi_handle *dhandle_out + acpi_handle dhandle; + bool supports_mux; + int optimus_funcs; ++ struct pci_dev *parent_pdev; ++ ++ *has_pr3 = false; ++ parent_pdev = pci_upstream_bridge(pdev); ++ if (parent_pdev) { ++ if (parent_pdev->bridge_d3) ++ *has_pr3 = pci_pr3_present(parent_pdev); ++ else ++ pci_d3cold_disable(pdev); ++ } + + dhandle = ACPI_HANDLE(&pdev->dev); + if (!dhandle) +@@ -270,7 +249,6 @@ static void nouveau_dsm_pci_probe(struct pci_dev *pdev, acpi_handle *dhandle_out + *has_mux = supports_mux; + *has_opt = !!optimus_funcs; + *has_opt_flags = optimus_funcs & (1 << NOUVEAU_DSM_OPTIMUS_FLAGS); +- *has_pr3 = false; + + if (optimus_funcs) { + uint32_t result; +@@ -280,8 +258,6 @@ static void nouveau_dsm_pci_probe(struct pci_dev *pdev, acpi_handle *dhandle_out + (result & OPTIMUS_ENABLED) ? "enabled" : "disabled", + (result & OPTIMUS_DYNAMIC_PWR_CAP) ? "dynamic power, " : "", + (result & OPTIMUS_HDA_CODEC_MASK) ? "hda bios codec supported" : ""); +- +- *has_pr3 = nouveau_pr3_present(pdev); + } + } + +-- +2.26.2 + diff --git a/0001-e1000e-bump-up-timeout-to-wait-when-ME-un-configure-.patch b/0001-e1000e-bump-up-timeout-to-wait-when-ME-un-configure-.patch new file mode 100644 index 000000000..8e740ce24 --- /dev/null +++ b/0001-e1000e-bump-up-timeout-to-wait-when-ME-un-configure-.patch @@ -0,0 +1,35 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aaron Ma +Date: Tue, 24 Mar 2020 03:16:39 +0800 +Subject: [PATCH] e1000e: bump up timeout to wait when ME un-configure ULP mode + +ME takes 2+ seconds to un-configure ULP mode done after resume +from s2idle on some ThinkPad laptops. +Without enough wait, reset and re-init will fail with error. + +Fixes: f15bb6dde738cc8fa0 ("e1000e: Add support for S0ix") +BugLink: https://bugs.launchpad.net/bugs/1865570 +Signed-off-by: Aaron Ma +--- + drivers/net/ethernet/intel/e1000e/ich8lan.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c +index 735bf25952fc..15f6c0a4dc63 100644 +--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c ++++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c +@@ -1243,9 +1243,9 @@ static s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force) + ew32(H2ME, mac_reg); + } + +- /* Poll up to 300msec for ME to clear ULP_CFG_DONE. */ ++ /* Poll up to 2.5sec for ME to clear ULP_CFG_DONE. */ + while (er32(FWSM) & E1000_FWSM_ULP_CFG_DONE) { +- if (i++ == 30) { ++ if (i++ == 250) { + ret_val = -E1000_ERR_PHY; + goto out; + } +-- +2.26.2 + diff --git a/0001-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch b/0001-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch new file mode 100644 index 000000000..acd11a206 --- /dev/null +++ b/0001-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch @@ -0,0 +1,161 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: David Howells +Date: Tue, 27 Feb 2018 10:04:55 +0000 +Subject: [PATCH] efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode + +UEFI machines can be booted in Secure Boot mode. Add an EFI_SECURE_BOOT +flag that can be passed to efi_enabled() to find out whether secure boot is +enabled. + +Move the switch-statement in x86's setup_arch() that inteprets the +secure_boot boot parameter to generic code and set the bit there. + +Upstream Status: RHEL only +Suggested-by: Ard Biesheuvel +Signed-off-by: David Howells +Reviewed-by: Ard Biesheuvel +cc: linux-efi@vger.kernel.org +[Rebased for context; efi_is_table_address was moved to arch/x86] +Signed-off-by: Jeremy Cline +--- + arch/x86/kernel/setup.c | 14 +----------- + drivers/firmware/efi/Makefile | 1 + + drivers/firmware/efi/secureboot.c | 38 +++++++++++++++++++++++++++++++ + include/linux/efi.h | 18 ++++++++++----- + 4 files changed, 52 insertions(+), 19 deletions(-) + create mode 100644 drivers/firmware/efi/secureboot.c + +diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c +index e39ec0f88d28..08e9f5fc26a8 100644 +--- a/arch/x86/kernel/setup.c ++++ b/arch/x86/kernel/setup.c +@@ -1250,19 +1250,7 @@ void __init setup_arch(char **cmdline_p) + /* Allocate bigger log buffer */ + setup_log_buf(1); + +- if (efi_enabled(EFI_BOOT)) { +- switch (boot_params.secure_boot) { +- case efi_secureboot_mode_disabled: +- pr_info("Secure boot disabled\n"); +- break; +- case efi_secureboot_mode_enabled: +- pr_info("Secure boot enabled\n"); +- break; +- default: +- pr_info("Secure boot could not be determined\n"); +- break; +- } +- } ++ efi_set_secure_boot(boot_params.secure_boot); + + reserve_initrd(); + +diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile +index 7a216984552b..f0ef02d733af 100644 +--- a/drivers/firmware/efi/Makefile ++++ b/drivers/firmware/efi/Makefile +@@ -25,6 +25,7 @@ obj-$(CONFIG_EFI_FAKE_MEMMAP) += fake_map.o + obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) += efibc.o + obj-$(CONFIG_EFI_TEST) += test/ + obj-$(CONFIG_EFI_DEV_PATH_PARSER) += dev-path-parser.o ++obj-$(CONFIG_EFI) += secureboot.o + obj-$(CONFIG_APPLE_PROPERTIES) += apple-properties.o + obj-$(CONFIG_EFI_RCI2_TABLE) += rci2-table.o + obj-$(CONFIG_EFI_EMBEDDED_FIRMWARE) += embedded-firmware.o +diff --git a/drivers/firmware/efi/secureboot.c b/drivers/firmware/efi/secureboot.c +new file mode 100644 +index 000000000000..de0a3714a5d4 +--- /dev/null ++++ b/drivers/firmware/efi/secureboot.c +@@ -0,0 +1,38 @@ ++/* Core kernel secure boot support. ++ * ++ * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. ++ * Written by David Howells (dhowells@redhat.com) ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public Licence ++ * as published by the Free Software Foundation; either version ++ * 2 of the Licence, or (at your option) any later version. ++ */ ++ ++#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt ++ ++#include ++#include ++#include ++ ++/* ++ * Decide what to do when UEFI secure boot mode is enabled. ++ */ ++void __init efi_set_secure_boot(enum efi_secureboot_mode mode) ++{ ++ if (efi_enabled(EFI_BOOT)) { ++ switch (mode) { ++ case efi_secureboot_mode_disabled: ++ pr_info("Secure boot disabled\n"); ++ break; ++ case efi_secureboot_mode_enabled: ++ set_bit(EFI_SECURE_BOOT, &efi.flags); ++ pr_info("Secure boot enabled\n"); ++ break; ++ default: ++ pr_warn("Secure boot could not be determined (mode %u)\n", ++ mode); ++ break; ++ } ++ } ++} +diff --git a/include/linux/efi.h b/include/linux/efi.h +index 51503bf118ab..b35e693f20f3 100644 +--- a/include/linux/efi.h ++++ b/include/linux/efi.h +@@ -778,6 +778,14 @@ extern int __init efi_setup_pcdp_console(char *); + #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ + #define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */ + #define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */ ++#define EFI_SECURE_BOOT 13 /* Are we in Secure Boot mode? */ ++ ++enum efi_secureboot_mode { ++ efi_secureboot_mode_unset, ++ efi_secureboot_mode_unknown, ++ efi_secureboot_mode_disabled, ++ efi_secureboot_mode_enabled, ++}; + + #ifdef CONFIG_EFI + /* +@@ -789,6 +797,8 @@ static inline bool efi_enabled(int feature) + } + extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); + ++extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode); ++ + bool __pure __efi_soft_reserve_enabled(void); + + static inline bool __pure efi_soft_reserve_enabled(void) +@@ -815,6 +825,8 @@ efi_capsule_pending(int *reset_type) + return false; + } + ++static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {} ++ + static inline bool efi_soft_reserve_enabled(void) + { + return false; +@@ -1086,12 +1098,6 @@ static inline bool efi_runtime_disabled(void) { return true; } + extern void efi_call_virt_check_flags(unsigned long flags, const char *call); + extern unsigned long efi_call_virt_save_flags(void); + +-enum efi_secureboot_mode { +- efi_secureboot_mode_unset, +- efi_secureboot_mode_unknown, +- efi_secureboot_mode_disabled, +- efi_secureboot_mode_enabled, +-}; + enum efi_secureboot_mode efi_get_secureboot(void); + + #ifdef CONFIG_RESET_ATTACK_MITIGATION +-- +2.26.2 + diff --git a/0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch b/0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch new file mode 100644 index 000000000..97096ad32 --- /dev/null +++ b/0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch @@ -0,0 +1,72 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: David Howells +Date: Mon, 30 Sep 2019 21:28:16 +0000 +Subject: [PATCH] efi: Lock down the kernel if booted in secure boot mode + +UEFI Secure Boot provides a mechanism for ensuring that the firmware +will only load signed bootloaders and kernels. Certain use cases may +also require that all kernel modules also be signed. Add a +configuration option that to lock down the kernel - which includes +requiring validly signed modules - if the kernel is secure-booted. + +Upstream Status: RHEL only +Signed-off-by: David Howells +Signed-off-by: Jeremy Cline +--- + arch/x86/kernel/setup.c | 8 ++++++++ + security/lockdown/Kconfig | 13 +++++++++++++ + 2 files changed, 21 insertions(+) + +diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c +index 08e9f5fc26a8..b6f5510f3d91 100644 +--- a/arch/x86/kernel/setup.c ++++ b/arch/x86/kernel/setup.c +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -1099,6 +1100,13 @@ void __init setup_arch(char **cmdline_p) + if (efi_enabled(EFI_BOOT)) + efi_init(); + ++ efi_set_secure_boot(boot_params.secure_boot); ++ ++#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT ++ if (efi_enabled(EFI_SECURE_BOOT)) ++ security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_INTEGRITY_MAX); ++#endif ++ + dmi_setup(); + + /* +diff --git a/security/lockdown/Kconfig b/security/lockdown/Kconfig +index e84ddf484010..d0501353a4b9 100644 +--- a/security/lockdown/Kconfig ++++ b/security/lockdown/Kconfig +@@ -16,6 +16,19 @@ config SECURITY_LOCKDOWN_LSM_EARLY + subsystem is fully initialised. If enabled, lockdown will + unconditionally be called before any other LSMs. + ++config LOCK_DOWN_IN_EFI_SECURE_BOOT ++ bool "Lock down the kernel in EFI Secure Boot mode" ++ default n ++ depends on EFI && SECURITY_LOCKDOWN_LSM_EARLY ++ help ++ UEFI Secure Boot provides a mechanism for ensuring that the firmware ++ will only load signed bootloaders and kernels. Secure boot mode may ++ be determined from EFI variables provided by the system firmware if ++ not indicated by the boot parameters. ++ ++ Enabling this option results in kernel lockdown being triggered if ++ EFI Secure Boot is set. ++ + choice + prompt "Kernel default lockdown mode" + default LOCK_DOWN_KERNEL_FORCE_NONE +-- +2.26.2 + diff --git a/0001-firmware-raspberrypi-Introduce-vl805-init-routine.patch b/0001-firmware-raspberrypi-Introduce-vl805-init-routine.patch new file mode 100644 index 000000000..db8a4a16c --- /dev/null +++ b/0001-firmware-raspberrypi-Introduce-vl805-init-routine.patch @@ -0,0 +1,110 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne +Date: Tue, 10 Mar 2020 13:52:40 +0100 +Subject: [PATCH] firmware: raspberrypi: Introduce vl805 init routine + +On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be +loaded directly from an EEPROM or, if not present, by the SoC's +VideCore. The function informs VideCore that VL805 was just reset, or +requests for a probe defer. + +Based on Tim Gover's downstream implementation. + +Signed-off-by: Nicolas Saenz Julienne +Reviewed-by: Florian Fainelli +--- + drivers/firmware/raspberrypi.c | 38 ++++++++++++++++++++++ + include/soc/bcm2835/raspberrypi-firmware.h | 7 ++++ + 2 files changed, 45 insertions(+) + +diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c +index da26a584dca0..cbb495aff6a0 100644 +--- a/drivers/firmware/raspberrypi.c ++++ b/drivers/firmware/raspberrypi.c +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + #include + + #define MBOX_MSG(chan, data28) (((data28) & ~0xf) | ((chan) & 0xf)) +@@ -286,6 +287,43 @@ struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node) + } + EXPORT_SYMBOL_GPL(rpi_firmware_get); + ++/* ++ * On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be ++ * loaded directly from an EEPROM or, if not present, by the SoC's VideCore. ++ * Inform VideCore that VL805 was just reset, or defer xhci's probe if not yet ++ * joinable trough the mailbox interface. ++ */ ++int rpi_firmware_init_vl805(struct pci_dev *pdev) ++{ ++ struct device_node *fw_np; ++ struct rpi_firmware *fw; ++ u32 dev_addr; ++ int ret; ++ ++ fw_np = of_find_compatible_node(NULL, NULL, ++ "raspberrypi,bcm2835-firmware"); ++ if (!fw_np) ++ return 0; ++ ++ fw = rpi_firmware_get(fw_np); ++ of_node_put(fw_np); ++ if (!fw) ++ return -EPROBE_DEFER; ++ ++ dev_addr = pdev->bus->number << 20 | PCI_SLOT(pdev->devfn) << 15 | ++ PCI_FUNC(pdev->devfn) << 12; ++ ++ ret = rpi_firmware_property(fw, RPI_FIRMWARE_NOTIFY_XHCI_RESET, ++ &dev_addr, sizeof(dev_addr)); ++ if (ret) ++ return ret; ++ ++ dev_dbg(&pdev->dev, "loaded Raspberry Pi's VL805 firmware\n"); ++ ++ return 0; ++} ++EXPORT_SYMBOL_GPL(rpi_firmware_init_vl805); ++ + static const struct of_device_id rpi_firmware_of_match[] = { + { .compatible = "raspberrypi,bcm2835-firmware", }, + {}, +diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h +index cc9cdbc66403..3025aca3c358 100644 +--- a/include/soc/bcm2835/raspberrypi-firmware.h ++++ b/include/soc/bcm2835/raspberrypi-firmware.h +@@ -10,6 +10,7 @@ + #include + + struct rpi_firmware; ++struct pci_dev; + + enum rpi_firmware_property_status { + RPI_FIRMWARE_STATUS_REQUEST = 0, +@@ -141,6 +142,7 @@ int rpi_firmware_property(struct rpi_firmware *fw, + int rpi_firmware_property_list(struct rpi_firmware *fw, + void *data, size_t tag_size); + struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node); ++int rpi_firmware_init_vl805(struct pci_dev *pdev); + #else + static inline int rpi_firmware_property(struct rpi_firmware *fw, u32 tag, + void *data, size_t len) +@@ -158,6 +160,11 @@ static inline struct rpi_firmware *rpi_firmware_get(struct device_node *firmware + { + return NULL; + } ++ ++static inline int rpi_firmware_init_vl805(struct pci_dev *pdev) ++{ ++ return 0; ++} + #endif + + #endif /* __SOC_RASPBERRY_FIRMWARE_H__ */ +-- +2.26.2 + diff --git a/0001-iommu-arm-smmu-workaround-DMA-mode-issues.patch b/0001-iommu-arm-smmu-workaround-DMA-mode-issues.patch new file mode 100644 index 000000000..e6eef22d6 --- /dev/null +++ b/0001-iommu-arm-smmu-workaround-DMA-mode-issues.patch @@ -0,0 +1,98 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Laura Abbott +Date: Mon, 20 May 2019 22:21:02 -0400 +Subject: [PATCH] iommu/arm-smmu: workaround DMA mode issues + +Message-id: <20190520222102.19488-1-labbott@redhat.com> +Patchwork-id: 259215 +O-Subject: [ARK INTERNAL PATCH] iommu/arm-smmu: workaround DMA mode issues +Bugzilla: +RH-Acked-by: Mark Langsdorf +RH-Acked-by: Mark Salter + +From: Mark Salter + +Rebased for v5.2-rc1 + + Bugzilla: 1652259 + Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=19244562 + Upstream status: RHEL only. + + rhel8 commit 65feb1ed0ec9a088a63a90d46c0f7563ac96ad0f + Author: Mark Salter + Date: Wed Nov 21 17:15:59 2018 +0100 + + [iommu] iommu/arm-smmu: workaround DMA mode issues + + Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1624077 + Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=18112820 + Testing: Verified iommu.passthrough=1 no longer needed on gigabyte platforms. + Upstream Status: RHEL-only + + In RHEL_ALT 7.5 we carried a RHEL-only patch which forced the arm smmuv2 + into bypass mode due to performance issues on CN88xx. This was intended + to be a temporary hack until the issues were resolved. Another vendor + had issues with the iommu in bypass mode so we reverted the RHEL-only + patch so that iommu is in DMA mode by default (upstream default). + + It turns on that there are remaining SMMU DMA mode issues on Gigabyte + platformws with CN88xx cpus. The problem manifests itself by pcie + card drivers failing to initialize the cards when SMMU is in DMA mode. + The root cause has not been determined yet, but looks likely to be + a hw or firmware issue. This patch forces bypass mode for Gigabyte + platforms. CN88xx isn't officially supported in RHEL but we have a + lot of them being used internally for testing, so I think we want + this to support that use case in RHEL8. + + Signed-off-by: Mark Salter + Signed-off-by: Herton R. Krzesinski + + Acked-by: Mark Salter + Acked-by: Donald Dutile + +Upstream Status: RHEL only +Signed-off-by: Laura Abbott +--- + drivers/iommu/iommu.c | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c +index 03d6a26687bc..86981f228c90 100644 +--- a/drivers/iommu/iommu.c ++++ b/drivers/iommu/iommu.c +@@ -7,6 +7,7 @@ + #define pr_fmt(fmt) "iommu: " fmt + + #include ++#include + #include + #include + #include +@@ -2664,3 +2665,24 @@ int iommu_sva_get_pasid(struct iommu_sva *handle) + return ops->sva_get_pasid(handle); + } + EXPORT_SYMBOL_GPL(iommu_sva_get_pasid); ++ ++#ifdef CONFIG_ARM64 ++static int __init iommu_quirks(void) ++{ ++ const char *vendor, *name; ++ ++ vendor = dmi_get_system_info(DMI_SYS_VENDOR); ++ name = dmi_get_system_info(DMI_PRODUCT_NAME); ++ ++ if (vendor && ++ (strncmp(vendor, "GIGABYTE", 8) == 0 && name && ++ (strncmp(name, "R120", 4) == 0 || ++ strncmp(name, "R270", 4) == 0))) { ++ pr_warn("Gigabyte %s detected, force iommu passthrough mode", name); ++ iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY; ++ } ++ ++ return 0; ++} ++arch_initcall(iommu_quirks); ++#endif +-- +2.26.2 + diff --git a/0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch b/0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch new file mode 100644 index 000000000..aad7ef066 --- /dev/null +++ b/0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch @@ -0,0 +1,123 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Laura Abbott +Date: Sun, 10 Feb 2019 01:27:54 +0000 +Subject: [PATCH] ipmi: do not configure ipmi for HPE m400 + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1670017 +Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=20147017 + +Commit 913a89f009d9 ("ipmi: Don't initialize anything in the core until +something uses it") added new locking which broke context. + + Message-id: <20180713142210.15700-1-tcamuso@redhat.com> + Patchwork-id: 224899 + O-Subject: [RHEL8 BZ 1583537 1/1] ipmi: do not configure ipmi for HPE m400 + Bugzilla: 1583537 + RH-Acked-by: Dean Nelson + RH-Acked-by: Al Stone + RH-Acked-by: Mark Salter + + bugzilla:https://bugzilla.redhat.com/show_bug.cgi?id=1583537 + brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=17150528 + + RHEL-only + + The ARM-based HPE m400 reports host-side ipmi as residing in intel + port-io space, which does not exist in ARM processors. Therefore, when + running on an m400, host-side ipmi configuration code must simply return + zero without trying to configure the host-side ipmi. + + This patch prevents panic on boot by averting attempts to configure + host-side ipmi on this platform. + + Though HPE m400 is not certified with RHEL, and HPE has relegated it to + EOL status, the platform is still used extensively in ARM development + and test for RHEL. + + Testing: + Boot without blacklisting ipmi and check to see that no ipmi modules + are loaded. + + Signed-off-by: Tony Camuso + + cc: Prarit Bhargava + cc: Brendan Conoboy + cc: Jeff Bastian + cc: Scott Herold + Signed-off-by: Herton R. Krzesinski + +Upstream Status: RHEL only +Signed-off-by: Laura Abbott +Acked-by: Tony Camuso +Acked-by: Dean Nelson +Acked-by: Jarod Wilson +Acked-by: Mark Salter +--- + drivers/char/ipmi/ipmi_dmi.c | 15 +++++++++++++++ + drivers/char/ipmi/ipmi_msghandler.c | 16 +++++++++++++++- + 2 files changed, 30 insertions(+), 1 deletion(-) + +diff --git a/drivers/char/ipmi/ipmi_dmi.c b/drivers/char/ipmi/ipmi_dmi.c +index bbf7029e224b..cf7faa970dd6 100644 +--- a/drivers/char/ipmi/ipmi_dmi.c ++++ b/drivers/char/ipmi/ipmi_dmi.c +@@ -215,6 +215,21 @@ static int __init scan_for_dmi_ipmi(void) + { + const struct dmi_device *dev = NULL; + ++#ifdef CONFIG_ARM64 ++ /* RHEL-only ++ * If this is ARM-based HPE m400, return now, because that platform ++ * reports the host-side ipmi address as intel port-io space, which ++ * does not exist in the ARM architecture. ++ */ ++ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME); ++ ++ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) { ++ pr_debug("%s does not support host ipmi\n", dmistr); ++ return 0; ++ } ++ /* END RHEL-only */ ++#endif ++ + while ((dev = dmi_find_device(DMI_DEV_TYPE_IPMI, NULL, dev))) + dmi_decode_ipmi((const struct dmi_header *) dev->device_data); + +diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c +index c48d8f086382..0fc980a87ed0 100644 +--- a/drivers/char/ipmi/ipmi_msghandler.c ++++ b/drivers/char/ipmi/ipmi_msghandler.c +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + + #define IPMI_DRIVER_VERSION "39.2" + +@@ -5154,8 +5155,21 @@ static int __init ipmi_init_msghandler_mod(void) + { + int rv; + +- pr_info("version " IPMI_DRIVER_VERSION "\n"); ++#ifdef CONFIG_ARM64 ++ /* RHEL-only ++ * If this is ARM-based HPE m400, return now, because that platform ++ * reports the host-side ipmi address as intel port-io space, which ++ * does not exist in the ARM architecture. ++ */ ++ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME); + ++ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) { ++ pr_debug("%s does not support host ipmi\n", dmistr); ++ return -ENOSYS; ++ } ++ /* END RHEL-only */ ++#endif ++ pr_info("version " IPMI_DRIVER_VERSION "\n"); + mutex_lock(&ipmi_interfaces_mutex); + rv = ipmi_register_driver(); + mutex_unlock(&ipmi_interfaces_mutex); +-- +2.26.2 + diff --git a/0001-kdump-add-support-for-crashkernel-auto.patch b/0001-kdump-add-support-for-crashkernel-auto.patch new file mode 100644 index 000000000..83eb38e6d --- /dev/null +++ b/0001-kdump-add-support-for-crashkernel-auto.patch @@ -0,0 +1,189 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jeremy Cline +Date: Tue, 23 Jul 2019 15:24:30 +0000 +Subject: [PATCH] kdump: add support for crashkernel=auto + +Rebased for v5.3-rc1 because the documentation has moved. + + Message-id: <20180604013831.574215750@redhat.com> + Patchwork-id: 8166 + O-Subject: [kernel team] [PATCH RHEL8.0 V2 2/2] kdump: add support for crashkernel=auto + Bugzilla: 1507353 + RH-Acked-by: Don Zickus + RH-Acked-by: Baoquan He + RH-Acked-by: Pingfan Liu + + Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1507353 + Build: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=16534135 + Tested: ppc64le, x86_64 with several memory sizes. + kdump qe tested 160M on various x86 machines in lab. + + We continue to provide crashkernel=auto like we did in RHEL6 + and RHEL7, this will simplify the kdump deployment for common + use cases that kdump just works with the auto reserved values. + But this is still a best effort estimation, we can not know the + exact memory requirement because it depends on a lot of different + factors. + + The implementation of crashkernel=auto is simplified as a wrapper + to use below kernel cmdline: + x86_64: crashkernel=1G-64G:160M,64G-1T:256M,1T-:512M + s390x: crashkernel=4G-64G:160M,64G-1T:256M,1T-:512M + arm64: crashkernel=2G-:512M + ppc64: crashkernel=2G-4G:384M,4G-16G:512M,16G-64G:1G,64G-128G:2G,128G-:4G + + The difference between this way and the old implementation in + RHEL6/7 is we do not scale the crash reserved memory size according + to system memory size anymore. + + Latest effort to move upstream is below thread: + https://lkml.org/lkml/2018/5/20/262 + But unfortunately it is still unlikely to be accepted, thus we + will still use a RHEL only patch in RHEL8. + + Copied old patch description about the history reason see below: + ''' + Non-upstream explanations: + Besides "crashkenrel=X@Y" format, upstream also has advanced + "crashkernel=range1:size1[,range2:size2,...][@offset]", and + "crashkernel=X,high{low}" formats, but they need more careful + manual configuration, and have different values for different + architectures. + + Most of the distributions use the standard "crashkernel=X@Y" + upstream format, and use crashkernel range format for advanced + scenarios, heavily relying on the user's involvement. + + While "crashkernel=auto" is redhat's special feature, it exists + and has been used as the default boot cmdline since 2008 rhel6. + It does not require users to figure out how many crash memory + size for their systems, also has been proved to be able to work + pretty well for common scenarios. + + "crashkernel=auto" was tested/based on rhel-related products, as + we have stable kernel configurations which means more or less + stable memory consumption. In 2014 we tried to post them again to + upstream but NACKed by people because they think it's not general + and unnecessary, users can specify their own values or do that by + scripts. However our customers insist on having it added to rhel. + + Also see one previous discussion related to this backport to Pegas: + On 10/17/2016 at 10:15 PM, Don Zickus wrote: + > On Fri, Oct 14, 2016 at 10:57:41AM +0800, Dave Young wrote: + >> Don, agree with you we should evaluate them instead of just inherit + >> them blindly. Below is what I think about kdump auto memory: + >> There are two issues for crashkernel=auto in upstream: + >> 1) It will be seen as a policy which should not go to kernel + >> 2) It is hard to get a good number for the crash reserved size, + >> considering various different kernel config options one can setups. + >> In RHEL we are easier because our supported Kconfig is limited. + >> I digged the upstream mail archive, but I'm not sure I got all the + >> information, at least Michael Ellerman was objecting the series for + >> 1). + > Yes, I know. Vivek and I have argued about this for years. :-) + > + > I had hoped all the changes internally to the makedumpfile would allow + > the memory configuration to stabilize at a number like 192M or 128M and + > only in the rare cases extend beyond that. + > + > So I always treated that as a temporary hack until things were better. + > With the hope of every new RHEL release we get smarter and better. :-) + > Ideally it would be great if we could get the number down to 64M for most + > cases and just turn it on in Fedora. Maybe someday.... ;-) + > + > We can have this conversation when the patch gets reposted/refreshed + > for upstream on rhkl? + > + > Cheers, + > Don + + We had proposed to drop the historic crashkernel=auto code and move + to use crashkernel=range:size format and pass them in anaconda. + + The initial reason is crashkernel=range:size works just fine because + we do not need complex algorithm to scale crashkernel reserved size + any more. The old linear scaling is mainly for old makedumpfile + requirements, now it is not necessary. + + But With the new approach, backward compatibility is potentially at risk. + For e.g. let's consider the following cases: + 1) When we upgrade from an older distribution like rhel-alt-7.4(which + uses crashkernel=auto) to rhel-alt-7.5 (which uses the crashkernel=xY + format) + In this case we can use anaconda scripts for checking + 'crashkernel=auto' in kernel spec and update to the new + 'crashkernel=range:size' format. + 2) When we upgrade from rhel-alt-7.5(which uses crashkernel=xY format) + to rhel-alt-7.6(which uses crashkernel=xY format), but the x and/or Y + values are changed in rhel-alt-7.6. + For example from crashkernel=2G-:160M to crashkernel=2G-:192M, then we have + no way to determine if the X and/or Y values were distribution + provided or user specified ones. + Since it is recommended to give precedence to user-specified values, + so we cannot do an upgrade in such a case." + + Thus turn back to resolve it in kernel, and add a simpler version + which just hacks to use the range:size style in code, and make + rhel-only code easily to maintain. + ''' + + Signed-off-by: Dave Young + Signed-off-by: Herton R. Krzesinski + +Upstream Status: RHEL only +Signed-off-by: Jeremy Cline +--- + Documentation/admin-guide/kdump/kdump.rst | 11 +++++++++++ + kernel/crash_core.c | 14 ++++++++++++++ + 2 files changed, 25 insertions(+) + +diff --git a/Documentation/admin-guide/kdump/kdump.rst b/Documentation/admin-guide/kdump/kdump.rst +index ac7e131d2935..3b3bf30e537d 100644 +--- a/Documentation/admin-guide/kdump/kdump.rst ++++ b/Documentation/admin-guide/kdump/kdump.rst +@@ -285,6 +285,17 @@ This would mean: + 2) if the RAM size is between 512M and 2G (exclusive), then reserve 64M + 3) if the RAM size is larger than 2G, then reserve 128M + ++Or you can use crashkernel=auto if you have enough memory. The threshold ++is 2G on x86_64, arm64, ppc64 and ppc64le. The threshold is 4G for s390x. ++If your system memory is less than the threshold crashkernel=auto will not ++reserve memory. ++ ++The automatically reserved memory size varies based on architecture. ++The size changes according to system memory size like below: ++ x86_64: 1G-64G:160M,64G-1T:256M,1T-:512M ++ s390x: 4G-64G:160M,64G-1T:256M,1T-:512M ++ arm64: 2G-:512M ++ ppc64: 2G-4G:384M,4G-16G:512M,16G-64G:1G,64G-128G:2G,128G-:4G + + + Boot into System Kernel +diff --git a/kernel/crash_core.c b/kernel/crash_core.c +index d631d22089ba..c252221b2f4b 100644 +--- a/kernel/crash_core.c ++++ b/kernel/crash_core.c +@@ -258,6 +258,20 @@ static int __init __parse_crashkernel(char *cmdline, + if (suffix) + return parse_crashkernel_suffix(ck_cmdline, crash_size, + suffix); ++ ++ if (strncmp(ck_cmdline, "auto", 4) == 0) { ++#ifdef CONFIG_X86_64 ++ ck_cmdline = "1G-64G:160M,64G-1T:256M,1T-:512M"; ++#elif defined(CONFIG_S390) ++ ck_cmdline = "4G-64G:160M,64G-1T:256M,1T-:512M"; ++#elif defined(CONFIG_ARM64) ++ ck_cmdline = "2G-:512M"; ++#elif defined(CONFIG_PPC64) ++ ck_cmdline = "2G-4G:384M,4G-16G:512M,16G-64G:1G,64G-128G:2G,128G-:4G"; ++#endif ++ pr_info("Using crashkernel=auto, the size choosed is a best effort estimation.\n"); ++ } ++ + /* + * if the commandline contains a ':', then that's the extended + * syntax -- if not, it must be the classic syntax +-- +2.26.2 + diff --git a/0001-kdump-fix-a-grammar-issue-in-a-kernel-message.patch b/0001-kdump-fix-a-grammar-issue-in-a-kernel-message.patch new file mode 100644 index 000000000..5444af2e6 --- /dev/null +++ b/0001-kdump-fix-a-grammar-issue-in-a-kernel-message.patch @@ -0,0 +1,43 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Young +Date: Tue, 12 Jun 2018 00:54:22 -0400 +Subject: [PATCH] kdump: fix a grammar issue in a kernel message + +Message-id: <20180612005422.GA2568@dhcp-128-65.nay.redhat.com> +Patchwork-id: 8201 +O-Subject: [kernel team] [RHEL8.0 PATCH V2] kdump: fix a grammar issue in a kernel message +Bugzilla: 1507353 +RH-Acked-by: Myron Stowe +RH-Acked-by: Laszlo Ersek +RH-Acked-by: Jiri Benc + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1507353 +Upstream Status: RHEL-only as crashkernel=auto is not accepted in upstream +Build: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=16661950 +Test: verified on a kvm guest + +s/choosed/chosen + +Upstream Status: RHEL only +Signed-off-by: Dave Young +Signed-off-by: Herton R. Krzesinski +--- + kernel/crash_core.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kernel/crash_core.c b/kernel/crash_core.c +index c252221b2f4b..df551fc9034c 100644 +--- a/kernel/crash_core.c ++++ b/kernel/crash_core.c +@@ -269,7 +269,7 @@ static int __init __parse_crashkernel(char *cmdline, + #elif defined(CONFIG_PPC64) + ck_cmdline = "2G-4G:384M,4G-16G:512M,16G-64G:1G,64G-128G:2G,128G-:4G"; + #endif +- pr_info("Using crashkernel=auto, the size choosed is a best effort estimation.\n"); ++ pr_info("Using crashkernel=auto, the size chosen is a best effort estimation.\n"); + } + + /* +-- +2.26.2 + diff --git a/0001-kdump-round-up-the-total-memory-size-to-128M-for-cra.patch b/0001-kdump-round-up-the-total-memory-size-to-128M-for-cra.patch new file mode 100644 index 000000000..26576a04e --- /dev/null +++ b/0001-kdump-round-up-the-total-memory-size-to-128M-for-cra.patch @@ -0,0 +1,93 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dave Young +Date: Mon, 4 Jun 2018 01:38:25 -0400 +Subject: [PATCH] kdump: round up the total memory size to 128M for crashkernel + reservation + +Message-id: <20180604013831.523644967@redhat.com> +Patchwork-id: 8165 +O-Subject: [kernel team] [PATCH RHEL8.0 V2 1/2] kdump: round up the total memory size to 128M for crashkernel reservation +Bugzilla: 1507353 +RH-Acked-by: Don Zickus +RH-Acked-by: Baoquan He +RH-Acked-by: Pingfan Liu + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1507353 +Build: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=16534135 +Tested: ppc64le, x86_64 with several memory sizes. + +The total memory size we get in kernel is usually slightly less than 2G with +2G memory module machine. The main reason is bios/firmware reserve some area +it will not export all memory as usable to Linux. + +2G memory X86 kvm guest test result of the total_mem value: +UEFI boot with ovmf: 0x7ef10000 +Legacy boot kvm guest: 0x7ff7cc00 +This is also a problem on arm64 UEFI booted system according to my test. + +Thus for example crashkernel=1G-2G:128M, if we have a 1G memory +machine, we get total size 1023M from firmware then it will not fall +into 1G-2G thus no memory reserved. User will never know that, it is +hard to let user to know the exact total value we get in kernel + +An option is to use dmi/smbios to get physical memory size, but it's not +reliable as well. According to Prarit hardware vendors sometimes screw this up. +Thus round up total size to 128M to workaround this problem. + +Posted below patch in upstream, but no response yet: +http://lists.infradead.org/pipermail/kexec/2018-April/020568.html + +Upstream Status: RHEL only +Signed-off-by: Dave Young +Signed-off-by: Herton R. Krzesinski +--- + kernel/crash_core.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/kernel/crash_core.c b/kernel/crash_core.c +index 9f1557b98468..d631d22089ba 100644 +--- a/kernel/crash_core.c ++++ b/kernel/crash_core.c +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -39,6 +40,15 @@ static int __init parse_crashkernel_mem(char *cmdline, + unsigned long long *crash_base) + { + char *cur = cmdline, *tmp; ++ unsigned long long total_mem = system_ram; ++ ++ /* ++ * Firmware sometimes reserves some memory regions for it's own use. ++ * so we get less than actual system memory size. ++ * Workaround this by round up the total size to 128M which is ++ * enough for most test cases. ++ */ ++ total_mem = roundup(total_mem, SZ_128M); + + /* for each entry of the comma-separated list */ + do { +@@ -83,13 +93,13 @@ static int __init parse_crashkernel_mem(char *cmdline, + return -EINVAL; + } + cur = tmp; +- if (size >= system_ram) { ++ if (size >= total_mem) { + pr_warn("crashkernel: invalid size\n"); + return -EINVAL; + } + + /* match ? */ +- if (system_ram >= start && system_ram < end) { ++ if (total_mem >= start && total_mem < end) { + *crash_size = size; + break; + } +-- +2.26.2 + diff --git a/0001-kms-gv100-Add-support-for-interlaced-modes.patch b/0001-kms-gv100-Add-support-for-interlaced-modes.patch new file mode 100644 index 000000000..c50c826b8 --- /dev/null +++ b/0001-kms-gv100-Add-support-for-interlaced-modes.patch @@ -0,0 +1,64 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Mon, 11 May 2020 18:41:25 -0400 +Subject: [PATCH] kms/gv100-: Add support for interlaced modes + +We advertise being able to set interlaced modes, so let's actually make +sure to do that. Otherwise, we'll end up hanging the display engine due +to trying to set a mode with timings adjusted for interlacing without +telling the hardware it's actually an interlaced mode. + +Signed-off-by: Lyude Paul +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/dispnv50/headc37d.c | 5 +++-- + drivers/gpu/drm/nouveau/dispnv50/headc57d.c | 5 +++-- + 2 files changed, 6 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/dispnv50/headc37d.c b/drivers/gpu/drm/nouveau/dispnv50/headc37d.c +index 00011ce109a6..4a9a32b89f74 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/headc37d.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/headc37d.c +@@ -168,14 +168,15 @@ headc37d_mode(struct nv50_head *head, struct nv50_head_atom *asyh) + struct nv50_dmac *core = &nv50_disp(head->base.base.dev)->core->chan; + struct nv50_head_mode *m = &asyh->mode; + u32 *push; +- if ((push = evo_wait(core, 12))) { ++ if ((push = evo_wait(core, 13))) { + evo_mthd(push, 0x2064 + (head->base.index * 0x400), 5); + evo_data(push, (m->v.active << 16) | m->h.active ); + evo_data(push, (m->v.synce << 16) | m->h.synce ); + evo_data(push, (m->v.blanke << 16) | m->h.blanke ); + evo_data(push, (m->v.blanks << 16) | m->h.blanks ); + evo_data(push, (m->v.blank2e << 16) | m->v.blank2s); +- evo_mthd(push, 0x200c + (head->base.index * 0x400), 1); ++ evo_mthd(push, 0x2008 + (head->base.index * 0x400), 2); ++ evo_data(push, m->interlace); + evo_data(push, m->clock * 1000); + evo_mthd(push, 0x2028 + (head->base.index * 0x400), 1); + evo_data(push, m->clock * 1000); +diff --git a/drivers/gpu/drm/nouveau/dispnv50/headc57d.c b/drivers/gpu/drm/nouveau/dispnv50/headc57d.c +index 938d910a1b1e..859131a8bc3c 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/headc57d.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/headc57d.c +@@ -173,14 +173,15 @@ headc57d_mode(struct nv50_head *head, struct nv50_head_atom *asyh) + struct nv50_dmac *core = &nv50_disp(head->base.base.dev)->core->chan; + struct nv50_head_mode *m = &asyh->mode; + u32 *push; +- if ((push = evo_wait(core, 12))) { ++ if ((push = evo_wait(core, 13))) { + evo_mthd(push, 0x2064 + (head->base.index * 0x400), 5); + evo_data(push, (m->v.active << 16) | m->h.active ); + evo_data(push, (m->v.synce << 16) | m->h.synce ); + evo_data(push, (m->v.blanke << 16) | m->h.blanke ); + evo_data(push, (m->v.blanks << 16) | m->h.blanks ); + evo_data(push, (m->v.blank2e << 16) | m->v.blank2s); +- evo_mthd(push, 0x200c + (head->base.index * 0x400), 1); ++ evo_mthd(push, 0x2008 + (head->base.index * 0x400), 2); ++ evo_data(push, m->interlace); + evo_data(push, m->clock * 1000); + evo_mthd(push, 0x2028 + (head->base.index * 0x400), 1); + evo_data(push, m->clock * 1000); +-- +2.26.2 + diff --git a/0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch b/0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch new file mode 100644 index 000000000..b590bb06c --- /dev/null +++ b/0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Mon, 11 May 2020 18:41:23 -0400 +Subject: [PATCH] kms/nv50-: Initialize core channel in + nouveau_display_create() + +We'll need the core channel initialized and ready by the time that we +start creating modesetting objects, so that we can call the +NV507D_GET_CAPABILITIES method to make the hardware expose it's +modesetting capabilities for later probing. + +So, when loading the driver prepare the core channel from within +nouveau_display_create(). Everywhere else, we initialize the core +channel during resume. + +Signed-off-by: Lyude Paul +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/dispnv50/disp.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c +index 2625ed84fc44..2afd56b9887d 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c +@@ -2373,7 +2373,8 @@ nv50_display_init(struct drm_device *dev, bool resume, bool runtime) + struct drm_encoder *encoder; + struct drm_plane *plane; + +- core->func->init(core); ++ if (resume || runtime) ++ core->func->init(core); + + list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { + if (encoder->encoder_type != DRM_MODE_ENCODER_DPMST) { +@@ -2460,6 +2461,8 @@ nv50_display_create(struct drm_device *dev) + if (ret) + goto out; + ++ disp->core->func->init(disp->core); ++ + /* create crtc objects to represent the hw heads */ + if (disp->disp->object.oclass >= GV100_DISP) + crtcs = nvif_rd32(&device->object, 0x610060) & 0xff; +-- +2.26.2 + diff --git a/0001-kms-nv50-Move-8BPC-limit-for-MST-into-nv50_mstc_get_.patch b/0001-kms-nv50-Move-8BPC-limit-for-MST-into-nv50_mstc_get_.patch new file mode 100644 index 000000000..0a6a4cfa8 --- /dev/null +++ b/0001-kms-nv50-Move-8BPC-limit-for-MST-into-nv50_mstc_get_.patch @@ -0,0 +1,65 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Mon, 11 May 2020 18:41:26 -0400 +Subject: [PATCH] kms/nv50-: Move 8BPC limit for MST into nv50_mstc_get_modes() + +This just limits the BPC for MST connectors to a maximum of 8 from +nv50_mstc_get_modes(), instead of doing so during +nv50_msto_atomic_check(). This doesn't introduce any functional changes +yet (other then userspace now lying about the max bpc, but we can't +support that yet anyway so meh). But, we'll need this in a moment so +that we can share mode validation between SST and MST which will fix +some real world issues. + +Signed-off-by: Lyude Paul +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/dispnv50/disp.c | 25 ++++++++++++++----------- + 1 file changed, 14 insertions(+), 11 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c +index 1db4f20b8697..e92e7bf49780 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c +@@ -908,15 +908,9 @@ nv50_msto_atomic_check(struct drm_encoder *encoder, + if (!state->duplicated) { + const int clock = crtc_state->adjusted_mode.clock; + +- /* +- * XXX: Since we don't use HDR in userspace quite yet, limit +- * the bpc to 8 to save bandwidth on the topology. In the +- * future, we'll want to properly fix this by dynamically +- * selecting the highest possible bpc that would fit in the +- * topology +- */ +- asyh->or.bpc = min(connector->display_info.bpc, 8U); +- asyh->dp.pbn = drm_dp_calc_pbn_mode(clock, asyh->or.bpc * 3, false); ++ asyh->or.bpc = connector->display_info.bpc; ++ asyh->dp.pbn = drm_dp_calc_pbn_mode(clock, asyh->or.bpc * 3, ++ false); + } + + slots = drm_dp_atomic_find_vcpi_slots(state, &mstm->mgr, mstc->port, +@@ -1076,8 +1070,17 @@ nv50_mstc_get_modes(struct drm_connector *connector) + if (mstc->edid) + ret = drm_add_edid_modes(&mstc->connector, mstc->edid); + +- if (!mstc->connector.display_info.bpc) +- mstc->connector.display_info.bpc = 8; ++ /* ++ * XXX: Since we don't use HDR in userspace quite yet, limit the bpc ++ * to 8 to save bandwidth on the topology. In the future, we'll want ++ * to properly fix this by dynamically selecting the highest possible ++ * bpc that would fit in the topology ++ */ ++ if (connector->display_info.bpc) ++ connector->display_info.bpc = ++ clamp(connector->display_info.bpc, 6U, 8U); ++ else ++ connector->display_info.bpc = 8; + + if (mstc->native) + drm_mode_destroy(mstc->connector.dev, mstc->native); +-- +2.26.2 + diff --git a/0001-kms-nv50-Probe-SOR-and-PIOR-caps-for-DP-interlacing-.patch b/0001-kms-nv50-Probe-SOR-and-PIOR-caps-for-DP-interlacing-.patch new file mode 100644 index 000000000..e74501bef --- /dev/null +++ b/0001-kms-nv50-Probe-SOR-and-PIOR-caps-for-DP-interlacing-.patch @@ -0,0 +1,439 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Mon, 11 May 2020 18:41:24 -0400 +Subject: [PATCH] kms/nv50-: Probe SOR and PIOR caps for DP interlacing support + +Right now, we make the mistake of allowing interlacing on all +connectors. Nvidia hardware does not always support interlacing with DP +though, so we need to make sure that we don't allow interlaced modes to +be set in such situations as otherwise we'll end up accidentally hanging +the display HW. + +This fixes some hangs with Turing, which would be caused by attempting +to set an interlaced mode on hardware that doesn't support it. This +patch likely fixes other hardware hanging in the same way as well. + +Note that we say we probe PIOR caps, but they don't actually have any +interlacing caps. So, the get_caps() function for PIORs just sets +interlacing support to true. + +Changes since v1: +* Actually probe caps correctly this time, both on EVO and NVDisplay. +Changes since v2: +* Fix probing for < GF119 +* Use vfunc table, in prep for adding more caps in the future. + +Signed-off-by: Lyude Paul +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/dispnv50/core.h | 7 ++++++ + drivers/gpu/drm/nouveau/dispnv50/core507d.c | 15 ++++++++++++ + drivers/gpu/drm/nouveau/dispnv50/core827d.c | 1 + + drivers/gpu/drm/nouveau/dispnv50/core907d.c | 1 + + drivers/gpu/drm/nouveau/dispnv50/core917d.c | 1 + + drivers/gpu/drm/nouveau/dispnv50/corec37d.c | 26 +++++++++++++++++++++ + drivers/gpu/drm/nouveau/dispnv50/corec57d.c | 1 + + drivers/gpu/drm/nouveau/dispnv50/disp.c | 19 +++++++++++++-- + drivers/gpu/drm/nouveau/dispnv50/disp.h | 1 + + drivers/gpu/drm/nouveau/dispnv50/pior507d.c | 8 +++++++ + drivers/gpu/drm/nouveau/dispnv50/sor507d.c | 7 ++++++ + drivers/gpu/drm/nouveau/dispnv50/sor907d.c | 11 +++++++++ + drivers/gpu/drm/nouveau/dispnv50/sorc37d.c | 9 +++++++ + drivers/gpu/drm/nouveau/nouveau_connector.c | 10 +++++++- + drivers/gpu/drm/nouveau/nouveau_encoder.h | 4 ++++ + 15 files changed, 118 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/dispnv50/core.h b/drivers/gpu/drm/nouveau/dispnv50/core.h +index ff94f3f6f264..99157dc94d23 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/core.h ++++ b/drivers/gpu/drm/nouveau/dispnv50/core.h +@@ -2,6 +2,7 @@ + #define __NV50_KMS_CORE_H__ + #include "disp.h" + #include "atom.h" ++#include + + struct nv50_core { + const struct nv50_core_func *func; +@@ -15,6 +16,7 @@ void nv50_core_del(struct nv50_core **); + struct nv50_core_func { + void (*init)(struct nv50_core *); + void (*ntfy_init)(struct nouveau_bo *, u32 offset); ++ int (*caps_init)(struct nouveau_drm *, struct nv50_disp *); + int (*ntfy_wait_done)(struct nouveau_bo *, u32 offset, + struct nvif_device *); + void (*update)(struct nv50_core *, u32 *interlock, bool ntfy); +@@ -27,6 +29,9 @@ struct nv50_core_func { + const struct nv50_outp_func { + void (*ctrl)(struct nv50_core *, int or, u32 ctrl, + struct nv50_head_atom *); ++ /* XXX: Only used by SORs and PIORs for now */ ++ void (*get_caps)(struct nv50_disp *, ++ struct nouveau_encoder *, int or); + } *dac, *pior, *sor; + }; + +@@ -35,6 +40,7 @@ int core507d_new_(const struct nv50_core_func *, struct nouveau_drm *, s32, + struct nv50_core **); + void core507d_init(struct nv50_core *); + void core507d_ntfy_init(struct nouveau_bo *, u32); ++int core507d_caps_init(struct nouveau_drm *, struct nv50_disp *); + int core507d_ntfy_wait_done(struct nouveau_bo *, u32, struct nvif_device *); + void core507d_update(struct nv50_core *, u32 *, bool); + +@@ -51,6 +57,7 @@ extern const struct nv50_outp_func sor907d; + int core917d_new(struct nouveau_drm *, s32, struct nv50_core **); + + int corec37d_new(struct nouveau_drm *, s32, struct nv50_core **); ++int corec37d_caps_init(struct nouveau_drm *, struct nv50_disp *); + int corec37d_ntfy_wait_done(struct nouveau_bo *, u32, struct nvif_device *); + void corec37d_update(struct nv50_core *, u32 *, bool); + void corec37d_wndw_owner(struct nv50_core *); +diff --git a/drivers/gpu/drm/nouveau/dispnv50/core507d.c b/drivers/gpu/drm/nouveau/dispnv50/core507d.c +index c5152c39c684..e341f572c269 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/core507d.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/core507d.c +@@ -62,6 +62,20 @@ core507d_ntfy_init(struct nouveau_bo *bo, u32 offset) + nouveau_bo_wr32(bo, offset / 4, 0x00000000); + } + ++int ++core507d_caps_init(struct nouveau_drm *drm, struct nv50_disp *disp) ++{ ++ u32 *push = evo_wait(&disp->core->chan, 2); ++ ++ if (push) { ++ evo_mthd(push, 0x008c, 1); ++ evo_data(push, 0x0); ++ evo_kick(push, &disp->core->chan); ++ } ++ ++ return 0; ++} ++ + void + core507d_init(struct nv50_core *core) + { +@@ -77,6 +91,7 @@ static const struct nv50_core_func + core507d = { + .init = core507d_init, + .ntfy_init = core507d_ntfy_init, ++ .caps_init = core507d_caps_init, + .ntfy_wait_done = core507d_ntfy_wait_done, + .update = core507d_update, + .head = &head507d, +diff --git a/drivers/gpu/drm/nouveau/dispnv50/core827d.c b/drivers/gpu/drm/nouveau/dispnv50/core827d.c +index 6123a068f836..2e0c1c536afe 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/core827d.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/core827d.c +@@ -26,6 +26,7 @@ static const struct nv50_core_func + core827d = { + .init = core507d_init, + .ntfy_init = core507d_ntfy_init, ++ .caps_init = core507d_caps_init, + .ntfy_wait_done = core507d_ntfy_wait_done, + .update = core507d_update, + .head = &head827d, +diff --git a/drivers/gpu/drm/nouveau/dispnv50/core907d.c b/drivers/gpu/drm/nouveau/dispnv50/core907d.c +index ef822f813435..271629832629 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/core907d.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/core907d.c +@@ -26,6 +26,7 @@ static const struct nv50_core_func + core907d = { + .init = core507d_init, + .ntfy_init = core507d_ntfy_init, ++ .caps_init = core507d_caps_init, + .ntfy_wait_done = core507d_ntfy_wait_done, + .update = core507d_update, + .head = &head907d, +diff --git a/drivers/gpu/drm/nouveau/dispnv50/core917d.c b/drivers/gpu/drm/nouveau/dispnv50/core917d.c +index 392338df5bfd..5cc072d4c30f 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/core917d.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/core917d.c +@@ -26,6 +26,7 @@ static const struct nv50_core_func + core917d = { + .init = core507d_init, + .ntfy_init = core507d_ntfy_init, ++ .caps_init = core507d_caps_init, + .ntfy_wait_done = core507d_ntfy_wait_done, + .update = core507d_update, + .head = &head917d, +diff --git a/drivers/gpu/drm/nouveau/dispnv50/corec37d.c b/drivers/gpu/drm/nouveau/dispnv50/corec37d.c +index c03cb987856b..e0c8811fb8e4 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/corec37d.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/corec37d.c +@@ -22,6 +22,7 @@ + #include "core.h" + #include "head.h" + ++#include + #include + + #include +@@ -87,6 +88,30 @@ corec37d_ntfy_init(struct nouveau_bo *bo, u32 offset) + nouveau_bo_wr32(bo, offset / 4 + 3, 0x00000000); + } + ++int corec37d_caps_init(struct nouveau_drm *drm, struct nv50_disp *disp) ++{ ++ int ret; ++ ++ ret = nvif_object_init(&disp->disp->object, 0, GV100_DISP_CAPS, ++ NULL, 0, &disp->caps); ++ if (ret) { ++ NV_ERROR(drm, ++ "Failed to init notifier caps region: %d\n", ++ ret); ++ return ret; ++ } ++ ++ ret = nvif_object_map(&disp->caps, NULL, 0); ++ if (ret) { ++ NV_ERROR(drm, ++ "Failed to map notifier caps region: %d\n", ++ ret); ++ return ret; ++ } ++ ++ return 0; ++} ++ + static void + corec37d_init(struct nv50_core *core) + { +@@ -111,6 +136,7 @@ static const struct nv50_core_func + corec37d = { + .init = corec37d_init, + .ntfy_init = corec37d_ntfy_init, ++ .caps_init = corec37d_caps_init, + .ntfy_wait_done = corec37d_ntfy_wait_done, + .update = corec37d_update, + .wndw.owner = corec37d_wndw_owner, +diff --git a/drivers/gpu/drm/nouveau/dispnv50/corec57d.c b/drivers/gpu/drm/nouveau/dispnv50/corec57d.c +index 147adcd60937..10ba9e9e4ae6 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/corec57d.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/corec57d.c +@@ -46,6 +46,7 @@ static const struct nv50_core_func + corec57d = { + .init = corec57d_init, + .ntfy_init = corec37d_ntfy_init, ++ .caps_init = corec37d_caps_init, + .ntfy_wait_done = corec37d_ntfy_wait_done, + .update = corec37d_update, + .wndw.owner = corec37d_wndw_owner, +diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c +index 2afd56b9887d..1db4f20b8697 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c +@@ -1663,6 +1663,7 @@ nv50_sor_create(struct drm_connector *connector, struct dcb_output *dcbe) + struct nvkm_i2c *i2c = nvxx_i2c(&drm->client.device); + struct nouveau_encoder *nv_encoder; + struct drm_encoder *encoder; ++ struct nv50_disp *disp = nv50_disp(connector->dev); + int type, ret; + + switch (dcbe->type) { +@@ -1689,10 +1690,12 @@ nv50_sor_create(struct drm_connector *connector, struct dcb_output *dcbe) + + drm_connector_attach_encoder(connector, encoder); + ++ disp->core->func->sor->get_caps(disp, nv_encoder, ffs(dcbe->or) - 1); ++ + if (dcbe->type == DCB_OUTPUT_DP) { +- struct nv50_disp *disp = nv50_disp(encoder->dev); + struct nvkm_i2c_aux *aux = + nvkm_i2c_aux_find(i2c, dcbe->i2c_index); ++ + if (aux) { + if (disp->disp->object.oclass < GF110_DISP) { + /* HW has no support for address-only +@@ -1805,7 +1808,9 @@ nv50_pior_func = { + static int + nv50_pior_create(struct drm_connector *connector, struct dcb_output *dcbe) + { +- struct nouveau_drm *drm = nouveau_drm(connector->dev); ++ struct drm_device *dev = connector->dev; ++ struct nouveau_drm *drm = nouveau_drm(dev); ++ struct nv50_disp *disp = nv50_disp(dev); + struct nvkm_i2c *i2c = nvxx_i2c(&drm->client.device); + struct nvkm_i2c_bus *bus = NULL; + struct nvkm_i2c_aux *aux = NULL; +@@ -1844,6 +1849,9 @@ nv50_pior_create(struct drm_connector *connector, struct dcb_output *dcbe) + drm_encoder_helper_add(encoder, &nv50_pior_help); + + drm_connector_attach_encoder(connector, encoder); ++ ++ disp->core->func->pior->get_caps(disp, nv_encoder, ffs(dcbe->or) - 1); ++ + return 0; + } + +@@ -2401,6 +2409,8 @@ nv50_display_destroy(struct drm_device *dev) + + nv50_audio_component_fini(nouveau_drm(dev)); + ++ nvif_object_unmap(&disp->caps); ++ nvif_object_fini(&disp->caps); + nv50_core_del(&disp->core); + + nouveau_bo_unmap(disp->sync); +@@ -2462,6 +2472,11 @@ nv50_display_create(struct drm_device *dev) + goto out; + + disp->core->func->init(disp->core); ++ if (disp->core->func->caps_init) { ++ ret = disp->core->func->caps_init(drm, disp); ++ if (ret) ++ goto out; ++ } + + /* create crtc objects to represent the hw heads */ + if (disp->disp->object.oclass >= GV100_DISP) +diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.h b/drivers/gpu/drm/nouveau/dispnv50/disp.h +index d54fe00ac3a3..89c3b38c32a5 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/disp.h ++++ b/drivers/gpu/drm/nouveau/dispnv50/disp.h +@@ -9,6 +9,7 @@ struct nv50_msto; + struct nv50_disp { + struct nvif_disp *disp; + struct nv50_core *core; ++ struct nvif_object caps; + + #define NV50_DISP_SYNC(c, o) ((c) * 0x040 + (o)) + #define NV50_DISP_CORE_NTFY NV50_DISP_SYNC(0 , 0x00) +diff --git a/drivers/gpu/drm/nouveau/dispnv50/pior507d.c b/drivers/gpu/drm/nouveau/dispnv50/pior507d.c +index d2bac6a341dc..45d8ce7d2c28 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/pior507d.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/pior507d.c +@@ -38,7 +38,15 @@ pior507d_ctrl(struct nv50_core *core, int or, u32 ctrl, + } + } + ++static void ++pior507d_get_caps(struct nv50_disp *disp, struct nouveau_encoder *outp, ++ int or) ++{ ++ outp->caps.dp_interlace = true; ++} ++ + const struct nv50_outp_func + pior507d = { + .ctrl = pior507d_ctrl, ++ .get_caps = pior507d_get_caps, + }; +diff --git a/drivers/gpu/drm/nouveau/dispnv50/sor507d.c b/drivers/gpu/drm/nouveau/dispnv50/sor507d.c +index 5222fe6a9b21..9a59fa7da00d 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/sor507d.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/sor507d.c +@@ -38,7 +38,14 @@ sor507d_ctrl(struct nv50_core *core, int or, u32 ctrl, + } + } + ++static void ++sor507d_get_caps(struct nv50_disp *core, struct nouveau_encoder *outp, int or) ++{ ++ outp->caps.dp_interlace = true; ++} ++ + const struct nv50_outp_func + sor507d = { + .ctrl = sor507d_ctrl, ++ .get_caps = sor507d_get_caps, + }; +diff --git a/drivers/gpu/drm/nouveau/dispnv50/sor907d.c b/drivers/gpu/drm/nouveau/dispnv50/sor907d.c +index b0314ec11fb3..9577ccf1c809 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/sor907d.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/sor907d.c +@@ -21,6 +21,7 @@ + */ + #include "core.h" + ++#include + #include + + static void +@@ -35,7 +36,17 @@ sor907d_ctrl(struct nv50_core *core, int or, u32 ctrl, + } + } + ++static void ++sor907d_get_caps(struct nv50_disp *disp, struct nouveau_encoder *outp, int or) ++{ ++ const int off = or * 2; ++ u32 tmp = nouveau_bo_rd32(disp->sync, 0x000014 + off); ++ ++ outp->caps.dp_interlace = !!(tmp & 0x04000000); ++} ++ + const struct nv50_outp_func + sor907d = { + .ctrl = sor907d_ctrl, ++ .get_caps = sor907d_get_caps, + }; +diff --git a/drivers/gpu/drm/nouveau/dispnv50/sorc37d.c b/drivers/gpu/drm/nouveau/dispnv50/sorc37d.c +index dff059241c5d..c86ca955fdcd 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/sorc37d.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/sorc37d.c +@@ -33,7 +33,16 @@ sorc37d_ctrl(struct nv50_core *core, int or, u32 ctrl, + } + } + ++static void ++sorc37d_get_caps(struct nv50_disp *disp, struct nouveau_encoder *outp, int or) ++{ ++ u32 tmp = nvif_rd32(&disp->caps, 0x000144 + (or * 8)); ++ ++ outp->caps.dp_interlace = !!(tmp & 0x04000000); ++} ++ + const struct nv50_outp_func + sorc37d = { + .ctrl = sorc37d_ctrl, ++ .get_caps = sorc37d_get_caps, + }; +diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c +index 9a9a7f5003d3..6dae00da5d7e 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_connector.c ++++ b/drivers/gpu/drm/nouveau/nouveau_connector.c +@@ -509,7 +509,11 @@ nouveau_connector_set_encoder(struct drm_connector *connector, + nv_connector->detected_encoder = nv_encoder; + + if (drm->client.device.info.family >= NV_DEVICE_INFO_V0_TESLA) { +- connector->interlace_allowed = true; ++ if (nv_encoder->dcb->type == DCB_OUTPUT_DP) ++ connector->interlace_allowed = ++ nv_encoder->caps.dp_interlace; ++ else ++ connector->interlace_allowed = true; + connector->doublescan_allowed = true; + } else + if (nv_encoder->dcb->type == DCB_OUTPUT_LVDS || +@@ -1060,6 +1064,10 @@ nouveau_connector_mode_valid(struct drm_connector *connector, + case DCB_OUTPUT_TV: + return get_slave_funcs(encoder)->mode_valid(encoder, mode); + case DCB_OUTPUT_DP: ++ if (mode->flags & DRM_MODE_FLAG_INTERLACE && ++ !nv_encoder->caps.dp_interlace) ++ return MODE_NO_INTERLACE; ++ + max_clock = nv_encoder->dp.link_nr; + max_clock *= nv_encoder->dp.link_bw; + clock = clock * (connector->display_info.bpc * 3) / 10; +diff --git a/drivers/gpu/drm/nouveau/nouveau_encoder.h b/drivers/gpu/drm/nouveau/nouveau_encoder.h +index 3517f920bf89..3217f587eceb 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_encoder.h ++++ b/drivers/gpu/drm/nouveau/nouveau_encoder.h +@@ -66,6 +66,10 @@ struct nouveau_encoder { + } dp; + }; + ++ struct { ++ bool dp_interlace : 1; ++ } caps; ++ + void (*enc_save)(struct drm_encoder *encoder); + void (*enc_restore)(struct drm_encoder *encoder); + void (*update)(struct nouveau_encoder *, u8 head, +-- +2.26.2 + diff --git a/0001-kms-nv50-Share-DP-SST-mode_valid-handling-with-MST.patch b/0001-kms-nv50-Share-DP-SST-mode_valid-handling-with-MST.patch new file mode 100644 index 000000000..c14aed7ea --- /dev/null +++ b/0001-kms-nv50-Share-DP-SST-mode_valid-handling-with-MST.patch @@ -0,0 +1,209 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Mon, 11 May 2020 18:41:27 -0400 +Subject: [PATCH] kms/nv50-: Share DP SST mode_valid() handling with MST + +Currently, the nv50_mstc_mode_valid() function is happy to take any and +all modes, even the ones we can't actually support sometimes like +interlaced modes. + +Luckily, the only difference between the mode validation that needs to +be performed for MST vs. SST is that eventually we'll need to check the +minimum PBN against the MSTB's full PBN capabilities (remember-we don't +care about the current bw state here). Otherwise, all of the other code +can be shared. + +So, we move all of the common mode validation in +nouveau_connector_mode_valid() into a separate helper, +nv50_dp_mode_valid(), and use that from both nv50_mstc_mode_valid() and +nouveau_connector_mode_valid(). Note that we allow for returning the +calculated clock that nv50_dp_mode_valid() came up with, since we'll +eventually want to use that for PBN calculation in +nv50_mstc_mode_valid(). + +Signed-off-by: Lyude Paul +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/dispnv50/disp.c | 9 +++- + drivers/gpu/drm/nouveau/nouveau_connector.c | 46 ++++++++++++--------- + drivers/gpu/drm/nouveau/nouveau_connector.h | 5 +++ + drivers/gpu/drm/nouveau/nouveau_dp.c | 31 ++++++++++++++ + drivers/gpu/drm/nouveau/nouveau_encoder.h | 4 ++ + 5 files changed, 75 insertions(+), 20 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c +index e92e7bf49780..d5d69532f3c5 100644 +--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c ++++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c +@@ -1056,7 +1056,14 @@ static enum drm_mode_status + nv50_mstc_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode) + { +- return MODE_OK; ++ struct nv50_mstc *mstc = nv50_mstc(connector); ++ struct nouveau_encoder *outp = mstc->mstm->outp; ++ ++ /* TODO: calculate the PBN from the dotclock and validate against the ++ * MSTB's max possible PBN ++ */ ++ ++ return nv50_dp_mode_valid(connector, outp, mode, NULL); + } + + static int +diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c +index 6dae00da5d7e..1b383ae0248f 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_connector.c ++++ b/drivers/gpu/drm/nouveau/nouveau_connector.c +@@ -38,6 +38,7 @@ + #include "nouveau_reg.h" + #include "nouveau_drv.h" + #include "dispnv04/hw.h" ++#include "dispnv50/disp.h" + #include "nouveau_acpi.h" + + #include "nouveau_display.h" +@@ -1033,6 +1034,29 @@ get_tmds_link_bandwidth(struct drm_connector *connector) + return 112000 * duallink_scale; + } + ++enum drm_mode_status ++nouveau_conn_mode_clock_valid(const struct drm_display_mode *mode, ++ const unsigned min_clock, ++ const unsigned max_clock, ++ unsigned int *clock_out) ++{ ++ unsigned int clock = mode->clock; ++ ++ if ((mode->flags & DRM_MODE_FLAG_3D_MASK) == ++ DRM_MODE_FLAG_3D_FRAME_PACKING) ++ clock *= 2; ++ ++ if (clock < min_clock) ++ return MODE_CLOCK_LOW; ++ if (clock > max_clock) ++ return MODE_CLOCK_HIGH; ++ ++ if (clock_out) ++ *clock_out = clock; ++ ++ return MODE_OK; ++} ++ + static enum drm_mode_status + nouveau_connector_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode) +@@ -1041,7 +1065,6 @@ nouveau_connector_mode_valid(struct drm_connector *connector, + struct nouveau_encoder *nv_encoder = nv_connector->detected_encoder; + struct drm_encoder *encoder = to_drm_encoder(nv_encoder); + unsigned min_clock = 25000, max_clock = min_clock; +- unsigned clock = mode->clock; + + switch (nv_encoder->dcb->type) { + case DCB_OUTPUT_LVDS: +@@ -1064,29 +1087,14 @@ nouveau_connector_mode_valid(struct drm_connector *connector, + case DCB_OUTPUT_TV: + return get_slave_funcs(encoder)->mode_valid(encoder, mode); + case DCB_OUTPUT_DP: +- if (mode->flags & DRM_MODE_FLAG_INTERLACE && +- !nv_encoder->caps.dp_interlace) +- return MODE_NO_INTERLACE; +- +- max_clock = nv_encoder->dp.link_nr; +- max_clock *= nv_encoder->dp.link_bw; +- clock = clock * (connector->display_info.bpc * 3) / 10; +- break; ++ return nv50_dp_mode_valid(connector, nv_encoder, mode, NULL); + default: + BUG(); + return MODE_BAD; + } + +- if ((mode->flags & DRM_MODE_FLAG_3D_MASK) == DRM_MODE_FLAG_3D_FRAME_PACKING) +- clock *= 2; +- +- if (clock < min_clock) +- return MODE_CLOCK_LOW; +- +- if (clock > max_clock) +- return MODE_CLOCK_HIGH; +- +- return MODE_OK; ++ return nouveau_conn_mode_clock_valid(mode, min_clock, max_clock, ++ NULL); + } + + static struct drm_encoder * +diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.h b/drivers/gpu/drm/nouveau/nouveau_connector.h +index de84fb4708c7..9e062c7adec8 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_connector.h ++++ b/drivers/gpu/drm/nouveau/nouveau_connector.h +@@ -195,6 +195,11 @@ int nouveau_conn_atomic_get_property(struct drm_connector *, + const struct drm_connector_state *, + struct drm_property *, u64 *); + struct drm_display_mode *nouveau_conn_native_mode(struct drm_connector *); ++enum drm_mode_status ++nouveau_conn_mode_clock_valid(const struct drm_display_mode *, ++ const unsigned min_clock, ++ const unsigned max_clock, ++ unsigned *clock); + + #ifdef CONFIG_DRM_NOUVEAU_BACKLIGHT + extern int nouveau_backlight_init(struct drm_connector *); +diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c +index 2674f1587457..8a0f7994e1ae 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_dp.c ++++ b/drivers/gpu/drm/nouveau/nouveau_dp.c +@@ -98,3 +98,34 @@ nouveau_dp_detect(struct nouveau_encoder *nv_encoder) + return NOUVEAU_DP_SST; + return ret; + } ++ ++/* TODO: ++ * - Use the minimum possible BPC here, once we add support for the max bpc ++ * property. ++ * - Validate the mode against downstream port caps (see ++ * drm_dp_downstream_max_clock()) ++ * - Validate against the DP caps advertised by the GPU (we don't check these ++ * yet) ++ */ ++enum drm_mode_status ++nv50_dp_mode_valid(struct drm_connector *connector, ++ struct nouveau_encoder *outp, ++ const struct drm_display_mode *mode, ++ unsigned *out_clock) ++{ ++ const unsigned min_clock = 25000; ++ unsigned max_clock, clock; ++ enum drm_mode_status ret; ++ ++ if (mode->flags & DRM_MODE_FLAG_INTERLACE && !outp->caps.dp_interlace) ++ return MODE_NO_INTERLACE; ++ ++ max_clock = outp->dp.link_nr * outp->dp.link_bw; ++ clock = mode->clock * (connector->display_info.bpc * 3) / 10; ++ ++ ret = nouveau_conn_mode_clock_valid(mode, min_clock, max_clock, ++ &clock); ++ if (out_clock) ++ *out_clock = clock; ++ return ret; ++} +diff --git a/drivers/gpu/drm/nouveau/nouveau_encoder.h b/drivers/gpu/drm/nouveau/nouveau_encoder.h +index 3217f587eceb..de51733b0476 100644 +--- a/drivers/gpu/drm/nouveau/nouveau_encoder.h ++++ b/drivers/gpu/drm/nouveau/nouveau_encoder.h +@@ -104,6 +104,10 @@ enum nouveau_dp_status { + }; + + int nouveau_dp_detect(struct nouveau_encoder *); ++enum drm_mode_status nv50_dp_mode_valid(struct drm_connector *, ++ struct nouveau_encoder *, ++ const struct drm_display_mode *, ++ unsigned *clock); + + struct nouveau_connector * + nouveau_encoder_connector_get(struct nouveau_encoder *encoder); +-- +2.26.2 + diff --git a/0001-mm-kmemleak-skip-late_init-if-not-skip-disable.patch b/0001-mm-kmemleak-skip-late_init-if-not-skip-disable.patch index e87612358..2e055125c 100644 --- a/0001-mm-kmemleak-skip-late_init-if-not-skip-disable.patch +++ b/0001-mm-kmemleak-skip-late_init-if-not-skip-disable.patch @@ -1,4 +1,4 @@ -From 14d329da03ea1145efce866b127b10ea6390b5e1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Murphy Zhou Date: Sun, 29 Sep 2019 17:56:59 +0800 Subject: [PATCH] mm/kmemleak: skip late_init if not skip disable @@ -51,10 +51,10 @@ Signed-off-by: Murphy Zhou 1 file changed, 5 insertions(+) diff --git a/mm/kmemleak.c b/mm/kmemleak.c -index 03a8d84badad..b9baf617fe35 100644 +index e362dc3d2028..0c3dfb8eef67 100644 --- a/mm/kmemleak.c +++ b/mm/kmemleak.c -@@ -1946,6 +1946,11 @@ void __init kmemleak_init(void) +@@ -1958,6 +1958,11 @@ void __init kmemleak_init(void) */ static int __init kmemleak_late_init(void) { @@ -64,8 +64,8 @@ index 03a8d84badad..b9baf617fe35 100644 + } + kmemleak_initialized = 1; - + debugfs_create_file("kmemleak", 0644, NULL, NULL, &kmemleak_fops); -- -2.21.0 +2.26.2 diff --git a/0001-mmu-Remove-unneeded-semicolon.patch b/0001-mmu-Remove-unneeded-semicolon.patch new file mode 100644 index 000000000..3931ff586 --- /dev/null +++ b/0001-mmu-Remove-unneeded-semicolon.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Zheng Bin +Date: Fri, 24 Apr 2020 15:36:01 +0800 +Subject: [PATCH] mmu: Remove unneeded semicolon + +Fixes coccicheck warning: + +drivers/gpu/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h:307:2-3: Unneeded semicolon +drivers/gpu/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:583:2-3: Unneeded semicolon + +Reported-by: Hulk Robot +Signed-off-by: Zheng Bin +Signed-off-by: Ben Skeggs +--- + drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c | 2 +- + drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c +index 41640e0584ac..199f94e15c5f 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c ++++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c +@@ -580,7 +580,7 @@ nvkm_vmm_iter(struct nvkm_vmm *vmm, const struct nvkm_vmm_page *page, + it.pte[it.lvl]++; + } + } +- }; ++ } + + nvkm_vmm_flush(&it); + return ~0ULL; +diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h +index 5e55ecbd8005..d3f8f916d0db 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h ++++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h +@@ -304,7 +304,7 @@ int tu102_vmm_new(struct nvkm_mmu *, bool, u64, u64, void *, u32, + FILL(VMM, PT, PTEI, _ptes, MAP, _addr); \ + PTEI += _ptes; \ + PTEN -= _ptes; \ +- }; \ ++ } \ + nvkm_done((PT)->memory); \ + } while(0) + +-- +2.26.2 + diff --git a/0001-perf-cs-etm-Move-defined-of-traceid_list.patch b/0001-perf-cs-etm-Move-defined-of-traceid_list.patch new file mode 100644 index 000000000..63cbefa93 --- /dev/null +++ b/0001-perf-cs-etm-Move-defined-of-traceid_list.patch @@ -0,0 +1,58 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Leo Yan +Date: Tue, 5 May 2020 21:36:42 +0800 +Subject: [PATCH] perf cs-etm: Move defined of traceid_list + +The variable 'traceid_list' is defined in the header file cs-etm.h, +if multiple C files include cs-etm.h the compiler might complaint for +multiple definition of 'traceid_list'. + +To fix multiple definition error, move the definition of 'traceid_list' +into cs-etm.c. + +Fixes: cd8bfd8c973e ("perf tools: Add processing of coresight metadata") +Reported-by: Thomas Backlund +Signed-off-by: Leo Yan +Tested-by: Thomas Backlund +Tested-by: Mike Leach +Tested-by: Justin M. Forbes +Reviewed-by: Mike Leach +Reviewed-by: Mathieu Poirier + +Upstream Status: https://lore.kernel.org/lkml/20200505133642.4756-1-leo.yan@linaro.org/ +--- + tools/perf/util/cs-etm.c | 3 +++ + tools/perf/util/cs-etm.h | 3 --- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c +index 62d2f9b9ce1b..381d9708e9bd 100644 +--- a/tools/perf/util/cs-etm.c ++++ b/tools/perf/util/cs-etm.c +@@ -94,6 +94,9 @@ struct cs_etm_queue { + struct cs_etm_traceid_queue **traceid_queues; + }; + ++/* RB tree for quick conversion between traceID and metadata pointers */ ++static struct intlist *traceid_list; ++ + static int cs_etm__update_queues(struct cs_etm_auxtrace *etm); + static int cs_etm__process_queues(struct cs_etm_auxtrace *etm); + static int cs_etm__process_timeless_queues(struct cs_etm_auxtrace *etm, +diff --git a/tools/perf/util/cs-etm.h b/tools/perf/util/cs-etm.h +index 650ecc2a6349..4ad925d6d799 100644 +--- a/tools/perf/util/cs-etm.h ++++ b/tools/perf/util/cs-etm.h +@@ -114,9 +114,6 @@ enum cs_etm_isa { + CS_ETM_ISA_T32, + }; + +-/* RB tree for quick conversion between traceID and metadata pointers */ +-struct intlist *traceid_list; +- + struct cs_etm_queue; + + struct cs_etm_packet { +-- +2.26.2 + diff --git a/0001-pwm-lpss-Fix-get_state-runtime-pm-reference-handling.patch b/0001-pwm-lpss-Fix-get_state-runtime-pm-reference-handling.patch deleted file mode 100644 index f5232e408..000000000 --- a/0001-pwm-lpss-Fix-get_state-runtime-pm-reference-handling.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 3666fb55d53fb40f75ec4d665416fed1a714ef09 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 12 May 2020 00:39:24 +0200 -Subject: [PATCH] pwm: lpss: Fix get_state runtime-pm reference handling - -Before commit cfc4c189bc70 ("pwm: Read initial hardware state at request -time"), a driver's get_state callback would get called once per PWM from -pwmchip_add(). - -pwm-lpss' runtime-pm code was relying on this, getting a runtime-pm ref for -PWMs which are enabled at probe time from within its get_state callback, -before enabling runtime-pm. - -The change to calling get_state at request time causes a number of -problems: - -1. PWMs enabled at probe time may get runtime suspended before they are -requested, causing e.g. a LCD backlight controlled by the PWM to turn off. - -2. When the request happens when the PWM has been runtime suspended, the -ctrl register will read all 1 / 0xffffffff, causing get_state to store -bogus values in the pwm_state. - -3. get_state was using an async pm_runtime_get() call, because it assumed -that runtime-pm has not been enabled yet. If shortly after the request an -apply call is made, then the pwm_lpss_is_updating() check may trigger -because the resume triggered by the pm_runtime_get() call is not complete -yet, so the ctrl register still reads all 1 / 0xffffffff. - -This commit fixes these issues by moving the initial pm_runtime_get() call -for PWMs which are enabled at probe time to the pwm_lpss_probe() function; -and by making get_state take a runtime-pm ref before reading the ctrl reg. - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1828927 -Fixes: cfc4c189bc70 ("pwm: Read initial hardware state at request time") -Cc: stable@vger.kernel.org -Reviewed-by: Andy Shevchenko -Signed-off-by: Hans de Goede -Upstream Status: https://lore.kernel.org/linux-acpi/5f15f6bc-8650-d86e-893f-0d41557c57c7@redhat.com/ ---- - drivers/pwm/pwm-lpss.c | 15 +++++++++++---- - 1 file changed, 11 insertions(+), 4 deletions(-) - -diff --git a/drivers/pwm/pwm-lpss.c b/drivers/pwm/pwm-lpss.c -index 75bbfe5f3bc2..9d965ffe66d1 100644 ---- a/drivers/pwm/pwm-lpss.c -+++ b/drivers/pwm/pwm-lpss.c -@@ -158,7 +158,6 @@ static int pwm_lpss_apply(struct pwm_chip *chip, struct pwm_device *pwm, - return 0; - } - --/* This function gets called once from pwmchip_add to get the initial state */ - static void pwm_lpss_get_state(struct pwm_chip *chip, struct pwm_device *pwm, - struct pwm_state *state) - { -@@ -167,6 +166,8 @@ static void pwm_lpss_get_state(struct pwm_chip *chip, struct pwm_device *pwm, - unsigned long long base_unit, freq, on_time_div; - u32 ctrl; - -+ pm_runtime_get_sync(chip->dev); -+ - base_unit_range = BIT(lpwm->info->base_unit_bits); - - ctrl = pwm_lpss_read(pwm); -@@ -187,8 +188,7 @@ static void pwm_lpss_get_state(struct pwm_chip *chip, struct pwm_device *pwm, - state->polarity = PWM_POLARITY_NORMAL; - state->enabled = !!(ctrl & PWM_ENABLE); - -- if (state->enabled) -- pm_runtime_get(chip->dev); -+ pm_runtime_put(chip->dev); - } - - static const struct pwm_ops pwm_lpss_ops = { -@@ -202,7 +202,8 @@ struct pwm_lpss_chip *pwm_lpss_probe(struct device *dev, struct resource *r, - { - struct pwm_lpss_chip *lpwm; - unsigned long c; -- int ret; -+ int i, ret; -+ u32 ctrl; - - if (WARN_ON(info->npwm > MAX_PWMS)) - return ERR_PTR(-ENODEV); -@@ -232,6 +233,12 @@ struct pwm_lpss_chip *pwm_lpss_probe(struct device *dev, struct resource *r, - return ERR_PTR(ret); - } - -+ for (i = 0; i < lpwm->info->npwm; i++) { -+ ctrl = pwm_lpss_read(&lpwm->chip.pwms[i]); -+ if (ctrl & PWM_ENABLE) -+ pm_runtime_get(dev); -+ } -+ - return lpwm; - } - EXPORT_SYMBOL_GPL(pwm_lpss_probe); --- -2.26.2 - diff --git a/s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch b/0001-s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch similarity index 80% rename from s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch rename to 0001-s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch index 70e3f76a8..4332472bb 100644 --- a/s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch +++ b/0001-s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch @@ -1,11 +1,12 @@ -From eaa12998810bd9db85dec71f0da55fd5aae73d0f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Wed, 30 Oct 2019 14:37:49 +0000 Subject: [PATCH] s390: Lock down the kernel when the IPL secure flag is set -Automatically lock down the kernel to LOCKDOWN_INTEGRITY_MAX if +Automatically lock down the kernel to LOCKDOWN_CONFIDENTIALITY_MAX if the IPL secure flag is set. +Upstream Status: RHEL only Suggested-by: Philipp Rudo Signed-off-by: Jeremy Cline --- @@ -15,7 +16,7 @@ Signed-off-by: Jeremy Cline 3 files changed, 10 insertions(+) diff --git a/arch/s390/include/asm/ipl.h b/arch/s390/include/asm/ipl.h -index 084e71b7272a..1d1b5ec7357b 100644 +index b63bd66404b8..3482d9602e68 100644 --- a/arch/s390/include/asm/ipl.h +++ b/arch/s390/include/asm/ipl.h @@ -109,6 +109,7 @@ int ipl_report_add_component(struct ipl_report *report, struct kexec_buf *kbuf, @@ -23,16 +24,16 @@ index 084e71b7272a..1d1b5ec7357b 100644 int ipl_report_add_certificate(struct ipl_report *report, void *key, unsigned long addr, unsigned long len); +bool ipl_get_secureboot(void); - + /* * DIAG 308 support diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c -index 6837affc19e8..2d3f3d00e05c 100644 +index 4a71061974fd..9baf0b570c3d 100644 --- a/arch/s390/kernel/ipl.c +++ b/arch/s390/kernel/ipl.c -@@ -1842,3 +1842,8 @@ int ipl_report_free(struct ipl_report *report) +@@ -1901,3 +1901,8 @@ int ipl_report_free(struct ipl_report *report) } - + #endif + +bool ipl_get_secureboot(void) @@ -40,7 +41,7 @@ index 6837affc19e8..2d3f3d00e05c 100644 + return !!ipl_secure_flag; +} diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c -index 9cbf490fd162..0510ecdfc3f6 100644 +index 36445dd40fdb..b338a050c5aa 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c @@ -49,6 +49,7 @@ @@ -48,13 +49,13 @@ index 9cbf490fd162..0510ecdfc3f6 100644 #include #include +#include - + #include #include -@@ -1096,6 +1097,9 @@ void __init setup_arch(char **cmdline_p) - +@@ -1093,6 +1094,9 @@ void __init setup_arch(char **cmdline_p) + log_component_list(); - + + if (ipl_get_secureboot()) + security_lock_kernel_down("Secure IPL mode", LOCKDOWN_INTEGRITY_MAX); + @@ -62,5 +63,5 @@ index 9cbf490fd162..0510ecdfc3f6 100644 /* boot_command_line has been already set up in early.c */ *cmdline_p = boot_command_line; -- -2.24.1 +2.26.2 diff --git a/0001-scsi-smartpqi-add-inspur-advantech-ids.patch b/0001-scsi-smartpqi-add-inspur-advantech-ids.patch new file mode 100644 index 000000000..4e2bbb794 --- /dev/null +++ b/0001-scsi-smartpqi-add-inspur-advantech-ids.patch @@ -0,0 +1,70 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Don Brace +Date: Mon, 16 Jul 2018 19:20:41 -0400 +Subject: [PATCH] scsi: smartpqi: add inspur advantech ids + +Message-id: <1531768843-2544-4-git-send-email-dbrace@redhat.com> +Patchwork-id: 224988 +O-Subject: [RHEL 8.0 e-stor V2 PATCH 3/5] scsi: smartpqi: add inspur advantech ids +Bugzilla: 1503736 +RH-Acked-by: Ewan Milne +RH-Acked-by: Tomas Henzl + +From: Kevin Barnett + +Add support for these new device IDs: + + Advantech MIC-8312BridgeB + INSPUR PM8204-2GB + INSPUR PM8204-4GB + INSPUR PM8222-SHBA + +Upstream Status: RHEL only +Reviewed-by: Scott Benesh +Signed-off-by: Kevin Barnett +Signed-off-by: Don Brace +Signed-off-by: Martin K. Petersen +(cherry picked from commit 9f8d05fa98442de78d1ab30235b0cc656ed7aff0) +Signed-off-by: Don Brace +Signed-off-by: Herton R. Krzesinski +--- + drivers/scsi/smartpqi/smartpqi_init.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c +index cd157f11eb22..c5dc6cf57a71 100644 +--- a/drivers/scsi/smartpqi/smartpqi_init.c ++++ b/drivers/scsi/smartpqi/smartpqi_init.c +@@ -8247,6 +8247,18 @@ static const struct pci_device_id pqi_pci_id_table[] = { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + 0x19e5, 0xd22c) + }, ++ { ++ PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, ++ 0x1bd4, 0x004a) ++ }, ++ { ++ PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, ++ 0x1bd4, 0x004b) ++ }, ++ { ++ PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, ++ 0x1bd4, 0x004c) ++ }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_ADAPTEC2, 0x0110) +@@ -8383,6 +8395,10 @@ static const struct pci_device_id pqi_pci_id_table[] = { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_ADVANTECH, 0x8312) + }, ++ { ++ PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, ++ PCI_VENDOR_ID_ADVANTECH, 0x8312) ++ }, + { + PCI_DEVICE_SUB(PCI_VENDOR_ID_ADAPTEC2, 0x028f, + PCI_VENDOR_ID_DELL, 0x1fe0) +-- +2.26.2 + diff --git a/0001-security-lockdown-expose-a-hook-to-lock-the-kernel-d.patch b/0001-security-lockdown-expose-a-hook-to-lock-the-kernel-d.patch new file mode 100644 index 000000000..fc6b78ad0 --- /dev/null +++ b/0001-security-lockdown-expose-a-hook-to-lock-the-kernel-d.patch @@ -0,0 +1,103 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jeremy Cline +Date: Mon, 30 Sep 2019 21:22:47 +0000 +Subject: [PATCH] security: lockdown: expose a hook to lock the kernel down + +In order to automatically lock down kernels running on UEFI machines +booted in Secure Boot mode, expose the lock_kernel_down() hook. + +Upstream Status: RHEL only +Signed-off-by: Jeremy Cline +--- + include/linux/lsm_hook_defs.h | 2 ++ + include/linux/lsm_hooks.h | 6 ++++++ + include/linux/security.h | 5 +++++ + security/lockdown/lockdown.c | 1 + + security/security.c | 6 ++++++ + 5 files changed, 20 insertions(+) + +diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h +index 5616b2567aa7..bc5caab1413b 100644 +--- a/include/linux/lsm_hook_defs.h ++++ b/include/linux/lsm_hook_defs.h +@@ -371,6 +371,8 @@ LSM_HOOK(void, LSM_RET_VOID, bpf_prog_free_security, struct bpf_prog_aux *aux) + #endif /* CONFIG_BPF_SYSCALL */ + + LSM_HOOK(int, 0, locked_down, enum lockdown_reason what) ++LSM_HOOK(int, 0, lock_kernel_down, const char *where, enum lockdown_reason level) ++ + + #ifdef CONFIG_PERF_EVENTS + LSM_HOOK(int, 0, perf_event_open, struct perf_event_attr *attr, int type) +diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h +index 988ca0df7824..4ed37b95417c 100644 +--- a/include/linux/lsm_hooks.h ++++ b/include/linux/lsm_hooks.h +@@ -1476,6 +1476,12 @@ + * + * @what: kernel feature being accessed + * ++ * @lock_kernel_down ++ * Put the kernel into lock-down mode. ++ * ++ * @where: Where the lock-down is originating from (e.g. command line option) ++ * @level: The lock-down level (can only increase) ++ * + * Security hooks for perf events + * + * @perf_event_open: +diff --git a/include/linux/security.h b/include/linux/security.h +index a8d9310472df..381305889d89 100644 +--- a/include/linux/security.h ++++ b/include/linux/security.h +@@ -446,6 +446,7 @@ int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen); + int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen); + int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen); + int security_locked_down(enum lockdown_reason what); ++int security_lock_kernel_down(const char *where, enum lockdown_reason level); + #else /* CONFIG_SECURITY */ + + static inline int call_blocking_lsm_notifier(enum lsm_event event, void *data) +@@ -1273,6 +1274,10 @@ static inline int security_locked_down(enum lockdown_reason what) + { + return 0; + } ++static inline int security_lock_kernel_down(const char *where, enum lockdown_reason level) ++{ ++ return 0; ++} + #endif /* CONFIG_SECURITY */ + + #ifdef CONFIG_SECURITY_NETWORK +diff --git a/security/lockdown/lockdown.c b/security/lockdown/lockdown.c +index 5a952617a0eb..61cc3cdc4d25 100644 +--- a/security/lockdown/lockdown.c ++++ b/security/lockdown/lockdown.c +@@ -73,6 +73,7 @@ static int lockdown_is_locked_down(enum lockdown_reason what) + + static struct security_hook_list lockdown_hooks[] __lsm_ro_after_init = { + LSM_HOOK_INIT(locked_down, lockdown_is_locked_down), ++ LSM_HOOK_INIT(lock_kernel_down, lock_kernel_down), + }; + + static int __init lockdown_lsm_init(void) +diff --git a/security/security.c b/security/security.c +index 51de970fbb1e..48d05f8067f2 100644 +--- a/security/security.c ++++ b/security/security.c +@@ -2468,6 +2468,12 @@ int security_locked_down(enum lockdown_reason what) + } + EXPORT_SYMBOL(security_locked_down); + ++int security_lock_kernel_down(const char *where, enum lockdown_reason level) ++{ ++ return call_int_hook(lock_kernel_down, 0, where, level); ++} ++EXPORT_SYMBOL(security_lock_kernel_down); ++ + #ifdef CONFIG_PERF_EVENTS + int security_perf_event_open(struct perf_event_attr *attr, int type) + { +-- +2.26.2 + diff --git a/0001-soc-bcm2835-Sync-xHCI-reset-firmware-property-with-d.patch b/0001-soc-bcm2835-Sync-xHCI-reset-firmware-property-with-d.patch new file mode 100644 index 000000000..3dd66b141 --- /dev/null +++ b/0001-soc-bcm2835-Sync-xHCI-reset-firmware-property-with-d.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne +Date: Tue, 10 Mar 2020 13:52:39 +0100 +Subject: [PATCH] soc: bcm2835: Sync xHCI reset firmware property with + downstream + +The property is needed in order to trigger VL805's firmware load. Note +that there is a gap between the property introduced and the previous +one. This is also the case downstream. + +Signed-off-by: Nicolas Saenz Julienne +Reviewed-by: Florian Fainelli +--- + include/soc/bcm2835/raspberrypi-firmware.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h +index 7800e12ee042..cc9cdbc66403 100644 +--- a/include/soc/bcm2835/raspberrypi-firmware.h ++++ b/include/soc/bcm2835/raspberrypi-firmware.h +@@ -90,7 +90,7 @@ enum rpi_firmware_property_tag { + RPI_FIRMWARE_SET_PERIPH_REG = 0x00038045, + RPI_FIRMWARE_GET_POE_HAT_VAL = 0x00030049, + RPI_FIRMWARE_SET_POE_HAT_VAL = 0x00030050, +- ++ RPI_FIRMWARE_NOTIFY_XHCI_RESET = 0x00030058, + + /* Dispmanx TAGS */ + RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001, +-- +2.26.2 + diff --git a/0001-virt-vbox-Add-a-few-new-vmmdev-request-types-to-the-.patch b/0001-virt-vbox-Add-a-few-new-vmmdev-request-types-to-the-.patch new file mode 100644 index 000000000..92c93e835 --- /dev/null +++ b/0001-virt-vbox-Add-a-few-new-vmmdev-request-types-to-the-.patch @@ -0,0 +1,58 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 11:05:40 +0200 +Subject: [PATCH] virt: vbox: Add a few new vmmdev request types to the + userspace whitelist + +Upstream VirtualBox has defined and is using a few new request types for +vmmdev requests passed through /dev/vboxguest to the hypervisor. + +Add the defines for these to vbox_vmmdev_types.h and add add them to the +whitelists of vmmdev requests which userspace is allowed to make. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545 +Signed-off-by: Hans de Goede +Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/ +--- + drivers/virt/vboxguest/vboxguest_core.c | 2 ++ + include/uapi/linux/vbox_vmmdev_types.h | 3 +++ + 2 files changed, 5 insertions(+) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index 4f1addaa3f6f..ffd76b949276 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -1299,7 +1299,9 @@ static int vbg_req_allowed(struct vbg_dev *gdev, struct vbg_session *session, + case VMMDEVREQ_VIDEO_ACCEL_ENABLE: + case VMMDEVREQ_VIDEO_ACCEL_FLUSH: + case VMMDEVREQ_VIDEO_SET_VISIBLE_REGION: ++ case VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS: + case VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX: ++ case VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI: + case VMMDEVREQ_GET_SEAMLESS_CHANGE_REQ: + case VMMDEVREQ_GET_VRDPCHANGE_REQ: + case VMMDEVREQ_LOG_STRING: +diff --git a/include/uapi/linux/vbox_vmmdev_types.h b/include/uapi/linux/vbox_vmmdev_types.h +index c27289fd619a..f8a8d6b3c521 100644 +--- a/include/uapi/linux/vbox_vmmdev_types.h ++++ b/include/uapi/linux/vbox_vmmdev_types.h +@@ -63,6 +63,7 @@ enum vmmdev_request_type { + VMMDEVREQ_SET_GUEST_CAPABILITIES = 56, + VMMDEVREQ_VIDEMODE_SUPPORTED2 = 57, /* since version 3.2.0 */ + VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX = 80, /* since version 4.2.4 */ ++ VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI = 81, + VMMDEVREQ_HGCM_CONNECT = 60, + VMMDEVREQ_HGCM_DISCONNECT = 61, + VMMDEVREQ_HGCM_CALL32 = 62, +@@ -92,6 +93,8 @@ enum vmmdev_request_type { + VMMDEVREQ_WRITE_COREDUMP = 218, + VMMDEVREQ_GUEST_HEARTBEAT = 219, + VMMDEVREQ_HEARTBEAT_CONFIGURE = 220, ++ VMMDEVREQ_NT_BUG_CHECK = 221, ++ VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS = 222, + /* Ensure the enum is a 32 bit data-type */ + VMMDEVREQ_SIZEHACK = 0x7fffffff + }; +-- +2.26.2 + diff --git a/0001-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch b/0001-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch new file mode 100644 index 000000000..c001fe5d4 --- /dev/null +++ b/0001-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch @@ -0,0 +1,320 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 18:04:30 +0200 +Subject: [PATCH] virt: vbox: Add support for the new + VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl + +Add support for the new VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl, this +is necessary for automatic resizing of the guest resolution to match the +VM-window size to work with the new VMSVGA virtual GPU which is now the +new default in VirtualBox. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545 +Signed-off-by: Hans de Goede +Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/ +--- + drivers/virt/vboxguest/vboxguest_core.c | 163 +++++++++++++++++++++++- + drivers/virt/vboxguest/vboxguest_core.h | 14 ++ + include/uapi/linux/vboxguest.h | 24 ++++ + 3 files changed, 200 insertions(+), 1 deletion(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index 15b3cb618c6e..4f1addaa3f6f 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -679,7 +679,7 @@ static int vbg_set_host_capabilities(struct vbg_dev *gdev, + + WARN_ON(!mutex_is_locked(&gdev->session_mutex)); + +- caps = gdev->set_guest_caps_tracker.mask; ++ caps = gdev->acquired_guest_caps | gdev->set_guest_caps_tracker.mask; + + if (gdev->guest_caps_host == caps) + return 0; +@@ -703,6 +703,113 @@ static int vbg_set_host_capabilities(struct vbg_dev *gdev, + return vbg_status_code_to_errno(rc); + } + ++/** ++ * Acquire (get exclusive access) guest capabilities for a session. ++ * Takes the session mutex. ++ * Return: 0 or negative errno value. ++ * @gdev: The Guest extension device. ++ * @session: The session. ++ * @flags: Flags (VBGL_IOC_AGC_FLAGS_XXX). ++ * @or_mask: The capabilities to add. ++ * @not_mask: The capabilities to remove. ++ * @session_termination: Set if we're called by the session cleanup code. ++ * This tweaks the error handling so we perform ++ * proper session cleanup even if the host ++ * misbehaves. ++ */ ++static int vbg_acquire_session_capabilities(struct vbg_dev *gdev, ++ struct vbg_session *session, ++ u32 or_mask, u32 not_mask, ++ u32 flags, bool session_termination) ++{ ++ unsigned long irqflags; ++ bool wakeup = false; ++ int ret = 0; ++ ++ mutex_lock(&gdev->session_mutex); ++ ++ if (gdev->set_guest_caps_tracker.mask & or_mask) { ++ vbg_err("%s error: cannot acquire caps which are currently set\n", ++ __func__); ++ ret = -EINVAL; ++ goto out; ++ } ++ ++ /* ++ * Mark any caps in the or_mask as now being in acquire-mode. Note ++ * once caps are in acquire_mode they always stay in this mode. ++ * This impacts event handling, so we take the event-lock. ++ */ ++ spin_lock_irqsave(&gdev->event_spinlock, irqflags); ++ gdev->acquire_mode_guest_caps |= or_mask; ++ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); ++ ++ /* If we only have to switch the caps to acquire mode, we're done. */ ++ if (flags & VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE) ++ goto out; ++ ++ not_mask &= ~or_mask; /* or_mask takes priority over not_mask */ ++ not_mask &= session->acquired_guest_caps; ++ or_mask &= ~session->acquired_guest_caps; ++ ++ if (or_mask == 0 && not_mask == 0) ++ goto out; ++ ++ if (gdev->acquired_guest_caps & or_mask) { ++ ret = -EBUSY; ++ goto out; ++ } ++ ++ gdev->acquired_guest_caps |= or_mask; ++ gdev->acquired_guest_caps &= ~not_mask; ++ /* session->acquired_guest_caps impacts event handling, take the lock */ ++ spin_lock_irqsave(&gdev->event_spinlock, irqflags); ++ session->acquired_guest_caps |= or_mask; ++ session->acquired_guest_caps &= ~not_mask; ++ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); ++ ++ ret = vbg_set_host_capabilities(gdev, session, session_termination); ++ /* Roll back on failure, unless it's session termination time. */ ++ if (ret < 0 && !session_termination) { ++ gdev->acquired_guest_caps &= ~or_mask; ++ gdev->acquired_guest_caps |= not_mask; ++ spin_lock_irqsave(&gdev->event_spinlock, irqflags); ++ session->acquired_guest_caps &= ~or_mask; ++ session->acquired_guest_caps |= not_mask; ++ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); ++ } ++ ++ /* ++ * If we added a capability, check if that means some other thread in ++ * our session should be unblocked because there are events pending ++ * (the result of vbg_get_allowed_event_mask_for_session() may change). ++ * ++ * HACK ALERT! When the seamless support capability is added we generate ++ * a seamless change event so that the ring-3 client can sync with ++ * the seamless state. ++ */ ++ if (ret == 0 && or_mask != 0) { ++ spin_lock_irqsave(&gdev->event_spinlock, irqflags); ++ ++ if (or_mask & VMMDEV_GUEST_SUPPORTS_SEAMLESS) ++ gdev->pending_events |= ++ VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST; ++ ++ if (gdev->pending_events) ++ wakeup = true; ++ ++ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); ++ ++ if (wakeup) ++ wake_up(&gdev->event_wq); ++ } ++ ++out: ++ mutex_unlock(&gdev->session_mutex); ++ ++ return ret; ++} ++ + /** + * Sets the guest capabilities for a session. Takes the session spinlock. + * Return: 0 or negative errno value. +@@ -725,6 +832,13 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, + + mutex_lock(&gdev->session_mutex); + ++ if (gdev->acquire_mode_guest_caps & or_mask) { ++ vbg_err("%s error: cannot set caps which are in acquire_mode\n", ++ __func__); ++ ret = -EBUSY; ++ goto out; ++ } ++ + /* Apply the changes to the session mask. */ + previous = session->set_guest_caps; + session->set_guest_caps |= or_mask; +@@ -962,6 +1076,7 @@ void vbg_core_close_session(struct vbg_session *session) + struct vbg_dev *gdev = session->gdev; + int i, rc; + ++ vbg_acquire_session_capabilities(gdev, session, 0, U32_MAX, 0, true); + vbg_set_session_capabilities(gdev, session, 0, U32_MAX, true); + vbg_set_session_event_filter(gdev, session, 0, U32_MAX, true); + +@@ -1019,6 +1134,25 @@ static int vbg_ioctl_driver_version_info( + return 0; + } + ++/* Must be called with the event_lock held */ ++static u32 vbg_get_allowed_event_mask_for_session(struct vbg_dev *gdev, ++ struct vbg_session *session) ++{ ++ u32 acquire_mode_caps = gdev->acquire_mode_guest_caps; ++ u32 session_acquired_caps = session->acquired_guest_caps; ++ u32 allowed_events = VMMDEV_EVENT_VALID_EVENT_MASK; ++ ++ if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS) && ++ !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS)) ++ allowed_events &= ~VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST; ++ ++ if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS) && ++ !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS)) ++ allowed_events &= ~VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST; ++ ++ return allowed_events; ++} ++ + static bool vbg_wait_event_cond(struct vbg_dev *gdev, + struct vbg_session *session, + u32 event_mask) +@@ -1030,6 +1164,7 @@ static bool vbg_wait_event_cond(struct vbg_dev *gdev, + spin_lock_irqsave(&gdev->event_spinlock, flags); + + events = gdev->pending_events & event_mask; ++ events &= vbg_get_allowed_event_mask_for_session(gdev, session); + wakeup = events || session->cancel_waiters; + + spin_unlock_irqrestore(&gdev->event_spinlock, flags); +@@ -1044,6 +1179,7 @@ static u32 vbg_consume_events_locked(struct vbg_dev *gdev, + { + u32 events = gdev->pending_events & event_mask; + ++ events &= vbg_get_allowed_event_mask_for_session(gdev, session); + gdev->pending_events &= ~events; + return events; + } +@@ -1445,6 +1581,29 @@ static int vbg_ioctl_change_filter_mask(struct vbg_dev *gdev, + false); + } + ++static int vbg_ioctl_acquire_guest_capabilities(struct vbg_dev *gdev, ++ struct vbg_session *session, ++ struct vbg_ioctl_acquire_guest_caps *caps) ++{ ++ u32 flags, or_mask, not_mask; ++ ++ if (vbg_ioctl_chk(&caps->hdr, sizeof(caps->u.in), 0)) ++ return -EINVAL; ++ ++ flags = caps->u.in.flags; ++ or_mask = caps->u.in.or_mask; ++ not_mask = caps->u.in.not_mask; ++ ++ if (flags & ~VBGL_IOC_AGC_FLAGS_VALID_MASK) ++ return -EINVAL; ++ ++ if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK) ++ return -EINVAL; ++ ++ return vbg_acquire_session_capabilities(gdev, session, or_mask, ++ not_mask, flags, false); ++} ++ + static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev, + struct vbg_session *session, struct vbg_ioctl_set_guest_caps *caps) + { +@@ -1554,6 +1713,8 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) + return vbg_ioctl_interrupt_all_wait_events(gdev, session, data); + case VBG_IOCTL_CHANGE_FILTER_MASK: + return vbg_ioctl_change_filter_mask(gdev, session, data); ++ case VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: ++ return vbg_ioctl_acquire_guest_capabilities(gdev, session, data); + case VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: + return vbg_ioctl_change_guest_capabilities(gdev, session, data); + case VBG_IOCTL_CHECK_BALLOON: +diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h +index dc745a033164..ab4bf64e2cec 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.h ++++ b/drivers/virt/vboxguest/vboxguest_core.h +@@ -117,6 +117,15 @@ struct vbg_dev { + */ + u32 event_filter_host; + ++ /** ++ * Guest capabilities which have been switched to acquire_mode. ++ */ ++ u32 acquire_mode_guest_caps; ++ /** ++ * Guest capabilities acquired by vbg_acquire_session_capabilities(). ++ * Only one session can acquire a capability at a time. ++ */ ++ u32 acquired_guest_caps; + /** + * Usage counters for guest capabilities requested through + * vbg_set_session_capabilities(). Indexed by capability bit +@@ -164,6 +173,11 @@ struct vbg_session { + * host filter. Protected by vbg_gdev.session_mutex. + */ + u32 event_filter; ++ /** ++ * Guest capabilities acquired by vbg_acquire_session_capabilities(). ++ * Only one session can acquire a capability at a time. ++ */ ++ u32 acquired_guest_caps; + /** + * Guest capabilities set through vbg_set_session_capabilities(). + * A capability claimed by any guest session will be reported to the +diff --git a/include/uapi/linux/vboxguest.h b/include/uapi/linux/vboxguest.h +index f79d7abe27db..15125f6ec60d 100644 +--- a/include/uapi/linux/vboxguest.h ++++ b/include/uapi/linux/vboxguest.h +@@ -257,6 +257,30 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_change_filter, 24 + 8); + _IOWR('V', 12, struct vbg_ioctl_change_filter) + + ++/** VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES data structure. */ ++struct vbg_ioctl_acquire_guest_caps { ++ /** The header. */ ++ struct vbg_ioctl_hdr hdr; ++ union { ++ struct { ++ /** Flags (VBGL_IOC_AGC_FLAGS_XXX). */ ++ __u32 flags; ++ /** Capabilities to set (VMMDEV_GUEST_SUPPORTS_XXX). */ ++ __u32 or_mask; ++ /** Capabilities to drop (VMMDEV_GUEST_SUPPORTS_XXX). */ ++ __u32 not_mask; ++ } in; ++ } u; ++}; ++VMMDEV_ASSERT_SIZE(vbg_ioctl_acquire_guest_caps, 24 + 12); ++ ++#define VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE 0x00000001 ++#define VBGL_IOC_AGC_FLAGS_VALID_MASK 0x00000001 ++ ++#define VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES \ ++ _IOWR('V', 13, struct vbg_ioctl_acquire_guest_caps) ++ ++ + /** VBG_IOCTL_CHANGE_GUEST_CAPABILITIES data structure. */ + struct vbg_ioctl_set_guest_caps { + /** The header. */ +-- +2.26.2 + diff --git a/0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch b/0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch new file mode 100644 index 000000000..3362eaddf --- /dev/null +++ b/0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch @@ -0,0 +1,130 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 15:30:29 +0200 +Subject: [PATCH] virt: vbox: Add vbg_set_host_capabilities() helper function + +Add vbg_set_host_capabilities() helper function, this is a preparation +patch for adding support for the VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl. + +Signed-off-by: Hans de Goede +Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/ +--- + drivers/virt/vboxguest/vboxguest_core.c | 79 ++++++++++++++----------- + 1 file changed, 46 insertions(+), 33 deletions(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index aee5eff229f2..15b3cb618c6e 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -661,6 +661,48 @@ static int vbg_reset_host_capabilities(struct vbg_dev *gdev) + return vbg_status_code_to_errno(rc); + } + ++/** ++ * Set guest capabilities on the host. ++ * Must be called with gdev->session_mutex hold. ++ * Return: 0 or negative errno value. ++ * @gdev: The Guest extension device. ++ * @session: The session. ++ * @session_termination: Set if we're called by the session cleanup code. ++ */ ++static int vbg_set_host_capabilities(struct vbg_dev *gdev, ++ struct vbg_session *session, ++ bool session_termination) ++{ ++ struct vmmdev_mask *req; ++ u32 caps; ++ int rc; ++ ++ WARN_ON(!mutex_is_locked(&gdev->session_mutex)); ++ ++ caps = gdev->set_guest_caps_tracker.mask; ++ ++ if (gdev->guest_caps_host == caps) ++ return 0; ++ ++ /* On termination the requestor is the kernel, as we're cleaning up. */ ++ req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES, ++ session_termination ? VBG_KERNEL_REQUEST : ++ session->requestor); ++ if (!req) { ++ gdev->guest_caps_host = U32_MAX; ++ return -ENOMEM; ++ } ++ ++ req->or_mask = caps; ++ req->not_mask = ~caps; ++ rc = vbg_req_perform(gdev, req); ++ vbg_req_free(req, sizeof(*req)); ++ ++ gdev->guest_caps_host = (rc >= 0) ? caps : U32_MAX; ++ ++ return vbg_status_code_to_errno(rc); ++} ++ + /** + * Sets the guest capabilities for a session. Takes the session spinlock. + * Return: 0 or negative errno value. +@@ -678,23 +720,8 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, + u32 or_mask, u32 not_mask, + bool session_termination) + { +- struct vmmdev_mask *req; + u32 changed, previous; +- int rc, ret = 0; +- +- /* +- * Allocate a request buffer before taking the spinlock, when +- * the session is being terminated the requestor is the kernel, +- * as we're cleaning up. +- */ +- req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES, +- session_termination ? VBG_KERNEL_REQUEST : +- session->requestor); +- if (!req) { +- if (!session_termination) +- return -ENOMEM; +- /* Ignore allocation failure, we must do session cleanup. */ +- } ++ int ret = 0; + + mutex_lock(&gdev->session_mutex); + +@@ -709,23 +736,10 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, + goto out; + + vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, previous); +- or_mask = gdev->set_guest_caps_tracker.mask; +- +- if (gdev->guest_caps_host == or_mask || !req) +- goto out; +- +- gdev->guest_caps_host = or_mask; +- req->or_mask = or_mask; +- req->not_mask = ~or_mask; +- rc = vbg_req_perform(gdev, req); +- if (rc < 0) { +- ret = vbg_status_code_to_errno(rc); +- +- /* Failed, roll back (unless it's session termination time). */ +- gdev->guest_caps_host = U32_MAX; +- if (session_termination) +- goto out; + ++ ret = vbg_set_host_capabilities(gdev, session, session_termination); ++ /* Roll back on failure, unless it's session termination time. */ ++ if (ret < 0 && !session_termination) { + vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, + session->set_guest_caps); + session->set_guest_caps = previous; +@@ -733,7 +747,6 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, + + out: + mutex_unlock(&gdev->session_mutex); +- vbg_req_free(req, sizeof(*req)); + + return ret; + } +-- +2.26.2 + diff --git a/0001-virt-vbox-Fix-VBGL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch b/0001-virt-vbox-Fix-VBGL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch new file mode 100644 index 000000000..daf372ec2 --- /dev/null +++ b/0001-virt-vbox-Fix-VBGL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch @@ -0,0 +1,123 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 12:21:30 +0200 +Subject: [PATCH] virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req + numbers to match upstream + +Until this commit the mainline kernel version (this version) of the +vboxguest module contained a bug where it defined +VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG using +_IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead of +_IO(V, ...) as the out of tree VirtualBox upstream version does. + +Since the VirtualBox userspace bits are always built against VirtualBox +upstream's headers, this means that so far the mainline kernel version +of the vboxguest module has been failing these 2 ioctls with -ENOTTY. +I guess that VBGL_IOCTL_VMMDEV_REQUEST_BIG is never used causing us to +not hit that one and sofar the vboxguest driver has failed to actually +log any log messages passed it through VBGL_IOCTL_LOG. + +This commit changes the VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG +defines to match the out of tree VirtualBox upstream vboxguest version, +while keeping compatibility with the old wrong request defines so as +to not break the kernel ABI in case someone has been using the old +request defines. + +Fixes: f6ddd094f579 ("virt: Add vboxguest driver for Virtual Box Guest integration UAPI") +Cc: stable@vger.kernel.org +Signed-off-by: Hans de Goede +Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/ +--- + drivers/virt/vboxguest/vboxguest_core.c | 4 +++- + drivers/virt/vboxguest/vboxguest_core.h | 15 +++++++++++++++ + drivers/virt/vboxguest/vboxguest_linux.c | 3 ++- + include/uapi/linux/vboxguest.h | 4 ++-- + 4 files changed, 22 insertions(+), 4 deletions(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index b690a8a4bf9e..8fab04e76c14 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -1520,7 +1520,8 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) + + /* For VMMDEV_REQUEST hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT */ + if (req_no_size == VBG_IOCTL_VMMDEV_REQUEST(0) || +- req == VBG_IOCTL_VMMDEV_REQUEST_BIG) ++ req == VBG_IOCTL_VMMDEV_REQUEST_BIG || ++ req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT) + return vbg_ioctl_vmmrequest(gdev, session, data); + + if (hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT) +@@ -1558,6 +1559,7 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) + case VBG_IOCTL_HGCM_CALL(0): + return vbg_ioctl_hgcm_call(gdev, session, f32bit, data); + case VBG_IOCTL_LOG(0): ++ case VBG_IOCTL_LOG_ALT(0): + return vbg_ioctl_log(data); + } + +diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h +index 4188c12b839f..77c3a9c8255d 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.h ++++ b/drivers/virt/vboxguest/vboxguest_core.h +@@ -15,6 +15,21 @@ + #include + #include "vmmdev.h" + ++/* ++ * The mainline kernel version (this version) of the vboxguest module ++ * contained a bug where it defined VBGL_IOCTL_VMMDEV_REQUEST_BIG and ++ * VBGL_IOCTL_LOG using _IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead ++ * of _IO(V, ...) as the out of tree VirtualBox upstream version does. ++ * ++ * These _ALT definitions keep compatibility with the wrong defines the ++ * mainline kernel version used for a while. ++ * Note the VirtualBox userspace bits have always been built against ++ * VirtualBox upstream's headers, so this is likely not necessary. But ++ * we must never break our ABI so we keep these around to be 100% sure. ++ */ ++#define VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0) ++#define VBG_IOCTL_LOG_ALT(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s) ++ + struct vbg_session; + + /** VBox guest memory balloon. */ +diff --git a/drivers/virt/vboxguest/vboxguest_linux.c b/drivers/virt/vboxguest/vboxguest_linux.c +index 6e8c0f1c1056..32c2c52f7e84 100644 +--- a/drivers/virt/vboxguest/vboxguest_linux.c ++++ b/drivers/virt/vboxguest/vboxguest_linux.c +@@ -131,7 +131,8 @@ static long vbg_misc_device_ioctl(struct file *filp, unsigned int req, + * the need for a bounce-buffer and another copy later on. + */ + is_vmmdev_req = (req & ~IOCSIZE_MASK) == VBG_IOCTL_VMMDEV_REQUEST(0) || +- req == VBG_IOCTL_VMMDEV_REQUEST_BIG; ++ req == VBG_IOCTL_VMMDEV_REQUEST_BIG || ++ req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT; + + if (is_vmmdev_req) + buf = vbg_req_alloc(size, VBG_IOCTL_HDR_TYPE_DEFAULT, +diff --git a/include/uapi/linux/vboxguest.h b/include/uapi/linux/vboxguest.h +index 9cec58a6a5ea..f79d7abe27db 100644 +--- a/include/uapi/linux/vboxguest.h ++++ b/include/uapi/linux/vboxguest.h +@@ -103,7 +103,7 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_driver_version_info, 24 + 20); + + + /* IOCTL to perform a VMM Device request larger then 1KB. */ +-#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0) ++#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IO('V', 3) + + + /** VBG_IOCTL_HGCM_CONNECT data structure. */ +@@ -198,7 +198,7 @@ struct vbg_ioctl_log { + } u; + }; + +-#define VBG_IOCTL_LOG(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s) ++#define VBG_IOCTL_LOG(s) _IO('V', 9) + + + /** VBG_IOCTL_WAIT_FOR_EVENTS data structure. */ +-- +2.26.2 + diff --git a/0001-virt-vbox-Fix-guest-capabilities-mask-check.patch b/0001-virt-vbox-Fix-guest-capabilities-mask-check.patch new file mode 100644 index 000000000..77dbde8f5 --- /dev/null +++ b/0001-virt-vbox-Fix-guest-capabilities-mask-check.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 13:23:06 +0200 +Subject: [PATCH] virt: vbox: Fix guest capabilities mask check + +Check the passed in capabilities against VMMDEV_GUEST_CAPABILITIES_MASK +instead of against VMMDEV_EVENT_VALID_EVENT_MASK. +This tightens the allowed mask from 0x7ff to 0x7. + +Fixes: 0ba002bc4393 ("virt: Add vboxguest driver for Virtual Box Guest integration") +Cc: stable@vger.kernel.org +Signed-off-by: Hans de Goede +Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/ +--- + drivers/virt/vboxguest/vboxguest_core.c | 2 +- + drivers/virt/vboxguest/vmmdev.h | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index 8fab04e76c14..18ebd7a6af98 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -1444,7 +1444,7 @@ static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev, + or_mask = caps->u.in.or_mask; + not_mask = caps->u.in.not_mask; + +- if ((or_mask | not_mask) & ~VMMDEV_EVENT_VALID_EVENT_MASK) ++ if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK) + return -EINVAL; + + ret = vbg_set_session_capabilities(gdev, session, or_mask, not_mask, +diff --git a/drivers/virt/vboxguest/vmmdev.h b/drivers/virt/vboxguest/vmmdev.h +index 6337b8d75d96..21f408120e3f 100644 +--- a/drivers/virt/vboxguest/vmmdev.h ++++ b/drivers/virt/vboxguest/vmmdev.h +@@ -206,6 +206,8 @@ VMMDEV_ASSERT_SIZE(vmmdev_mask, 24 + 8); + * not. + */ + #define VMMDEV_GUEST_SUPPORTS_GRAPHICS BIT(2) ++/* The mask of valid capabilities, for sanity checking. */ ++#define VMMDEV_GUEST_CAPABILITIES_MASK 0x00000007U + + /** struct vmmdev_hypervisorinfo - Hypervisor info structure. */ + struct vmmdev_hypervisorinfo { +-- +2.26.2 + diff --git a/0001-virt-vbox-Log-unknown-ioctl-requests-as-error.patch b/0001-virt-vbox-Log-unknown-ioctl-requests-as-error.patch new file mode 100644 index 000000000..b9a90c4cd --- /dev/null +++ b/0001-virt-vbox-Log-unknown-ioctl-requests-as-error.patch @@ -0,0 +1,30 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 11:24:43 +0200 +Subject: [PATCH] virt: vbox: Log unknown ioctl requests as error + +Every now and then upstream adds new ioctls without notifying us, +log unknown ioctl requests as an error to catch these. + +Signed-off-by: Hans de Goede +Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/ +--- + drivers/virt/vboxguest/vboxguest_core.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index ffd76b949276..e0e343d0ba93 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -1739,7 +1739,7 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) + return vbg_ioctl_log(data); + } + +- vbg_debug("VGDrvCommonIoCtl: Unknown req %#08x\n", req); ++ vbg_err("Userspace made an unknown ioctl req %#08x\n", req); + return -ENOTTY; + } + +-- +2.26.2 + diff --git a/0001-virt-vbox-Rename-guest_caps-struct-members-to-set_gu.patch b/0001-virt-vbox-Rename-guest_caps-struct-members-to-set_gu.patch new file mode 100644 index 000000000..e92eac034 --- /dev/null +++ b/0001-virt-vbox-Rename-guest_caps-struct-members-to-set_gu.patch @@ -0,0 +1,103 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 19 May 2020 14:33:13 +0200 +Subject: [PATCH] virt: vbox: Rename guest_caps struct members to + set_guest_caps + +Rename guest_caps[_tracker] struct members to set_guest_caps[_tracker] +this is a preparation patch for adding support for the +VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl. + +Signed-off-by: Hans de Goede +Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/ +--- + drivers/virt/vboxguest/vboxguest_core.c | 20 ++++++++++---------- + drivers/virt/vboxguest/vboxguest_core.h | 9 +++++---- + 2 files changed, 15 insertions(+), 14 deletions(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index 18ebd7a6af98..aee5eff229f2 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -699,17 +699,17 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, + mutex_lock(&gdev->session_mutex); + + /* Apply the changes to the session mask. */ +- previous = session->guest_caps; +- session->guest_caps |= or_mask; +- session->guest_caps &= ~not_mask; ++ previous = session->set_guest_caps; ++ session->set_guest_caps |= or_mask; ++ session->set_guest_caps &= ~not_mask; + + /* If anything actually changed, update the global usage counters. */ +- changed = previous ^ session->guest_caps; ++ changed = previous ^ session->set_guest_caps; + if (!changed) + goto out; + +- vbg_track_bit_usage(&gdev->guest_caps_tracker, changed, previous); +- or_mask = gdev->guest_caps_tracker.mask; ++ vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, previous); ++ or_mask = gdev->set_guest_caps_tracker.mask; + + if (gdev->guest_caps_host == or_mask || !req) + goto out; +@@ -726,9 +726,9 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, + if (session_termination) + goto out; + +- vbg_track_bit_usage(&gdev->guest_caps_tracker, changed, +- session->guest_caps); +- session->guest_caps = previous; ++ vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, ++ session->set_guest_caps); ++ session->set_guest_caps = previous; + } + + out: +@@ -1452,7 +1452,7 @@ static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev, + if (ret) + return ret; + +- caps->u.out.session_caps = session->guest_caps; ++ caps->u.out.session_caps = session->set_guest_caps; + caps->u.out.global_caps = gdev->guest_caps_host; + + return 0; +diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h +index 77c3a9c8255d..dc745a033164 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.h ++++ b/drivers/virt/vboxguest/vboxguest_core.h +@@ -118,11 +118,12 @@ struct vbg_dev { + u32 event_filter_host; + + /** +- * Usage counters for guest capabilities. Indexed by capability bit ++ * Usage counters for guest capabilities requested through ++ * vbg_set_session_capabilities(). Indexed by capability bit + * number, one count per session using a capability. + * Protected by session_mutex. + */ +- struct vbg_bit_usage_tracker guest_caps_tracker; ++ struct vbg_bit_usage_tracker set_guest_caps_tracker; + /** + * The guest capabilities last reported to the host (or UINT32_MAX). + * Protected by session_mutex. +@@ -164,11 +165,11 @@ struct vbg_session { + */ + u32 event_filter; + /** +- * Guest capabilities for this session. ++ * Guest capabilities set through vbg_set_session_capabilities(). + * A capability claimed by any guest session will be reported to the + * host. Protected by vbg_gdev.session_mutex. + */ +- u32 guest_caps; ++ u32 set_guest_caps; + /** VMMDEV_REQUESTOR_* flags */ + u32 requestor; + /** Set on CANCEL_ALL_WAITEVENTS, protected by vbg_devevent_spinlock. */ +-- +2.26.2 + diff --git a/0001-xfs-add-agf-freeblocks-verify-in-xfs_agf_verify.patch b/0001-xfs-add-agf-freeblocks-verify-in-xfs_agf_verify.patch deleted file mode 100644 index 8409a1f30..000000000 --- a/0001-xfs-add-agf-freeblocks-verify-in-xfs_agf_verify.patch +++ /dev/null @@ -1,107 +0,0 @@ -From d0c7feaf87678371c2c09b3709400be416b2dc62 Mon Sep 17 00:00:00 2001 -From: Zheng Bin -Date: Fri, 21 Feb 2020 07:38:20 -0800 -Subject: [PATCH] xfs: add agf freeblocks verify in xfs_agf_verify - -We recently used fuzz(hydra) to test XFS and automatically generate -tmp.img(XFS v5 format, but some metadata is wrong) - -xfs_repair information(just one AG): -agf_freeblks 0, counted 3224 in ag 0 -agf_longest 536874136, counted 3224 in ag 0 -sb_fdblocks 613, counted 3228 - -Test as follows: -mount tmp.img tmpdir -cp file1M tmpdir -sync - -In 4.19-stable, sync will stuck, the reason is: -xfs_mountfs - xfs_check_summary_counts - if ((!xfs_sb_version_haslazysbcount(&mp->m_sb) || - XFS_LAST_UNMOUNT_WAS_CLEAN(mp)) && - !xfs_fs_has_sickness(mp, XFS_SICK_FS_COUNTERS)) - return 0; -->just return, incore sb_fdblocks still be 613 - xfs_initialize_perag_data - -cp file1M tmpdir -->ok(write file to pagecache) -sync -->stuck(write pagecache to disk) -xfs_map_blocks - xfs_iomap_write_allocate - while (count_fsb != 0) { - nimaps = 0; - while (nimaps == 0) { --> endless loop - nimaps = 1; - xfs_bmapi_write(..., &nimaps) --> nimaps becomes 0 again -xfs_bmapi_write - xfs_bmap_alloc - xfs_bmap_btalloc - xfs_alloc_vextent - xfs_alloc_fix_freelist - xfs_alloc_space_available -->fail(agf_freeblks is 0) - -In linux-next, sync not stuck, cause commit c2b3164320b5 ("xfs: -use the latest extent at writeback delalloc conversion time") remove -the above while, dmesg is as follows: -[ 55.250114] XFS (loop0): page discard on page ffffea0008bc7380, inode 0x1b0c, offset 0. - -Users do not know why this page is discard, the better soultion is: -1. Like xfs_repair, make sure sb_fdblocks is equal to counted -(xfs_initialize_perag_data did this, who is not called at this mount) -2. Add agf verify, if fail, will tell users to repair - -This patch use the second soultion. - -Signed-off-by: Zheng Bin -Signed-off-by: Ren Xudong -Reviewed-by: Darrick J. Wong -Signed-off-by: Darrick J. Wong ---- - fs/xfs/libxfs/xfs_alloc.c | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c -index d8053bc96c4d..183dc2587092 100644 ---- a/fs/xfs/libxfs/xfs_alloc.c -+++ b/fs/xfs/libxfs/xfs_alloc.c -@@ -2858,6 +2858,13 @@ xfs_agf_verify( - be32_to_cpu(agf->agf_flcount) <= xfs_agfl_size(mp))) - return __this_address; - -+ if (be32_to_cpu(agf->agf_length) > mp->m_sb.sb_dblocks) -+ return __this_address; -+ -+ if (be32_to_cpu(agf->agf_freeblks) < be32_to_cpu(agf->agf_longest) || -+ be32_to_cpu(agf->agf_freeblks) > be32_to_cpu(agf->agf_length)) -+ return __this_address; -+ - if (be32_to_cpu(agf->agf_levels[XFS_BTNUM_BNO]) < 1 || - be32_to_cpu(agf->agf_levels[XFS_BTNUM_CNT]) < 1 || - be32_to_cpu(agf->agf_levels[XFS_BTNUM_BNO]) > XFS_BTREE_MAXLEVELS || -@@ -2869,6 +2876,10 @@ xfs_agf_verify( - be32_to_cpu(agf->agf_levels[XFS_BTNUM_RMAP]) > XFS_BTREE_MAXLEVELS)) - return __this_address; - -+ if (xfs_sb_version_hasrmapbt(&mp->m_sb) && -+ be32_to_cpu(agf->agf_rmap_blocks) > be32_to_cpu(agf->agf_length)) -+ return __this_address; -+ - /* - * during growfs operations, the perag is not fully initialised, - * so we can't use it for any useful checking. growfs ensures we can't -@@ -2882,6 +2893,11 @@ xfs_agf_verify( - be32_to_cpu(agf->agf_btreeblks) > be32_to_cpu(agf->agf_length)) - return __this_address; - -+ if (xfs_sb_version_hasreflink(&mp->m_sb) && -+ be32_to_cpu(agf->agf_refcount_blocks) > -+ be32_to_cpu(agf->agf_length)) -+ return __this_address; -+ - if (xfs_sb_version_hasreflink(&mp->m_sb) && - (be32_to_cpu(agf->agf_refcount_level) < 1 || - be32_to_cpu(agf->agf_refcount_level) > XFS_BTREE_MAXLEVELS)) --- -2.26.2 - diff --git a/ARM-dts-bcm2711-Move-emmc2-into-its-own-bus.patch b/ARM-dts-bcm2711-Move-emmc2-into-its-own-bus.patch deleted file mode 100644 index dd0087104..000000000 --- a/ARM-dts-bcm2711-Move-emmc2-into-its-own-bus.patch +++ /dev/null @@ -1,168 +0,0 @@ -From patchwork Wed Mar 4 13:24:37 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11420129 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C6D01139A - for ; - Wed, 4 Mar 2020 13:24:52 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 8EA4C20848 - for ; - Wed, 4 Mar 2020 13:24:52 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="rVot4hOX" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8EA4C20848 -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=suse.de -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To - :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: - Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: - List-Owner; bh=8vOVvuwuEiZ/+aeWTFI6G54jitKev/MSiGHvL/NuYpM=; b=rVot4hOXzlJULi - AIV0tWo7xq5srSJPr0aW3ccsKyfTNsVGmB0Y4G8A2Wqd+29xOVNJGk9jIAaRqBaAEGozzfFQj8JuQ - YRKsDyKXSMgpM5EHFtlq7TSvY21pe6uHhTkMCYnhLdZu7BrX9V2BLfnG7b7kx+wVgh2SDk5Tu8iJI - 3vNkR22Qd4bIZAMQVwr97BN6IasYg2C9Q1hACZKKYVTxOvCw1MDDfedhRK9IxgZXV8eacZco5TlC+ - 3FlBQSP6dxBhpgAZ2VSD8k94TZe8Vnj1HMmja4MShu5hUOaBMzV/cvTA0y9OFseFvzL3YES1oyPzk - vPYT4iiUYIWQEEsfDJoA==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j9U10-0004Kq-KB; Wed, 04 Mar 2020 13:24:46 +0000 -Received: from mx2.suse.de ([195.135.220.15]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j9U0x-0004KG-Lg; Wed, 04 Mar 2020 13:24:45 +0000 -X-Virus-Scanned: by amavisd-new at test-mx.suse.de -Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id 28610AAC7; - Wed, 4 Mar 2020 13:24:42 +0000 (UTC) -From: Nicolas Saenz Julienne -To: Rob Herring , - Nicolas Saenz Julienne -Subject: [PATCH v2] ARM: dts: bcm2711: Move emmc2 into its own bus -Date: Wed, 4 Mar 2020 14:24:37 +0100 -Message-Id: <20200304132437.20164-1-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.25.1 -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200304_052443_860022_0913505C -X-CRM114-Status: GOOD ( 14.37 ) -X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-2.3 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, - medium trust [195.135.220.15 listed in list.dnswl.org] - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] - 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, phil@raspberrypi.org, - linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, - linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -Depending on bcm2711's revision its emmc2 controller might have -different DMA constraints. Raspberry Pi 4's firmware will take care of -updating those, but only if a certain alias is found in the device tree. -So, move emmc2 into its own bus, so as not to pollute other devices with -dma-ranges changes and create the emmc2bus alias. - -Based in Phil ELwell's downstream implementation. - -Signed-off-by: Nicolas Saenz Julienne ---- - -Changes since v1: - - Add comment in dt - - Fix commit title - - arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 1 + - arch/arm/boot/dts/bcm2711.dtsi | 25 ++++++++++++++++++++----- - 2 files changed, 21 insertions(+), 5 deletions(-) - -diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts -index 1d4b589fe233..e26ea9006378 100644 ---- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts -+++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts -@@ -20,6 +20,7 @@ memory@0 { - }; - - aliases { -+ emmc2bus = &emmc2bus; - ethernet0 = &genet; - pcie0 = &pcie0; - }; -diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi -index d1e684d0acfd..a91cf68e3c4c 100644 ---- a/arch/arm/boot/dts/bcm2711.dtsi -+++ b/arch/arm/boot/dts/bcm2711.dtsi -@@ -241,17 +241,32 @@ pwm1: pwm@7e20c800 { - status = "disabled"; - }; - -+ hvs@7e400000 { -+ interrupts = ; -+ }; -+ }; -+ -+ /* -+ * emmc2 has different DMA constraints based on SoC revisions. It was -+ * moved into its own bus, so as for RPi4's firmware to update them. -+ * The firmware will find whether the emmc2bus alias is defined, and if -+ * so, it'll edit the dma-ranges property below accordingly. -+ */ -+ emmc2bus: emmc2bus { -+ compatible = "simple-bus"; -+ #address-cells = <2>; -+ #size-cells = <1>; -+ -+ ranges = <0x0 0x7e000000 0x0 0xfe000000 0x01800000>; -+ dma-ranges = <0x0 0xc0000000 0x0 0x00000000 0x40000000>; -+ - emmc2: emmc2@7e340000 { - compatible = "brcm,bcm2711-emmc2"; -- reg = <0x7e340000 0x100>; -+ reg = <0x0 0x7e340000 0x100>; - interrupts = ; - clocks = <&clocks BCM2711_CLOCK_EMMC2>; - status = "disabled"; - }; -- -- hvs@7e400000 { -- interrupts = ; -- }; - }; - - arm-pmu { diff --git a/ARM64-Tegra-fixes.patch b/ARM64-Tegra-fixes.patch deleted file mode 100644 index 6ddfc2322..000000000 --- a/ARM64-Tegra-fixes.patch +++ /dev/null @@ -1,477 +0,0 @@ -From patchwork Mon Feb 24 14:34:33 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Jon Hunter -X-Patchwork-Id: 1243145 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; spf=none (no SPF record) - smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; - helo=vger.kernel.org; - envelope-from=linux-tegra-owner@vger.kernel.org; - receiver=) -Authentication-Results: ozlabs.org; - dmarc=pass (p=none dis=none) header.from=nvidia.com -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=nvidia.com header.i=@nvidia.com - header.a=rsa-sha256 header.s=n1 header.b=duOxTEf6; - dkim-atps=neutral -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by ozlabs.org (Postfix) with ESMTP id 48R4Mz3K4gz9sRR - for ; - Tue, 25 Feb 2020 01:34:55 +1100 (AEDT) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1727815AbgBXOew (ORCPT ); - Mon, 24 Feb 2020 09:34:52 -0500 -Received: from hqnvemgate24.nvidia.com ([216.228.121.143]:6094 "EHLO - hqnvemgate24.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1727498AbgBXOew (ORCPT - ); - Mon, 24 Feb 2020 09:34:52 -0500 -Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by - hqnvemgate24.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) - id ; Mon, 24 Feb 2020 06:33:35 -0800 -Received: from hqmail.nvidia.com ([172.20.161.6]) - by hqpgpgate101.nvidia.com (PGP Universal service); - Mon, 24 Feb 2020 06:34:51 -0800 -X-PGP-Universal: processed; - by hqpgpgate101.nvidia.com on Mon, 24 Feb 2020 06:34:51 -0800 -Received: from HQMAIL105.nvidia.com (172.20.187.12) by HQMAIL101.nvidia.com - (172.20.187.10) with Microsoft SMTP Server (TLS) id 15.0.1473.3; - Mon, 24 Feb 2020 14:34:50 +0000 -Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL105.nvidia.com - (172.20.187.12) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via - Frontend Transport; Mon, 24 Feb 2020 14:34:50 +0000 -Received: from thunderball.nvidia.com (Not Verified[10.21.140.91]) by - rnnvemgw01.nvidia.com with Trustwave SEG (v7, 5, 8, 10121) - id ; Mon, 24 Feb 2020 06:34:50 -0800 -From: Jon Hunter -To: Thierry Reding -CC: , , - Jon Hunter , -Subject: [PATCH 1/4] ARM64: Tegra: Enable I2C controller for EEPROM -Date: Mon, 24 Feb 2020 14:34:33 +0000 -Message-ID: <20200224143436.5438-1-jonathanh@nvidia.com> -X-Mailer: git-send-email 2.17.1 -X-NVConfidentiality: public -MIME-Version: 1.0 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; - t=1582554815; bh=SKhUz0YkoB6pD4YoE/4KFxZbYw2qmSp519cZdmcBM3o=; - h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: - X-NVConfidentiality:MIME-Version:Content-Type; - b=duOxTEf6wTpBnmdA4GzgtJ0CYXr5t34ZZNN48pc9hExmRqaCcppGHAY2wcXqnjNmL - YwvDy0gfFikGS9gPJKICW2X6f4iOcgfnVhYOWdgnzSFD1bhtOoN+bEcXPC+LRDY89m - uAwuuKQR4MMohz9C8MW8xyatlc13ZEU0jeW1+S3PYfX2GhwRUooeFCGnmLUso5s2DZ - 65p26CoCGdQNBARsw2TNevBzLshNSXvHBdlFiKSs4S0hB7yJJrCwZx2JsjOm+aRtb3 - dgVHvAZAd8GLLKC8NvPCAhbIRhDt0vkyWmqHnB5suduti7g4QA1Eb8HLAXB5ptvzeK - jor+qP+NC8CVQ== -Sender: linux-tegra-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-tegra@vger.kernel.org - -Commit a5b6b67364cb ("arm64: tegra: Add ID EEPROM for Jetson TX1 -module") populated the EEPROM on the Jetson TX1 module, but did not -enable the corresponding I2C controller. Enable the I2C controller so -that this EEPROM can be accessed. - -Fixes: a5b6b67364cb ("arm64: tegra: Add ID EEPROM for Jetson TX1 module") - -Cc: -Signed-off-by: Jon Hunter ---- - arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi -index cb58f79deb48..95b1a6e76e6e 100644 ---- a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi -+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi -@@ -265,6 +265,8 @@ - }; - - i2c@7000c500 { -+ status = "okay"; -+ - /* module ID EEPROM */ - eeprom@50 { - compatible = "atmel,24c02"; - -From patchwork Mon Feb 24 14:34:34 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Jon Hunter -X-Patchwork-Id: 1243146 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; spf=none (no SPF record) - smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; - helo=vger.kernel.org; - envelope-from=linux-tegra-owner@vger.kernel.org; - receiver=) -Authentication-Results: ozlabs.org; - dmarc=pass (p=none dis=none) header.from=nvidia.com -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=nvidia.com header.i=@nvidia.com - header.a=rsa-sha256 header.s=n1 header.b=YrupJt5o; - dkim-atps=neutral -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by ozlabs.org (Postfix) with ESMTP id 48R4N1059Pz9sRR - for ; - Tue, 25 Feb 2020 01:34:57 +1100 (AEDT) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1727498AbgBXOe4 (ORCPT ); - Mon, 24 Feb 2020 09:34:56 -0500 -Received: from hqnvemgate25.nvidia.com ([216.228.121.64]:8365 "EHLO - hqnvemgate25.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1727803AbgBXOe4 (ORCPT - ); - Mon, 24 Feb 2020 09:34:56 -0500 -Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by - hqnvemgate25.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) - id ; Mon, 24 Feb 2020 06:34:20 -0800 -Received: from hqmail.nvidia.com ([172.20.161.6]) - by hqpgpgate101.nvidia.com (PGP Universal service); - Mon, 24 Feb 2020 06:34:55 -0800 -X-PGP-Universal: processed; - by hqpgpgate101.nvidia.com on Mon, 24 Feb 2020 06:34:55 -0800 -Received: from HQMAIL107.nvidia.com (172.20.187.13) by HQMAIL109.nvidia.com - (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; - Mon, 24 Feb 2020 14:34:55 +0000 -Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL107.nvidia.com - (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via - Frontend Transport; Mon, 24 Feb 2020 14:34:55 +0000 -Received: from thunderball.nvidia.com (Not Verified[10.21.140.91]) by - rnnvemgw01.nvidia.com with Trustwave SEG (v7, 5, 8, 10121) - id ; Mon, 24 Feb 2020 06:34:54 -0800 -From: Jon Hunter -To: Thierry Reding -CC: , , - Jon Hunter -Subject: [PATCH 2/4] ARM64: tegra: Add EEPROM supplies -Date: Mon, 24 Feb 2020 14:34:34 +0000 -Message-ID: <20200224143436.5438-2-jonathanh@nvidia.com> -X-Mailer: git-send-email 2.17.1 -In-Reply-To: <20200224143436.5438-1-jonathanh@nvidia.com> -References: <20200224143436.5438-1-jonathanh@nvidia.com> -X-NVConfidentiality: public -MIME-Version: 1.0 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; - t=1582554860; bh=XQRed+hM+dOmUn7lEyFBRTITiHe/kmVf6bYnTKyb4yU=; - h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: - In-Reply-To:References:X-NVConfidentiality:MIME-Version: - Content-Type; - b=YrupJt5osNrArZbD3/6N+E76P788S2kgwb7HnwldZ99/x70lrAIXTKHOx35uqz7o0 - bsYj1jAiz+BrmkHt678TBaesev2pBBcp8G+zkGDX+M6MWEvTixhn0bBERoHpnmuhQl - 1fWBcDKGg9r4KT46RFxrjCcRek8FB1gb1nM00FneNHFyguKuZEzRuMvoPfZEPr0Pm3 - HaB3AybSYgm2KABS5aZo/a2/9sIP0Bx2St673Bx+9vz89pPr8lWjHZO9QjIUdJn2Qw - 5rEeeEdOKkbx0RMyKaPAPIdhmrnVzrcyrnZYmf0KnxXJCWitqt2cyAu6uDjPI8kiL+ - JhWqRAza5osKg== -Sender: linux-tegra-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-tegra@vger.kernel.org - -The following warning is observed on Jetson TX1, Jetson Nano and Jetson -TX2 platforms because the supply regulators are not specified for the -EEPROMs. - - WARNING KERN at24 0-0050: 0-0050 supply vcc not found, using dummy regulator - WARNING KERN at24 0-0057: 0-0057 supply vcc not found, using dummy regulator - -For both of these platforms the EEPROM is powered by the main 1.8V -supply rail and so populate the supply for these devices to fix these -warnings. - -Signed-off-by: Jon Hunter ---- - arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | 1 + - arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi | 1 + - arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 1 + - arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts | 1 + - arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 2 ++ - 5 files changed, 6 insertions(+) - -diff --git a/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts -index d7628f5afb85..961b1be0c56b 100644 ---- a/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts -+++ b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts -@@ -226,6 +226,7 @@ - compatible = "atmel,24c02"; - reg = <0x57>; - -+ vcc-supply = <&vdd_1v8>; - address-bits = <8>; - page-size = <8>; - size = <256>; -diff --git a/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi b/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi -index 947744d0f04c..da96de04d003 100644 ---- a/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi -+++ b/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi -@@ -171,6 +171,7 @@ - compatible = "atmel,24c02"; - reg = <0x50>; - -+ vcc-supply = <&vdd_1v8>; - address-bits = <8>; - page-size = <8>; - size = <256>; -diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi -index 95b1a6e76e6e..f87d2437d11c 100644 ---- a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi -+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi -@@ -272,6 +272,7 @@ - compatible = "atmel,24c02"; - reg = <0x50>; - -+ vcc-supply = <&vdd_1v8>; - address-bits = <8>; - page-size = <8>; - size = <256>; -diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts b/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts -index a3cafe39ba4c..c70a610f8e3a 100644 ---- a/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts -+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts -@@ -85,6 +85,7 @@ - compatible = "atmel,24c02"; - reg = <0x57>; - -+ vcc-supply = <&vdd_1v8>; - address-bits = <8>; - page-size = <8>; - size = <256>; -diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts b/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts -index 848afd855da6..21ed1756b889 100644 ---- a/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts -+++ b/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts -@@ -114,6 +114,7 @@ - compatible = "atmel,24c02"; - reg = <0x50>; - -+ vcc-supply = <&vdd_1v8>; - address-bits = <8>; - page-size = <8>; - size = <256>; -@@ -124,6 +125,7 @@ - compatible = "atmel,24c02"; - reg = <0x57>; - -+ vcc-supply = <&vdd_1v8>; - address-bits = <8>; - page-size = <8>; - size = <256>; - -From patchwork Mon Feb 24 14:34:35 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Jon Hunter -X-Patchwork-Id: 1243147 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; spf=none (no SPF record) - smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; - helo=vger.kernel.org; - envelope-from=linux-tegra-owner@vger.kernel.org; - receiver=) -Authentication-Results: ozlabs.org; - dmarc=pass (p=none dis=none) header.from=nvidia.com -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=nvidia.com header.i=@nvidia.com - header.a=rsa-sha256 header.s=n1 header.b=cDDn02CY; - dkim-atps=neutral -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by ozlabs.org (Postfix) with ESMTP id 48R4N43Xmtz9sRQ - for ; - Tue, 25 Feb 2020 01:35:00 +1100 (AEDT) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1727825AbgBXOfA (ORCPT ); - Mon, 24 Feb 2020 09:35:00 -0500 -Received: from hqnvemgate25.nvidia.com ([216.228.121.64]:8373 "EHLO - hqnvemgate25.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1727803AbgBXOfA (ORCPT - ); - Mon, 24 Feb 2020 09:35:00 -0500 -Received: from hqpgpgate102.nvidia.com (Not Verified[216.228.121.13]) by - hqnvemgate25.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) - id ; Mon, 24 Feb 2020 06:34:24 -0800 -Received: from hqmail.nvidia.com ([172.20.161.6]) - by hqpgpgate102.nvidia.com (PGP Universal service); - Mon, 24 Feb 2020 06:34:59 -0800 -X-PGP-Universal: processed; - by hqpgpgate102.nvidia.com on Mon, 24 Feb 2020 06:34:59 -0800 -Received: from HQMAIL107.nvidia.com (172.20.187.13) by HQMAIL109.nvidia.com - (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; - Mon, 24 Feb 2020 14:34:59 +0000 -Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL107.nvidia.com - (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via - Frontend Transport; Mon, 24 Feb 2020 14:34:58 +0000 -Received: from thunderball.nvidia.com (Not Verified[10.21.140.91]) by - rnnvemgw01.nvidia.com with Trustwave SEG (v7, 5, 8, 10121) - id ; Mon, 24 Feb 2020 06:34:58 -0800 -From: Jon Hunter -To: Thierry Reding -CC: , , - Jon Hunter , -Subject: [PATCH 3/4] ARM64: tegra: Fix Tegra186 SOR supply -Date: Mon, 24 Feb 2020 14:34:35 +0000 -Message-ID: <20200224143436.5438-3-jonathanh@nvidia.com> -X-Mailer: git-send-email 2.17.1 -In-Reply-To: <20200224143436.5438-1-jonathanh@nvidia.com> -References: <20200224143436.5438-1-jonathanh@nvidia.com> -X-NVConfidentiality: public -MIME-Version: 1.0 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; - t=1582554864; bh=lUBb2WrI059cKuJQ/lQ6zAeA/dUVGu1GIMzWYnFLzuA=; - h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: - In-Reply-To:References:X-NVConfidentiality:MIME-Version: - Content-Type; - b=cDDn02CYOMd1x5bK/t7LoZ9fYn59xu8HcaGTMnsTAUfJYYkF5vUqcWjve/5PtksEv - +bYF/ELx+KLrbyXQ4LtKHW1V8F2iDHhNR1Rrs+/MUuPuxuOXwTsaYJgLd2A/FWO54O - men6fW7E5dJS7lmfJ050sgzZs+TABrFO/dyzOfrekczCVpqlnJEsPvdpFlBbzg125A - ZW3sMSe1pW+54pvkCWL7YF/RFnb9zefc0feJmu0Ky+kMH2QOFPSvufzsFBxOr1bUaJ - wqzLNTYwY6tWNy7axusq4KLKuCViERaAqSs/UlzzsrOQHJeecBOlH2GkFi8z7JASz2 - ucv0C5PUNzlTg== -Sender: linux-tegra-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-tegra@vger.kernel.org - -The following warning is observed on the Jetson TX2 platform ... - - WARNING KERN tegra-sor 15540000.sor: 15540000.sor supply \ - vdd-hdmi-dp-pll not found, using dummy regulator - -The problem is caused because the regulator for the SOR device is -missing the '-supply' suffix in Device-Tree. Therefore, add the -'-supply' suffix to fix this warning. - -Fixes: 3fdfaf8718fa arm64: tegra: Enable DP support on Jetson TX2 - -Cc: -Signed-off-by: Jon Hunter ---- - arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts -index 961b1be0c56b..1af7f9ffb7b6 100644 ---- a/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts -+++ b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts -@@ -278,7 +278,7 @@ - status = "okay"; - - avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>; -- vdd-hdmi-dp-pll = <&vdd_1v8_ap>; -+ vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>; - - nvidia,dpaux = <&dpaux>; - }; - -From patchwork Mon Feb 24 14:34:36 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Jon Hunter -X-Patchwork-Id: 1243148 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; spf=none (no SPF record) - smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; - helo=vger.kernel.org; - envelope-from=linux-tegra-owner@vger.kernel.org; - receiver=) -Authentication-Results: ozlabs.org; - dmarc=pass (p=none dis=none) header.from=nvidia.com -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=nvidia.com header.i=@nvidia.com - header.a=rsa-sha256 header.s=n1 header.b=K9z8jYfd; - dkim-atps=neutral -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by ozlabs.org (Postfix) with ESMTP id 48R4N71cwzz9sRQ - for ; - Tue, 25 Feb 2020 01:35:03 +1100 (AEDT) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1727830AbgBXOfC (ORCPT ); - Mon, 24 Feb 2020 09:35:02 -0500 -Received: from hqnvemgate24.nvidia.com ([216.228.121.143]:6117 "EHLO - hqnvemgate24.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1727803AbgBXOfC (ORCPT - ); - Mon, 24 Feb 2020 09:35:02 -0500 -Received: from hqpgpgate102.nvidia.com (Not Verified[216.228.121.13]) by - hqnvemgate24.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) - id ; Mon, 24 Feb 2020 06:33:46 -0800 -Received: from hqmail.nvidia.com ([172.20.161.6]) - by hqpgpgate102.nvidia.com (PGP Universal service); - Mon, 24 Feb 2020 06:35:01 -0800 -X-PGP-Universal: processed; - by hqpgpgate102.nvidia.com on Mon, 24 Feb 2020 06:35:01 -0800 -Received: from HQMAIL111.nvidia.com (172.20.187.18) by HQMAIL111.nvidia.com - (172.20.187.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3; - Mon, 24 Feb 2020 14:35:01 +0000 -Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL111.nvidia.com - (172.20.187.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via - Frontend Transport; Mon, 24 Feb 2020 14:35:01 +0000 -Received: from thunderball.nvidia.com (Not Verified[10.21.140.91]) by - rnnvemgw01.nvidia.com with Trustwave SEG (v7, 5, 8, 10121) - id ; Mon, 24 Feb 2020 06:35:01 -0800 -From: Jon Hunter -To: Thierry Reding -CC: , , - Jon Hunter -Subject: [PATCH 4/4] ARM64: tegra: Populate LP8557 backlight regulator -Date: Mon, 24 Feb 2020 14:34:36 +0000 -Message-ID: <20200224143436.5438-4-jonathanh@nvidia.com> -X-Mailer: git-send-email 2.17.1 -In-Reply-To: <20200224143436.5438-1-jonathanh@nvidia.com> -References: <20200224143436.5438-1-jonathanh@nvidia.com> -X-NVConfidentiality: public -MIME-Version: 1.0 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; - t=1582554826; bh=8MBs7jrK7WrFNE7o6bG0zu41Sicfxu97bK94j6RYNJs=; - h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: - In-Reply-To:References:X-NVConfidentiality:MIME-Version: - Content-Type; - b=K9z8jYfdaYDh/XGz5S/vyzBWYN4ZPYT6jkue5E5YiUVIyQgLCoZqfSIh3h9luB+/C - DhYTYMkUQRLasUE0VX9dr4Bn0Hxeaw8DjYS7BUq4LqfNwWjsCSsNEhk26FGBEUvhRH - i2nMUMk5Ivw78ouR6qNZhI6freANsproJ+yQkA0cC9WXj5mQw4xcKRmL48dccxrX47 - aQi0BDk3SCzZBAa+4G3yynAGiRNiFuLVWkg/vFMcq1JDp6a2mVs/CS3Qj0/heE9gPn - Qr2Wy0Oa6tg3jhxR9hk7qyy5FlkfDAtJOlUt6sPloPS4bhqqDJtbnXZL7lzHDP+sw+ - RZcjavnvJtCIQ== -Sender: linux-tegra-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-tegra@vger.kernel.org - -The following warning is observed on Jetson TX1 platform because the -supply regulator is not specified for the backlight. - - WARNING KERN lp855x 0-002c: 0-002c supply power not found, using dummy regulator - -The backlight supply is provided by the 3.3V SYS rail and so add this -as the supply for the backlight. - -Signed-off-by: Jon Hunter ---- - arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts b/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts -index c70a610f8e3a..ea0e1efa6973 100644 ---- a/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts -+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts -@@ -56,6 +56,7 @@ - backlight: backlight@2c { - compatible = "ti,lp8557"; - reg = <0x2c>; -+ power-supply = <&vdd_3v3_sys>; - - dev-ctrl = /bits/ 8 <0x80>; - init-brt = /bits/ 8 <0xff>; diff --git a/Add-LCD-support-for-Pine64-Pinebook-1080p.patch b/Add-LCD-support-for-Pine64-Pinebook-1080p.patch deleted file mode 100644 index 632601e4c..000000000 --- a/Add-LCD-support-for-Pine64-Pinebook-1080p.patch +++ /dev/null @@ -1,1033 +0,0 @@ -From patchwork Wed Feb 26 08:10:07 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Vasily Khoruzhick -X-Patchwork-Id: 11405511 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7C17F138D - for ; - Wed, 26 Feb 2020 08:10:50 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 285BF20714 - for ; - Wed, 26 Feb 2020 08:10:50 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="cdeyR8r0"; - dkim=fail reason="signature verification failed" (2048-bit key) - header.d=gmail.com header.i=@gmail.com header.b="Q0cii6N4" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 285BF20714 -Authentication-Results: mail.kernel.org; - dmarc=fail (p=none dis=none) header.from=gmail.com -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=Peo+SfFmr062rl3tgDW98UrixycGQzBn/gdB0fqrEec=; b=cdeyR8r0WrrQXL - fhHLecv9WUzj5mN4Jb7+S8U3VVCIJu7TkDD13MiIv2xqHbC9HXLBkGdb2Vrq2Rcfkl/jwWjXcgwST - vrUCWMU4jaNlxmeTiAXDyI1I6SEZ/9haXD8IUv7hU1BNoVyeH2GeaVHvTAwIA7TKEWzJHb3/naGAz - Yir51L7gXJoATQ86WVBgdnZ/6rUUmZe1Gs9aHwEjMZ5Rz/9WNydTH/VLWBCVDA9zdZiq8+jhja7y6 - Dh8VhWGpCuvJ/6W0c7viQtFIuJAYI2cYQmI+ebHLMeiv0g7cZnaTxi/PPSICIl3iA9MSUbfVcYSoC - Ro1yQC9H+yqHToXqdWTg==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j6rmK-0000to-Bs; Wed, 26 Feb 2020 08:10:48 +0000 -Received: from mail-pl1-x644.google.com ([2607:f8b0:4864:20::644]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j6rmH-0000rv-7o - for linux-arm-kernel@lists.infradead.org; Wed, 26 Feb 2020 08:10:46 +0000 -Received: by mail-pl1-x644.google.com with SMTP id a6so990257plm.3 - for ; - Wed, 26 Feb 2020 00:10:44 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; - h=from:to:cc:subject:date:message-id:in-reply-to:references - :mime-version:content-transfer-encoding; - bh=bV3ZvEYwFOIunmpWLGzAgCdGTlK6S+EV6uVEHB+FGxY=; - b=Q0cii6N45xFi8jvZk47bAoc1Nxu6hFKn2R/6gr1ZfjKbVoDJZ64PKB8Z3UWgfpC96z - m858biDFlV7/4mo1LjVTUmbbBHm1yKrJnJ3uLVZBlEdyOFSDznZRxrzu6B/mSXoBfdGU - mlGpBVLSLPU/z8ykPcedU1XFyCgTRivYgIcpSqG+QITc7/eIRdzyugFFz9Yzl27ql70w - 8AlOefrAt/HgAlO+4L6JoXtZp+YN7BobPP6qXr0OfqH/1PLZecbnI0vC7uItRmmZkPfN - j7AsPd8mIOV8s5KgCaaK+xwtreytUn7QQZvq+Frfrl0pLWndKlgav8D5uWnV85pooXdR - SCgg== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20161025; - h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to - :references:mime-version:content-transfer-encoding; - bh=bV3ZvEYwFOIunmpWLGzAgCdGTlK6S+EV6uVEHB+FGxY=; - b=ECNexu4zW9OhYucRWaQRPAtEEWE7WmtUxDePEa2BlUp2b5Kd9R3BagblFLB6VAHhjR - wSrCiVTMvlAgNAiXJuKq/J5YnOKBFR7YdGYc9odgo3waiK/XQw5lNOjmNA3hJepAn0wb - MXB9jYsbW2B5kyNLwCFFG6d6jTJEY6Q87mzTx3wqL6nBq6sjdHN5JvBkaERdHCCqKUVH - /jOwV7W2QFG0Kb+DYvfelZbfBCUOMf68VHiwQICiY52q5geL/Oa8/ZO56kEfCx3geUXF - qCuCL4PKAO3hL6jqm5peuzVj69VP64wtkL/eTdM7KKlJDTczayTs3A6DMsI9lRzmA7Ro - w63A== -X-Gm-Message-State: APjAAAWTEdsoaCfLa1vBLhPyuzgRQw35FJ8aGRWduCgpvWjMqcy6TWNi - T7YrobqhUcuRzq8O/y3mjZo= -X-Google-Smtp-Source: - APXvYqwzmN2dNDKDPwprqjYoy3wHRxeIo1QTGdy8Nrs8WKG2CT6K8e2fuBfcpdmu4anfHjvkmdpjJQ== -X-Received: by 2002:a17:902:6184:: with SMTP id - u4mr2301682plj.216.1582704644297; - Wed, 26 Feb 2020 00:10:44 -0800 (PST) -Received: from anarsoul-thinkpad.lan (216-71-213-236.dyn.novuscom.net. - [216.71.213.236]) - by smtp.gmail.com with ESMTPSA id v7sm1679230pfn.61.2020.02.26.00.10.43 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Wed, 26 Feb 2020 00:10:43 -0800 (PST) -From: Vasily Khoruzhick -To: Thierry Reding , - Sam Ravnborg , - David Airlie , Daniel Vetter , - Rob Herring , Mark Rutland , - Maxime Ripard , Chen-Yu Tsai , - Andrzej Hajda , - Neil Armstrong , - Laurent Pinchart , - Jonas Karlman , Jernej Skrabec , - Torsten Duwe , Icenowy Zheng , - Heiko Stuebner , - Stephan Gerhold , Mark Brown , - Stephen Rothwell , - Samuel Holland , dri-devel@lists.freedesktop.org, - devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, - linux-arm-kernel@lists.infradead.org -Subject: [PATCH v2 2/6] drm/bridge: anx6345: don't print error message if - regulator is not ready -Date: Wed, 26 Feb 2020 00:10:07 -0800 -Message-Id: <20200226081011.1347245-3-anarsoul@gmail.com> -X-Mailer: git-send-email 2.25.0 -In-Reply-To: <20200226081011.1347245-1-anarsoul@gmail.com> -References: <20200226081011.1347245-1-anarsoul@gmail.com> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200226_001045_305939_7F59723B -X-CRM114-Status: GOOD ( 13.16 ) -X-Spam-Score: -0.2 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-0.2 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [2607:f8b0:4864:20:0:0:0:644 listed in] - [list.dnswl.org] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail - provider [anarsoul[at]gmail.com] - -0.0 SPF_PASS SPF: sender matches SPF record - -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from - envelope-from domain - 0.1 DKIM_SIGNED Message has a DKIM or DK signature, - not necessarily - valid - -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from - author's domain - -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: Laurent Pinchart -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -We don't want to print scary message if devm_regulator_get() returns --EPROBE_DEFER - -Reviewed-by: Laurent Pinchart -Signed-off-by: Vasily Khoruzhick ---- - drivers/gpu/drm/bridge/analogix/analogix-anx6345.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c -index 0d8d083b0207..0bf81b9b5faa 100644 ---- a/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c -+++ b/drivers/gpu/drm/bridge/analogix/analogix-anx6345.c -@@ -714,14 +714,18 @@ static int anx6345_i2c_probe(struct i2c_client *client, - /* 1.2V digital core power regulator */ - anx6345->dvdd12 = devm_regulator_get(dev, "dvdd12"); - if (IS_ERR(anx6345->dvdd12)) { -- DRM_ERROR("dvdd12-supply not found\n"); -+ if (PTR_ERR(anx6345->dvdd12) != -EPROBE_DEFER) -+ DRM_ERROR("Failed to get dvdd12 supply (%ld)\n", -+ PTR_ERR(anx6345->dvdd12)); - return PTR_ERR(anx6345->dvdd12); - } - - /* 2.5V digital core power regulator */ - anx6345->dvdd25 = devm_regulator_get(dev, "dvdd25"); - if (IS_ERR(anx6345->dvdd25)) { -- DRM_ERROR("dvdd25-supply not found\n"); -+ if (PTR_ERR(anx6345->dvdd25) != -EPROBE_DEFER) -+ DRM_ERROR("Failed to get dvdd25 supply (%ld)\n", -+ PTR_ERR(anx6345->dvdd25)); - return PTR_ERR(anx6345->dvdd25); - } - - -From patchwork Wed Feb 26 08:10:08 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Vasily Khoruzhick -X-Patchwork-Id: 11405525 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BA056930 - for ; - Wed, 26 Feb 2020 08:11:35 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 9013820714 - for ; - Wed, 26 Feb 2020 08:11:35 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="LGhb4fkQ"; - dkim=fail reason="signature verification failed" (2048-bit key) - header.d=gmail.com header.i=@gmail.com header.b="ZqFr2Xde" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9013820714 -Authentication-Results: mail.kernel.org; - dmarc=fail (p=none dis=none) header.from=gmail.com -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Cc:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=8ADp0ZCf/RXeiG8WcqeiUa/p9bRVFg9MWHrmkEvydR4=; b=LGhb4fkQPVOahi - BJtXEN4XzL/JpAolHzThXXSCz6Ga6a4XRsdusD5lW+G9d20OKblS1Li2yUXQBF3gD69zww/f2uZ89 - SCjOIeF8YUi4eRd//H2ki/ugHNFjjr7D5+6X8lBg3oTpatQ2D+Snv83BF6PgDCBec7lxy6SgUaP77 - ouDw0lLlP00NBYXZp31b5lBknpI4oolPTNfq/3hCcsnQGKORXv4xPzuVGOj8m4Aj9K9Uc1D9o+S9t - kYan/5JdjUcE2XmXgKkvQ4mK60O74eH9QZ1nqDxgtvQHnX7+JWnWoTTiYsV+8A/TxWEOTIeLpKZQJ - f5BizujU0K80o5bM8ckg==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j6rn4-0001aC-Nf; Wed, 26 Feb 2020 08:11:34 +0000 -Received: from mail-pj1-x1044.google.com ([2607:f8b0:4864:20::1044]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j6rmI-0000se-31 - for linux-arm-kernel@lists.infradead.org; Wed, 26 Feb 2020 08:10:47 +0000 -Received: by mail-pj1-x1044.google.com with SMTP id fa20so941191pjb.1 - for ; - Wed, 26 Feb 2020 00:10:45 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; - h=from:to:cc:subject:date:message-id:in-reply-to:references - :mime-version:content-transfer-encoding; - bh=vEnVySXBYfW3b1su9MemqgqPSinDbCdHAw5n+ZVHXKA=; - b=ZqFr2XdedoNMMzSdc2eWipJbPoWCSoIWOaxz1zsBu+w5FRw0nlJVp7B9aMcVR/ECrM - fWpYYrpUhtSvO1rGsvHH3i7x8JxpD2QgM4DK0weubmj2twGyNSOa9Gvtg6KWDj0oARIV - ossJG+QlPSs1QhoRE2faVAv1lrRd7/LwUBqX6m+LwRkGl9SmUJ5qeccTbXxGKO/jke+J - hejsi+GJu4wBCG1LLI2Rb9i3hLwtSZ88dY/P2BygJXrOuCX1Xh6+4AO3P044cgvoby3X - oVgYppEgNor2/7HskWoAIOtOe2teNJqCPhYgfnRcBTVY+U0Ce7WQEZmjOKtWi3whIYeH - uQBQ== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20161025; - h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to - :references:mime-version:content-transfer-encoding; - bh=vEnVySXBYfW3b1su9MemqgqPSinDbCdHAw5n+ZVHXKA=; - b=j3wqnMuutM7fm6+CgtpzUtqOybHnpB5v7GqNm5NrPLnZppqmIhQfo+XB29LZIR96Qs - Jy7BnRxwn82nTsr0gsi1J1SPyTVkFBfD/FPq2K+ScOhP7bMVMYU+T7gh7VCDvj1OqGCr - lwQ1+LNbccyZRW86D//6ySKwTfecrJ56FsWmrvWHvXykcnH8BIPijoOUTk7JgDMifSKZ - KGWkKaKZsVGgzycQMDy2UnKCcgvfJ8NNCHS0aJEy7YIhVHyHct2MLeU2jOQsBNJAoB8p - khuqKa1HHg9kFHvXcBokIyToppXiELRtmWg5Aixj6554KNk33a1wSglXIpxPHxncZ8sX - wMUw== -X-Gm-Message-State: APjAAAVIaRZ6h9Ll6HvsBP2/ITar71fuZ8QWSrR6RUAlo4+/JyCCMCmC - nfYQIUTeyMaWhjT3gpH48Ag= -X-Google-Smtp-Source: - APXvYqySsTMpSDO1lKEob5Z3qPaMibUnculbDtGi+2b/LHKNJPcUDEb49L+OdYHplPurgC0YCZJGNA== -X-Received: by 2002:a17:90a:32e4:: with SMTP id - l91mr3675046pjb.23.1582704645464; - Wed, 26 Feb 2020 00:10:45 -0800 (PST) -Received: from anarsoul-thinkpad.lan (216-71-213-236.dyn.novuscom.net. - [216.71.213.236]) - by smtp.gmail.com with ESMTPSA id v7sm1679230pfn.61.2020.02.26.00.10.44 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Wed, 26 Feb 2020 00:10:44 -0800 (PST) -From: Vasily Khoruzhick -To: Thierry Reding , - Sam Ravnborg , - David Airlie , Daniel Vetter , - Rob Herring , Mark Rutland , - Maxime Ripard , Chen-Yu Tsai , - Andrzej Hajda , - Neil Armstrong , - Laurent Pinchart , - Jonas Karlman , Jernej Skrabec , - Torsten Duwe , Icenowy Zheng , - Heiko Stuebner , - Stephan Gerhold , Mark Brown , - Stephen Rothwell , - Samuel Holland , dri-devel@lists.freedesktop.org, - devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, - linux-arm-kernel@lists.infradead.org -Subject: [PATCH v2 3/6] dt-bindings: Add Guangdong Neweast Optoelectronics CO. - LTD vendor prefix -Date: Wed, 26 Feb 2020 00:10:08 -0800 -Message-Id: <20200226081011.1347245-4-anarsoul@gmail.com> -X-Mailer: git-send-email 2.25.0 -In-Reply-To: <20200226081011.1347245-1-anarsoul@gmail.com> -References: <20200226081011.1347245-1-anarsoul@gmail.com> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200226_001046_126436_F508C228 -X-CRM114-Status: GOOD ( 10.72 ) -X-Spam-Score: -0.2 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-0.2 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail - provider [anarsoul[at]gmail.com] - -0.0 SPF_PASS SPF: sender matches SPF record - -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from - envelope-from domain - 0.1 DKIM_SIGNED Message has a DKIM or DK signature, - not necessarily - valid - -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from - author's domain - -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -Add vendor prefix for Guangdong Neweast Optoelectronics CO. LTD - -Signed-off-by: Vasily Khoruzhick -Acked-by: Rob Herring ---- - Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml -index 6456a6dfd83d..5dfbad67aa81 100644 ---- a/Documentation/devicetree/bindings/vendor-prefixes.yaml -+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml -@@ -661,6 +661,8 @@ patternProperties: - description: Netron DY - "^netxeon,.*": - description: Shenzhen Netxeon Technology CO., LTD -+ "^neweast,.*": -+ description: Guangdong Neweast Optoelectronics CO., LTD - "^nexbox,.*": - description: Nexbox - "^nextthing,.*": - -From patchwork Wed Feb 26 08:10:09 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Vasily Khoruzhick -X-Patchwork-Id: 11405527 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2CC5A930 - for ; - Wed, 26 Feb 2020 08:11:45 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id D99A220714 - for ; - Wed, 26 Feb 2020 08:11:44 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="NUXv3B19"; - dkim=fail reason="signature verification failed" (2048-bit key) - header.d=gmail.com header.i=@gmail.com header.b="TBrP0h2w" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D99A220714 -Authentication-Results: mail.kernel.org; - dmarc=fail (p=none dis=none) header.from=gmail.com -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=anQFpGzSkI8IBbKtjkscYMGuTNi8IBx1f7ryKOpbIQ4=; b=NUXv3B191+285a - VyP0wvrXMEDMQsqqwv88YNzVR2CeJlhZYqbOVNDVdMHvHr7VbKohas0brz70I9kD9oQKr8t4lNbcq - p27kG4qmaeRzFa9TSIHJ6PLhfmuWhOctg7DrOaYPazvpEuklClpuIdh1nARq7aHgGVbwUQ2d9UAeL - DNq8Ux3oAlmn2fRtjEYbI2QEFz9SsD8mL0pK+qeYhw864dbHZoD4qv2z3wiRIOFxP5kjt9+cGXF32 - U1GcKdog5IoElC7tP0e4kSeB6uhotxHuDO0FXghwnV/ScLxd+6TtAaNNox4x40LRQl7k4Cj5QGKgC - VUXOowbwTnzHE53PQGUQ==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j6rnE-0001ln-0r; Wed, 26 Feb 2020 08:11:44 +0000 -Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j6rmJ-0000tK-MR - for linux-arm-kernel@lists.infradead.org; Wed, 26 Feb 2020 08:10:48 +0000 -Received: by mail-pf1-x42d.google.com with SMTP id i19so1066942pfa.2 - for ; - Wed, 26 Feb 2020 00:10:47 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; - h=from:to:cc:subject:date:message-id:in-reply-to:references - :mime-version:content-transfer-encoding; - bh=UNDrMK3Cuph8hAawynxP4ClnMYdwocSlmGrvdp+XI7U=; - b=TBrP0h2wisco9iwCPRUPdbzfKPQaem8N0CCbkufM0ubNMvNGPVi7J4OrKi6XaCKbH6 - hh3Y+bgMR/KAzZy3SJxpHSn/W55kTsTGse062SF7bXdc1s6lOwPqxkWqbnhYBTrOOQRL - P5UEoGPV5IsF76w8fyduRaTE03AV7RIeG3tdyzE6dWtIWMgpvpx224lpnK6HQOTLFKGx - 8NN0VzAznR0u0zIR0NAXJZCtJ32GmXNwAp/DudApysZdxoB5XwxmgmLNpboYi0ogxMJL - H4NuemzoK00dffBEXYJVCaGEH3TCcpoSWqSDpn+UxmqlsA7Meikom5RyLGooaap33bAj - PsSg== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20161025; - h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to - :references:mime-version:content-transfer-encoding; - bh=UNDrMK3Cuph8hAawynxP4ClnMYdwocSlmGrvdp+XI7U=; - b=tNIHOh5/U2zSCDF9YxBv2gBrXaOp1Ic3Ed0/DF9W1SwZlsOm8NdJnPoG/Qzz4Zzq9f - XO2KlEwTsZL/p5cUoBsgJp31//jbQwtydKN7A6Bc8syqlzNqTKkbH0lWw27byIqRQNVb - LZPrt8szaFd6cOQMgYuhMuft7xy3AEwAflpXSPhYxAZ/7/+17p9vRxIYfeQL25gxolY5 - wcpVsTQNM58hJqeMjh5zlpTHzNVNi6eK1DfN4jgGyciaKSD2NkiJ8h94ilf+WPFSg2EC - tfX9NpVWx/fPa+99QUAGGBQZ6Rda+Iwf3iK2ypaJcz83ttVMLmZuoHn2gUauHWp5uwPX - nOQg== -X-Gm-Message-State: APjAAAXSV09JyCccUw4DNzettQ7Qf47judkIMcKg29H1A33F/f9wiexa - clMeRPA3ejNUAeXoRpvNjIE= -X-Google-Smtp-Source: - APXvYqx16ATSH0Ri7QydUSr5etiFpP7VXGwv2ajzCwfEDuf3Fsc6V5gruuHjTDm3C4cjgRnxu80rnQ== -X-Received: by 2002:a63:42c2:: with SMTP id - p185mr2844380pga.268.1582704646751; - Wed, 26 Feb 2020 00:10:46 -0800 (PST) -Received: from anarsoul-thinkpad.lan (216-71-213-236.dyn.novuscom.net. - [216.71.213.236]) - by smtp.gmail.com with ESMTPSA id v7sm1679230pfn.61.2020.02.26.00.10.45 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Wed, 26 Feb 2020 00:10:46 -0800 (PST) -From: Vasily Khoruzhick -To: Thierry Reding , - Sam Ravnborg , - David Airlie , Daniel Vetter , - Rob Herring , Mark Rutland , - Maxime Ripard , Chen-Yu Tsai , - Andrzej Hajda , - Neil Armstrong , - Laurent Pinchart , - Jonas Karlman , Jernej Skrabec , - Torsten Duwe , Icenowy Zheng , - Heiko Stuebner , - Stephan Gerhold , Mark Brown , - Stephen Rothwell , - Samuel Holland , dri-devel@lists.freedesktop.org, - devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, - linux-arm-kernel@lists.infradead.org -Subject: [PATCH v2 4/6] dt-bindings: display: simple: Add NewEast - Optoelectronics WJFH116008A compatible -Date: Wed, 26 Feb 2020 00:10:09 -0800 -Message-Id: <20200226081011.1347245-5-anarsoul@gmail.com> -X-Mailer: git-send-email 2.25.0 -In-Reply-To: <20200226081011.1347245-1-anarsoul@gmail.com> -References: <20200226081011.1347245-1-anarsoul@gmail.com> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200226_001047_734455_8E1B858A -X-CRM114-Status: GOOD ( 10.74 ) -X-Spam-Score: -0.2 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-0.2 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [2607:f8b0:4864:20:0:0:0:42d listed in] - [list.dnswl.org] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail - provider [anarsoul[at]gmail.com] - -0.0 SPF_PASS SPF: sender matches SPF record - -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from - envelope-from domain - 0.1 DKIM_SIGNED Message has a DKIM or DK signature, - not necessarily - valid - -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from - author's domain - -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: Laurent Pinchart -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -This commit adds compatible for NewEast Optoelectronics WJFH116008A panel -to panel-simple binding - -Reviewed-by: Laurent Pinchart -Signed-off-by: Vasily Khoruzhick ---- - .../devicetree/bindings/display/panel/panel-simple.yaml | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml -index 8fe60ee2531c..0e5d01ac32e1 100644 ---- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml -+++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml -@@ -39,6 +39,8 @@ properties: - - boe,nv140fhmn49 - # GiantPlus GPM940B0 3.0" QVGA TFT LCD panel - - giantplus,gpm940b0 -+ # NewEast Optoelectronics CO., LTD WJFH116008A eDP TFT LCD panel -+ - neweast,wjfh116008a - # Satoz SAT050AT40H12R2 5.0" WVGA TFT LCD panel - - satoz,sat050at40h12r2 - # Sharp LS020B1DD01D 2.0" HQVGA TFT LCD panel - -From patchwork Wed Feb 26 08:10:10 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Vasily Khoruzhick -X-Patchwork-Id: 11405529 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 98009138D - for ; - Wed, 26 Feb 2020 08:12:06 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 706E22084E - for ; - Wed, 26 Feb 2020 08:12:06 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="RFmzpGxa"; - dkim=fail reason="signature verification failed" (2048-bit key) - header.d=gmail.com header.i=@gmail.com header.b="l/TW+lXA" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 706E22084E -Authentication-Results: mail.kernel.org; - dmarc=fail (p=none dis=none) header.from=gmail.com -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Cc:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=Pjezg2eBVUZyXclyd85ezSxR08wks+q8A4EL9XqNFV8=; b=RFmzpGxaCKDN3Z - TKB9iB1O5CpLIOo6BJ5GeTFZUYua2bsR/5wdIkFR8fHe0NtrBQBgr9UFC3bn7vAR4ElOOPsqyiY/U - sSFoABabi3ubYjB5EsEFderIxHy3jM1GCiATMOVuVlQUCp+RBUOrZ0BRaeCfZHQwQ+TC1XczMZi7K - 3XAWciGmtAuQ0Fc+gjavhcSmThyAtlQ6dsXPA4Hs4tprQ4d1n4JaaPj/aoigY2QgcBGm3ZoTjSf67 - lYjS0cBqOBMPxzeebuHILvAdrgyxP4euSXXQdM7ufztwwR60nibOMdsv9qjDABojmkq8B5MTZqdOH - 0ZaZ5qKKNoBg4Cc0s4tw==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j6rnW-00022y-I8; Wed, 26 Feb 2020 08:12:02 +0000 -Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j6rmK-0000tn-HT - for linux-arm-kernel@lists.infradead.org; Wed, 26 Feb 2020 08:10:49 +0000 -Received: by mail-pf1-x444.google.com with SMTP id x185so1062134pfc.5 - for ; - Wed, 26 Feb 2020 00:10:48 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; - h=from:to:cc:subject:date:message-id:in-reply-to:references - :mime-version:content-transfer-encoding; - bh=2c6a2wUIf1607PZkN1rZk+L4ET6oyW/A+dmD8ze92gI=; - b=l/TW+lXATIXM17aGIZ9zrNTKWKrYbTiLzzjCckt2sYGCNOgBJIAM/09gAYIyO8Ix1n - UHbe88pAp1n0plvmre5V5bbjfK092LKIqAYUkzsgoJS7/2xUSMZgE5o2q6j40HA9jjre - FF8uZvB+fx7B6YmX6nxlrWe2JsyENeFsB23HdsKTAR2dEJOG0eVZaT0pJNwkmq0+XMJC - c9jFO1zsFW7hO9kM7570YJrU/mpImzvlnR4RWJMtjUx3BXAFto3xHr0udkFVc1dm8Tg0 - Ip4cwJcKanfhov2dNsyjvshdovNKgTGIdSWpGBGikwWBexhz01R0zL94DTwVMPuTLhGV - /+nw== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20161025; - h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to - :references:mime-version:content-transfer-encoding; - bh=2c6a2wUIf1607PZkN1rZk+L4ET6oyW/A+dmD8ze92gI=; - b=AFqJOlne6XiqyfXbe7Qg6mrk2SdVqJ7iExvkHRxNVYmdxUbR/6yRhvzOZQSVBtKC5i - TmW2u4Q8eZPHYreKvOIUWITey052Zg4u9hGHB3rMw7Av/4qxpWNPtkFqzZfU7XRxu98o - CGp2OcESKg6Ut1utUOOlHQrkxQCAKOG9z7/J5db2Ia8pCEzog0sZXpgIY4VSkT8+trYy - WcqYWGslvZVqZM/Vdc/26b2UTKBa6wqGA8lwIZ8hdr/UmSELSpEf6BVvU08zKfxoF/1B - 75us7suZtGwlG5X7xkj/8QUNiraZ4UQF4XTR7cywE+zar2l5vCrFG2751fJZrx9xW5+1 - w3oQ== -X-Gm-Message-State: APjAAAUZZE/KK0NMOoMfAeeMMg5NlS/caB+zFkrqz5jH670/oibneZxJ - h4YLd4JzSbuB9egyQmmLO68= -X-Google-Smtp-Source: - APXvYqy00/8d+Wer4Z0MFSOy0sPlhrq7zbo/TdsWVeXFTKfHPPar8rV+DBjhxAWH91y4lWNMO4S3Pw== -X-Received: by 2002:a63:ec0c:: with SMTP id j12mr2609426pgh.78.1582704647920; - Wed, 26 Feb 2020 00:10:47 -0800 (PST) -Received: from anarsoul-thinkpad.lan (216-71-213-236.dyn.novuscom.net. - [216.71.213.236]) - by smtp.gmail.com with ESMTPSA id v7sm1679230pfn.61.2020.02.26.00.10.46 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Wed, 26 Feb 2020 00:10:47 -0800 (PST) -From: Vasily Khoruzhick -To: Thierry Reding , - Sam Ravnborg , - David Airlie , Daniel Vetter , - Rob Herring , Mark Rutland , - Maxime Ripard , Chen-Yu Tsai , - Andrzej Hajda , - Neil Armstrong , - Laurent Pinchart , - Jonas Karlman , Jernej Skrabec , - Torsten Duwe , Icenowy Zheng , - Heiko Stuebner , - Stephan Gerhold , Mark Brown , - Stephen Rothwell , - Samuel Holland , dri-devel@lists.freedesktop.org, - devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, - linux-arm-kernel@lists.infradead.org -Subject: [PATCH v2 5/6] drm/panel: simple: Add NewEast Optoelectronics CO., - LTD WJFH116008A panel support -Date: Wed, 26 Feb 2020 00:10:10 -0800 -Message-Id: <20200226081011.1347245-6-anarsoul@gmail.com> -X-Mailer: git-send-email 2.25.0 -In-Reply-To: <20200226081011.1347245-1-anarsoul@gmail.com> -References: <20200226081011.1347245-1-anarsoul@gmail.com> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200226_001048_596182_84BBBB6A -X-CRM114-Status: GOOD ( 13.16 ) -X-Spam-Score: -0.2 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-0.2 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [2607:f8b0:4864:20:0:0:0:444 listed in] - [list.dnswl.org] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail - provider [anarsoul[at]gmail.com] - -0.0 SPF_PASS SPF: sender matches SPF record - -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from - envelope-from domain - 0.1 DKIM_SIGNED Message has a DKIM or DK signature, - not necessarily - valid - -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from - author's domain - -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -This commit adds support for the NewEast Optoelectronics CO., LTD -WJFH116008A 11.6" 1920x1080 TFT LCD panel. - -Signed-off-by: Vasily Khoruzhick ---- - drivers/gpu/drm/panel/panel-simple.c | 48 ++++++++++++++++++++++++++++ - 1 file changed, 48 insertions(+) - -diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c -index e14c14ac62b5..4292e3e3a461 100644 ---- a/drivers/gpu/drm/panel/panel-simple.c -+++ b/drivers/gpu/drm/panel/panel-simple.c -@@ -2224,6 +2224,51 @@ static const struct panel_desc netron_dy_e231732 = { - .bus_format = MEDIA_BUS_FMT_RGB666_1X18, - }; - -+static const struct drm_display_mode neweast_wjfh116008a_modes[] = { -+ { -+ .clock = 138500, -+ .hdisplay = 1920, -+ .hsync_start = 1920 + 48, -+ .hsync_end = 1920 + 48 + 32, -+ .htotal = 1920 + 48 + 32 + 80, -+ .vdisplay = 1080, -+ .vsync_start = 1080 + 3, -+ .vsync_end = 1080 + 3 + 5, -+ .vtotal = 1080 + 3 + 5 + 23, -+ .vrefresh = 60, -+ .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, -+ }, { -+ .clock = 110920, -+ .hdisplay = 1920, -+ .hsync_start = 1920 + 48, -+ .hsync_end = 1920 + 48 + 32, -+ .htotal = 1920 + 48 + 32 + 80, -+ .vdisplay = 1080, -+ .vsync_start = 1080 + 3, -+ .vsync_end = 1080 + 3 + 5, -+ .vtotal = 1080 + 3 + 5 + 23, -+ .vrefresh = 48, -+ .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, -+ } -+}; -+ -+static const struct panel_desc neweast_wjfh116008a = { -+ .modes = neweast_wjfh116008a_modes, -+ .num_modes = 2, -+ .bpc = 6, -+ .size = { -+ .width = 260, -+ .height = 150, -+ }, -+ .delay = { -+ .prepare = 110, -+ .enable = 20, -+ .unprepare = 500, -+ }, -+ .bus_format = MEDIA_BUS_FMT_RGB666_1X18, -+ .connector_type = DRM_MODE_CONNECTOR_eDP, -+}; -+ - static const struct drm_display_mode newhaven_nhd_43_480272ef_atxl_mode = { - .clock = 9000, - .hdisplay = 480, -@@ -3399,6 +3444,9 @@ static const struct of_device_id platform_of_match[] = { - }, { - .compatible = "netron-dy,e231732", - .data = &netron_dy_e231732, -+ }, { -+ .compatible = "neweast,wjfh116008a", -+ .data = &neweast_wjfh116008a, - }, { - .compatible = "newhaven,nhd-4.3-480272ef-atxl", - .data = &newhaven_nhd_43_480272ef_atxl, - -From patchwork Wed Feb 26 08:10:11 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Vasily Khoruzhick -X-Patchwork-Id: 11405531 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 77856930 - for ; - Wed, 26 Feb 2020 08:12:17 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 51B0C24670 - for ; - Wed, 26 Feb 2020 08:12:17 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="Ttb9cpIi"; - dkim=fail reason="signature verification failed" (2048-bit key) - header.d=gmail.com header.i=@gmail.com header.b="Uj9USULV" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 51B0C24670 -Authentication-Results: mail.kernel.org; - dmarc=fail (p=none dis=none) header.from=gmail.com -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=LnkqG8iA0ymdTA2w7CdGVHSCIBdn7y28YqcNDvsJWNU=; b=Ttb9cpIiR16OSX - C+0UQyaaAqkD801MCZ65bwRsQy+0yRPSFzRfv8Tc2s5Gm5L6TR05fd2w3uM9MocpU2FRV80A2XmKG - rVRDRn0q7jNpoxIYIc+2RWUuL1Jr7YvueQgU57O5c69nl3SgTzbc1r1xUS/q3mQkrGHbpmY2PlayQ - RPA4BQ3hNGi6naA71o8hf+uG9U8PousU2XUFhROHgAx7hePPf25ESKTbZVfKke7QuDJBw4JFxYJym - MH/qF08Y4EMH0jZYh/oeBwEf8X3Kb0CWHSTjMi9ppWH/SimAViI2NWVuusqvOdmXWorBM0vPTx8dG - 0xJZ511Bv5LYDdz46Zgw==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j6rnk-0002Fx-FU; Wed, 26 Feb 2020 08:12:16 +0000 -Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j6rmL-0000vN-TN - for linux-arm-kernel@lists.infradead.org; Wed, 26 Feb 2020 08:10:51 +0000 -Received: by mail-pf1-x441.google.com with SMTP id s1so1047374pfh.10 - for ; - Wed, 26 Feb 2020 00:10:49 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; - h=from:to:cc:subject:date:message-id:in-reply-to:references - :mime-version:content-transfer-encoding; - bh=1/9ulr35We1VvK4OKOtO+SeDdjZAIuN626KlRGL51e8=; - b=Uj9USULV1YhIjRQTGet+GBQYuuhLAkRgQq5aOXkZU55ZeXZOwYCvjYC0XTbkwI02vn - nMqNb637FbLBsLL+0OixEVNpFP/WYWrCLF5zLIEBTSZkXEK2J8hPyn24masq/KXBnUXK - 1WpXqTxgjbgl1eq/uxSXJMuc6aResWHy1sQuEaEYBEWdEyvPqtQts5z5Su639wYEgo9n - wE96FuZQY46tDJyTJqt+ZJrzDYNCNenLNiqWFwxe/zxWzBuM58iQ9ur+6Ym5ldZxRpj8 - JJ2JlN+8/BPq8Wk9S0SAMAUumaOifHahGje65ULSbNA6Krngc4WuiBgliS4rekKjbPPq - Xcow== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20161025; - h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to - :references:mime-version:content-transfer-encoding; - bh=1/9ulr35We1VvK4OKOtO+SeDdjZAIuN626KlRGL51e8=; - b=NlA7PKzSo4EOEYlOtdfcH6TkSjbixH6f2CBb9+YjK0Qva2JOIWHVkd/xLF8DiM7+a5 - WsI9c+6xtz/2NumAXPb3HJFRydr5L7HJjDvivJsN7nfSEG7DEhH69XXTIvEZenriDrMi - Y/e4D3KpvoqbzqXxLHj8aeWp4qLjT8qZkPhI2+wLfkiFn3RhC0Z7dPFHKp5axa/eBHDl - /P2wVZuhjA35KPAjAYlfuV8D1o3WnCOLw0ZUU3WlqU13p/3JBnZcqIzYgbspdp0VpGuF - FgeJtSaGyjIGdX5dS4zCvctLEovV3BWeFzMmx5oz2ugpokl4iACnNbBecKLEvWf5onEA - Iiow== -X-Gm-Message-State: APjAAAW9K1sMiX2Ac7+xWeNX1IDTamXxZ1XKYfBb0FZh75fpIBHjo5qr - ZkS5JBqo+VG0fyrC0fmOg4c= -X-Google-Smtp-Source: - APXvYqwdqfkaKNsVj/z20Fl00qUooa5Fc8g4w6gy6KhAC3QgiEMz+qOhI4aMxTYoHDNd7Lx/skz8fQ== -X-Received: by 2002:a62:1883:: with SMTP id 125mr3012096pfy.166.1582704649041; - Wed, 26 Feb 2020 00:10:49 -0800 (PST) -Received: from anarsoul-thinkpad.lan (216-71-213-236.dyn.novuscom.net. - [216.71.213.236]) - by smtp.gmail.com with ESMTPSA id v7sm1679230pfn.61.2020.02.26.00.10.48 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Wed, 26 Feb 2020 00:10:48 -0800 (PST) -From: Vasily Khoruzhick -To: Thierry Reding , - Sam Ravnborg , - David Airlie , Daniel Vetter , - Rob Herring , Mark Rutland , - Maxime Ripard , Chen-Yu Tsai , - Andrzej Hajda , - Neil Armstrong , - Laurent Pinchart , - Jonas Karlman , Jernej Skrabec , - Torsten Duwe , Icenowy Zheng , - Heiko Stuebner , - Stephan Gerhold , Mark Brown , - Stephen Rothwell , - Samuel Holland , dri-devel@lists.freedesktop.org, - devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, - linux-arm-kernel@lists.infradead.org -Subject: [PATCH v2 6/6] arm64: allwinner: a64: enable LCD-related hardware for - Pinebook -Date: Wed, 26 Feb 2020 00:10:11 -0800 -Message-Id: <20200226081011.1347245-7-anarsoul@gmail.com> -X-Mailer: git-send-email 2.25.0 -In-Reply-To: <20200226081011.1347245-1-anarsoul@gmail.com> -References: <20200226081011.1347245-1-anarsoul@gmail.com> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200226_001050_010315_52B91C3C -X-CRM114-Status: GOOD ( 14.29 ) -X-Spam-Score: -0.2 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-0.2 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [2607:f8b0:4864:20:0:0:0:441 listed in] - [list.dnswl.org] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail - provider [anarsoul[at]gmail.com] - -0.0 SPF_PASS SPF: sender matches SPF record - -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from - envelope-from domain - 0.1 DKIM_SIGNED Message has a DKIM or DK signature, - not necessarily - valid - -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from - author's domain - -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: Laurent Pinchart -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -From: Icenowy Zheng - -Pinebook has an ANX6345 bridge connected to the RGB666 LCD output and -eDP panel input. The bridge is controlled via I2C that's connected to -R_I2C bus. - -Enable all this hardware in device tree. - -Reviewed-by: Laurent Pinchart -Signed-off-by: Icenowy Zheng -Signed-off-by: Vasily Khoruzhick ---- - .../dts/allwinner/sun50i-a64-pinebook.dts | 61 ++++++++++++++++++- - 1 file changed, 60 insertions(+), 1 deletion(-) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -index c06c540e6c08..0033f6a43d98 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -@@ -48,6 +48,18 @@ lid_switch { - }; - }; - -+ panel_edp: panel-edp { -+ compatible = "neweast,wjfh116008a"; -+ backlight = <&backlight>; -+ power-supply = <®_dc1sw>; -+ -+ port { -+ panel_edp_in: endpoint { -+ remote-endpoint = <&anx6345_out_edp>; -+ }; -+ }; -+ }; -+ - reg_vbklt: vbklt { - compatible = "regulator-fixed"; - regulator-name = "vbklt"; -@@ -109,6 +121,10 @@ &dai { - status = "okay"; - }; - -+&de { -+ status = "okay"; -+}; -+ - &ehci0 { - phys = <&usbphy 0>; - phy-names = "usb"; -@@ -119,6 +135,10 @@ &ehci1 { - status = "okay"; - }; - -+&mixer0 { -+ status = "okay"; -+}; -+ - &mmc0 { - pinctrl-names = "default"; - pinctrl-0 = <&mmc0_pins>; -@@ -177,12 +197,38 @@ &pwm { - status = "okay"; - }; - --/* The ANX6345 eDP-bridge is on r_i2c */ - &r_i2c { - clock-frequency = <100000>; - pinctrl-names = "default"; - pinctrl-0 = <&r_i2c_pl89_pins>; - status = "okay"; -+ -+ anx6345: anx6345@38 { -+ compatible = "analogix,anx6345"; -+ reg = <0x38>; -+ reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */ -+ dvdd25-supply = <®_dldo2>; -+ dvdd12-supply = <®_fldo1>; -+ -+ ports { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ anx6345_in: port@0 { -+ reg = <0>; -+ anx6345_in_tcon0: endpoint { -+ remote-endpoint = <&tcon0_out_anx6345>; -+ }; -+ }; -+ -+ anx6345_out: port@1 { -+ reg = <1>; -+ anx6345_out_edp: endpoint { -+ remote-endpoint = <&panel_edp_in>; -+ }; -+ }; -+ }; -+ }; - }; - - &r_pio { -@@ -357,6 +403,19 @@ &sound { - "MIC2", "Internal Microphone Right"; - }; - -+&tcon0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&lcd_rgb666_pins>; -+ -+ status = "okay"; -+}; -+ -+&tcon0_out { -+ tcon0_out_anx6345: endpoint { -+ remote-endpoint = <&anx6345_in_tcon0>; -+ }; -+}; -+ - &uart0 { - pinctrl-names = "default"; - pinctrl-0 = <&uart0_pb_pins>; diff --git a/Add-support-for-PinePhone-LCD-panel.patch b/Add-support-for-PinePhone-LCD-panel.patch deleted file mode 100644 index a8cfd239a..000000000 --- a/Add-support-for-PinePhone-LCD-panel.patch +++ /dev/null @@ -1,1121 +0,0 @@ -From patchwork Mon Mar 16 13:35:00 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Icenowy Zheng -X-Patchwork-Id: 11440381 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 11A10913 - for ; - Mon, 16 Mar 2020 13:37:33 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id D823220658 - for ; - Mon, 16 Mar 2020 13:37:32 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="tONvF8xL"; - dkim=fail reason="signature verification failed" (1024-bit key) - header.d=aosc.io header.i=@aosc.io header.b="OUlaYo/F" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D823220658 -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=aosc.io -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=jopI4a0lnvKcPoWIQDtsU3+Ud4Almv/gYxD7C8b74AM=; b=tONvF8xLa0JOdp - lOlDz1mTuocTtleB1tz2mVLFhSSnvPuEVHfe/+tTd0RxGBi7RgesJwyproaLem7CQJC9XdeBHMAZi - GNHPDPwS11F/9Q5j0RGa9hqzmBn4auXeKB00LRPKKoNjIlbcXQzzU8tkGtvEHi7rHOS+k1TFWgSaM - UlnBfqD6z8rSAHHbAEPb9+dE9/gMuw6M8wi+4UwFZY8i8yxkjP00OfL3P1GUjX5Z8m3OTawi2jupS - yVUtKm/2fMPvyfC2x1YWUbTWiJoY1bznqv51lHwfOL60HJobKpisG/QRBWTmCdk3khQTjVBhrf7vG - syf/hIWeb2vFaaPjGf+g==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jDpvt-0007Bn-Dl; Mon, 16 Mar 2020 13:37:29 +0000 -Received: from dodo.xh.is ([2001:19f0:8001:184d:5400:2ff:fe7b:e8bd]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jDpvq-0007Ax-Dr - for linux-arm-kernel@lists.infradead.org; Mon, 16 Mar 2020 13:37:28 +0000 -X-Spam: yes -X-Spam-Score: 6.6 / 99999 -X-Spam-Symbols: FROM_HAS_DN, RCPT_COUNT_TWELVE, FREEMAIL_TO, FROM_EQ_ENVFROM, - SUSPICIOUS_RECIPS, ARC_NA, RCVD_VIA_SMTP_AUTH, TAGGED_RCPT, - RCVD_COUNT_TWO, BROKEN_CONTENT_TYPE, TO_MATCH_ENVRCPT_SOME, - MIME_TRACE, ASN, TO_DN_SOME, FREEMAIL_ENVRCPT, - RCVD_NO_TLS_LAST, R_MISSING_CHARSET, MID_CONTAINS_FROM -Received: by dodo.xh.is (OpenSMTPD) with ESMTPSA id 040dde7f - (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); - Mon, 16 Mar 2020 06:37:23 -0700 (PDT) -Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: - icenowy@aosc.io) - by hermes.aosc.io (Postfix) with ESMTPSA id 4124F4C196; - Mon, 16 Mar 2020 13:37:10 +0000 (UTC) -From: Icenowy Zheng -To: Thierry Reding , - Sam Ravnborg , - Rob Herring , Maxime Ripard , - Chen-Yu Tsai , Ondrej Jirman -Subject: [PATCH v2 2/5] dt-bindings: panel: add binding for Xingbangda XBD599 - panel -Date: Mon, 16 Mar 2020 21:35:00 +0800 -Message-Id: <20200316133503.144650-3-icenowy@aosc.io> -In-Reply-To: <20200316133503.144650-1-icenowy@aosc.io> -References: <20200316133503.144650-1-icenowy@aosc.io> -MIME-Version: 1.0 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aosc.io; s=dkim; - t=1584365841; - h=from:subject:date:message-id:to:cc:mime-version:content-transfer-encoding:in-reply-to:references; - bh=k5dZsJ/q6rrXyDSO2nmOTWqvPhDI4C+8rut25MFD+Sk=; - b=OUlaYo/FyQ18QC+9N7l4EKPc9OYtnaEJ6rHTTmw5vWDG6bE4z3Dc0JryPNmmzGXHubXOqg - vnAixztTiQggjBI+b2WQ1uKGq0JCKJczHDkbgeZsFMqH3T47xzNMNhu6qv5Xdi+haGzyNU - I+cG4IhCqhUW5fahJroACP3Tm5imnHs= -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200316_063726_515303_1C969948 -X-CRM114-Status: GOOD ( 12.18 ) -X-Spam-Score: -0.2 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-0.2 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [2001:19f0:8001:184d:5400:2ff:fe7b:e8bd listed in] - [list.dnswl.org] - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - 0.1 DKIM_SIGNED Message has a DKIM or DK signature, - not necessarily - valid - -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from - envelope-from domain - -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature - -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from - author's domain -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, - dri-devel@lists.freedesktop.org, linux-sunxi@googlegroups.com, - linux-arm-kernel@lists.infradead.org, Icenowy Zheng -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -Xingbangda XBD599 is a 5.99" 720x1440 MIPI-DSI LCD panel. - -Add its device tree binding. - -Signed-off-by: Icenowy Zheng ---- -Changes in v2: -- Example fix. -- Format fix. - - .../display/panel/xingbangda,xbd599.yaml | 50 +++++++++++++++++++ - 1 file changed, 50 insertions(+) - create mode 100644 Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml - -diff --git a/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml b/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml -new file mode 100644 -index 000000000000..b27bcf11198f ---- /dev/null -+++ b/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml -@@ -0,0 +1,50 @@ -+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -+%YAML 1.2 -+--- -+$id: http://devicetree.org/schemas/display/panel/xingbangda,xbd599.yaml# -+$schema: http://devicetree.org/meta-schemas/core.yaml# -+ -+title: Xingbangda XBD599 5.99in MIPI-DSI LCD panel -+ -+maintainers: -+ - Icenowy Zheng -+ -+allOf: -+ - $ref: panel-common.yaml# -+ -+properties: -+ compatible: -+ const: xingbangda,xbd599 -+ reg: true -+ backlight: true -+ reset-gpios: true -+ vcc-supply: -+ description: regulator that supplies the VCC voltage -+ iovcc-supply: -+ description: regulator that supplies the IOVCC voltage -+ -+required: -+ - compatible -+ - reg -+ - backlight -+ - vcc-supply -+ - iovcc-supply -+ -+additionalProperties: false -+ -+examples: -+ - | -+ dsi { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ panel@0 { -+ compatible = "xingbangda,xbd599"; -+ reg = <0>; -+ backlight = <&backlight>; -+ iovcc-supply = <®_dldo2>; -+ vcc-supply = <®_ldo_io0>; -+ }; -+ }; -+ -+... - -From patchwork Mon Mar 16 13:35:01 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Icenowy Zheng -X-Patchwork-Id: 11440383 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 04CA013B1 - for ; - Mon, 16 Mar 2020 13:37:50 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id D4F1120658 - for ; - Mon, 16 Mar 2020 13:37:49 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="Jauls22L"; - dkim=fail reason="signature verification failed" (1024-bit key) - header.d=aosc.io header.i=@aosc.io header.b="OnKcz19D" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D4F1120658 -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=aosc.io -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=TxGU4PiXBW274B0/qrcSGwYW6OdGxEdBGH504PoyIqM=; b=Jauls22LYE5NsX - fIslO/JUfhiN/XQQPdC2Q86jHiYF+bbm4r85Xyq09Ea+0sSxxchTeTfcHA7HMyk4GRem3FQJXH2yK - Rzs6OLQ/fL1rBVeMyXfJbyfR5Pq5ODc+lAI83DF0iPoCSFpcv40jQxkZnIkcrVvsbpilK1ord7fQ0 - 1hf6hPDvswsxcgSbirrbJMfnYSIEzsUT5rrFvv9ws9J8ukRYOqsS9lXTdrXk03uLskptzBYp5sYVw - Jb34Fq+gtFhgoUE8jONVa6Puexcl2grtch82d6/Lwcy3v7KtztAQyeFw88UVUF+rNx/Q67yiLMNiF - OPLOwCemY5TZ4eYEkWgA==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jDpwA-0007PW-5b; Mon, 16 Mar 2020 13:37:46 +0000 -Received: from dodo.xh.is ([2001:19f0:8001:184d:5400:2ff:fe7b:e8bd]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jDpw4-0007Ng-T4 - for linux-arm-kernel@lists.infradead.org; Mon, 16 Mar 2020 13:37:42 +0000 -X-Spam: yes -X-Spam-Score: 6.6 / 99999 -X-Spam-Symbols: MID_CONTAINS_FROM, FREEMAIL_TO, RCVD_COUNT_TWO, - FROM_EQ_ENVFROM, ASN, SUSPICIOUS_RECIPS, RCVD_VIA_SMTP_AUTH, - TO_DN_SOME, FREEMAIL_ENVRCPT, TAGGED_RCPT, RCVD_NO_TLS_LAST, - ARC_NA, R_MISSING_CHARSET, BROKEN_CONTENT_TYPE, - RCPT_COUNT_TWELVE, FROM_HAS_DN, TO_MATCH_ENVRCPT_SOME, - MIME_TRACE -Received: by dodo.xh.is (OpenSMTPD) with ESMTPSA id 2c12d690 - (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); - Mon, 16 Mar 2020 06:37:40 -0700 (PDT) -Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: - icenowy@aosc.io) - by hermes.aosc.io (Postfix) with ESMTPSA id E8D484C196; - Mon, 16 Mar 2020 13:37:25 +0000 (UTC) -From: Icenowy Zheng -To: Thierry Reding , - Sam Ravnborg , - Rob Herring , Maxime Ripard , - Chen-Yu Tsai , Ondrej Jirman -Subject: [PATCH v2 3/5] drm: panel: add Xingbangda XBD599 panel -Date: Mon, 16 Mar 2020 21:35:01 +0800 -Message-Id: <20200316133503.144650-4-icenowy@aosc.io> -In-Reply-To: <20200316133503.144650-1-icenowy@aosc.io> -References: <20200316133503.144650-1-icenowy@aosc.io> -MIME-Version: 1.0 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aosc.io; s=dkim; - t=1584365858; - h=from:subject:date:message-id:to:cc:mime-version:content-transfer-encoding:in-reply-to:references; - bh=r0lAtSWiBn8DOOqWzP8ERo3YcHe6/FA1xbvH5pEdRgw=; - b=OnKcz19DT6MgLt+rgH0qVaATJ7fQDnAVAXaZvZQM3agXAI3XDxnHoi+2DeVncogjT1bp0P - ljZ0XWs8BoeGtQ0sIdrAMvsBTCbnxBJHQqa3OWxS5inT7+90pxlCDVLERhwqIefwzeZDVJ - liP/v36WTzYINROF0nSPe1azOWltJ/g= -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200316_063740_985291_78D98883 -X-CRM114-Status: GOOD ( 20.73 ) -X-Spam-Score: -0.2 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-0.2 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [2001:19f0:8001:184d:5400:2ff:fe7b:e8bd listed in] - [list.dnswl.org] - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - 0.1 DKIM_SIGNED Message has a DKIM or DK signature, - not necessarily - valid - -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from - envelope-from domain - -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature - -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from - author's domain -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, - dri-devel@lists.freedesktop.org, linux-sunxi@googlegroups.com, - linux-arm-kernel@lists.infradead.org, Icenowy Zheng -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -Xingbangda XBD599 is a 5.99" 720x1440 MIPI-DSI IPS LCD panel made by -Xingbangda, which is used on PinePhone final assembled phones. - -Add support for it. - -Signed-off-by: Icenowy Zheng ---- -Changes in v2: -- Raised copyright info to 2020. -- Sort panel operation functions. -- Sort inclusion. - - drivers/gpu/drm/panel/Kconfig | 9 + - drivers/gpu/drm/panel/Makefile | 1 + - .../gpu/drm/panel/panel-xingbangda-xbd599.c | 366 ++++++++++++++++++ - 3 files changed, 376 insertions(+) - create mode 100644 drivers/gpu/drm/panel/panel-xingbangda-xbd599.c - -diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig -index a1723c1b5fbf..cf0c59015a44 100644 ---- a/drivers/gpu/drm/panel/Kconfig -+++ b/drivers/gpu/drm/panel/Kconfig -@@ -433,6 +433,15 @@ config DRM_PANEL_TRULY_NT35597_WQXGA - Say Y here if you want to enable support for Truly NT35597 WQXGA Dual DSI - Video Mode panel - -+config DRM_PANEL_XINGBANGDA_XBD599 -+ tristate "Xingbangda XBD599 panel" -+ depends on OF -+ depends on DRM_MIPI_DSI -+ depends on BACKLIGHT_CLASS_DEVICE -+ help -+ Say Y here if you want to enable support for the Xingbangda XBD599 -+ MIPI DSI Video Mode panel. -+ - config DRM_PANEL_XINPENG_XPP055C272 - tristate "Xinpeng XPP055C272 panel driver" - depends on OF -diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile -index 96a883cd6630..c84ed5215984 100644 ---- a/drivers/gpu/drm/panel/Makefile -+++ b/drivers/gpu/drm/panel/Makefile -@@ -46,4 +46,5 @@ obj-$(CONFIG_DRM_PANEL_TPO_TD028TTEC1) += panel-tpo-td028ttec1.o - obj-$(CONFIG_DRM_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o - obj-$(CONFIG_DRM_PANEL_TPO_TPG110) += panel-tpo-tpg110.o - obj-$(CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA) += panel-truly-nt35597.o -+obj-$(CONFIG_DRM_PANEL_XINGBANGDA_XBD599) += panel-xingbangda-xbd599.o - obj-$(CONFIG_DRM_PANEL_XINPENG_XPP055C272) += panel-xinpeng-xpp055c272.o -diff --git a/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c b/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c -new file mode 100644 -index 000000000000..8d56b6579111 ---- /dev/null -+++ b/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c -@@ -0,0 +1,366 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* -+ * Xingbangda XBD599 MIPI-DSI panel driver -+ * -+ * Copyright (C) 2019-2020 Icenowy Zheng -+ * -+ * Based on panel-rocktech-jh057n00900.c, which is: -+ * Copyright (C) Purism SPC 2019 -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+ -+/* Manufacturer specific Commands send via DSI */ -+#define ST7703_CMD_ALL_PIXEL_OFF 0x22 -+#define ST7703_CMD_ALL_PIXEL_ON 0x23 -+#define ST7703_CMD_SETDISP 0xB2 -+#define ST7703_CMD_SETRGBIF 0xB3 -+#define ST7703_CMD_SETCYC 0xB4 -+#define ST7703_CMD_SETBGP 0xB5 -+#define ST7703_CMD_SETVCOM 0xB6 -+#define ST7703_CMD_SETOTP 0xB7 -+#define ST7703_CMD_SETPOWER_EXT 0xB8 -+#define ST7703_CMD_SETEXTC 0xB9 -+#define ST7703_CMD_SETMIPI 0xBA -+#define ST7703_CMD_SETVDC 0xBC -+#define ST7703_CMD_SETSCR 0xC0 -+#define ST7703_CMD_SETPOWER 0xC1 -+#define ST7703_CMD_UNK_C6 0xC6 -+#define ST7703_CMD_SETPANEL 0xCC -+#define ST7703_CMD_SETGAMMA 0xE0 -+#define ST7703_CMD_SETEQ 0xE3 -+#define ST7703_CMD_SETGIP1 0xE9 -+#define ST7703_CMD_SETGIP2 0xEA -+ -+static const char * const regulator_names[] = { -+ "iovcc", -+ "vcc", -+}; -+ -+struct xbd599 { -+ struct device *dev; -+ struct drm_panel panel; -+ struct gpio_desc *reset_gpio; -+ struct regulator_bulk_data supplies[ARRAY_SIZE(regulator_names)]; -+ bool prepared; -+}; -+ -+static inline struct xbd599 *panel_to_xbd599(struct drm_panel *panel) -+{ -+ return container_of(panel, struct xbd599, panel); -+} -+ -+#define dsi_dcs_write_seq(dsi, cmd, seq...) do { \ -+ static const u8 d[] = { seq }; \ -+ int ret; \ -+ ret = mipi_dsi_dcs_write(dsi, cmd, d, ARRAY_SIZE(d)); \ -+ if (ret < 0) \ -+ return ret; \ -+ } while (0) -+ -+static int xbd599_init_sequence(struct xbd599 *ctx) -+{ -+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); -+ struct device *dev = ctx->dev; -+ int ret; -+ -+ /* -+ * Init sequence was supplied by the panel vendor. -+ */ -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETEXTC, -+ 0xF1, 0x12, 0x83); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETMIPI, -+ 0x33, 0x81, 0x05, 0xF9, 0x0E, 0x0E, 0x20, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, -+ 0x00, 0x91, 0x0a, 0x00, 0x00, 0x02, 0x4F, 0x11, -+ 0x00, 0x00, 0x37); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPOWER_EXT, -+ 0x25, 0x22, 0x20, 0x03); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETRGBIF, -+ 0x10, 0x10, 0x05, 0x05, 0x03, 0xFF, 0x00, 0x00, -+ 0x00, 0x00); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETSCR, -+ 0x73, 0x73, 0x50, 0x50, 0x00, 0xC0, 0x08, 0x70, -+ 0x00); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETVDC, 0x4E); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPANEL, 0x0B); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETCYC, 0x80); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETDISP, 0xF0, 0x12, 0xF0); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETEQ, -+ 0x00, 0x00, 0x0B, 0x0B, 0x10, 0x10, 0x00, 0x00, -+ 0x00, 0x00, 0xFF, 0x00, 0xC0, 0x10); -+ dsi_dcs_write_seq(dsi, 0xC6, 0x01, 0x00, 0xFF, 0xFF, 0x00); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPOWER, -+ 0x74, 0x00, 0x32, 0x32, 0x77, 0xF1, 0xFF, 0xFF, -+ 0xCC, 0xCC, 0x77, 0x77); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETBGP, 0x07, 0x07); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETVCOM, 0x2C, 0x2C); -+ dsi_dcs_write_seq(dsi, 0xBF, 0x02, 0x11, 0x00); -+ -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETGIP1, -+ 0x82, 0x10, 0x06, 0x05, 0xA2, 0x0A, 0xA5, 0x12, -+ 0x31, 0x23, 0x37, 0x83, 0x04, 0xBC, 0x27, 0x38, -+ 0x0C, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, -+ 0x03, 0x00, 0x00, 0x00, 0x75, 0x75, 0x31, 0x88, -+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x13, 0x88, 0x64, -+ 0x64, 0x20, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, -+ 0x02, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETGIP2, -+ 0x02, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x46, 0x02, 0x88, -+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0x88, 0x13, -+ 0x57, 0x13, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, -+ 0x75, 0x88, 0x23, 0x14, 0x00, 0x00, 0x02, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0A, -+ 0xA5, 0x00, 0x00, 0x00, 0x00); -+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETGAMMA, -+ 0x00, 0x09, 0x0D, 0x23, 0x27, 0x3C, 0x41, 0x35, -+ 0x07, 0x0D, 0x0E, 0x12, 0x13, 0x10, 0x12, 0x12, -+ 0x18, 0x00, 0x09, 0x0D, 0x23, 0x27, 0x3C, 0x41, -+ 0x35, 0x07, 0x0D, 0x0E, 0x12, 0x13, 0x10, 0x12, -+ 0x12, 0x18); -+ msleep(20); -+ -+ ret = mipi_dsi_dcs_exit_sleep_mode(dsi); -+ if (ret < 0) { -+ DRM_DEV_ERROR(dev, "Failed to exit sleep mode\n"); -+ return ret; -+ } -+ msleep(250); -+ -+ ret = mipi_dsi_dcs_set_display_on(dsi); -+ if (ret) -+ return ret; -+ msleep(50); -+ -+ DRM_DEV_DEBUG_DRIVER(dev, "Panel init sequence done\n"); -+ return 0; -+} -+ -+static int xbd599_prepare(struct drm_panel *panel) -+{ -+ struct xbd599 *ctx = panel_to_xbd599(panel); -+ int ret; -+ -+ if (ctx->prepared) -+ return 0; -+ -+ ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ctx->supplies); -+ if (ret) -+ return ret; -+ -+ DRM_DEV_DEBUG_DRIVER(ctx->dev, "Resetting the panel\n"); -+ gpiod_set_value_cansleep(ctx->reset_gpio, 1); -+ usleep_range(20, 40); -+ gpiod_set_value_cansleep(ctx->reset_gpio, 0); -+ msleep(20); -+ -+ ctx->prepared = true; -+ -+ return 0; -+} -+ -+static int xbd599_enable(struct drm_panel *panel) -+{ -+ struct xbd599 *ctx = panel_to_xbd599(panel); -+ int ret; -+ -+ ret = xbd599_init_sequence(ctx); -+ if (ret < 0) { -+ DRM_DEV_ERROR(ctx->dev, "Panel init sequence failed: %d\n", -+ ret); -+ return ret; -+ } -+ -+ return 0; -+} -+ -+static int xbd599_disable(struct drm_panel *panel) -+{ -+ struct xbd599 *ctx = panel_to_xbd599(panel); -+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); -+ -+ return mipi_dsi_dcs_set_display_off(dsi); -+} -+ -+static int xbd599_unprepare(struct drm_panel *panel) -+{ -+ struct xbd599 *ctx = panel_to_xbd599(panel); -+ -+ if (!ctx->prepared) -+ return 0; -+ -+ gpiod_set_value_cansleep(ctx->reset_gpio, 1); -+ regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies); -+ ctx->prepared = false; -+ -+ return 0; -+} -+ -+static const struct drm_display_mode xbd599_default_mode = { -+ .hdisplay = 720, -+ .hsync_start = 720 + 40, -+ .hsync_end = 720 + 40 + 40, -+ .htotal = 720 + 40 + 40 + 40, -+ .vdisplay = 1440, -+ .vsync_start = 1440 + 18, -+ .vsync_end = 1440 + 18 + 10, -+ .vtotal = 1440 + 18 + 10 + 17, -+ .vrefresh = 60, -+ .clock = 69000, -+ .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC, -+ -+ .width_mm = 68, -+ .height_mm = 136, -+ .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED, -+}; -+ -+static int xbd599_get_modes(struct drm_panel *panel, -+ struct drm_connector *connector) -+{ -+ struct xbd599 *ctx = panel_to_xbd599(panel); -+ struct drm_display_mode *mode; -+ -+ mode = drm_mode_duplicate(connector->dev, &xbd599_default_mode); -+ if (!mode) { -+ DRM_DEV_ERROR(ctx->dev, "Failed to add mode\n"); -+ return -ENOMEM; -+ } -+ -+ drm_mode_set_name(mode); -+ -+ mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; -+ connector->display_info.width_mm = mode->width_mm; -+ connector->display_info.height_mm = mode->height_mm; -+ drm_mode_probed_add(connector, mode); -+ -+ return 1; -+} -+ -+static const struct drm_panel_funcs xbd599_drm_funcs = { -+ .prepare = xbd599_prepare, -+ .enable = xbd599_enable, -+ .disable = xbd599_disable, -+ .unprepare = xbd599_unprepare, -+ .get_modes = xbd599_get_modes, -+}; -+ -+static int xbd599_probe(struct mipi_dsi_device *dsi) -+{ -+ struct device *dev = &dsi->dev; -+ struct xbd599 *ctx; -+ int i, ret; -+ -+ ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); -+ if (!ctx) -+ return -ENOMEM; -+ -+ for (i = 0; i < ARRAY_SIZE(ctx->supplies); i++) -+ ctx->supplies[i].supply = regulator_names[i]; -+ -+ ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies), -+ ctx->supplies); -+ if (ret < 0) { -+ DRM_DEV_ERROR(&dsi->dev, "cannot get regulators\n"); -+ return ret; -+ } -+ -+ ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); -+ if (IS_ERR(ctx->reset_gpio)) { -+ DRM_DEV_ERROR(dev, "cannot get reset gpio\n"); -+ return PTR_ERR(ctx->reset_gpio); -+ } -+ -+ mipi_dsi_set_drvdata(dsi, ctx); -+ -+ ctx->dev = dev; -+ -+ dsi->lanes = 4; -+ dsi->format = MIPI_DSI_FMT_RGB888; -+ dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE; -+ -+ drm_panel_init(&ctx->panel, &dsi->dev, &xbd599_drm_funcs, -+ DRM_MODE_CONNECTOR_DSI); -+ -+ ret = drm_panel_of_backlight(&ctx->panel); -+ if (ret) -+ return ret; -+ -+ drm_panel_add(&ctx->panel); -+ -+ ret = mipi_dsi_attach(dsi); -+ if (ret < 0) { -+ DRM_DEV_ERROR(dev, "mipi_dsi_attach failed. Is host ready?\n"); -+ drm_panel_remove(&ctx->panel); -+ return ret; -+ } -+ -+ DRM_DEV_INFO(dev, "%ux%u@%u %ubpp dsi %udl - ready\n", -+ xbd599_default_mode.hdisplay, -+ xbd599_default_mode.vdisplay, -+ xbd599_default_mode.vrefresh, -+ mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes); -+ -+ return 0; -+} -+ -+static void xbd599_shutdown(struct mipi_dsi_device *dsi) -+{ -+ struct xbd599 *ctx = mipi_dsi_get_drvdata(dsi); -+ int ret; -+ -+ ret = drm_panel_unprepare(&ctx->panel); -+ if (ret < 0) -+ DRM_DEV_ERROR(&dsi->dev, "Failed to unprepare panel: %d\n", -+ ret); -+} -+ -+static int xbd599_remove(struct mipi_dsi_device *dsi) -+{ -+ struct xbd599 *ctx = mipi_dsi_get_drvdata(dsi); -+ int ret; -+ -+ xbd599_shutdown(dsi); -+ -+ ret = mipi_dsi_detach(dsi); -+ if (ret < 0) -+ DRM_DEV_ERROR(&dsi->dev, "Failed to detach from DSI host: %d\n", -+ ret); -+ -+ drm_panel_remove(&ctx->panel); -+ -+ return 0; -+} -+ -+static const struct of_device_id xbd599_of_match[] = { -+ { .compatible = "xingbangda,xbd599", }, -+ { /* sentinel */ } -+}; -+MODULE_DEVICE_TABLE(of, xbd599_of_match); -+ -+static struct mipi_dsi_driver xbd599_driver = { -+ .probe = xbd599_probe, -+ .remove = xbd599_remove, -+ .shutdown = xbd599_shutdown, -+ .driver = { -+ .name = "panel-xingbangda-xbd599", -+ .of_match_table = xbd599_of_match, -+ }, -+}; -+module_mipi_dsi_driver(xbd599_driver); -+ -+MODULE_AUTHOR("Icenowy Zheng "); -+MODULE_DESCRIPTION("DRM driver for Xingbangda XBD599 MIPI DSI panel"); -+MODULE_LICENSE("GPL v2"); - -From patchwork Mon Mar 16 13:35:02 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Icenowy Zheng -X-Patchwork-Id: 11440385 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3551613B1 - for ; - Mon, 16 Mar 2020 13:38:04 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 12F1120658 - for ; - Mon, 16 Mar 2020 13:38:04 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="FXIsTC05"; - dkim=fail reason="signature verification failed" (1024-bit key) - header.d=aosc.io header.i=@aosc.io header.b="quP9cKqY" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 12F1120658 -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=aosc.io -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=Ok8n9BLE8SnVMofHytH8sKJgOZAdRVkUgENm5rZmFlM=; b=FXIsTC05LwmLW8 - JIUJYcuGPwnerCktLqhIRVMIoUACV+PBjwCaXLEWUaLpYsx/fkH/6JQM4BBzg1AyfDq3atRF/nnBb - XD4OWFZC8nCVDiR7dqlEAxyOti5i1hsKYi1uKkOlwNdMx50Vklm+IEr5nd2rtKoWSFgNvr0LIQmYR - jk2fY+4TpwdEjCfSfCDoDlZsCssNnoQsaN2VRgkV0bKKSaQ+OTufaRoG4E3Ktjp2f0+IE0+saR8OT - ah8mB5WNxc5/MFTGoh8hq8aF2GlOfdhjRuNORBTjH7FRmGVFIsFY1dfMmTBQOnsDrxzz2guZVksZN - nf60u+PrkKp4zaAGdb8A==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jDpwP-0007eD-4F; Mon, 16 Mar 2020 13:38:01 +0000 -Received: from dodo.xh.is ([2001:19f0:8001:184d:5400:2ff:fe7b:e8bd]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jDpwL-0007bo-FZ - for linux-arm-kernel@lists.infradead.org; Mon, 16 Mar 2020 13:37:58 +0000 -X-Spam: yes -X-Spam-Score: 6.6 / 99999 -X-Spam-Symbols: TO_DN_SOME, FREEMAIL_ENVRCPT, TO_MATCH_ENVRCPT_SOME, - MID_CONTAINS_FROM, RCVD_NO_TLS_LAST, RCVD_COUNT_TWO, - SUSPICIOUS_RECIPS, FROM_EQ_ENVFROM, ASN, R_MISSING_CHARSET, - TAGGED_RCPT, RCPT_COUNT_TWELVE, FREEMAIL_TO, ARC_NA, - RCVD_VIA_SMTP_AUTH, FROM_HAS_DN, BROKEN_CONTENT_TYPE, - MIME_TRACE -Received: by dodo.xh.is (OpenSMTPD) with ESMTPSA id d83d4fb8 - (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); - Mon, 16 Mar 2020 06:37:56 -0700 (PDT) -Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: - icenowy@aosc.io) - by hermes.aosc.io (Postfix) with ESMTPSA id 904224CA5E; - Mon, 16 Mar 2020 13:37:47 +0000 (UTC) -From: Icenowy Zheng -To: Thierry Reding , - Sam Ravnborg , - Rob Herring , Maxime Ripard , - Chen-Yu Tsai , Ondrej Jirman -Subject: [PATCH v2 4/5] drm/sun4i: sun6i_mipi_dsi: fix horizontal timing - calculation -Date: Mon, 16 Mar 2020 21:35:02 +0800 -Message-Id: <20200316133503.144650-5-icenowy@aosc.io> -In-Reply-To: <20200316133503.144650-1-icenowy@aosc.io> -References: <20200316133503.144650-1-icenowy@aosc.io> -MIME-Version: 1.0 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aosc.io; s=dkim; - t=1584365875; - h=from:subject:date:message-id:to:cc:mime-version:content-transfer-encoding:in-reply-to:references; - bh=I9YOqCvznKIa+lsR+6QqRxbL27UJzO8C40dZ4CFdKfA=; - b=quP9cKqYYDD232RMGPzPh7YZaHSfncJHKNCNVORZvb7EzFJyswyLBv7GzoCIM/6KvGiH5Z - xbpDQs4fRsR5P/Cp7hTcnx+MoFGO3XV0SD6R82gTqKwejhi4j3ozUQiiIMTMC0P2NzAMb0 - tDkRk8CMwU/bfv3YHZlXvgGaYrZkMd8= -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200316_063757_563065_ED0BFB74 -X-CRM114-Status: GOOD ( 13.77 ) -X-Spam-Score: -0.2 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-0.2 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [2001:19f0:8001:184d:5400:2ff:fe7b:e8bd listed in] - [list.dnswl.org] - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - 0.1 DKIM_SIGNED Message has a DKIM or DK signature, - not necessarily - valid - -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from - envelope-from domain - -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature - -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from - author's domain -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, - dri-devel@lists.freedesktop.org, linux-sunxi@googlegroups.com, - linux-arm-kernel@lists.infradead.org, Icenowy Zheng -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -The max() function call in horizontal timing calculation shouldn't pad a -length already subtracted with overhead to overhead, instead it should -only prevent the set timing to underflow. - -Signed-off-by: Icenowy Zheng ---- -No changes in v2. - - drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c -index 059939789730..5f2313c40328 100644 ---- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c -+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c -@@ -555,7 +555,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, - */ - #define HSA_PACKET_OVERHEAD 10 - hsa = max((unsigned int)HSA_PACKET_OVERHEAD, -- (mode->hsync_end - mode->hsync_start) * Bpp - HSA_PACKET_OVERHEAD); -+ (mode->hsync_end - mode->hsync_start) * Bpp) - HSA_PACKET_OVERHEAD; - - /* - * The backporch is set using a blanking packet (4 -@@ -564,7 +564,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, - */ - #define HBP_PACKET_OVERHEAD 6 - hbp = max((unsigned int)HBP_PACKET_OVERHEAD, -- (mode->htotal - mode->hsync_end) * Bpp - HBP_PACKET_OVERHEAD); -+ (mode->htotal - mode->hsync_end) * Bpp) - HBP_PACKET_OVERHEAD; - - /* - * The frontporch is set using a sync event (4 bytes) -@@ -574,7 +574,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, - */ - #define HFP_PACKET_OVERHEAD 16 - hfp = max((unsigned int)HFP_PACKET_OVERHEAD, -- (mode->hsync_start - mode->hdisplay) * Bpp - HFP_PACKET_OVERHEAD); -+ (mode->hsync_start - mode->hdisplay) * Bpp) - HFP_PACKET_OVERHEAD; - - /* - * The blanking is set using a sync event (4 bytes) -@@ -583,8 +583,8 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, - */ - #define HBLK_PACKET_OVERHEAD 10 - hblk = max((unsigned int)HBLK_PACKET_OVERHEAD, -- (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp - -- HBLK_PACKET_OVERHEAD); -+ (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp) - -+ HBLK_PACKET_OVERHEAD; - - /* - * And I'm not entirely sure what vblk is about. The driver in - -From patchwork Mon Mar 16 13:35:03 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Icenowy Zheng -X-Patchwork-Id: 11440387 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7CB09913 - for ; - Mon, 16 Mar 2020 13:38:25 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 5A3CF20663 - for ; - Mon, 16 Mar 2020 13:38:25 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="Dprxe0zU"; - dkim=fail reason="signature verification failed" (1024-bit key) - header.d=aosc.io header.i=@aosc.io header.b="gvv4Mt/p" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5A3CF20663 -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=aosc.io -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=rXiGf8B3g87rqGluDPPXHBPgLye0619C2/zq9YpC9mk=; b=Dprxe0zU40XkWN - m+hX9Icm5bhrdxLR5kmA+FetKifUp/T2toYOeoCfxA03wi/xuH83eTC/NNNeq2exi4vAQPAiKe4kJ - VnYn8drWuau9JdHE7b/KFeIhkULj3sy4MxJnnpxYCj63wXO+BDHm00cs1r8PoIzBtkP4DksqayKx7 - wGb6miY8D9JjeHzt6zhSeG5JXUzPatdZnw/q8zhpgoOk8Y1QDjKgVEgypDPBDp95TtiEO5wv/uPhf - mIFdAYoKy01EX0IF5/r/kyAEQTh95K7IXUz6SJM00+3rHPB7Ut7n48eG0C2qJhljJEsSEWJ1DxbjM - X629GHE95cSsRkq5gd9A==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jDpwj-0007wT-EM; Mon, 16 Mar 2020 13:38:21 +0000 -Received: from dodo.xh.is ([2001:19f0:8001:184d:5400:2ff:fe7b:e8bd]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jDpwZ-0007oi-Fv - for linux-arm-kernel@lists.infradead.org; Mon, 16 Mar 2020 13:38:13 +0000 -X-Spam: yes -X-Spam-Score: 6.6 / 99999 -X-Spam-Symbols: FREEMAIL_ENVRCPT, TO_MATCH_ENVRCPT_SOME, FROM_EQ_ENVFROM, - RCVD_VIA_SMTP_AUTH, FREEMAIL_TO, RCVD_COUNT_TWO, ARC_NA, - FROM_HAS_DN, TO_DN_SOME, RCPT_COUNT_TWELVE, RCVD_NO_TLS_LAST, - MIME_TRACE, R_MISSING_CHARSET, TAGGED_RCPT, - BROKEN_CONTENT_TYPE, MID_CONTAINS_FROM, ASN, SUSPICIOUS_RECIPS -Received: by dodo.xh.is (OpenSMTPD) with ESMTPSA id 3f67ee70 - (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); - Mon, 16 Mar 2020 06:38:10 -0700 (PDT) -Received: from localhost (localhost [127.0.0.1]) (Authenticated sender: - icenowy@aosc.io) - by hermes.aosc.io (Postfix) with ESMTPSA id 718DE4CA5E; - Mon, 16 Mar 2020 13:38:00 +0000 (UTC) -From: Icenowy Zheng -To: Thierry Reding , - Sam Ravnborg , - Rob Herring , Maxime Ripard , - Chen-Yu Tsai , Ondrej Jirman -Subject: [PATCH v2 5/5] arm64: allwinner: dts: a64: add LCD-related device - nodes for PinePhone -Date: Mon, 16 Mar 2020 21:35:03 +0800 -Message-Id: <20200316133503.144650-6-icenowy@aosc.io> -In-Reply-To: <20200316133503.144650-1-icenowy@aosc.io> -References: <20200316133503.144650-1-icenowy@aosc.io> -MIME-Version: 1.0 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aosc.io; s=dkim; - t=1584365889; - h=from:subject:date:message-id:to:cc:mime-version:content-transfer-encoding:in-reply-to:references; - bh=vdJB1xaYREfjx8A1fc+UP5D7fCK/5ZczA3DRbH+hq08=; - b=gvv4Mt/ppP1U5dpUHA5n8qTEzN2afgaBkT+M0HHnD2QpiRBO0b4PVtnd5WiFOkLgnHm3Cm - uS+WljMpibhdzup+UJWKXGt9n3IFyflFgVAqemHSAFN5h+VJ1vskMjGMiiu1teCs1nUAhP - zGvHhAcI1EY4J2t587DsvuxH/d6lNFs= -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200316_063811_575168_FBAB174A -X-CRM114-Status: GOOD ( 11.16 ) -X-Spam-Score: -0.2 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-0.2 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [2001:19f0:8001:184d:5400:2ff:fe7b:e8bd listed in] - [list.dnswl.org] - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - 0.1 DKIM_SIGNED Message has a DKIM or DK signature, - not necessarily - valid - -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from - envelope-from domain - -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature - -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from - author's domain -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, - dri-devel@lists.freedesktop.org, linux-sunxi@googlegroups.com, - linux-arm-kernel@lists.infradead.org, Icenowy Zheng -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -PinePhone uses PWM backlight and a XBD599 LCD panel over DSI for -display. - -Add its device nodes. - -Signed-off-by: Icenowy Zheng ---- -No changes in v2. - - .../dts/allwinner/sun50i-a64-pinephone.dtsi | 37 +++++++++++++++++++ - 1 file changed, 37 insertions(+) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index cefda145c3c9..96d9150423e0 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -@@ -16,6 +16,15 @@ aliases { - serial0 = &uart0; - }; - -+ backlight: backlight { -+ compatible = "pwm-backlight"; -+ pwms = <&r_pwm 0 50000 PWM_POLARITY_INVERTED>; -+ brightness-levels = <0 16 18 20 22 24 26 29 32 35 38 42 46 51 56 62 68 75 83 91 100>; -+ default-brightness-level = <15>; -+ enable-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */ -+ power-supply = <®_ldo_io0>; -+ }; -+ - chosen { - stdout-path = "serial0:115200n8"; - }; -@@ -84,6 +93,30 @@ &dai { - status = "okay"; - }; - -+&de { -+ status = "okay"; -+}; -+ -+&dphy { -+ status = "okay"; -+}; -+ -+&dsi { -+ vcc-dsi-supply = <®_dldo1>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ status = "okay"; -+ -+ panel@0 { -+ compatible = "xingbangda,xbd599"; -+ reg = <0>; -+ reset-gpios = <&pio 3 23 GPIO_ACTIVE_LOW>; /* PD23 */ -+ iovcc-supply = <®_dldo2>; -+ vcc-supply = <®_ldo_io0>; -+ backlight = <&backlight>; -+ }; -+}; -+ - &ehci0 { - status = "okay"; - }; -@@ -188,6 +221,10 @@ &r_pio { - */ - }; - -+&r_pwm { -+ status = "okay"; -+}; -+ - &r_rsb { - status = "okay"; - diff --git a/Add-support-for-the-pine64-Pinebook-Pro.patch b/Add-support-for-the-pine64-Pinebook-Pro.patch deleted file mode 100644 index d35ee323b..000000000 --- a/Add-support-for-the-pine64-Pinebook-Pro.patch +++ /dev/null @@ -1,1360 +0,0 @@ -From patchwork Wed Mar 4 21:30:22 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Tobias Schramm -X-Patchwork-Id: 11420805 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 82C16139A - for ; - Wed, 4 Mar 2020 21:31:11 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 6132920828 - for ; - Wed, 4 Mar 2020 21:31:11 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="HKFX/pPT" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6132920828 -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=manjaro.org -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To - :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: - Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: - List-Owner; bh=w5RNMezlBKSJB0tCSEk4sJPOWhOWYWdtbkVGYQNDXFI=; b=HKFX/pPTL0fcDF - R9qC74ZcvmWsNe9+XRGoe/CFa6E5wpufnBwGVBlWAMf6TP3NxrI2eK9XCD6TAmQW18/85HychEgId - qGCU/seUa+UV6WOVWgQ5g3Ea+6kBaMM4cYYgsYaK3h3VlUQQtM3SvPArRNF1VYcj1uZiwX1ek7PO6 - B8Btks26iWloBhYYW62B5FA9wYcw0+Bcg2DE9NyPZ1i63GA6P8esgYpDnGLkmWehpZDYy8tJK00rE - ABbvK0xNgIIKCbbomExLAdMHg8PO14V/BNR1Bf9QBVZpnxt8xfr7GG33Znp7N1Nf19YJecmdUw5e2 - FnFUvjvPmLh4pIdxyp6Q==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j9bbh-0003te-QG; Wed, 04 Mar 2020 21:31:09 +0000 -Received: from mail.manjaro.org ([176.9.38.148]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j9bbe-0003tI-SU; Wed, 04 Mar 2020 21:31:08 +0000 -Received: from localhost (localhost [127.0.0.1]) - by mail.manjaro.org (Postfix) with ESMTP id 9C0823701125; - Wed, 4 Mar 2020 22:31:05 +0100 (CET) -X-Virus-Scanned: Debian amavisd-new at manjaro.org -Received: from mail.manjaro.org ([127.0.0.1]) - by localhost (manjaro.org [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id fkagLefmcj9V; Wed, 4 Mar 2020 22:31:03 +0100 (CET) -From: Tobias Schramm -To: Rob Herring , Mark Rutland , - Heiko Stuebner , Andy Yan , - Johan Jonker -Subject: [PATCH v4 1/2] dt-bindings: Add doc for Pine64 Pinebook Pro -Date: Wed, 4 Mar 2020 22:30:22 +0100 -Message-Id: <20200304213023.689983-2-t.schramm@manjaro.org> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200304_133107_065063_D9B62F20 -X-CRM114-Status: UNSURE ( 6.54 ) -X-CRM114-Notice: Please train this message. -X-Spam-Score: 0.0 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (0.0 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [176.9.38.148 listed in list.dnswl.org] - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, - Emmanuel Vadot , Alexis Ballier , - Tobias Schramm , Rob Herring , - Katsuhiro Suzuki , linux-kernel@vger.kernel.org, - Douglas Anderson , - Kever Yang , - Markus Reichl , - linux-rockchip@lists.infradead.org, Matthias Kaehlcke , - Jagan Teki , Nick Xie , - Vivek Unune -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -From: Emmanuel Vadot - -Add a compatible for Pine64 Pinebook Pro - -Signed-off-by: Emmanuel Vadot -Reviewed-by: Rob Herring ---- - Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml -index 874b0eaa2a75..17f0ab0b8832 100644 ---- a/Documentation/devicetree/bindings/arm/rockchip.yaml -+++ b/Documentation/devicetree/bindings/arm/rockchip.yaml -@@ -415,6 +415,11 @@ properties: - - const: pine64,rockpro64 - - const: rockchip,rk3399 - -+ - description: Pine64 PinebookPro -+ items: -+ - const: pine64,pinebook-pro -+ - const: rockchip,rk3399 -+ - - description: Radxa Rock - items: - - const: radxa,rock - -From patchwork Wed Mar 4 21:30:23 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Tobias Schramm -X-Patchwork-Id: 11420809 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F1D201395 - for ; - Wed, 4 Mar 2020 21:31:26 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id C71432084E - for ; - Wed, 4 Mar 2020 21:31:26 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="aaCRZACh" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C71432084E -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=manjaro.org -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=T4TZmXOPB1yBA/Cy6SktfxnDKyf4qoHPOaLfabPHwCI=; b=aaCRZAChIzBlJw - Ccci1IXygLymnzWTblUo/AuYY6tojwziDu90m20Ec1bJbXl27yBAYEeR3CEj4ELNSOiGKzqSpqE+k - rb7uRA7jjVfvj/gJJ2IFxGtd1CKBI6e0S+1qyN/l8ET6UykVavViDDtrsFHt7iD3X2+Bgbs9R8VLi - hB6gZwnuOsWb8JqpNLfrOPiCrkqTega/z2olbgct2T/Mb/85eH/l+SvyINCfyQCQyuOk9d2blYcA9 - 1i4TJi3MpRw7Pa68BnGPO7zK/ttk4SRxKYPi3On226GN5bGg9jNgSEpALbI+CK0wrYS0mIxGg0q7k - Gy09LxFJP7I1IxV6BR2w==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j9bbv-00047c-LS; Wed, 04 Mar 2020 21:31:23 +0000 -Received: from mail.manjaro.org ([176.9.38.148]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j9bbk-0003vp-EA; Wed, 04 Mar 2020 21:31:15 +0000 -Received: from localhost (localhost [127.0.0.1]) - by mail.manjaro.org (Postfix) with ESMTP id 26030370112C; - Wed, 4 Mar 2020 22:31:11 +0100 (CET) -X-Virus-Scanned: Debian amavisd-new at manjaro.org -Received: from mail.manjaro.org ([127.0.0.1]) - by localhost (manjaro.org [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id OKG7wH7ZOt7o; Wed, 4 Mar 2020 22:31:07 +0100 (CET) -From: Tobias Schramm -To: Rob Herring , Mark Rutland , - Heiko Stuebner , Andy Yan , - Johan Jonker -Subject: [PATCH v4 2/2] arm64: dts: rockchip: Add initial support for Pinebook - Pro -Date: Wed, 4 Mar 2020 22:30:23 +0100 -Message-Id: <20200304213023.689983-3-t.schramm@manjaro.org> -In-Reply-To: <20200304213023.689983-2-t.schramm@manjaro.org> -References: <20200304213023.689983-2-t.schramm@manjaro.org> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200304_133112_802914_89F85872 -X-CRM114-Status: GOOD ( 13.85 ) -X-Spam-Score: 0.0 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (0.0 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [176.9.38.148 listed in list.dnswl.org] - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, - Emmanuel Vadot , Alexis Ballier , - Tobias Schramm , - Katsuhiro Suzuki , linux-kernel@vger.kernel.org, - Douglas Anderson , - Kever Yang , - Markus Reichl , - linux-rockchip@lists.infradead.org, Matthias Kaehlcke , - Jagan Teki , Nick Xie , - Vivek Unune -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -This commit adds initial dt support for the rk3399 based Pinebook Pro. - -Signed-off-by: Tobias Schramm ---- - arch/arm64/boot/dts/rockchip/Makefile | 1 + - .../boot/dts/rockchip/rk3399-pinebook-pro.dts | 1096 +++++++++++++++++ - 2 files changed, 1097 insertions(+) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts - -diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile -index 60d9437096c7..ae7621309e92 100644 ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -28,6 +28,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopc-t4.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-m4.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-neo4.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-orangepi.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinebook-pro.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-mezzanine.dtb -diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts -new file mode 100644 -index 000000000000..8f77ee4f256c ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts -@@ -0,0 +1,1098 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd. -+ * Copyright (c) 2018 Akash Gajjar -+ * Copyright (c) 2020 Tobias Schramm -+ */ -+ -+/dts-v1/; -+#include -+#include -+#include -+#include -+#include -+#include "rk3399.dtsi" -+#include "rk3399-opp.dtsi" -+ -+/ { -+ model = "Pine64 Pinebook Pro"; -+ compatible = "pine64,pinebook-pro", "rockchip,rk3399"; -+ -+ chosen { -+ stdout-path = "serial2:1500000n8"; -+ }; -+ -+ backlight: edp-backlight { -+ compatible = "pwm-backlight"; -+ power-supply = <&vcc_12v>; -+ pwms = <&pwm0 0 740740 0>; -+ }; -+ -+ edp_panel: edp-panel { -+ compatible = "boe,nv140fhmn49"; -+ backlight = <&backlight>; -+ enable-gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&panel_en_gpio>; -+ power-supply = <&vcc3v3_panel>; -+ -+ ports { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ port@0 { -+ reg = <0>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ panel_in_edp: endpoint@0 { -+ reg = <0>; -+ remote-endpoint = <&edp_out_panel>; -+ }; -+ }; -+ }; -+ }; -+ -+ /* -+ * Use separate nodes for gpio-keys to allow for selective deactivation -+ * of wakeup sources via sysfs without disabling the whole key -+ */ -+ gpio-key-lid { -+ compatible = "gpio-keys"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&lidbtn_gpio>; -+ -+ lid { -+ debounce-interval = <20>; -+ gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_LOW>; -+ label = "Lid"; -+ linux,code = ; -+ linux,input-type = ; -+ wakeup-event-action = ; -+ wakeup-source; -+ }; -+ }; -+ -+ gpio-key-power { -+ compatible = "gpio-keys"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pwrbtn_gpio>; -+ -+ power { -+ debounce-interval = <20>; -+ gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; -+ label = "Power"; -+ linux,code = ; -+ wakeup-source; -+ }; -+ }; -+ -+ -+ leds { -+ compatible = "gpio-leds"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pwrled_gpio &slpled_gpio>; -+ -+ green-led { -+ color = ; -+ default-state = "on"; -+ function = LED_FUNCTION_POWER; -+ gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; -+ label = "green:power"; -+ }; -+ -+ red-led { -+ color = ; -+ default-state = "off"; -+ function = LED_FUNCTION_STANDBY; -+ gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; -+ label = "red:standby"; -+ panic-indicator; -+ retain-state-suspended; -+ }; -+ }; -+ -+ /* Power sequence for SDIO WiFi module */ -+ sdio_pwrseq: sdio-pwrseq { -+ compatible = "mmc-pwrseq-simple"; -+ clocks = <&rk808 1>; -+ clock-names = "ext_clock"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&wifi_enable_h_gpio>; -+ post-power-on-delay-ms = <100>; -+ power-off-delay-us = <500000>; -+ -+ /* WL_REG_ON on module */ -+ reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; -+ }; -+ -+ /* Audio components */ -+ es8316-sound { -+ compatible = "simple-audio-card"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&hp_det_gpio>; -+ simple-audio-card,name = "rockchip,es8316-codec"; -+ simple-audio-card,format = "i2s"; -+ simple-audio-card,mclk-fs = <256>; -+ -+ simple-audio-card,widgets = -+ "Microphone", "Mic Jack", -+ "Headphone", "Headphones", -+ "Speaker", "Speaker"; -+ simple-audio-card,routing = -+ "MIC1", "Mic Jack", -+ "Headphones", "HPOL", -+ "Headphones", "HPOR", -+ "Speaker Amplifier INL", "HPOL", -+ "Speaker Amplifier INR", "HPOR", -+ "Speaker", "Speaker Amplifier OUTL", -+ "Speaker", "Speaker Amplifier OUTR"; -+ -+ simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_LOW>; -+ simple-audio-card,aux-devs = <&speaker_amp>; -+ simple-audio-card,pin-switches = "Speaker"; -+ -+ simple-audio-card,cpu { -+ sound-dai = <&i2s1>; -+ }; -+ -+ simple-audio-card,codec { -+ sound-dai = <&es8316>; -+ }; -+ }; -+ -+ speaker_amp: speaker-amplifier { -+ compatible = "simple-audio-amplifier"; -+ enable-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>; -+ sound-name-prefix = "Speaker Amplifier"; -+ VCC-supply = <&pa_5v>; -+ }; -+ -+ /* Power tree */ -+ /* Root power source */ -+ vcc_sysin: vcc-sysin { -+ compatible = "regulator-fixed"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-name = "vcc_sysin"; -+ }; -+ -+ /* Regulators supplied by vcc_sysin */ -+ /* LCD backlight supply */ -+ vcc_12v: vcc-12v { -+ compatible = "regulator-fixed"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <12000000>; -+ regulator-max-microvolt = <12000000>; -+ regulator-name = "vcc_12v"; -+ vin-supply = <&vcc_sysin>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ /* Main 3.3 V supply */ -+ vcc3v3_sys: wifi_bat: vcc3v3-sys { -+ compatible = "regulator-fixed"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc3v3_sys"; -+ vin-supply = <&vcc_sysin>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ /* 5 V USB power supply */ -+ vcc5v0_usb: pa_5v: vcc5v0-usb-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pwr_5v_gpio>; -+ regulator-always-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ regulator-name = "vcc5v0_usb"; -+ vin-supply = <&vcc_sysin>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ /* RK3399 logic supply */ -+ vdd_log: vdd-log { -+ compatible = "pwm-regulator"; -+ pwms = <&pwm2 0 25000 1>; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <800000>; -+ regulator-max-microvolt = <1400000>; -+ regulator-name = "vdd_log"; -+ vin-supply = <&vcc_sysin>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ /* Regulators supplied by vcc3v3_sys */ -+ /* 0.9 V supply, always on */ -+ vcc_0v9: vcc-0v9 { -+ compatible = "regulator-fixed"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ regulator-name = "vcc_0v9"; -+ vin-supply = <&vcc3v3_sys>; -+ }; -+ -+ /* S3 1.8 V supply, switched by vcc1v8_s3 */ -+ vcca1v8_s3: vcc1v8-s3 { -+ compatible = "regulator-fixed"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcca1v8_s3"; -+ vin-supply = <&vcc3v3_sys>; -+ }; -+ -+ /* micro SD card power */ -+ vcc3v0_sd: vcc3v0-sd { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc0_pwr_h_gpio>; -+ regulator-always-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "vcc3v0_sd"; -+ vin-supply = <&vcc3v3_sys>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ /* LCD panel power, called VCC3V3_S0 in schematic */ -+ vcc3v3_panel: vcc3v3-panel { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&lcdvcc_en_gpio>; -+ regulator-always-on; -+ regulator-enable-ramp-delay = <100000>; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc3v3_panel"; -+ vin-supply = <&vcc3v3_sys>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ /* M.2 adapter power, switched by vcc1v8_s3 */ -+ vcc3v3_ssd: vcc3v3-ssd { -+ compatible = "regulator-fixed"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc3v3_ssd"; -+ vin-supply = <&vcc3v3_sys>; -+ }; -+ -+ /* Regulators supplied by vcc5v0_usb */ -+ /* USB 3 port power supply regulator */ -+ vcc5v0_otg: vcc5v0-otg { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vcc5v0_host_en_gpio>; -+ regulator-always-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ regulator-name = "vcc5v0_otg"; -+ vin-supply = <&vcc5v0_usb>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ /* Regulators supplied by vcc5v0_usb */ -+ /* Type C port power supply regulator */ -+ vbus_5vout: vbus_typec: vbus-5vout { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vcc5v0_typec0_en_gpio>; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ regulator-name = "vbus_5vout"; -+ vin-supply = <&vcc5v0_usb>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ /* Regulators supplied by vcc_1v8 */ -+ /* Primary 0.9 V LDO */ -+ vcca0v9_s3: vcca0v9-s3 { -+ compatible = "regulator-fixed"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ regulator-name = "vcc0v9_s3"; -+ vin-supply = <&vcc_1v8>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ mains_charger: dc-charger { -+ compatible = "gpio-charger"; -+ charger-type = "mains"; -+ gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_LOW>; -+ -+ /* Also triggered by USB charger */ -+ pinctrl-names = "default"; -+ pinctrl-0 = <&dc_det_gpio>; -+ }; -+}; -+ -+&cdn_dp { -+ status = "okay"; -+}; -+ -+&cpu_b0 { -+ cpu-supply = <&vdd_cpu_b>; -+}; -+ -+&cpu_b1 { -+ cpu-supply = <&vdd_cpu_b>; -+}; -+ -+&cpu_l0 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_l1 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_l2 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&cpu_l3 { -+ cpu-supply = <&vdd_cpu_l>; -+}; -+ -+&edp { -+ force-hpd; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&edp_hpd>; -+ status = "okay"; -+ -+ ports { -+ edp_out: port@1 { -+ reg = <1>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ edp_out_panel: endpoint@0 { -+ reg = <0>; -+ remote-endpoint = <&panel_in_edp>; -+ }; -+ }; -+ }; -+}; -+ -+&emmc_phy { -+ status = "okay"; -+}; -+ -+&gpu { -+ mali-supply = <&vdd_gpu>; -+ status = "okay"; -+}; -+ -+&hdmi_sound { -+ status = "okay"; -+}; -+ -+&i2c0 { -+ clock-frequency = <400000>; -+ i2c-scl-falling-time-ns = <4>; -+ i2c-scl-rising-time-ns = <168>; -+ status = "okay"; -+ -+ rk808: pmic@1b { -+ compatible = "rockchip,rk808"; -+ reg = <0x1b>; -+ #clock-cells = <1>; -+ clock-output-names = "xin32k", "rk808-clkout2"; -+ interrupt-parent = <&gpio3>; -+ interrupts = <10 IRQ_TYPE_LEVEL_LOW>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pmic_int_l_gpio>; -+ rockchip,system-power-controller; -+ wakeup-source; -+ -+ vcc1-supply = <&vcc_sysin>; -+ vcc2-supply = <&vcc_sysin>; -+ vcc3-supply = <&vcc_sysin>; -+ vcc4-supply = <&vcc_sysin>; -+ vcc6-supply = <&vcc_sysin>; -+ vcc7-supply = <&vcc_sysin>; -+ vcc8-supply = <&vcc3v3_sys>; -+ vcc9-supply = <&vcc_sysin>; -+ vcc10-supply = <&vcc_sysin>; -+ vcc11-supply = <&vcc_sysin>; -+ vcc12-supply = <&vcc3v3_sys>; -+ vcc13-supply = <&vcc_sysin>; -+ vcc14-supply = <&vcc_sysin>; -+ -+ regulators { -+ /* rk3399 center logic supply */ -+ vdd_center: DCDC_REG1 { -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <750000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-name = "vdd_center"; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdd_cpu_l: DCDC_REG2 { -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <750000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-name = "vdd_cpu_l"; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_ddr: DCDC_REG3 { -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-name = "vcc_ddr"; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ vcc_1v8: vcc_wl: DCDC_REG4 { -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcc_1v8"; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ /* not used */ -+ LDO_REG1 { -+ }; -+ -+ /* not used */ -+ LDO_REG2 { -+ }; -+ -+ vcc1v8_pmupll: LDO_REG3 { -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcc1v8_pmupll"; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ vcc_sdio: LDO_REG4 { -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "vcc_sdio"; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3000000>; -+ }; -+ }; -+ -+ vcca3v0_codec: LDO_REG5 { -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "vcca3v0_codec"; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_1v5: LDO_REG6 { -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1500000>; -+ regulator-max-microvolt = <1500000>; -+ regulator-name = "vcc_1v5"; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1500000>; -+ }; -+ }; -+ -+ vcca1v8_codec: LDO_REG7 { -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcca1v8_codec"; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_3v0: LDO_REG8 { -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "vcc_3v0"; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3000000>; -+ }; -+ }; -+ -+ vcc3v3_s3: SWITCH_REG1 { -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-name = "vcc3v3_s3"; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc3v3_s0: SWITCH_REG2 { -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-name = "vcc3v3_s0"; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ }; -+ }; -+ -+ vdd_cpu_b: regulator@40 { -+ compatible = "silergy,syr827"; -+ reg = <0x40>; -+ fcs,suspend-voltage-selector = <1>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vsel1_gpio>; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-compatible = "fan53555-reg"; -+ regulator-min-microvolt = <712500>; -+ regulator-max-microvolt = <1500000>; -+ regulator-name = "vdd_cpu_b"; -+ regulator-ramp-delay = <1000>; -+ vin-supply = <&vcc_1v8>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdd_gpu: regulator@41 { -+ compatible = "silergy,syr828"; -+ reg = <0x41>; -+ fcs,suspend-voltage-selector = <1>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vsel2_gpio>; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-compatible = "fan53555-reg"; -+ regulator-min-microvolt = <712500>; -+ regulator-max-microvolt = <1500000>; -+ regulator-name = "vdd_gpu"; -+ regulator-ramp-delay = <1000>; -+ vin-supply = <&vcc_1v8>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+}; -+ -+&i2c1 { -+ clock-frequency = <100000>; -+ i2c-scl-falling-time-ns = <4>; -+ i2c-scl-rising-time-ns = <168>; -+ status = "okay"; -+ -+ es8316: es8316@11 { -+ compatible = "everest,es8316"; -+ reg = <0x11>; -+ clocks = <&cru SCLK_I2S_8CH_OUT>; -+ clock-names = "mclk"; -+ #sound-dai-cells = <0>; -+ }; -+}; -+ -+&i2c3 { -+ i2c-scl-falling-time-ns = <15>; -+ i2c-scl-rising-time-ns = <450>; -+ status = "okay"; -+}; -+ -+&i2c4 { -+ i2c-scl-falling-time-ns = <20>; -+ i2c-scl-rising-time-ns = <600>; -+ status = "okay"; -+ -+ fusb0: fusb30x@22 { -+ compatible = "fcs,fusb302"; -+ reg = <0x22>; -+ fcs,int_n = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&fusb0_int_gpio>; -+ vbus-supply = <&vbus_typec>; -+ -+ connector { -+ compatible = "usb-c-connector"; -+ data-role = "host"; -+ label = "USB-C"; -+ op-sink-microwatt = <1000000>; -+ power-role = "dual"; -+ sink-pdos = -+ ; -+ source-pdos = -+ ; -+ try-power-role = "sink"; -+ -+ ports { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ port@0 { -+ reg = <0>; -+ -+ usbc_hs: endpoint { -+ remote-endpoint = -+ <&u2phy0_typec_hs>; -+ }; -+ }; -+ -+ port@1 { -+ reg = <1>; -+ -+ usbc_ss: endpoint { -+ remote-endpoint = -+ <&tcphy0_typec_ss>; -+ }; -+ }; -+ -+ port@2 { -+ reg = <2>; -+ -+ usbc_dp: endpoint { -+ remote-endpoint = -+ <&tcphy0_typec_dp>; -+ }; -+ }; -+ }; -+ }; -+ }; -+}; -+ -+&i2s1 { -+ #sound-dai-cells = <0>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2s_8ch_mclk_gpio>, <&i2s1_2ch_bus>; -+ rockchip,capture-channels = <8>; -+ rockchip,playback-channels = <8>; -+ status = "okay"; -+}; -+ -+&io_domains { -+ audio-supply = <&vcc_3v0>; -+ gpio1830-supply = <&vcc_3v0>; -+ sdmmc-supply = <&vcc_sdio>; -+ status = "okay"; -+}; -+ -+&pcie_phy { -+ status = "okay"; -+}; -+ -+&pcie0 { -+ bus-scan-delay-ms = <1000>; -+ ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>; -+ max-link-speed = <2>; -+ num-lanes = <4>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie_clkreqn_cpm>; -+ vpcie0v9-supply = <&vcca0v9_s3>; -+ vpcie1v8-supply = <&vcca1v8_s3>; -+ vpcie3v3-supply = <&vcc3v3_ssd>; -+ status = "okay"; -+}; -+ -+&pinctrl { -+ buttons { -+ pwrbtn_gpio: pwrbtn-gpio { -+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ -+ lidbtn_gpio: lidbtn-gpio { -+ rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ dc-charger { -+ dc_det_gpio: dc-det-gpio { -+ rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ es8316 { -+ hp_det_gpio: hp-det-gpio { -+ rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ }; -+ -+ fusb302x { -+ fusb0_int_gpio: fusb0-int-gpio { -+ rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ i2s1 { -+ i2s_8ch_mclk_gpio: i2s-8ch-mclk-gpio { -+ rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>; -+ }; -+ }; -+ -+ lcd-panel { -+ lcdvcc_en_gpio: lcdvcc-en-gpio { -+ rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ panel_en_gpio: panel-en-gpio { -+ rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ lcd_panel_reset_gpio: lcd-panel-reset-gpio { -+ rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ leds { -+ pwrled_gpio: pwrled_gpio { -+ rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ slpled_gpio: slpled_gpio { -+ rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ pmic { -+ pmic_int_l_gpio: pmic-int-l-gpio { -+ rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ -+ vsel1_gpio: vsel1-gpio { -+ rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ -+ vsel2_gpio: vsel2-gpio { -+ rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ }; -+ -+ sdcard { -+ sdmmc0_pwr_h_gpio: sdmmc0-pwr-h-gpio { -+ rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ }; -+ -+ sdio-pwrseq { -+ wifi_enable_h_gpio: wifi-enable-h-gpio { -+ rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ usb-typec { -+ vcc5v0_typec0_en_gpio: vcc5v0-typec0-en-gpio { -+ rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ usb2 { -+ pwr_5v_gpio: pwr-5v-gpio { -+ rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ vcc5v0_host_en_gpio: vcc5v0-host-en-gpio { -+ rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ wireless-bluetooth { -+ bt_wake_gpio: bt-wake-gpio { -+ rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ bt_host_wake_gpio: bt-host-wake-gpio { -+ rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ bt_reset_gpio: bt-reset-gpio { -+ rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+}; -+ -+&pmu_io_domains { -+ pmu1830-supply = <&vcc_3v0>; -+ status = "okay"; -+}; -+ -+&pwm0 { -+ status = "okay"; -+}; -+ -+&pwm2 { -+ status = "okay"; -+}; -+ -+&saradc { -+ vref-supply = <&vcca1v8_s3>; -+ status = "okay"; -+}; -+ -+&sdmmc { -+ bus-width = <4>; -+ cap-mmc-highspeed; -+ cap-sd-highspeed; -+ cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; -+ disable-wp; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; -+ sd-uhs-sdr104; -+ vmmc-supply = <&vcc3v0_sd>; -+ vqmmc-supply = <&vcc_sdio>; -+ status = "okay"; -+}; -+ -+&sdio0 { -+ bus-width = <4>; -+ cap-sd-highspeed; -+ cap-sdio-irq; -+ keep-power-in-suspend; -+ mmc-pwrseq = <&sdio_pwrseq>; -+ non-removable; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; -+ sd-uhs-sdr104; -+ status = "okay"; -+}; -+ -+&sdhci { -+ bus-width = <8>; -+ mmc-hs200-1_8v; -+ non-removable; -+ status = "okay"; -+}; -+ -+&spi1 { -+ max-freq = <10000000>; -+ status = "okay"; -+ -+ spiflash: flash@0 { -+ compatible = "jedec,spi-nor"; -+ reg = <0>; -+ m25p,fast-read; -+ spi-max-frequency = <10000000>; -+ }; -+}; -+ -+&tcphy0 { -+ status = "okay"; -+}; -+ -+&tcphy0_dp { -+ port { -+ tcphy0_typec_dp: endpoint { -+ remote-endpoint = <&usbc_dp>; -+ }; -+ }; -+}; -+ -+&tcphy0_usb3 { -+ port { -+ tcphy0_typec_ss: endpoint { -+ remote-endpoint = <&usbc_ss>; -+ }; -+ }; -+}; -+ -+&tcphy1 { -+ status = "okay"; -+}; -+ -+&tsadc { -+ /* tshut mode 0:CRU 1:GPIO */ -+ rockchip,hw-tshut-mode = <1>; -+ /* tshut polarity 0:LOW 1:HIGH */ -+ rockchip,hw-tshut-polarity = <1>; -+ status = "okay"; -+}; -+ -+&u2phy0 { -+ status = "okay"; -+ -+ u2phy0_otg: otg-port { -+ status = "okay"; -+ }; -+ -+ u2phy0_host: host-port { -+ phy-supply = <&vcc5v0_otg>; -+ status = "okay"; -+ }; -+ -+ port { -+ u2phy0_typec_hs: endpoint { -+ remote-endpoint = <&usbc_hs>; -+ }; -+ }; -+}; -+ -+&u2phy1 { -+ status = "okay"; -+ -+ u2phy1_otg: otg-port { -+ status = "okay"; -+ }; -+ -+ u2phy1_host: host-port { -+ phy-supply = <&vcc5v0_otg>; -+ status = "okay"; -+ }; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; -+ uart-has-rtscts; -+ status = "okay"; -+ -+ bluetooth { -+ compatible = "brcm,bcm4345c5"; -+ clocks = <&rk808 1>; -+ clock-names = "lpo"; -+ device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; -+ host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; -+ max-speed = <1500000>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&bt_host_wake_gpio &bt_wake_gpio &bt_reset_gpio>; -+ shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>; -+ vbat-supply = <&wifi_bat>; -+ vddio-supply = <&vcc_wl>; -+ }; -+}; -+ -+&uart2 { -+ status = "okay"; -+}; -+ -+&usb_host0_ehci { -+ status = "okay"; -+}; -+ -+&usb_host0_ohci { -+ status = "okay"; -+}; -+ -+&usb_host1_ehci { -+ status = "okay"; -+}; -+ -+&usb_host1_ohci { -+ status = "okay"; -+}; -+ -+&usbdrd3_0 { -+ status = "okay"; -+}; -+ -+&usbdrd_dwc3_0 { -+ dr_mode = "host"; -+ status = "okay"; -+}; -+ -+&usbdrd3_1 { -+ status = "okay"; -+}; -+ -+&usbdrd_dwc3_1 { -+ dr_mode = "host"; -+ status = "okay"; -+}; -+ -+&vopb { -+ status = "okay"; -+}; -+ -+&vopb_mmu { -+ status = "okay"; -+}; -+ -+&vopl { -+ status = "okay"; -+}; -+ -+&vopl_mmu { -+ status = "okay"; -+}; diff --git a/PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch b/PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch deleted file mode 100644 index 1d859bb57..000000000 --- a/PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch +++ /dev/null @@ -1,481 +0,0 @@ -From patchwork Fri Jan 10 19:14:59 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Vidya Sagar -X-Patchwork-Id: 1221384 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; spf=none (no SPF record) - smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; - helo=vger.kernel.org; - envelope-from=linux-pci-owner@vger.kernel.org; - receiver=) -Authentication-Results: ozlabs.org; - dmarc=pass (p=none dis=none) header.from=nvidia.com -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=nvidia.com header.i=@nvidia.com - header.a=rsa-sha256 header.s=n1 header.b=gf35ja2k; - dkim-atps=neutral -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by ozlabs.org (Postfix) with ESMTP id 47vXkJ2PJMz9sPJ - for ; - Sat, 11 Jan 2020 06:15:20 +1100 (AEDT) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1728167AbgAJTPQ (ORCPT ); - Fri, 10 Jan 2020 14:15:16 -0500 -Received: from hqnvemgate26.nvidia.com ([216.228.121.65]:1668 "EHLO - hqnvemgate26.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1727612AbgAJTPQ (ORCPT - ); Fri, 10 Jan 2020 14:15:16 -0500 -Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by - hqnvemgate26.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) - id ; Fri, 10 Jan 2020 11:14:57 -0800 -Received: from hqmail.nvidia.com ([172.20.161.6]) - by hqpgpgate101.nvidia.com (PGP Universal service); - Fri, 10 Jan 2020 11:15:15 -0800 -X-PGP-Universal: processed; - by hqpgpgate101.nvidia.com on Fri, 10 Jan 2020 11:15:15 -0800 -Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL101.nvidia.com - (172.20.187.10) with Microsoft SMTP Server (TLS) id 15.0.1473.3; - Fri, 10 Jan 2020 19:15:15 +0000 -Received: from HQMAIL107.nvidia.com (172.20.187.13) by HQMAIL109.nvidia.com - (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; - Fri, 10 Jan 2020 19:15:14 +0000 -Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL107.nvidia.com - (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via - Frontend Transport; Fri, 10 Jan 2020 19:15:14 +0000 -Received: from vidyas-desktop.nvidia.com (Not Verified[10.24.37.48]) by - rnnvemgw01.nvidia.com with Trustwave SEG (v7, 5, 8, 10121) - id ; Fri, 10 Jan 2020 11:15:14 -0800 -From: Vidya Sagar -To: , , - , , , - , -CC: , , - , , - , , , - -Subject: [PATCH V3 1/2] arm64: tegra: Re-order PCIe aperture mappings to - support ACPI boot -Date: Sat, 11 Jan 2020 00:44:59 +0530 -Message-ID: <20200110191500.9538-2-vidyas@nvidia.com> -X-Mailer: git-send-email 2.17.1 -In-Reply-To: <20200110191500.9538-1-vidyas@nvidia.com> -References: <20200106082709.14370-1-vidyas@nvidia.com> - <20200110191500.9538-1-vidyas@nvidia.com> -X-NVConfidentiality: public -MIME-Version: 1.0 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; - t=1578683697; bh=A9295dTyR+j2yr8EqSviqtTgED4nGyVgvOv0oWR2ueU=; - h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: - In-Reply-To:References:X-NVConfidentiality:MIME-Version: - Content-Type; - b=gf35ja2k7JnAqX+jyF1OxPVsYL5Fk4U+zYrMvTudBnjv0lLjB+7vnkXuO5FnSX28a - o2Mvk9yks+a7NYLZkVfmKCXKbeDNoGPlPSy+g8CAyeAd5u7leSGONsy5awV83vmud7 - /KuuExw/Ko4JihAJdQ57/4EaaohgPWUNbodkmI5Wo0e7qyfgf5PvkAkwe1PdtgEKls - t9tsBwoqjGJn5WWPiQMaUZ8OHdSvPrUDuyKEFPjjr9IpczNvMzJE8SyHDZci42N+s+ - f0iCjfLLhugetglYqrGi5j8eknYwfvMIV+vnkZj0dSmiS70Y1G31dVfgR/s3ueHnRy - jBNjNRTUtey9w== -Sender: linux-pci-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-pci@vger.kernel.org - -Re-order Tegra194's PCIe aperture mappings to have IO window moved to -64-bit aperture and have the entire 32-bit aperture used for accessing -the configuration space. This makes it to use the entire 32MB of the 32-bit -aperture for ECAM purpose while booting through ACPI. - -Signed-off-by: Vidya Sagar ---- -V3: -* New change in this series - - arch/arm64/boot/dts/nvidia/tegra194.dtsi | 36 ++++++++++++------------ - 1 file changed, 18 insertions(+), 18 deletions(-) - -diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi -index ccac43be12ac..5d790ec5bdef 100644 ---- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi -+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi -@@ -1247,9 +1247,9 @@ - nvidia,aspm-l0s-entrance-latency-us = <3>; - - bus-range = <0x0 0xff>; -- ranges = <0x81000000 0x0 0x30100000 0x0 0x30100000 0x0 0x00100000 /* downstream I/O (1MB) */ -- 0xc2000000 0x12 0x00000000 0x12 0x00000000 0x0 0x30000000 /* prefetchable memory (768MB) */ -- 0x82000000 0x0 0x40000000 0x12 0x30000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */ -+ ranges = <0xc2000000 0x12 0x00000000 0x12 0x00000000 0x0 0x30000000 /* prefetchable memory (768MB) */ -+ 0x82000000 0x00 0x40000000 0x12 0x30000000 0x0 0x0fff0000 /* non-prefetchable memory (256MB - 64KB) */ -+ 0x81000000 0x00 0x00000000 0x12 0x3fff0000 0x0 0x00010000>; /* downstream I/O (64KB) */ - }; - - pcie@14120000 { -@@ -1292,9 +1292,9 @@ - nvidia,aspm-l0s-entrance-latency-us = <3>; - - bus-range = <0x0 0xff>; -- ranges = <0x81000000 0x0 0x32100000 0x0 0x32100000 0x0 0x00100000 /* downstream I/O (1MB) */ -- 0xc2000000 0x12 0x40000000 0x12 0x40000000 0x0 0x30000000 /* prefetchable memory (768MB) */ -- 0x82000000 0x0 0x40000000 0x12 0x70000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */ -+ ranges = <0xc2000000 0x12 0x40000000 0x12 0x40000000 0x0 0x30000000 /* prefetchable memory (768MB) */ -+ 0x82000000 0x00 0x40000000 0x12 0x70000000 0x0 0x0fff0000 /* non-prefetchable memory (256MB - 64KB) */ -+ 0x81000000 0x00 0x00000000 0x12 0x7fff0000 0x0 0x00010000>; /* downstream I/O (64KB) */ - }; - - pcie@14140000 { -@@ -1337,9 +1337,9 @@ - nvidia,aspm-l0s-entrance-latency-us = <3>; - - bus-range = <0x0 0xff>; -- ranges = <0x81000000 0x0 0x34100000 0x0 0x34100000 0x0 0x00100000 /* downstream I/O (1MB) */ -- 0xc2000000 0x12 0x80000000 0x12 0x80000000 0x0 0x30000000 /* prefetchable memory (768MB) */ -- 0x82000000 0x0 0x40000000 0x12 0xb0000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */ -+ ranges = <0xc2000000 0x12 0x80000000 0x12 0x80000000 0x0 0x30000000 /* prefetchable memory (768MB) */ -+ 0x82000000 0x00 0x40000000 0x12 0xb0000000 0x0 0x0fff0000 /* non-prefetchable memory (256MB - 64KB) */ -+ 0x81000000 0x00 0x00000000 0x12 0xbfff0000 0x0 0x00010000>; /* downstream I/O (64KB) */ - }; - - pcie@14160000 { -@@ -1382,9 +1382,9 @@ - nvidia,aspm-l0s-entrance-latency-us = <3>; - - bus-range = <0x0 0xff>; -- ranges = <0x81000000 0x0 0x36100000 0x0 0x36100000 0x0 0x00100000 /* downstream I/O (1MB) */ -- 0xc2000000 0x14 0x00000000 0x14 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */ -- 0x82000000 0x0 0x40000000 0x17 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */ -+ ranges = <0xc2000000 0x14 0x00000000 0x14 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */ -+ 0x82000000 0x00 0x40000000 0x17 0x40000000 0x0 0xbfff0000 /* non-prefetchable memory (3GB - 64KB) */ -+ 0x81000000 0x00 0x00000000 0x17 0xffff0000 0x0 0x00010000>; /* downstream I/O (64KB) */ - }; - - pcie@14180000 { -@@ -1427,9 +1427,9 @@ - nvidia,aspm-l0s-entrance-latency-us = <3>; - - bus-range = <0x0 0xff>; -- ranges = <0x81000000 0x0 0x38100000 0x0 0x38100000 0x0 0x00100000 /* downstream I/O (1MB) */ -- 0xc2000000 0x18 0x00000000 0x18 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */ -- 0x82000000 0x0 0x40000000 0x1b 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */ -+ ranges = <0xc2000000 0x18 0x00000000 0x18 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */ -+ 0x82000000 0x00 0x40000000 0x1b 0x40000000 0x0 0xbfff0000 /* non-prefetchable memory (3GB - 64KB) */ -+ 0x81000000 0x00 0x00000000 0x1b 0xffff0000 0x0 0x00010000>; /* downstream I/O (64KB) */ - }; - - pcie@141a0000 { -@@ -1476,9 +1476,9 @@ - nvidia,aspm-l0s-entrance-latency-us = <3>; - - bus-range = <0x0 0xff>; -- ranges = <0x81000000 0x0 0x3a100000 0x0 0x3a100000 0x0 0x00100000 /* downstream I/O (1MB) */ -- 0xc2000000 0x1c 0x00000000 0x1c 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */ -- 0x82000000 0x0 0x40000000 0x1f 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */ -+ ranges = <0xc2000000 0x1c 0x00000000 0x1c 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */ -+ 0x82000000 0x00 0x40000000 0x1f 0x40000000 0x0 0xbfff0000 /* non-prefetchable memory (3GB - 64KB) */ -+ 0x81000000 0x00 0x00000000 0x1f 0xffff0000 0x0 0x00010000>; /* downstream I/O (64KB) */ - }; - - pcie_ep@14160000 { - -From patchwork Fri Jan 10 19:15:00 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Vidya Sagar -X-Patchwork-Id: 1221385 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; spf=none (no SPF record) - smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; - helo=vger.kernel.org; - envelope-from=linux-pci-owner@vger.kernel.org; - receiver=) -Authentication-Results: ozlabs.org; - dmarc=pass (p=none dis=none) header.from=nvidia.com -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=nvidia.com header.i=@nvidia.com - header.a=rsa-sha256 header.s=n1 header.b=KDh6KAfT; - dkim-atps=neutral -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by ozlabs.org (Postfix) with ESMTP id 47vXkS04dtz9sR0 - for ; - Sat, 11 Jan 2020 06:15:28 +1100 (AEDT) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1728451AbgAJTPX (ORCPT ); - Fri, 10 Jan 2020 14:15:23 -0500 -Received: from hqnvemgate24.nvidia.com ([216.228.121.143]:9177 "EHLO - hqnvemgate24.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1727612AbgAJTPX (ORCPT - ); Fri, 10 Jan 2020 14:15:23 -0500 -Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by - hqnvemgate24.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) - id ; Fri, 10 Jan 2020 11:14:30 -0800 -Received: from hqmail.nvidia.com ([172.20.161.6]) - by hqpgpgate101.nvidia.com (PGP Universal service); - Fri, 10 Jan 2020 11:15:21 -0800 -X-PGP-Universal: processed; - by hqpgpgate101.nvidia.com on Fri, 10 Jan 2020 11:15:21 -0800 -Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL111.nvidia.com - (172.20.187.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3; - Fri, 10 Jan 2020 19:15:21 +0000 -Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL109.nvidia.com - (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; - Fri, 10 Jan 2020 19:15:21 +0000 -Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL109.nvidia.com - (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via - Frontend Transport; Fri, 10 Jan 2020 19:15:20 +0000 -Received: from vidyas-desktop.nvidia.com (Not Verified[10.24.37.48]) by - rnnvemgw01.nvidia.com with Trustwave SEG (v7, 5, 8, 10121) - id ; Fri, 10 Jan 2020 11:15:20 -0800 -From: Vidya Sagar -To: , , - , , , - , -CC: , , - , , - , , , - -Subject: [PATCH V3 2/2] PCI: Add MCFG quirks for Tegra194 host controllers -Date: Sat, 11 Jan 2020 00:45:00 +0530 -Message-ID: <20200110191500.9538-3-vidyas@nvidia.com> -X-Mailer: git-send-email 2.17.1 -In-Reply-To: <20200110191500.9538-1-vidyas@nvidia.com> -References: <20200106082709.14370-1-vidyas@nvidia.com> - <20200110191500.9538-1-vidyas@nvidia.com> -X-NVConfidentiality: public -MIME-Version: 1.0 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; - t=1578683671; bh=6wJT/II+S2upRtJe41MS3kcnFzRRB57EIPkoU3txnnc=; - h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: - In-Reply-To:References:X-NVConfidentiality:MIME-Version: - Content-Type; - b=KDh6KAfT+xBJE0n0yRibTvav8qocX0wdxtjjCMNH+VNrt1Gvwgt8htMQvTCpi08Hz - OLS6piubtsXb2Fk+J0rDcwmB2QM0YMKe6eA3DQkuJTPhl6PRxtvXdAYPfl/Z2pvG38 - dq6SIor6Yw4e76ncsvt69w6UXoLZHF7AywICq0jGnmPjWoKDnjID3qKSj5/u7tE+/L - 6hJUZ2QQebXRI17dRdfleyir+rRCS0wMl9tVNiAHplY3Wlxw895LJqvmVRZDVA+kg5 - 8DPKJY2JbazS6P4QcywESwuhDfejJGaJUz+1/6oSiHBMCI5OhfhFZ/lyTf0iZycdTQ - gnZUMkPu2QZOg== -Sender: linux-pci-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-pci@vger.kernel.org - -The PCIe controller in Tegra194 SoC is not completely ECAM-compliant. -With the current hardware design limitations in place, ECAM can be enabled -only for one controller (C5 controller to be precise) with bus numbers -starting from 160 instead of 0. A different approach is taken to avoid this -abnormal way of enabling ECAM for just one controller but to enable -configuration space access for all the other controllers. In this approach, -ops are added through MCFG quirk mechanism which access the configuration -spaces by dynamically programming iATU (internal AddressTranslation Unit) -to generate respective configuration accesses just like the way it is -done in DesignWare core sub-system. - -Signed-off-by: Vidya Sagar -Reported-by: kbuild test robot -Acked-by: Thierry Reding ---- -V3: -* Removed MCFG address hardcoding in pci_mcfg.c file -* Started using 'dbi_base' for accessing root port's own config space -* and using 'config_base' for accessing config space of downstream hierarchy - -V2: -* Fixed build issues reported by kbuild test bot - - drivers/acpi/pci_mcfg.c | 7 ++ - drivers/pci/controller/dwc/Kconfig | 3 +- - drivers/pci/controller/dwc/Makefile | 2 +- - drivers/pci/controller/dwc/pcie-tegra194.c | 102 +++++++++++++++++++++ - include/linux/pci-ecam.h | 1 + - 5 files changed, 113 insertions(+), 2 deletions(-) - -diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c -index 6b347d9920cc..707181408173 100644 ---- a/drivers/acpi/pci_mcfg.c -+++ b/drivers/acpi/pci_mcfg.c -@@ -116,6 +116,13 @@ static struct mcfg_fixup mcfg_quirks[] = { - THUNDER_ECAM_QUIRK(2, 12), - THUNDER_ECAM_QUIRK(2, 13), - -+ { "NVIDIA", "TEGRA194", 1, 0, MCFG_BUS_ANY, &tegra194_pcie_ops}, -+ { "NVIDIA", "TEGRA194", 1, 1, MCFG_BUS_ANY, &tegra194_pcie_ops}, -+ { "NVIDIA", "TEGRA194", 1, 2, MCFG_BUS_ANY, &tegra194_pcie_ops}, -+ { "NVIDIA", "TEGRA194", 1, 3, MCFG_BUS_ANY, &tegra194_pcie_ops}, -+ { "NVIDIA", "TEGRA194", 1, 4, MCFG_BUS_ANY, &tegra194_pcie_ops}, -+ { "NVIDIA", "TEGRA194", 1, 5, MCFG_BUS_ANY, &tegra194_pcie_ops}, -+ - #define XGENE_V1_ECAM_MCFG(rev, seg) \ - {"APM ", "XGENE ", rev, seg, MCFG_BUS_ANY, \ - &xgene_v1_pcie_ecam_ops } -diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig -index 0830dfcfa43a..f5b9e75aceed 100644 ---- a/drivers/pci/controller/dwc/Kconfig -+++ b/drivers/pci/controller/dwc/Kconfig -@@ -255,7 +255,8 @@ config PCIE_TEGRA194 - select PHY_TEGRA194_P2U - help - Say Y here if you want support for DesignWare core based PCIe host -- controller found in NVIDIA Tegra194 SoC. -+ controller found in NVIDIA Tegra194 SoC. ACPI platforms with Tegra194 -+ don't need to enable this. - - config PCIE_UNIPHIER - bool "Socionext UniPhier PCIe controllers" -diff --git a/drivers/pci/controller/dwc/Makefile b/drivers/pci/controller/dwc/Makefile -index 8a637cfcf6e9..76a6c52b8500 100644 ---- a/drivers/pci/controller/dwc/Makefile -+++ b/drivers/pci/controller/dwc/Makefile -@@ -17,7 +17,6 @@ obj-$(CONFIG_PCIE_INTEL_GW) += pcie-intel-gw.o - obj-$(CONFIG_PCIE_KIRIN) += pcie-kirin.o - obj-$(CONFIG_PCIE_HISI_STB) += pcie-histb.o - obj-$(CONFIG_PCI_MESON) += pci-meson.o --obj-$(CONFIG_PCIE_TEGRA194) += pcie-tegra194.o - obj-$(CONFIG_PCIE_UNIPHIER) += pcie-uniphier.o - - # The following drivers are for devices that use the generic ACPI -@@ -33,4 +32,5 @@ obj-$(CONFIG_PCIE_UNIPHIER) += pcie-uniphier.o - ifdef CONFIG_PCI - obj-$(CONFIG_ARM64) += pcie-al.o - obj-$(CONFIG_ARM64) += pcie-hisi.o -+obj-$(CONFIG_ARM64) += pcie-tegra194.o - endif -diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c -index cbe95f0ea0ca..660f55caa8be 100644 ---- a/drivers/pci/controller/dwc/pcie-tegra194.c -+++ b/drivers/pci/controller/dwc/pcie-tegra194.c -@@ -21,6 +21,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -285,6 +287,103 @@ struct tegra_pcie_dw { - struct dentry *debugfs; - }; - -+#if defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS) -+struct tegra194_pcie_acpi { -+ void __iomem *config_base; -+ void __iomem *iatu_base; -+ void __iomem *dbi_base; -+}; -+ -+static int tegra194_acpi_init(struct pci_config_window *cfg) -+{ -+ struct device *dev = cfg->parent; -+ struct tegra194_pcie_acpi *pcie; -+ -+ pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); -+ if (!pcie) -+ return -ENOMEM; -+ -+ pcie->config_base = cfg->win; -+ pcie->iatu_base = cfg->win + SZ_256K; -+ pcie->dbi_base = cfg->win + SZ_512K; -+ cfg->priv = pcie; -+ -+ return 0; -+} -+ -+static inline void atu_reg_write(struct tegra194_pcie_acpi *pcie, int index, -+ u32 val, u32 reg) -+{ -+ u32 offset = PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index); -+ -+ writel(val, pcie->iatu_base + offset + reg); -+} -+ -+static void program_outbound_atu(struct tegra194_pcie_acpi *pcie, int index, -+ int type, u64 cpu_addr, u64 pci_addr, u64 size) -+{ -+ atu_reg_write(pcie, index, lower_32_bits(cpu_addr), -+ PCIE_ATU_LOWER_BASE); -+ atu_reg_write(pcie, index, upper_32_bits(cpu_addr), -+ PCIE_ATU_UPPER_BASE); -+ atu_reg_write(pcie, index, lower_32_bits(pci_addr), -+ PCIE_ATU_LOWER_TARGET); -+ atu_reg_write(pcie, index, lower_32_bits(cpu_addr + size - 1), -+ PCIE_ATU_LIMIT); -+ atu_reg_write(pcie, index, upper_32_bits(pci_addr), -+ PCIE_ATU_UPPER_TARGET); -+ atu_reg_write(pcie, index, type, PCIE_ATU_CR1); -+ atu_reg_write(pcie, index, PCIE_ATU_ENABLE, PCIE_ATU_CR2); -+} -+ -+static void __iomem *tegra194_map_bus(struct pci_bus *bus, -+ unsigned int devfn, int where) -+{ -+ struct pci_config_window *cfg = bus->sysdata; -+ struct tegra194_pcie_acpi *pcie = cfg->priv; -+ u32 busdev; -+ int type; -+ -+ if (bus->number < cfg->busr.start || bus->number > cfg->busr.end) -+ return NULL; -+ -+ if (bus->number == cfg->busr.start) { -+ if (PCI_SLOT(devfn) == 0) -+ return pcie->dbi_base + where; -+ else -+ return NULL; -+ } -+ -+ busdev = PCIE_ATU_BUS(bus->number) | PCIE_ATU_DEV(PCI_SLOT(devfn)) | -+ PCIE_ATU_FUNC(PCI_FUNC(devfn)); -+ -+ if (bus->parent->number == cfg->busr.start) { -+ if (PCI_SLOT(devfn) == 0) -+ type = PCIE_ATU_TYPE_CFG0; -+ else -+ return NULL; -+ } else { -+ type = PCIE_ATU_TYPE_CFG1; -+ } -+ -+ program_outbound_atu(pcie, PCIE_ATU_REGION_INDEX0, type, -+ cfg->res.start, busdev, SZ_256K); -+ return (void __iomem *)(pcie->config_base + where); -+} -+ -+struct pci_ecam_ops tegra194_pcie_ops = { -+ .bus_shift = 20, -+ .init = tegra194_acpi_init, -+ .pci_ops = { -+ .map_bus = tegra194_map_bus, -+ .read = pci_generic_config_read, -+ .write = pci_generic_config_write, -+ } -+}; -+#endif /* defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS) */ -+ -+#ifdef CONFIG_PCIE_TEGRA194 -+ - static inline struct tegra_pcie_dw *to_tegra_pcie(struct dw_pcie *pci) - { - return container_of(pci, struct tegra_pcie_dw, pci); -@@ -1728,3 +1827,6 @@ MODULE_DEVICE_TABLE(of, tegra_pcie_dw_of_match); - MODULE_AUTHOR("Vidya Sagar "); - MODULE_DESCRIPTION("NVIDIA PCIe host controller driver"); - MODULE_LICENSE("GPL v2"); -+ -+#endif /* CONFIG_PCIE_TEGRA194 */ -+ -diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h -index a73164c85e78..6156140dcbb6 100644 ---- a/include/linux/pci-ecam.h -+++ b/include/linux/pci-ecam.h -@@ -57,6 +57,7 @@ extern struct pci_ecam_ops pci_thunder_ecam_ops; /* Cavium ThunderX 1.x */ - extern struct pci_ecam_ops xgene_v1_pcie_ecam_ops; /* APM X-Gene PCIe v1 */ - extern struct pci_ecam_ops xgene_v2_pcie_ecam_ops; /* APM X-Gene PCIe v2.x */ - extern struct pci_ecam_ops al_pcie_ops; /* Amazon Annapurna Labs PCIe */ -+extern struct pci_ecam_ops tegra194_pcie_ops; /* Tegra194 PCIe */ - #endif - - #ifdef CONFIG_PCI_HOST_COMMON diff --git a/RFC-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch b/RFC-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch deleted file mode 100644 index 3142df6dc..000000000 --- a/RFC-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch +++ /dev/null @@ -1,144 +0,0 @@ -From patchwork Mon Apr 20 16:43:04 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Nicolas Chauvet -X-Patchwork-Id: 1273561 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org - (client-ip=23.128.96.18; helo=vger.kernel.org; - envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) -Authentication-Results: ozlabs.org; - dmarc=pass (p=none dis=none) header.from=gmail.com -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 - header.s=20161025 header.b=TzeKBoiR; dkim-atps=neutral -Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) - by ozlabs.org (Postfix) with ESMTP id 495XZC49yWz9sP7 - for ; Tue, 21 Apr 2020 02:43:15 +1000 (AEST) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1726731AbgDTQnK (ORCPT ); - Mon, 20 Apr 2020 12:43:10 -0400 -Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42314 "EHLO - lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) - by vger.kernel.org with ESMTP id S1726693AbgDTQnI (ORCPT - ); - Mon, 20 Apr 2020 12:43:08 -0400 -Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com - [IPv6:2a00:1450:4864:20::342]) - by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6ED4CC061A0C; - Mon, 20 Apr 2020 09:43:08 -0700 (PDT) -Received: by mail-wm1-x342.google.com with SMTP id x25so280061wmc.0; - Mon, 20 Apr 2020 09:43:08 -0700 (PDT) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; - h=from:to:cc:subject:date:message-id:mime-version - :content-transfer-encoding; - bh=IHuj1FiuJPknu8Z7Uq/JeXw8aSg2xFkcoVYT3QRT6dA=; - b=TzeKBoiR2hu1L+OGuVzAMrvuOnCDM+J1nsGD1QbB9tkwdgx5rUc3jCkTzkFKQpJZ+g - jx96zAcsJH7FSzAMjcpWTgiixmPWJj0xuWXML6IW4oVt5Npm6F2D8UyjZyfgnUKcGU/k - Ye+bmwRUMi6cBC1Jpn93V5znfun/KPJFuOi1qLjh4g9rRAQWp4o4mZYTnxBkkMhi63gU - V7L+RQlj4buS+IXOZ/xi5chAd/gFJkADDOm8HVDAcIG6pEUCkXciuRiNL3f81ss3nwjq - uQQg7uRc8wXqOP1IqZ+W8kYP25Bty+uiykVyhv6XfOg0vWk4GK+wnM0wcP7boPe8Y8sS - dTLg== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20161025; - h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version - :content-transfer-encoding; - bh=IHuj1FiuJPknu8Z7Uq/JeXw8aSg2xFkcoVYT3QRT6dA=; - b=YcZCjbicKhCKe1SzKhwIcD9gZI/8J/QS/LQk4lcoLCwcSjlg9p0O/m5t80TGXT4lcn - wFh0VyY+SsMR6uXCPrN8QXYbEY6fFVxEY2+btKzt+ft0v4jQUljopKGOV6n85FRs89U4 - DrjNPXoL7izbuheb/tW9ZBrrMTLQ1btIJ/MiAZ2gKtlrachezXQjW1Gtn66/hEpIQybL - 9ctDGvygIAju/Yd9fx+cakfzPUGzKTc/yOhjKjbMfxF6YxTbdqPc08+0a3cOYoSoRKLE - i/drXsQpQhJHOhzZWXinld37vEHc/1pa/HYv3QR+UAproGfZq4eGqBh6cIYY87fW7nHk - lsmg== -X-Gm-Message-State: AGi0PuYqEn+eRXnjHmfYwoSYQUy0ZK+SX7Vpbgu/XErfwPhXok1ZAmWe - N87IAyxXhJOQCMJxw6TgfSo= -X-Google-Smtp-Source: APiQypLsj3XpHj4CyxtmOjlqdZs3DB8oJEEo2ghhT6QywH/SywA9LShfe1OCbQ3t6MmEGWRd+WIiVw== -X-Received: by 2002:a1c:41d7:: with SMTP id o206mr194590wma.89.1587400987185; - Mon, 20 Apr 2020 09:43:07 -0700 (PDT) -Received: from arrakis.kwizart.net (lfbn-nic-1-185-211.w2-15.abo.wanadoo.fr. - [2.15.34.211]) - by smtp.gmail.com with ESMTPSA id l4sm47922wrv.60.2020.04.20.09.43.05 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Mon, 20 Apr 2020 09:43:06 -0700 (PDT) -From: Nicolas Chauvet -To: Manikanta Maddireddy , - Thierry Reding , - Jonathan Hunter -Cc: Lorenzo Pieralisi , - linux-tegra@vger.kernel.org, linux-pci@vger.kernel.org, - Nicolas Chauvet -Subject: [RFC] PCI: tegra: Revert raw_violation_fixup for tegra124 -Date: Mon, 20 Apr 2020 18:43:04 +0200 -Message-Id: <20200420164304.28810-1-kwizart@gmail.com> -X-Mailer: git-send-email 2.25.2 -MIME-Version: 1.0 -Sender: linux-tegra-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-tegra@vger.kernel.org - -As reported in https://bugzilla.kernel.org/206217 , raw_violation_fixup -is causing more harm than good in some common use-cases. - -This patch as RFC is a partial revert of the 191cd6fb5 commit: - "PCI: tegra: Add SW fixup for RAW violations" -that was first introduced in 5.3 kernel. -This fix the following regression since then. - - -When using both the network NIC and I/O on MMC this can lead to the -following message on jetson-tk1: - - NETDEV WATCHDOG: enp1s0 (r8169): transmit queue 0 timed out - -and - - pcieport 0000:00:02.0: AER: Uncorrected (Non-Fatal) error received: 0000:01:00.0 - r8169 0000:01:00.0: AER: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, (Requester ID) - r8169 0000:01:00.0: AER: device [10ec:8168] error status/mask=00004000/00400000 - r8169 0000:01:00.0: AER: [14] CmpltTO (First) - r8169 0000:01:00.0: AER: can't recover (no error_detected callback) - pcieport 0000:00:02.0: AER: device recovery failed - - -After that, the ethernet NIC isn't functional anymore even after reloading -the module. -After a reboot, this is reproducible by copying a large file over the -ethernet NIC to the MMC. -For some reasons this cannot be reproduced when the same file is copied -to a tmpfs. - - -This patch is RFC because it requires more understanding from Nvidia. - - Is the fixup (available in l4t downstrem) still needed for upstream ? - - Is there a need to update the fixup values for upstream ? - - If the fixup is reverted, does the hw bug can still be seen with - upstream ? - -Others can also provides more understanding: - - Conditions to reproduce the bug (or not)... - - -Signed-off-by: Nicolas Chauvet -Reviewed-by: Manikanta Maddireddy ---- - drivers/pci/controller/pci-tegra.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/pci/controller/pci-tegra.c b/drivers/pci/controller/pci-tegra.c -index 3e64ba6a36a8..4027e074094a 100644 ---- a/drivers/pci/controller/pci-tegra.c -+++ b/drivers/pci/controller/pci-tegra.c -@@ -2470,7 +2470,7 @@ static const struct tegra_pcie_soc tegra124_pcie = { - .program_uphy = true, - .update_clamp_threshold = true, - .program_deskew_time = false, -- .raw_violation_fixup = true, -+ .raw_violation_fixup = false, - .update_fc_timer = false, - .has_cache_bars = false, - .ectl.enable = false, diff --git a/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch b/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch deleted file mode 100644 index b1f4e7942..000000000 --- a/USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch +++ /dev/null @@ -1,714 +0,0 @@ -From patchwork Tue May 5 16:13:14 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11529601 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1BF82139A - for ; - Tue, 5 May 2020 16:13:46 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id ED4E0206A4 - for ; - Tue, 5 May 2020 16:13:45 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="u/J7plS1" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ED4E0206A4 -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=suse.de -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=bGQLzaoeWIDpTINYetpnA2L/vb7OmdXvhp2NJuW0F3A=; b=u/J7plS1Bwu25p - 31YlPyAxNHzkNz73OdF7ft5uhn9vS8dF3TEBhhmSu83IWYwAhsjyqTB+Hn8104w1KT17o0ihuNG++ - UIf6ftYyM8/v9W57OPJcwcWqPpKyFVB7fs9hgR9IE1/Qm8Ur/aUjmD1HK272ZJYsgrFqyFO4PP7DD - 1LwVH20tWs3UvX317QDIn5VIq8EAX5ImabSfeYHw1LlyhQUYF10UPX5zw4I2TlLRd2hFvfyUy7s8b - 1uMZFqLeqfTHrauQ43p5IBZs/wNGKGJbQlZvuENJxPcbBharqHBVDZrFvtV2MLnvrDOnv6A2QSfpt - vv++WCa+crrbmyL2v/pw==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jW0CU-00035T-KT; Tue, 05 May 2020 16:13:42 +0000 -Received: from mx2.suse.de ([195.135.220.15]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jW0CF-0002rM-7U; Tue, 05 May 2020 16:13:28 +0000 -X-Virus-Scanned: by amavisd-new at test-mx.suse.de -Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id 0992CAF4F; - Tue, 5 May 2020 16:13:28 +0000 (UTC) -From: Nicolas Saenz Julienne -To: f.fainelli@gmail.com, gregkh@linuxfoundation.org, wahrenst@gmx.net, - helgaas@kernel.org, linux-kernel@vger.kernel.org, - Ray Jui , Scott Branden , - bcm-kernel-feedback-list@broadcom.com, - Nicolas Saenz Julienne -Subject: [PATCH v8 1/4] soc: bcm2835: Add notify xHCI reset property -Date: Tue, 5 May 2020 18:13:14 +0200 -Message-Id: <20200505161318.26200-2-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200505161318.26200-1-nsaenzjulienne@suse.de> -References: <20200505161318.26200-1-nsaenzjulienne@suse.de> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200505_091327_410061_22E5BD39 -X-CRM114-Status: GOOD ( 13.67 ) -X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.4 on bombadil.infradead.org summary: - Content analysis details: (-2.3 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, - medium trust [195.135.220.15 listed in list.dnswl.org] - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: linux-pci@vger.kernel.org, tim.gover@raspberrypi.org, - linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, - linux-arm-kernel@lists.infradead.org -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -The property is needed in order to trigger VL805's firmware load. Note -that gap between the property introduced and the previous one is due to -the properties not being defined. - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Florian Fainelli ---- - include/soc/bcm2835/raspberrypi-firmware.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h -index 7800e12ee042..cc9cdbc66403 100644 ---- a/include/soc/bcm2835/raspberrypi-firmware.h -+++ b/include/soc/bcm2835/raspberrypi-firmware.h -@@ -90,7 +90,7 @@ enum rpi_firmware_property_tag { - RPI_FIRMWARE_SET_PERIPH_REG = 0x00038045, - RPI_FIRMWARE_GET_POE_HAT_VAL = 0x00030049, - RPI_FIRMWARE_SET_POE_HAT_VAL = 0x00030050, -- -+ RPI_FIRMWARE_NOTIFY_XHCI_RESET = 0x00030058, - - /* Dispmanx TAGS */ - RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001, - -From patchwork Tue May 5 16:13:15 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11529609 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 337F6139A - for ; - Tue, 5 May 2020 16:14:02 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 062432084D - for ; - Tue, 5 May 2020 16:14:02 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="SDl3WXtu" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 062432084D -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=suse.de -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=Zr8RX4pUFuT9LYq/WsMx8aWZosDB52n4Q59lcyexfbE=; b=SDl3WXtuTc/nTE - liOc14IJBVmzylTRvqtl7RNlIur09j/+2VWz/L9i6UGqjG6N3L8XsQ0hQjdunHpod9jj3p3Az+4sq - FgwzoSdghy8rfnfxhcqJSbvMvX34yzGnoQBS46jClcjky9iNoijO+nBo3SE9wC8vSKKIafCzmVqHw - P7p44IgFrwgnBKbAgdUWCjUVQqolk2pLJr7jw/TG8pvfv0R6XJGmz3Lbl8gP14FyWfkkqsKqC+0g1 - Jq6JPtdl+W0AfEWVrFr6/74LhLTpnhsPqXGEPJjrLqtkbZ2c9pulOQ3f85qAed9slCbkVxe5fHetC - bwaYOp++AlOj7kNN25Qw==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jW0Ch-0003KV-Mk; Tue, 05 May 2020 16:13:55 +0000 -Received: from mx2.suse.de ([195.135.220.15]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jW0CG-0002rw-Mm; Tue, 05 May 2020 16:13:30 +0000 -X-Virus-Scanned: by amavisd-new at test-mx.suse.de -Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id 4B6EDAF5D; - Tue, 5 May 2020 16:13:29 +0000 (UTC) -From: Nicolas Saenz Julienne -To: f.fainelli@gmail.com, gregkh@linuxfoundation.org, wahrenst@gmx.net, - helgaas@kernel.org, linux-kernel@vger.kernel.org, - Nicolas Saenz Julienne , - Ray Jui , Scott Branden , - bcm-kernel-feedback-list@broadcom.com -Subject: [PATCH v8 2/4] firmware: raspberrypi: Introduce vl805 init routine -Date: Tue, 5 May 2020 18:13:15 +0200 -Message-Id: <20200505161318.26200-3-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200505161318.26200-1-nsaenzjulienne@suse.de> -References: <20200505161318.26200-1-nsaenzjulienne@suse.de> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200505_091329_063893_301DE39B -X-CRM114-Status: GOOD ( 18.76 ) -X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.4 on bombadil.infradead.org summary: - Content analysis details: (-2.3 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, - medium trust [195.135.220.15 listed in list.dnswl.org] - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: linux-pci@vger.kernel.org, tim.gover@raspberrypi.org, - linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, - linux-arm-kernel@lists.infradead.org -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -The Raspberry Pi 4 gets its USB functionality from VL805, a PCIe chip -that implements xHCI. After a PCI reset, VL805's firmware may either be -loaded directly from an EEPROM or, if not present, by the SoC's -co-processor, VideoCore. RPi4's VideoCore OS contains both the non public -firmware load logic and the VL805 firmware blob. The function this patch -introduces triggers the aforementioned process. - -Signed-off-by: Nicolas Saenz Julienne ---- - -Change since v7: -- Use usleep_delay() -- Add comment about PCI errors -- Don't wait on error -- Typos - -Change since v6: -- Add test to avoid loading the firmware when not needed -- Since we have it around, print VL805's firmware version, it'll make -debugging easier in the future -- Correct typos -- Add a clearer view of HW topology in patch description - -Changes since v4: -- Inline function definition when RASPBERRYPI_FIRMWARE is not defined - -Changes since v1: -- Move include into .c file and add forward declaration to .h - - drivers/firmware/raspberrypi.c | 61 ++++++++++++++++++++++ - include/soc/bcm2835/raspberrypi-firmware.h | 7 +++ - 2 files changed, 68 insertions(+) - -diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c -index da26a584dca0..a166ad0cec2c 100644 ---- a/drivers/firmware/raspberrypi.c -+++ b/drivers/firmware/raspberrypi.c -@@ -12,6 +12,8 @@ - #include - #include - #include -+#include -+#include - #include - - #define MBOX_MSG(chan, data28) (((data28) & ~0xf) | ((chan) & 0xf)) -@@ -19,6 +21,8 @@ - #define MBOX_DATA28(msg) ((msg) & ~0xf) - #define MBOX_CHAN_PROPERTY 8 - -+#define VL805_PCI_CONFIG_VERSION_OFFSET 0x50 -+ - static struct platform_device *rpi_hwmon; - static struct platform_device *rpi_clk; - -@@ -286,6 +290,63 @@ struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node) - } - EXPORT_SYMBOL_GPL(rpi_firmware_get); - -+/* -+ * The Raspberry Pi 4 gets its USB functionality from VL805, a PCIe chip that -+ * implements xHCI. After a PCI reset, VL805's firmware may either be loaded -+ * directly from an EEPROM or, if not present, by the SoC's co-processor, -+ * VideoCore. RPi4's VideoCore OS contains both the non public firmware load -+ * logic and the VL805 firmware blob. This function triggers the aforementioned -+ * process. -+ */ -+int rpi_firmware_init_vl805(struct pci_dev *pdev) -+{ -+ struct device_node *fw_np; -+ struct rpi_firmware *fw; -+ u32 dev_addr, version; -+ int ret; -+ -+ fw_np = of_find_compatible_node(NULL, NULL, -+ "raspberrypi,bcm2835-firmware"); -+ if (!fw_np) -+ return 0; -+ -+ fw = rpi_firmware_get(fw_np); -+ of_node_put(fw_np); -+ if (!fw) -+ return -ENODEV; -+ -+ /* -+ * Make sure we don't trigger a firmware load unnecessarily. -+ * -+ * If something went wrong with PCI, this whole exercise would be -+ * futile as VideoCore expects from us a configured PCI bus. Just take -+ * the faulty version (likely ~0) and let xHCI's registration fail -+ * further down the line. -+ */ -+ pci_read_config_dword(pdev, VL805_PCI_CONFIG_VERSION_OFFSET, &version); -+ if (version) -+ goto exit; -+ -+ dev_addr = pdev->bus->number << 20 | PCI_SLOT(pdev->devfn) << 15 | -+ PCI_FUNC(pdev->devfn) << 12; -+ -+ ret = rpi_firmware_property(fw, RPI_FIRMWARE_NOTIFY_XHCI_RESET, -+ &dev_addr, sizeof(dev_addr)); -+ if (ret) -+ return ret; -+ -+ /* Wait for vl805 to startup */ -+ usleep_range(200, 1000); -+ -+ pci_read_config_dword(pdev, VL805_PCI_CONFIG_VERSION_OFFSET, -+ &version); -+exit: -+ pci_info(pdev, "VL805 firmware version %08x\n", version); -+ -+ return 0; -+} -+EXPORT_SYMBOL_GPL(rpi_firmware_init_vl805); -+ - static const struct of_device_id rpi_firmware_of_match[] = { - { .compatible = "raspberrypi,bcm2835-firmware", }, - {}, -diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h -index cc9cdbc66403..3025aca3c358 100644 ---- a/include/soc/bcm2835/raspberrypi-firmware.h -+++ b/include/soc/bcm2835/raspberrypi-firmware.h -@@ -10,6 +10,7 @@ - #include - - struct rpi_firmware; -+struct pci_dev; - - enum rpi_firmware_property_status { - RPI_FIRMWARE_STATUS_REQUEST = 0, -@@ -141,6 +142,7 @@ int rpi_firmware_property(struct rpi_firmware *fw, - int rpi_firmware_property_list(struct rpi_firmware *fw, - void *data, size_t tag_size); - struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node); -+int rpi_firmware_init_vl805(struct pci_dev *pdev); - #else - static inline int rpi_firmware_property(struct rpi_firmware *fw, u32 tag, - void *data, size_t len) -@@ -158,6 +160,11 @@ static inline struct rpi_firmware *rpi_firmware_get(struct device_node *firmware - { - return NULL; - } -+ -+static inline int rpi_firmware_init_vl805(struct pci_dev *pdev) -+{ -+ return 0; -+} - #endif - - #endif /* __SOC_RASPBERRY_FIRMWARE_H__ */ - -From patchwork Tue May 5 16:13:16 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11529613 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 09B41139A - for ; - Tue, 5 May 2020 16:14:12 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id D0DF22078D - for ; - Tue, 5 May 2020 16:14:11 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="SAMPLJUW" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D0DF22078D -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=suse.de -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=KaAXr2YFGUN9aHABYMGoI6lDCplKLkueaLach3EcLIQ=; b=SAMPLJUWqAiuYn - Ols6qNQTSsb2o1pxY1yuF4MaX8dUzqsSCkylXQf5SkLRki0hXDsY/eVzwcypdH60m5jdk31wU1MJD - O88oZLgP0rvsSmG//a4xMHn/EpxntBmXZvNxlvZ9RuDATHjuA2w1+GKUOEvREG9jBi1M4+r5QZXrY - nRQqxUi1CldsZHzGt3IJi1mXzlNIhZq+fi48xOWUdgCSXYfpJO4qsr3b3QhwJklPSO0c4jMAHKYTQ - z3kKMMszvYgug/JraC4fZD2qDKGic3IxeOSxP2c8dLYBfxMxfBz7gya5rpBpjvFelYZMN2qXaQInv - gND7kQ/fU/heR7N6g6Dg==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jW0Cv-0003b2-3s; Tue, 05 May 2020 16:14:09 +0000 -Received: from mx2.suse.de ([195.135.220.15]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jW0CI-0002tA-MY; Tue, 05 May 2020 16:13:32 +0000 -X-Virus-Scanned: by amavisd-new at test-mx.suse.de -Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id 3372DAF7A; - Tue, 5 May 2020 16:13:31 +0000 (UTC) -From: Nicolas Saenz Julienne -To: f.fainelli@gmail.com, gregkh@linuxfoundation.org, wahrenst@gmx.net, - helgaas@kernel.org, linux-kernel@vger.kernel.org, - Nicolas Saenz Julienne , - Lorenzo Pieralisi , - Rob Herring , bcm-kernel-feedback-list@broadcom.com -Subject: [PATCH v8 3/4] PCI: brcmstb: Wait for Raspberry Pi's firmware when - present -Date: Tue, 5 May 2020 18:13:16 +0200 -Message-Id: <20200505161318.26200-4-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200505161318.26200-1-nsaenzjulienne@suse.de> -References: <20200505161318.26200-1-nsaenzjulienne@suse.de> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200505_091330_993258_A3A56727 -X-CRM114-Status: GOOD ( 11.90 ) -X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.4 on bombadil.infradead.org summary: - Content analysis details: (-2.3 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, - medium trust [195.135.220.15 listed in list.dnswl.org] - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: tim.gover@raspberrypi.org, linux-pci@vger.kernel.org, - linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, - Bjorn Helgaas , linux-arm-kernel@lists.infradead.org -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -xHCI's PCI fixup, run at the end of pcie-brcmstb's probe, depends on -RPi4's VideoCore firmware interface to be up and running. It's possible -for both initializations to race, so make sure it's available prior to -starting. - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Florian Fainelli ---- - -Changes since v6: -- Add more complete comment - - drivers/pci/controller/pcie-brcmstb.c | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c -index 6d79d14527a6..0b97b94c4a9a 100644 ---- a/drivers/pci/controller/pcie-brcmstb.c -+++ b/drivers/pci/controller/pcie-brcmstb.c -@@ -28,6 +28,8 @@ - #include - #include - -+#include -+ - #include "../pci.h" - - /* BRCM_PCIE_CAP_REGS - Offset for the mandatory capability config regs */ -@@ -917,11 +919,26 @@ static int brcm_pcie_probe(struct platform_device *pdev) - { - struct device_node *np = pdev->dev.of_node, *msi_np; - struct pci_host_bridge *bridge; -+ struct device_node *fw_np; - struct brcm_pcie *pcie; - struct pci_bus *child; - struct resource *res; - int ret; - -+ /* -+ * We have to wait for Raspberry Pi's firmware interface to be up as a -+ * PCI fixup, rpi_firmware_init_vl805(), depends on it. This driver's -+ * probe can race with the firmware interface's (see -+ * drivers/firmware/raspberrypi.c) and potentially break the PCI fixup. -+ */ -+ fw_np = of_find_compatible_node(NULL, NULL, -+ "raspberrypi,bcm2835-firmware"); -+ if (fw_np && !rpi_firmware_get(fw_np)) { -+ of_node_put(fw_np); -+ return -EPROBE_DEFER; -+ } -+ of_node_put(fw_np); -+ - bridge = devm_pci_alloc_host_bridge(&pdev->dev, sizeof(*pcie)); - if (!bridge) - return -ENOMEM; - -From patchwork Tue May 5 16:13:17 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11529615 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9C85E1392 - for ; - Tue, 5 May 2020 16:14:26 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 75AD8206FA - for ; - Tue, 5 May 2020 16:14:26 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="pXZpPhrT" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 75AD8206FA -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=suse.de -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=/GYWkYF77JxYJ9PRLu3wczjjHT+GnXqD2IyzZ0uR8KY=; b=pXZpPhrTtgd1O0 - sy/khBh4MMWq9sIqFwH9HgDbPFDzQ5eCkfiS/YZoDGJPFFwsUcitnTfFX9VGMnYzLf7eCCLfm1hta - f3X7UNpk1SvaeJKc59x7OvHTLVAwByuEPTqm4bmcqw+aRWdaYShUiv+105SG6JShQF5gjuBpEn3w0 - vzQNYGEl4BeHnlREFZU+Wi1qQ8sa1BwpU6Rx/NmGk8qLv1GOO4+UNf/ABycGTH6jZU101ck7/nvKL - Da7jehxCo1CCUiqM69fvoKabrfI76uVP4OdJcCihqzOWzmkiVwhQAWB0qFa9LR2h4CObuPthIqmW7 - oaRbCgJg+N26f/dtw1mg==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jW0D6-0003ov-Og; Tue, 05 May 2020 16:14:20 +0000 -Received: from mx2.suse.de ([195.135.220.15]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jW0CJ-0002ui-S6; Tue, 05 May 2020 16:13:33 +0000 -X-Virus-Scanned: by amavisd-new at test-mx.suse.de -Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id 80D21AF4F; - Tue, 5 May 2020 16:13:32 +0000 (UTC) -From: Nicolas Saenz Julienne -To: f.fainelli@gmail.com, gregkh@linuxfoundation.org, wahrenst@gmx.net, - helgaas@kernel.org, linux-kernel@vger.kernel.org, - Mathias Nyman -Subject: [PATCH v8 4/4] USB: pci-quirks: Add Raspberry Pi 4 quirk -Date: Tue, 5 May 2020 18:13:17 +0200 -Message-Id: <20200505161318.26200-5-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200505161318.26200-1-nsaenzjulienne@suse.de> -References: <20200505161318.26200-1-nsaenzjulienne@suse.de> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200505_091332_068613_1A981780 -X-CRM114-Status: GOOD ( 16.37 ) -X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.4 on bombadil.infradead.org summary: - Content analysis details: (-2.3 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, - medium trust [195.135.220.15 listed in list.dnswl.org] - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: tim.gover@raspberrypi.org, linux-pci@vger.kernel.org, - linux-usb@vger.kernel.org, Nicolas Saenz Julienne , - bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org, - linux-arm-kernel@lists.infradead.org -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be -loaded directly from an EEPROM or, if not present, by the SoC's -VideoCore. Inform VideoCore that VL805 was just reset. - -Also, as this creates a dependency between USB_PCI and VideoCore's -firmware interface, and since USB_PCI can't be set as a module neither -this can. Reflect that on the firmware interface Kconfg. - -Signed-off-by: Nicolas Saenz Julienne ---- - -Changes since v5: - - Fix Kconfig issue with allmodconfig - -Changes since v4: - - Do not split up error message - -Changes since v3: - - Add more complete error message - -Changes since v1: - - Make RASPBERRYPI_FIRMWARE dependent on this quirk to make sure it - gets compiled when needed. - - drivers/firmware/Kconfig | 3 ++- - drivers/usb/host/pci-quirks.c | 16 ++++++++++++++++ - 2 files changed, 18 insertions(+), 1 deletion(-) - -diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig -index 8007d4aa76dc..b42140cff8ac 100644 ---- a/drivers/firmware/Kconfig -+++ b/drivers/firmware/Kconfig -@@ -178,8 +178,9 @@ config ISCSI_IBFT - Otherwise, say N. - - config RASPBERRYPI_FIRMWARE -- tristate "Raspberry Pi Firmware Driver" -+ bool "Raspberry Pi Firmware Driver" - depends on BCM2835_MBOX -+ default USB_PCI - help - This option enables support for communicating with the firmware on the - Raspberry Pi. -diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c -index 92150ecdb036..0b949acfa258 100644 ---- a/drivers/usb/host/pci-quirks.c -+++ b/drivers/usb/host/pci-quirks.c -@@ -16,6 +16,9 @@ - #include - #include - #include -+ -+#include -+ - #include "pci-quirks.h" - #include "xhci-ext-caps.h" - -@@ -1243,11 +1246,24 @@ static void quirk_usb_handoff_xhci(struct pci_dev *pdev) - - static void quirk_usb_early_handoff(struct pci_dev *pdev) - { -+ int ret; -+ - /* Skip Netlogic mips SoC's internal PCI USB controller. - * This device does not need/support EHCI/OHCI handoff - */ - if (pdev->vendor == 0x184e) /* vendor Netlogic */ - return; -+ -+ if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) { -+ ret = rpi_firmware_init_vl805(pdev); -+ if (ret) { -+ /* Firmware might be outdated, or something failed */ -+ dev_warn(&pdev->dev, -+ "Failed to load VL805's firmware: %d. Will continue to attempt to work, but bad things might happen. You should fix this...\n", -+ ret); -+ } -+ } -+ - if (pdev->class != PCI_CLASS_SERIAL_USB_UHCI && - pdev->class != PCI_CLASS_SERIAL_USB_OHCI && - pdev->class != PCI_CLASS_SERIAL_USB_EHCI && diff --git a/arm-bcm2711-mmc-sdhci-iproc-Add-custom-set_power-callback.patch b/arm-bcm2711-mmc-sdhci-iproc-Add-custom-set_power-callback.patch deleted file mode 100644 index 8c7a43185..000000000 --- a/arm-bcm2711-mmc-sdhci-iproc-Add-custom-set_power-callback.patch +++ /dev/null @@ -1,374 +0,0 @@ -From 6c92ae1e452ff3f4648b1450c9a3233a2ca53feb Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Fri, 6 Mar 2020 18:44:03 +0100 -Subject: mmc: sdhci: Introduce sdhci_set_power_and_bus_voltage() - -Some controllers diverge from the standard way of setting power and need -their bus voltage register to be configured regardless of the whether -they use regulators. As this is a common pattern across sdhci hosts, -create a helper function. - -Signed-off-by: Nicolas Saenz Julienne -Acked-by: Adrian Hunter -Link: https://lore.kernel.org/r/20200306174413.20634-2-nsaenzjulienne@suse.de -Signed-off-by: Ulf Hansson ---- - drivers/mmc/host/sdhci.c | 19 +++++++++++++++++++ - drivers/mmc/host/sdhci.h | 3 +++ - 2 files changed, 22 insertions(+) - -diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c -index c59566363a42..525e0c971c6a 100644 ---- a/drivers/mmc/host/sdhci.c -+++ b/drivers/mmc/host/sdhci.c -@@ -2010,6 +2010,25 @@ void sdhci_set_power(struct sdhci_host *host, unsigned char mode, - } - EXPORT_SYMBOL_GPL(sdhci_set_power); - -+/* -+ * Some controllers need to configure a valid bus voltage on their power -+ * register regardless of whether an external regulator is taking care of power -+ * supply. This helper function takes care of it if set as the controller's -+ * sdhci_ops.set_power callback. -+ */ -+void sdhci_set_power_and_bus_voltage(struct sdhci_host *host, -+ unsigned char mode, -+ unsigned short vdd) -+{ -+ if (!IS_ERR(host->mmc->supply.vmmc)) { -+ struct mmc_host *mmc = host->mmc; -+ -+ mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, vdd); -+ } -+ sdhci_set_power_noreg(host, mode, vdd); -+} -+EXPORT_SYMBOL_GPL(sdhci_set_power_and_bus_voltage); -+ - /*****************************************************************************\ - * * - * MMC callbacks * -diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h -index 249635692112..851b81565f46 100644 ---- a/drivers/mmc/host/sdhci.h -+++ b/drivers/mmc/host/sdhci.h -@@ -772,6 +772,9 @@ void sdhci_set_clock(struct sdhci_host *host, unsigned int clock); - void sdhci_enable_clk(struct sdhci_host *host, u16 clk); - void sdhci_set_power(struct sdhci_host *host, unsigned char mode, - unsigned short vdd); -+void sdhci_set_power_and_bus_voltage(struct sdhci_host *host, -+ unsigned char mode, -+ unsigned short vdd); - void sdhci_set_power_noreg(struct sdhci_host *host, unsigned char mode, - unsigned short vdd); - void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq); --- -cgit 1.2-0.3.lf.el7 -From f87391eec2c5f54269e64d655da19f2c32515e4c Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Fri, 6 Mar 2020 18:44:11 +0100 -Subject: mmc: sdhci: iproc: Add custom set_power() callback for bcm2711 - -The controller needs a valid bus voltage in its power register -regardless of whether an external regulator is taking care of the power -supply. - -The sdhci core already provides a helper function for this, -sdhci_set_power_and_bus_voltage(), so create a bcm2711 specific 'struct -sdhci_ops' which makes use of it. - -Signed-off-by: Nicolas Saenz Julienne -Acked-by: Adrian Hunter -Link: https://lore.kernel.org/r/20200306174413.20634-10-nsaenzjulienne@suse.de -Signed-off-by: Ulf Hansson ---- - drivers/mmc/host/sdhci-iproc.c | 17 ++++++++++++++++- - 1 file changed, 16 insertions(+), 1 deletion(-) - -diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c -index f4f5f0a70cda..225603148d7d 100644 ---- a/drivers/mmc/host/sdhci-iproc.c -+++ b/drivers/mmc/host/sdhci-iproc.c -@@ -261,9 +261,24 @@ static const struct sdhci_iproc_data bcm2835_data = { - .mmc_caps = 0x00000000, - }; - -+static const struct sdhci_ops sdhci_iproc_bcm2711_ops = { -+ .read_l = sdhci_iproc_readl, -+ .read_w = sdhci_iproc_readw, -+ .read_b = sdhci_iproc_readb, -+ .write_l = sdhci_iproc_writel, -+ .write_w = sdhci_iproc_writew, -+ .write_b = sdhci_iproc_writeb, -+ .set_clock = sdhci_set_clock, -+ .set_power = sdhci_set_power_and_bus_voltage, -+ .get_max_clock = sdhci_iproc_get_max_clock, -+ .set_bus_width = sdhci_set_bus_width, -+ .reset = sdhci_reset, -+ .set_uhs_signaling = sdhci_set_uhs_signaling, -+}; -+ - static const struct sdhci_pltfm_data sdhci_bcm2711_pltfm_data = { - .quirks = SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12, -- .ops = &sdhci_iproc_32only_ops, -+ .ops = &sdhci_iproc_bcm2711_ops, - }; - - static const struct sdhci_iproc_data bcm2711_data = { --- -cgit 1.2-0.3.lf.el7 -From patchwork Fri Mar 6 17:44:12 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11424593 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9D86014E3 - for ; - Fri, 6 Mar 2020 17:46:55 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 7BFCB2072A - for ; - Fri, 6 Mar 2020 17:46:55 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="YjdlKV21" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7BFCB2072A -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=suse.de -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=uwmoUBe7WYtSPXJudhI4GM1SShwysP2rkzh9oA/iygA=; b=YjdlKV21P2YnYd - uFZk/zUDicQRMv6kHWHSeOubxKYNNZjuVUmkI6PWtCuEt37bz+3qPjaDWjY6QO0qR9wHKzxaPikjZ - upSKvBHf9jcYSON0gQhjCxZEGnfO3zrdObtnjdQFTTE9rJPiUXe+bIsvhqlNCO/5Xq4pXjSVR81Fw - IVfXtxtw0tmDjrN7VDqH+dhvUPrvLDRnXOHnolvQfQyuvyvSZ9I7Wn/c4fFJsZemBA7mjvORI7cTd - lVRuIqACikY2bT4Zh+ZtglOCFxtlNjCe60Dj94AnA/j51dvC8MHQOOD+HGKjGzKBwk5FONXjvKeUZ - kR8WGaZiQsG3hj3hzxyw==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jAH3k-0003wN-91; Fri, 06 Mar 2020 17:46:52 +0000 -Received: from mx2.suse.de ([195.135.220.15]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jAH1V-00085X-Ut; Fri, 06 Mar 2020 17:44:35 +0000 -X-Virus-Scanned: by amavisd-new at test-mx.suse.de -Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id 8906AACC2; - Fri, 6 Mar 2020 17:44:32 +0000 (UTC) -From: Nicolas Saenz Julienne -To: adrian.hunter@intel.com, linux-kernel@vger.kernel.org, - Rob Herring , - Nicolas Saenz Julienne -Subject: [PATCH v2 10/11] ARM: dts: bcm2711: Update expgpio's GPIO labels -Date: Fri, 6 Mar 2020 18:44:12 +0100 -Message-Id: <20200306174413.20634-11-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200306174413.20634-1-nsaenzjulienne@suse.de> -References: <20200306174413.20634-1-nsaenzjulienne@suse.de> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200306_094434_171925_0978A2DC -X-CRM114-Status: GOOD ( 11.64 ) -X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-2.3 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] - -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, - medium trust [195.135.220.15 listed in list.dnswl.org] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: stefan.wahren@i2se.com, devicetree@vger.kernel.org, f.fainelli@gmail.com, - linux-mmc@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, - linux-rpi-kernel@lists.infradead.org, phil@raspberrypi.com, - linux-arm-kernel@lists.infradead.org -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -The 6th line of the GPIO expander is used to power the board's SD card. - -Signed-off-by: Nicolas Saenz Julienne ---- - arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts -index 1d4b589fe233..b0ea8233b636 100644 ---- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts -+++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts -@@ -68,7 +68,7 @@ expgpio: gpio { - "GLOBAL_RESET", - "VDD_SD_IO_SEL", - "CAM_GPIO", -- "", -+ "SD_PWR_ON", - ""; - status = "okay"; - }; -From patchwork Fri Mar 6 17:44:13 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 11424599 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A9E8E14BC - for ; - Fri, 6 Mar 2020 17:47:49 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 86F7120656 - for ; - Fri, 6 Mar 2020 17:47:49 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="nK9IFX75" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 86F7120656 -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=suse.de -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: - List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: - Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: - Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: - List-Owner; bh=yrr+wQNcWoBzz3a/8/AcMlS2enrwpsgYIWUpL8bLv8o=; b=nK9IFX75hVaG6g - t8PhPIHJnIGtQxqZ65valF8dAq8JXeUle2mgnW5xdfa/YWcgzajD9/LaS1qMXKW7wDU/rQ0GbSW9t - +8F8v8NQzCf34sfHmFBEl30S1pJN/dQVJKJk0kmx6/P9N+ig3vAyMVsPsXq1Xij+OU0aU8SU1V+mE - nZnwLti9oSRWY6sNhg1MoHB2DNBt/FBNtROGqiXh13ngQTg8C/HgYapnJnXb+GjrutVM2DzH+i/tG - OtgGRm0XoLRz5QjavZZHPmlHUm8pMxfgllYbUvrESNgDT06vBiPj4idCN7X1XXxxoqPsP3/k8kido - Py713+dNVA1gqQEWqG1g==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jAH4a-0004vA-Os; Fri, 06 Mar 2020 17:47:44 +0000 -Received: from mx2.suse.de ([195.135.220.15]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1jAH1W-00086J-W9; Fri, 06 Mar 2020 17:44:36 +0000 -X-Virus-Scanned: by amavisd-new at test-mx.suse.de -Received: from relay2.suse.de (unknown [195.135.220.254]) - by mx2.suse.de (Postfix) with ESMTP id 8D8E5AEC5; - Fri, 6 Mar 2020 17:44:33 +0000 (UTC) -From: Nicolas Saenz Julienne -To: adrian.hunter@intel.com, linux-kernel@vger.kernel.org, - Rob Herring , - Nicolas Saenz Julienne -Subject: [PATCH v2 11/11] ARM: dts: bcm2711: Add vmmc regulator in emmc2 -Date: Fri, 6 Mar 2020 18:44:13 +0100 -Message-Id: <20200306174413.20634-12-nsaenzjulienne@suse.de> -X-Mailer: git-send-email 2.25.1 -In-Reply-To: <20200306174413.20634-1-nsaenzjulienne@suse.de> -References: <20200306174413.20634-1-nsaenzjulienne@suse.de> -MIME-Version: 1.0 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200306_094435_205829_20FE02CB -X-CRM114-Status: GOOD ( 10.34 ) -X-Spam-Score: -2.3 (--) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-2.3 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [195.135.220.15 listed in wl.mailspike.net] - -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, - medium trust [195.135.220.15 listed in list.dnswl.org] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: stefan.wahren@i2se.com, devicetree@vger.kernel.org, f.fainelli@gmail.com, - linux-mmc@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, - linux-rpi-kernel@lists.infradead.org, phil@raspberrypi.com, - linux-arm-kernel@lists.infradead.org -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -The SD card power can be controlled trough a pin routed into the board's -external GPIO expander. Turn that into a regulator and provide it to -emmc2. - -Signed-off-by: Nicolas Saenz Julienne ---- - arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts -index b0ea8233b636..a2da058396fe 100644 ---- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts -+++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts -@@ -55,6 +55,16 @@ sd_io_1v8_reg: sd_io_1v8_reg { - 3300000 0x0>; - status = "okay"; - }; -+ -+ sd_vcc_reg: sd_vcc_reg { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc-sd"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-boot-on; -+ enable-active-high; -+ gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>; -+ }; - }; - - &firmware { -@@ -173,6 +183,7 @@ brcmf: wifi@1 { - /* EMMC2 is used to drive the SD card */ - &emmc2 { - vqmmc-supply = <&sd_io_1v8_reg>; -+ vmmc-supply = <&sd_vcc_reg>; - broken-cd; - status = "okay"; - }; diff --git a/arm-bcm2835-serial-8250_early-support-aux-uart.patch b/arm-bcm2835-serial-8250_early-support-aux-uart.patch deleted file mode 100644 index 5ab954996..000000000 --- a/arm-bcm2835-serial-8250_early-support-aux-uart.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 57b76faf1d7860f070a1ee2d0b7eccd9f37ecc55 Mon Sep 17 00:00:00 2001 -From: Matthias Brugger -Date: Sun, 26 Jan 2020 13:33:14 +0100 -Subject: serial: 8250_early: Add earlycon for BCM2835 aux uart - -Define the OF early console for BCM2835 aux UART, which can be enabled -by passing "earlycon" on the boot command line. This UART is found on -BCM283x and BCM27xx SoCs, a.k.a. Raspberry Pi in its variants. - -Signed-off-by: Matthias Brugger -Link: https://lore.kernel.org/r/20200126123314.3558-1-matthias.bgg@kernel.org -Signed-off-by: Greg Kroah-Hartman ---- - drivers/tty/serial/8250/8250_bcm2835aux.c | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git a/drivers/tty/serial/8250/8250_bcm2835aux.c b/drivers/tty/serial/8250/8250_bcm2835aux.c -index e70e3cc30050..5cc03bf24f85 100644 ---- a/drivers/tty/serial/8250/8250_bcm2835aux.c -+++ b/drivers/tty/serial/8250/8250_bcm2835aux.c -@@ -137,6 +137,24 @@ static struct platform_driver bcm2835aux_serial_driver = { - }; - module_platform_driver(bcm2835aux_serial_driver); - -+#ifdef CONFIG_SERIAL_8250_CONSOLE -+ -+static int __init early_bcm2835aux_setup(struct earlycon_device *device, -+ const char *options) -+{ -+ if (!device->port.membase) -+ return -ENODEV; -+ -+ device->port.iotype = UPIO_MEM32; -+ device->port.regshift = 2; -+ -+ return early_serial8250_setup(device, NULL); -+} -+ -+OF_EARLYCON_DECLARE(bcm2835aux, "brcm,bcm2835-aux-uart", -+ early_bcm2835aux_setup); -+#endif -+ - MODULE_DESCRIPTION("BCM2835 auxiliar UART driver"); - MODULE_AUTHOR("Martin Sperl "); - MODULE_LICENSE("GPL v2"); --- -cgit 1.2-0.3.lf.el7 diff --git a/arm64-Fix-some-GPIO-setup-on-Pinebook-Pro.patch b/arm64-Fix-some-GPIO-setup-on-Pinebook-Pro.patch deleted file mode 100644 index 7bfd204b5..000000000 --- a/arm64-Fix-some-GPIO-setup-on-Pinebook-Pro.patch +++ /dev/null @@ -1,50 +0,0 @@ -From c45fbddb2cd7ce6198e33ebe6dc4c1301d7875d4 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Sun, 19 Apr 2020 20:50:08 +0100 -Subject: [PATCH] Fix some GPIO setup on Pinebook Pro - -This patchset contains two small fixes for the dts of the Pinebook Pro. -The first fixes inverted logic on the headphone detect GPIO. -The second patch fixes unreliable DC charger detection. - -Tobias Schramm (2): - arm64: dts: rockchip: fix inverted headphone detection - arm64: dts: rockchip: enable DC charger detection pullup - -Signed-off-by: Peter Robinson ---- - arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts -index 5ea281b55fe2..294d21bf45f5 100644 ---- a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts -@@ -147,7 +147,7 @@ es8316-sound { - "Speaker", "Speaker Amplifier OUTL", - "Speaker", "Speaker Amplifier OUTR"; - -- simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_LOW>; -+ simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; - simple-audio-card,aux-devs = <&speaker_amp>; - simple-audio-card,pin-switches = "Speaker"; - -@@ -788,13 +788,13 @@ lidbtn_gpio: lidbtn-gpio { - - dc-charger { - dc_det_gpio: dc-det-gpio { -- rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; -+ rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>; - }; - }; - - es8316 { - hp_det_gpio: hp-det-gpio { -- rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>; -+ rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; - }; - }; - --- -2.26.1 - diff --git a/arm64-a64-mbus.patch b/arm64-a64-mbus.patch deleted file mode 100644 index 46efa29cf..000000000 --- a/arm64-a64-mbus.patch +++ /dev/null @@ -1,69 +0,0 @@ -From daae9f66b29a04a94708b1b5a9b61e3ee14df031 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Mon, 10 Feb 2020 18:06:52 +0100 -Subject: [PATCH 1/2] dt-bindings: interconnect: sunxi: Add A64 MBUS compatible - -A64 contains MBUS controller. Add a compatible for it. - -Acked-by: Rob Herring -Signed-off-by: Jernej Skrabec -Signed-off-by: Maxime Ripard ---- - .../devicetree/bindings/arm/sunxi/allwinner,sun4i-a10-mbus.yaml | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Documentation/devicetree/bindings/arm/sunxi/allwinner,sun4i-a10-mbus.yaml b/Documentation/devicetree/bindings/arm/sunxi/allwinner,sun4i-a10-mbus.yaml -index 9370e64992dd..aa0738b4d534 100644 ---- a/Documentation/devicetree/bindings/arm/sunxi/allwinner,sun4i-a10-mbus.yaml -+++ b/Documentation/devicetree/bindings/arm/sunxi/allwinner,sun4i-a10-mbus.yaml -@@ -30,6 +30,7 @@ properties: - enum: - - allwinner,sun5i-a13-mbus - - allwinner,sun8i-h3-mbus -+ - allwinner,sun50i-a64-mbus - - reg: - maxItems: 1 --- -2.24.1 - -From 410bb2be7e1f1d329c238e2d6d06b6c25dcee404 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Mon, 10 Feb 2020 18:06:54 +0100 -Subject: [PATCH 2/2] arm64: dts: allwinner: a64: Add MBUS controller node - -A64 contains MBUS, which is the bus used by DMA devices to access -system memory. - -MBUS controller is responsible for arbitration between channels based -on set priority and can do some other things as well, like report -bandwidth used. It also maps RAM region to different address than CPU. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Maxime Ripard ---- - arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index 862b47dc9dc9..251c91724de1 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -1061,6 +1061,14 @@ pwm: pwm@1c21400 { - status = "disabled"; - }; - -+ mbus: dram-controller@1c62000 { -+ compatible = "allwinner,sun50i-a64-mbus"; -+ reg = <0x01c62000 0x1000>; -+ clocks = <&ccu 112>; -+ dma-ranges = <0x00000000 0x40000000 0xc0000000>; -+ #interconnect-cells = <1>; -+ }; -+ - csi: csi@1cb0000 { - compatible = "allwinner,sun50i-a64-csi"; - reg = <0x01cb0000 0x1000>; --- -2.24.1 - diff --git a/arm64-dts-imx8mq-phanbell-Add-support-for-ethernet.patch b/arm64-dts-imx8mq-phanbell-Add-support-for-ethernet.patch deleted file mode 100644 index efa8393c3..000000000 --- a/arm64-dts-imx8mq-phanbell-Add-support-for-ethernet.patch +++ /dev/null @@ -1,200 +0,0 @@ -From patchwork Tue Feb 11 13:48:28 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Alifer Moraes -X-Patchwork-Id: 11375533 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E7DAC92A - for ; - Tue, 11 Feb 2020 13:49:12 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id C5EA020714 - for ; - Tue, 11 Feb 2020 13:49:12 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="balGUEE3"; - dkim=fail reason="signature verification failed" (2048-bit key) - header.d=gmail.com header.i=@gmail.com header.b="d3FXu4Dc" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C5EA020714 -Authentication-Results: mail.kernel.org; - dmarc=fail (p=none dis=none) header.from=gmail.com -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: - List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: - Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: - Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: - References:List-Owner; bh=Q9Eedrpm+ZQezEHXcjojgCHrYwg1NSmbBzGRJC6OAEs=; b=bal - GUEE3cweBEy/Vkjzf2O1dBoqXUeIQqctHowPUTw4Z2UghEKFuNfNsw8XoV+k/9uxO4M/XaDCgWyyp - qf26Y3SZo9+k2pqbjJt+qdqndF06tTHiH7QPQGbaWEBxURzOD+G1VW8Iyjvfi0f9vrXbv8d9b9+DI - LPpFdD/7IwXQZEYsPmaSEitj7mQXBlWZnRZrvrQfYtxXb3yABUQIUrBtZSoARs4A+Txn4vOFlT6B4 - HOAidlwfT8hESddkvjjmeCAuPLXUyIBvDoSaYgAumOSh1xoUZsswM2ALud+R1XKVlGlAd1BE6uHt2 - bWDUHrcXdge45JTn/egO1ibajqTlB/g==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j1VuW-0004DJ-JR; Tue, 11 Feb 2020 13:49:08 +0000 -Received: from mail-qt1-x841.google.com ([2607:f8b0:4864:20::841]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j1VuM-0003zu-98 - for linux-arm-kernel@lists.infradead.org; Tue, 11 Feb 2020 13:48:59 +0000 -Received: by mail-qt1-x841.google.com with SMTP id t13so7964724qto.3 - for ; - Tue, 11 Feb 2020 05:48:53 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; - h=from:to:cc:subject:date:message-id; - bh=JIZHRdZLqtLorXZfrYCSPItmC1Dc+HGHwOIzP/XDImY=; - b=d3FXu4DcpsHeeo7NBsq1Ec3f7OKhc4SsvQnIJenSnOtjREel9IF+kdR8ma1SWkO5OR - Ou4s2dnBv7WOxC4OPWNV6d8KIVpBRVtM/ukAKzN6d3zx7MvBtQz1N27NoDx/a7ujHsmS - jvZYtEEc8DToM7semtrIS3CUfnR8Jxni2Z/6WUP8wvMdDT8C1m2PB78zzz+BFas4vec2 - VRg0vXB9eGeEdlGGMFCs2IJ9nbGhw7o3VA3WFY8plHWMmjNInC6fLgpMiA40FBmv4BzV - G9slDIDonCBacDdi6tPT8KEVnytqC8eiltqCoEj+hq8mYECNDQpWUjWhJQ4KRRh1aoXi - oAuA== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20161025; - h=x-gm-message-state:from:to:cc:subject:date:message-id; - bh=JIZHRdZLqtLorXZfrYCSPItmC1Dc+HGHwOIzP/XDImY=; - b=VDw2Y7qVf/KFTneIHUcwsg23yYrIU2SHbDXAyjC6m5rgjl9cM292uJO9J1u+Op1Cu/ - dOhT15wf440CJpqMBTLTJJSuUVpomGxEXFT4qDa6Q84BqkWbFYl/d9HRJkcM1376rLVZ - 7nbzvWqSlLIu3wFgOabFryD13Mw65RJpKUn2vW0b7kInWJ/phJhDJ5+FwjVWJTXEIlsT - LFN5gpS5hajAUubLcUmK8avcuJGka+vT8NkK608MO8NndwUp56g4BRs7Pk4S6wvttmy3 - F8ouwAvWF2idbxWjx9MGcaM/PVLhQpDmcif8AjlEhGnbBza4u5356N4S+SKZSkd43Grw - 8ZWA== -X-Gm-Message-State: APjAAAUJWGlEecdg9M/V5ba1zVNwrP9LNv4AsXidTI7JEnOQd/PE0sMm - I4AUmnPqcCuUaNiG7XoZiUw= -X-Google-Smtp-Source: - APXvYqybhzOEAAvHZbhKNes/s71zGxqa2omF1pXH9nVpHWlE7KVvcXMkRtBbOlD4T9UG/KxmmcCT+w== -X-Received: by 2002:ac8:7caf:: with SMTP id z15mr14892626qtv.68.1581428933199; - Tue, 11 Feb 2020 05:48:53 -0800 (PST) -Received: from NXL86673.nxp.com ([177.221.114.206]) - by smtp.googlemail.com with ESMTPSA id h6sm2158936qtr.33.2020.02.11.05.48.50 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Tue, 11 Feb 2020 05:48:52 -0800 (PST) -From: Alifer Moraes -To: robh+dt@kernel.org -Subject: [PATCH] arm64: dts: imx8mq-phanbell: Add support for ethernet -Date: Tue, 11 Feb 2020 10:48:28 -0300 -Message-Id: <20200211134828.138-1-alifer.wsdm@gmail.com> -X-Mailer: git-send-email 2.17.1 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200211_054858_316312_8FE28FDF -X-CRM114-Status: GOOD ( 10.43 ) -X-Spam-Score: -0.2 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-0.2 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [2607:f8b0:4864:20:0:0:0:841 listed in] - [list.dnswl.org] - 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail - provider [alifer.wsdm[at]gmail.com] - -0.0 SPF_PASS SPF: sender matches SPF record - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - 0.1 DKIM_SIGNED Message has a DKIM or DK signature, - not necessarily - valid - -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from - envelope-from domain - -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature - -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from - author's domain -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, festevam@gmail.com, - s.hauer@pengutronix.de, linux-kernel@vger.kernel.org, - Alifer Moraes , marco.franchi@nxp.com, - shawnguo@kernel.org, linux-arm-kernel@lists.infradead.org -MIME-Version: 1.0 -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -Add support for ethernet on Google's i.MX 8MQ Phanbell - -Signed-off-by: Alifer Moraes ---- - .../boot/dts/freescale/imx8mq-phanbell.dts | 41 +++++++++++++++++++ - 1 file changed, 41 insertions(+) - -diff --git a/arch/arm64/boot/dts/freescale/imx8mq-phanbell.dts b/arch/arm64/boot/dts/freescale/imx8mq-phanbell.dts -index 3f2a489a4ad8..16ed13c44a47 100644 ---- a/arch/arm64/boot/dts/freescale/imx8mq-phanbell.dts -+++ b/arch/arm64/boot/dts/freescale/imx8mq-phanbell.dts -@@ -201,6 +201,27 @@ - }; - }; - -+&fec1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_fec1>; -+ phy-mode = "rgmii-id"; -+ phy-reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; -+ phy-reset-duration = <10>; -+ phy-reset-post-delay = <30>; -+ phy-handle = <ðphy0>; -+ fsl,magic-packet; -+ status = "okay"; -+ -+ mdio { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ ethphy0: ethernet-phy@0 { -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <0>; -+ }; -+ }; -+}; -+ - &uart1 { - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_uart1>; -@@ -254,6 +275,26 @@ - }; - - &iomuxc { -+ pinctrl_fec1: fec1grp { -+ fsl,pins = < -+ MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC 0x3 -+ MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO 0x23 -+ MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f -+ MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f -+ MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f -+ MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f -+ MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91 -+ MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91 -+ MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91 -+ MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91 -+ MX8MQ_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x1f -+ MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91 -+ MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91 -+ MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f -+ MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x19 -+ >; -+ }; -+ - pinctrl_i2c1: i2c1grp { - fsl,pins = < - MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL 0x4000007f diff --git a/arm64-pinctrl-bcm2835-Add-support-for-all-BCM2711-GPIOs.patch b/arm64-pinctrl-bcm2835-Add-support-for-all-BCM2711-GPIOs.patch deleted file mode 100644 index 87ef3d967..000000000 --- a/arm64-pinctrl-bcm2835-Add-support-for-all-BCM2711-GPIOs.patch +++ /dev/null @@ -1,868 +0,0 @@ -From patchwork Mon Jan 27 18:15:05 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Stefan Wahren -X-Patchwork-Id: 11353081 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E75D71398 - for ; - Mon, 27 Jan 2020 18:15:48 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id C51652087F - for ; - Mon, 27 Jan 2020 18:15:48 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="boj1KSY/" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C51652087F -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=i2se.com -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: - List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: - In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: - Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc - :Resent-Message-ID:List-Owner; - bh=vI+2qhhQ/ad2gqCbe5hUTYTYVj8IfAamleiL75V5TSM=; b=boj1KSY/v7nluMqljONFMsrQpY - TIwo7rcohwHGuN2fwWIQvlOtuoNfi2Fq0p3Scukv0Q2ADP7S7q291VcafNnFU5KN1MrzMbRGe4GnM - P3V6kUvf56szm1T1NS1MkTH0UxtSeASAdrde8x8OVZKQoaCTk7UON0PPOY27cnqVlh3c0YEdnjw7O - mqUMZ1W2xfP/jLVZPipZOqiUkCPtyOl7fcUXPVJInCLU8Ap12h/ucwxm6p7sL/miLW+RLo0gKtso8 - vE/Ub+gXij8pNQBcHeQOS3T5w7YYAKX0ckGovHYTGCE5G9DP0PYvWHj2aUr39vu4U7SF87h2rVwQ8 - lsj/6XEg==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1iw8vL-0007qT-4l; Mon, 27 Jan 2020 18:15:47 +0000 -Received: from mout.kundenserver.de ([212.227.126.130]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1iw8vI-0007pK-OI - for linux-arm-kernel@lists.infradead.org; Mon, 27 Jan 2020 18:15:46 +0000 -Received: from localhost.localdomain ([37.4.249.152]) by - mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) - id 1MRmwM-1j2Dig1rly-00TAt5; Mon, 27 Jan 2020 19:15:40 +0100 -From: Stefan Wahren -To: Nicolas Saenz Julienne , - Florian Fainelli , - Linus Walleij , Ray Jui , - Scott Branden -Subject: [RFC PATCH 1/4] pinctrl: bcm2835: Drop unused define -Date: Mon, 27 Jan 2020 19:15:05 +0100 -Message-Id: <1580148908-4863-2-git-send-email-stefan.wahren@i2se.com> -X-Mailer: git-send-email 2.7.4 -In-Reply-To: <1580148908-4863-1-git-send-email-stefan.wahren@i2se.com> -References: <1580148908-4863-1-git-send-email-stefan.wahren@i2se.com> -X-Provags-ID: V03:K1:lGg05mfNcExFSuIdqSja3VB+cOAOOVkxA1mUl+WjJLfuDEYN48s - KCpfgqk9HemEgzwKhTMkYEgexHNzZfeVG5k5xAbv9CDheeQx24pa/Pz7dPaHD9i2zVtcPEX - ugday3kFGFOvKGH3QCW8oxkE91P2/fJaGsnynRzDkoSe3RjqXABLPjZW+febQ6xUrd9aF8p - OvDdu6E+cBesU1loyk22g== -X-Spam-Flag: NO -X-UI-Out-Filterresults: notjunk:1;V03:K0:FBYTcl5hsyU=:/uJXPKY5G3RK2HKm3g2afF - CA5JAlk5ZwkebJLV4bbQfKqE89ChkfNCYzAIhT9SgQhi22RYSBr1LmN//FwU0R3diFEvflVI4 - OPkci48gv0sh+mZnsk9a5fiLs2oAnSh5hggie4G8ZelqhAZ6n4CYEWIp+lz1bo5KPywuZxqek - T8GpkbU4eb/oEicxOhC8lN0DwOFD5W3GliKQ1IpWDarfz8Y9a4d+EgeY0+iBjelJHlfR3e1Q4 - 5TOF82NxXDkBp/4GoxSxM5JDUgoTnPvWCJ7ZFIchyrHbjc5NauAb/4e//OnNTPB8e7bKoOaH2 - HQ6XUp0Da/6crl8QtfuGEbHRAtkNZFJTRdT07zQtpcH89Cqto3IYQ9ND/7ijWcWxu5wb7Ve34 - RPM8gzArJAvou4fFeqPnnHkVmPuq3p5Xua81P7sTqXQN3m5U5RqmH8Lzr8w92FQrloZ2SMe9z - XjYOrjAoxuxpe2x+H3tUoY4PwEgZjz7swAA8BeyYnRzumaAVvQgvNKrW2Qj9V73nKPwgtehvz - hZDfvJgFBHEyfHVj4Fcz+N3r4xFIWS5o2UW5P2M2L2v7bQsckL4EkHWUHSjK5sJhQVDongIHo - /+aJJViGcVBiAGrzvEW2ksFVnPP5X7R2pBxPckyIx3WhJaGzC1OGqA3Wg/a2k08Ewtt7m2DXz - yYvnBfgEsV57VS3aLe8dsbJ2HqKMcqeahm6FQesAnangl4BtG6RH1BMKAaaaMeuJm2DQO+UUA - PELxUMq3dBDAOEuSMNSdvN15BCqDxAajjVLnv+b/+pnKsJ/31p3YVryA78eJ6/kZm1a/DobHg - vNu1QLjbpYkq/WH/K/LaUxt+YpwMi8egvQPLH32zMRACRbsqlMQ7nAGsZtdEkU8zYbp38yV -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200127_101545_079150_4EC20A38 -X-CRM114-Status: GOOD ( 11.11 ) -X-Spam-Score: 0.0 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (0.0 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [212.227.126.130 listed in list.dnswl.org] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - -0.0 SPF_PASS SPF: sender matches SPF record -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: Stefan Wahren , linux-gpio@vger.kernel.org, - bcm-kernel-feedback-list@broadcom.com, linux-arm-kernel@lists.infradead.org, - devicetree@vger.kernel.org -MIME-Version: 1.0 -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -There is no usage for this define, so drop it. - -Signed-off-by: Stefan Wahren ---- - drivers/pinctrl/bcm/pinctrl-bcm2835.c | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index 0de1a3a..3fc2638 100644 ---- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c -+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -40,9 +40,6 @@ - #define BCM2835_NUM_BANKS 2 - #define BCM2835_NUM_IRQS 3 - --#define BCM2835_PIN_BITMAP_SZ \ -- DIV_ROUND_UP(BCM2835_NUM_GPIOS, sizeof(unsigned long) * 8) -- - /* GPIO register offsets */ - #define GPFSEL0 0x0 /* Function Select */ - #define GPSET0 0x1c /* Pin Output Set */ - -From patchwork Mon Jan 27 18:15:06 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Stefan Wahren -X-Patchwork-Id: 11353087 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D0A70159A - for ; - Mon, 27 Jan 2020 18:16:30 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id A832D214AF - for ; - Mon, 27 Jan 2020 18:16:30 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="BBcc5MYW" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A832D214AF -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=i2se.com -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: - List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: - In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: - Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc - :Resent-Message-ID:List-Owner; - bh=zl633DOCOOf5sEmBHgEEmRs3zIL6xCyAbRmQHF/5twU=; b=BBcc5MYWdf7TBI7GF8KvMnZTXP - vwSri+G4Xg+SfQ0x1b4jtd8AwTGL1tYuyopmjQCdIt42APOehPRUttV2YvvQ9suKeJoNobnLxLcBr - zvQYgSNAwt21baLbOyQi0HJWd2BzeIpRw419olVPp37cUGLwE4hpNIv0peCB/6uhTDXyN4YPrXKmW - P7fz/gK+8yj6qz6VZeILYNYiE5DjbkwPSIoD8X/NZhppDvPNCkO3tmD4Z1UQDhMoZNooqIWcGRKIh - umTkq58tIYGNOTccLaKvcW8Elm9ZHK7ssai4uhpgfmL0tId3saEqMuJzSccyqF6ENztpgOra2qWKS - cVX67vMA==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1iw8vz-0008UK-VC; Mon, 27 Jan 2020 18:16:27 +0000 -Received: from mout.kundenserver.de ([212.227.126.135]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1iw8vJ-0007pN-PH - for linux-arm-kernel@lists.infradead.org; Mon, 27 Jan 2020 18:15:48 +0000 -Received: from localhost.localdomain ([37.4.249.152]) by - mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) - id 1MdvVu-1jTpmM3Tfy-00b6tv; Mon, 27 Jan 2020 19:15:40 +0100 -From: Stefan Wahren -To: Nicolas Saenz Julienne , - Florian Fainelli , - Linus Walleij , Ray Jui , - Scott Branden -Subject: [RFC PATCH 2/4] pinctrl: bcm2835: Refactor platform data -Date: Mon, 27 Jan 2020 19:15:06 +0100 -Message-Id: <1580148908-4863-3-git-send-email-stefan.wahren@i2se.com> -X-Mailer: git-send-email 2.7.4 -In-Reply-To: <1580148908-4863-1-git-send-email-stefan.wahren@i2se.com> -References: <1580148908-4863-1-git-send-email-stefan.wahren@i2se.com> -X-Provags-ID: V03:K1:VruPCfmk9mM3xiAf4DG/6aoXzCy4UDEsxr5SC+GDP4iRdgXZX29 - MFCNoD27qBqcSq1LjDl1+NGtNJ3+c1twK3aKoFUdWC05HKxzJPuizB6xDkWYoCIsLzUx75H - HiA0SBUlw/LN+bHlzoczcUQzu+qFL0N3XAwKX9HxzpPzSFwl1lRDgLB6suBZjq4VTFrw6QP - xptjL6VDFkgqBb05XjOfA== -X-Spam-Flag: NO -X-UI-Out-Filterresults: notjunk:1;V03:K0:f2Tec5CMQUc=:niiLUGM7C+e//7RIjf+wMq - wLFHtqjv1ynGaEgrTEwtjnWYqI/r72m4A6fdxd06jGD2Uyp8tpT//zGZgAMatxGP2tJCKPrs8 - H50QvZYrkhyeWT1e/b/43xnEBFcJ26c6kKbSdwNEaPpeQ2pSXrJ+fWFg4rgyr2kyb0a6fODwi - glMJlRcbMvRam6bDw57BliG4DhkYgMl0WB+vE3ztB/xJo+NhTzPKfEpK10WVhz1N+MdOE8gPM - Ed3HaUcq1KYSZvZRKVS8rOnqLfx2aLsXvrn+YKEvs5xzV1w8QpRWEIYZcLOwKvY23kJzQG9eq - MIIG4Or4qhijuBXiW2q6mwUPh2z1lLVKOHwzEHdCAb+4bDlzo8dAxIoc40B0H6ZxVg4/5LHFJ - La0bD0qwfKTemPRPvdCrUGRjVY38hB0RBGSXLrWBfL0PkTsuaEeRZvCVEY80YYfxmOaIKNCZI - KTZTGrVvZWUrz2smObUJlIIzYVznL4L5rWMZjNaLpWxwyNpAg0eDTqVYFmDT+qIxNN4PgQhRy - tSUqMKFEgm7xT/YoZD4jdOe5rJJ0dEmy9DgnlvjmjzCBjXAGdPFrFO9kKivLmdSPaubJ7DdcC - tcrGiqydtDkturFJvTsQYH+PmTQvbe4oBqgNIRZo8f1X5RgRS0fFLp3LA8/+FKUufNNqrLMao - +41TZ2JeFAJBnB9x8z5VMa7EVYvu5Vv7a6UPbF0i7yUPlzFy4OB0vDTMzjH7rW414iarBNvIy - QDypz6a5PwveJ4Fe9ATD7LILVISmcIjM7r29JF4LAmFeYo0lVn6a4kM0PnIwd/wQsax1Rp9/Y - J1/TI8TQICVBl0N9CsxgAPc+X49YqHbFXpoqbsqqK9BIb3Bj+cJJ6Owe9HtjZLb6ifZLnyA -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200127_101546_108760_0514F0F4 -X-CRM114-Status: GOOD ( 14.77 ) -X-Spam-Score: 0.0 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (0.0 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [212.227.126.135 listed in list.dnswl.org] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - -0.0 SPF_PASS SPF: sender matches SPF record -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: Stefan Wahren , linux-gpio@vger.kernel.org, - bcm-kernel-feedback-list@broadcom.com, linux-arm-kernel@lists.infradead.org, - devicetree@vger.kernel.org -MIME-Version: 1.0 -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -This prepares the platform data to be easier to extend for more GPIOs. -Except of this there is no functional change. - -Signed-off-by: Stefan Wahren ---- - drivers/pinctrl/bcm/pinctrl-bcm2835.c | 57 +++++++++++++++++++++++++++-------- - 1 file changed, 44 insertions(+), 13 deletions(-) - -diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index 3fc2638..ffd069a 100644 ---- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c -+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -82,6 +82,7 @@ struct bcm2835_pinctrl { - - struct pinctrl_dev *pctl_dev; - struct gpio_chip gpio_chip; -+ struct pinctrl_desc pctl_desc; - struct pinctrl_gpio_range gpio_range; - - raw_spinlock_t irq_lock[BCM2835_NUM_BANKS]; -@@ -1051,7 +1052,7 @@ static const struct pinconf_ops bcm2711_pinconf_ops = { - .pin_config_set = bcm2711_pinconf_set, - }; - --static struct pinctrl_desc bcm2835_pinctrl_desc = { -+static const struct pinctrl_desc bcm2835_pinctrl_desc = { - .name = MODULE_NAME, - .pins = bcm2835_gpio_pins, - .npins = ARRAY_SIZE(bcm2835_gpio_pins), -@@ -1061,19 +1062,47 @@ static struct pinctrl_desc bcm2835_pinctrl_desc = { - .owner = THIS_MODULE, - }; - --static struct pinctrl_gpio_range bcm2835_pinctrl_gpio_range = { -+static const struct pinctrl_desc bcm2711_pinctrl_desc = { -+ .name = MODULE_NAME, -+ .pins = bcm2835_gpio_pins, -+ .npins = ARRAY_SIZE(bcm2835_gpio_pins), -+ .pctlops = &bcm2835_pctl_ops, -+ .pmxops = &bcm2835_pmx_ops, -+ .confops = &bcm2711_pinconf_ops, -+ .owner = THIS_MODULE, -+}; -+ -+static const struct pinctrl_gpio_range bcm2835_pinctrl_gpio_range = { - .name = MODULE_NAME, - .npins = BCM2835_NUM_GPIOS, - }; - -+struct bcm_plat_data { -+ const struct gpio_chip *gpio_chip; -+ const struct pinctrl_desc *pctl_desc; -+ const struct pinctrl_gpio_range *gpio_range; -+}; -+ -+static const struct bcm_plat_data bcm2835_plat_data = { -+ .gpio_chip = &bcm2835_gpio_chip, -+ .pctl_desc = &bcm2835_pinctrl_desc, -+ .gpio_range = &bcm2835_pinctrl_gpio_range, -+}; -+ -+static const struct bcm_plat_data bcm2711_plat_data = { -+ .gpio_chip = &bcm2835_gpio_chip, -+ .pctl_desc = &bcm2711_pinctrl_desc, -+ .gpio_range = &bcm2835_pinctrl_gpio_range, -+}; -+ - static const struct of_device_id bcm2835_pinctrl_match[] = { - { - .compatible = "brcm,bcm2835-gpio", -- .data = &bcm2835_pinconf_ops, -+ .data = &bcm2835_plat_data, - }, - { - .compatible = "brcm,bcm2711-gpio", -- .data = &bcm2711_pinconf_ops, -+ .data = &bcm2711_plat_data, - }, - {} - }; -@@ -1083,6 +1112,7 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) - struct device *dev = &pdev->dev; - struct device_node *np = dev->of_node; - struct bcm2835_pinctrl *pc; -+ struct bcm_plat_data *pdata; - struct gpio_irq_chip *girq; - struct resource iomem; - int err, i; -@@ -1108,7 +1138,13 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) - if (IS_ERR(pc->base)) - return PTR_ERR(pc->base); - -- pc->gpio_chip = bcm2835_gpio_chip; -+ match = of_match_node(bcm2835_pinctrl_match, pdev->dev.of_node); -+ if (!match) -+ return -EINVAL; -+ -+ pdata = (struct bcm_plat_data *)match->data; -+ -+ memcpy(&pc->gpio_chip, pdata->gpio_chip, sizeof(pc->gpio_chip)); - pc->gpio_chip.parent = dev; - pc->gpio_chip.of_node = np; - -@@ -1159,19 +1195,14 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) - return err; - } - -- match = of_match_node(bcm2835_pinctrl_match, pdev->dev.of_node); -- if (match) { -- bcm2835_pinctrl_desc.confops = -- (const struct pinconf_ops *)match->data; -- } -- -- pc->pctl_dev = devm_pinctrl_register(dev, &bcm2835_pinctrl_desc, pc); -+ memcpy(&pc->pctl_desc, pdata->pctl_desc, sizeof(pc->pctl_desc)); -+ pc->pctl_dev = devm_pinctrl_register(dev, &pc->pctl_desc, pc); - if (IS_ERR(pc->pctl_dev)) { - gpiochip_remove(&pc->gpio_chip); - return PTR_ERR(pc->pctl_dev); - } - -- pc->gpio_range = bcm2835_pinctrl_gpio_range; -+ memcpy(&pc->gpio_range, pdata->gpio_range, sizeof(pc->gpio_range)); - pc->gpio_range.base = pc->gpio_chip.base; - pc->gpio_range.gc = &pc->gpio_chip; - pinctrl_add_gpio_range(pc->pctl_dev, &pc->gpio_range); - -From patchwork Mon Jan 27 18:15:07 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Stefan Wahren -X-Patchwork-Id: 11353089 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 01D8B159A - for ; - Mon, 27 Jan 2020 18:16:42 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id A3164214AF - for ; - Mon, 27 Jan 2020 18:16:41 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="OgchXKpW" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A3164214AF -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=i2se.com -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: - List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: - In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: - Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc - :Resent-Message-ID:List-Owner; - bh=XmwwFukBgBjwO0LJL+fK3hmGj90hC5ef7Vri1vGrDvw=; b=OgchXKpWUifGHBapyBCQRZf4Oe - Leu+Cl9F+oT35HizJxpDIqWCQOPGA84tYHVdL8DHnOR2sS8sgHpZTWMKe0QSgr3SUuLaQ2diawm04 - B9CSuvfP5yx9MActAPcuhQbMJldRfdt0X+pqyeQf6kaHPaj2JnqRwXWOofaMYeLQwl9zbqEB1B5Ss - FGQnyl0V9sMSPydz6oe5UALnFguup+uWjm3ybTj1yEDhm5vypOqzhTm3vwrvY0CtmPhS3f3vx5F/7 - qNeG7wpGbnUw9b2Ta44QWFyROWbi81UIHkON1Rn1lw/J5gf470beknQM/5fyv2iHMWMVIopDs2Qpo - Jxtt2SIA==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1iw8wC-0000I4-7V; Mon, 27 Jan 2020 18:16:40 +0000 -Received: from mout.kundenserver.de ([212.227.126.135]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1iw8vJ-0007pO-PH - for linux-arm-kernel@lists.infradead.org; Mon, 27 Jan 2020 18:15:48 +0000 -Received: from localhost.localdomain ([37.4.249.152]) by - mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) - id 1MIxFi-1jB3PL0sMU-00KPSh; Mon, 27 Jan 2020 19:15:41 +0100 -From: Stefan Wahren -To: Nicolas Saenz Julienne , - Florian Fainelli , - Linus Walleij , Ray Jui , - Scott Branden -Subject: [RFC PATCH 3/4] pinctrl: bcm2835: Add support for all GPIOs on - BCM2711 -Date: Mon, 27 Jan 2020 19:15:07 +0100 -Message-Id: <1580148908-4863-4-git-send-email-stefan.wahren@i2se.com> -X-Mailer: git-send-email 2.7.4 -In-Reply-To: <1580148908-4863-1-git-send-email-stefan.wahren@i2se.com> -References: <1580148908-4863-1-git-send-email-stefan.wahren@i2se.com> -X-Provags-ID: V03:K1:X6IS1XjHy4cJfxjoudVoDX/cZvMR/vfdQSMdLzkgWq1irgCvB38 - RaAG8s5bLq+gwxv7sq4OOzzzIjMwUf3oUytVqdip8Emtgr3GiNEl2vBd272/sh3B1OJanK8 - goehy07Y9M/B0RMRS8QYkknz5PIlSimkZBJKjNE686UdoJg1We/vhXibKmf8z5kreTjrWe3 - q1JcyYfqP1itQAVjziUtQ== -X-Spam-Flag: NO -X-UI-Out-Filterresults: notjunk:1;V03:K0:LyL94am3zLA=:BmnKGYucrjNaj35BCZWbP5 - JzGddQvqDkhH/CCngNEO2dMwjvlnPKHh/PEbdrGp6m9QHAmq4UkqMbHYKp4XqoYGKvPoozwfP - FP1S21DqEh5BYA0hhWgk2maxuudk085Kg/UXpitwP437bovAei4bfR+gXu53083PnNenJAm4p - xAhXuwmTwnWKv+qAem9IrQUBQtWZqTLIoviS/rBI58lKIF9owSsmboh1lagz+7EGkpnXhcae1 - 0MbckaZUNlfNjiRnq4V+VHRLEiPKWNxiGYMIefuH9JuPr6WXJPFk7fJo8OZ45VvNntUoYSSpc - j0n6iO9I7UbYvyi7+SAmts7a4bZF+1qLxOl9S9cCBKPRGH2Z3kUCuTwNYlPjcUQyn6uqO0Mlx - c+13a6OSMjdDPVRDOntBqI0l4rsK062Ig/ZwiteVVX/T7ZtOdNR2v9sRVAnh/w8iyF4VHZ0GC - ULTnZeoeqfXKRaXEz7sGaOev/A5I1h35g02J5m9TlwjHQiNzKPNc45U2Rab8osp5QUPpRpD1N - 4TUS9baKQp8dfAHyEkc1gBlk0cb1zDcQJMX7bQVUSSxSFx0otQCiojOcWf2PP2Hf1NREQw+82 - UV3Z09N/3ny3u6Qu0dI11Kin/x4ZubPCk2Z9H663jrHUxQP4afxI/ZCeRjqTIpU8chYef1IHT - v3ZX4UpNi6S2kossS/nmFNqzdzxsOnNFseX4lA9Pp5DREJwDVh4t9UFpY49YOKaWkmqBFAAh4 - O7NlyceEWWYXkJh8pRPkdftSVQVKKjtoc+mmNdZ6A/MFCjlN4hQ4NzpeCvIGk1Jp/tUXAyMDV - jBtNPE8cgg54eLvhAbGLfFWVNbu8UAkmntw7HjfU+o9g9ylEQ02IihlbByt5l+e7GdgBJm5 -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200127_101546_105798_68395F22 -X-CRM114-Status: GOOD ( 17.25 ) -X-Spam-Score: 0.0 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (0.0 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [212.227.126.135 listed in list.dnswl.org] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - -0.0 SPF_PASS SPF: sender matches SPF record -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: Stefan Wahren , linux-gpio@vger.kernel.org, - bcm-kernel-feedback-list@broadcom.com, linux-arm-kernel@lists.infradead.org, - devicetree@vger.kernel.org -MIME-Version: 1.0 -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -The BCM2711 supports 58 GPIOs. So extend pinctrl and GPIOs accordingly. - -Signed-off-by: Stefan Wahren ---- - drivers/pinctrl/bcm/pinctrl-bcm2835.c | 54 +++++++++++++++++++++++++++-------- - 1 file changed, 42 insertions(+), 12 deletions(-) - -diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -index ffd069a..41e7bf9 100644 ---- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c -+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -37,6 +37,7 @@ - - #define MODULE_NAME "pinctrl-bcm2835" - #define BCM2835_NUM_GPIOS 54 -+#define BCM2711_NUM_GPIOS 58 - #define BCM2835_NUM_BANKS 2 - #define BCM2835_NUM_IRQS 3 - -@@ -78,7 +79,7 @@ struct bcm2835_pinctrl { - - /* note: locking assumes each bank will have its own unsigned long */ - unsigned long enabled_irq_map[BCM2835_NUM_BANKS]; -- unsigned int irq_type[BCM2835_NUM_GPIOS]; -+ unsigned int irq_type[BCM2711_NUM_GPIOS]; - - struct pinctrl_dev *pctl_dev; - struct gpio_chip gpio_chip; -@@ -145,6 +146,10 @@ static struct pinctrl_pin_desc bcm2835_gpio_pins[] = { - BCM2835_GPIO_PIN(51), - BCM2835_GPIO_PIN(52), - BCM2835_GPIO_PIN(53), -+ BCM2835_GPIO_PIN(54), -+ BCM2835_GPIO_PIN(55), -+ BCM2835_GPIO_PIN(56), -+ BCM2835_GPIO_PIN(57), - }; - - /* one pin per group */ -@@ -203,6 +208,10 @@ static const char * const bcm2835_gpio_groups[] = { - "gpio51", - "gpio52", - "gpio53", -+ "gpio54", -+ "gpio55", -+ "gpio56", -+ "gpio57", - }; - - enum bcm2835_fsel { -@@ -353,6 +362,22 @@ static const struct gpio_chip bcm2835_gpio_chip = { - .can_sleep = false, - }; - -+static const struct gpio_chip bcm2711_gpio_chip = { -+ .label = "pinctrl-bcm2711", -+ .owner = THIS_MODULE, -+ .request = gpiochip_generic_request, -+ .free = gpiochip_generic_free, -+ .direction_input = bcm2835_gpio_direction_input, -+ .direction_output = bcm2835_gpio_direction_output, -+ .get_direction = bcm2835_gpio_get_direction, -+ .get = bcm2835_gpio_get, -+ .set = bcm2835_gpio_set, -+ .set_config = gpiochip_generic_config, -+ .base = -1, -+ .ngpio = BCM2711_NUM_GPIOS, -+ .can_sleep = false, -+}; -+ - static void bcm2835_gpio_irq_handle_bank(struct bcm2835_pinctrl *pc, - unsigned int bank, u32 mask) - { -@@ -399,7 +424,7 @@ static void bcm2835_gpio_irq_handler(struct irq_desc *desc) - bcm2835_gpio_irq_handle_bank(pc, 0, 0xf0000000); - bcm2835_gpio_irq_handle_bank(pc, 1, 0x00003fff); - break; -- case 2: /* IRQ2 covers GPIOs 46-53 */ -+ case 2: /* IRQ2 covers GPIOs 46-57 */ - bcm2835_gpio_irq_handle_bank(pc, 1, 0x003fc000); - break; - } -@@ -618,7 +643,7 @@ static struct irq_chip bcm2835_gpio_irq_chip = { - - static int bcm2835_pctl_get_groups_count(struct pinctrl_dev *pctldev) - { -- return ARRAY_SIZE(bcm2835_gpio_groups); -+ return BCM2835_NUM_GPIOS; - } - - static const char *bcm2835_pctl_get_group_name(struct pinctrl_dev *pctldev, -@@ -776,7 +801,7 @@ static int bcm2835_pctl_dt_node_to_map(struct pinctrl_dev *pctldev, - err = of_property_read_u32_index(np, "brcm,pins", i, &pin); - if (err) - goto out; -- if (pin >= ARRAY_SIZE(bcm2835_gpio_pins)) { -+ if (pin >= pc->pctl_desc.npins) { - dev_err(pc->dev, "%pOF: invalid brcm,pins value %d\n", - np, pin); - err = -EINVAL; -@@ -852,7 +877,7 @@ static int bcm2835_pmx_get_function_groups(struct pinctrl_dev *pctldev, - { - /* every pin can do every function */ - *groups = bcm2835_gpio_groups; -- *num_groups = ARRAY_SIZE(bcm2835_gpio_groups); -+ *num_groups = BCM2835_NUM_GPIOS; - - return 0; - } -@@ -1055,7 +1080,7 @@ static const struct pinconf_ops bcm2711_pinconf_ops = { - static const struct pinctrl_desc bcm2835_pinctrl_desc = { - .name = MODULE_NAME, - .pins = bcm2835_gpio_pins, -- .npins = ARRAY_SIZE(bcm2835_gpio_pins), -+ .npins = BCM2835_NUM_GPIOS, - .pctlops = &bcm2835_pctl_ops, - .pmxops = &bcm2835_pmx_ops, - .confops = &bcm2835_pinconf_ops, -@@ -1063,9 +1088,9 @@ static const struct pinctrl_desc bcm2835_pinctrl_desc = { - }; - - static const struct pinctrl_desc bcm2711_pinctrl_desc = { -- .name = MODULE_NAME, -+ .name = "pinctrl-bcm2711", - .pins = bcm2835_gpio_pins, -- .npins = ARRAY_SIZE(bcm2835_gpio_pins), -+ .npins = BCM2711_NUM_GPIOS, - .pctlops = &bcm2835_pctl_ops, - .pmxops = &bcm2835_pmx_ops, - .confops = &bcm2711_pinconf_ops, -@@ -1077,6 +1102,11 @@ static const struct pinctrl_gpio_range bcm2835_pinctrl_gpio_range = { - .npins = BCM2835_NUM_GPIOS, - }; - -+static const struct pinctrl_gpio_range bcm2711_pinctrl_gpio_range = { -+ .name = "pinctrl-bcm2711", -+ .npins = BCM2711_NUM_GPIOS, -+}; -+ - struct bcm_plat_data { - const struct gpio_chip *gpio_chip; - const struct pinctrl_desc *pctl_desc; -@@ -1090,9 +1120,9 @@ static const struct bcm_plat_data bcm2835_plat_data = { - }; - - static const struct bcm_plat_data bcm2711_plat_data = { -- .gpio_chip = &bcm2835_gpio_chip, -+ .gpio_chip = &bcm2711_gpio_chip, - .pctl_desc = &bcm2711_pinctrl_desc, -- .gpio_range = &bcm2835_pinctrl_gpio_range, -+ .gpio_range = &bcm2711_pinctrl_gpio_range, - }; - - static const struct of_device_id bcm2835_pinctrl_match[] = { -@@ -1118,8 +1148,8 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) - int err, i; - const struct of_device_id *match; - -- BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_pins) != BCM2835_NUM_GPIOS); -- BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_groups) != BCM2835_NUM_GPIOS); -+ BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_pins) != BCM2711_NUM_GPIOS); -+ BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_groups) != BCM2711_NUM_GPIOS); - - pc = devm_kzalloc(dev, sizeof(*pc), GFP_KERNEL); - if (!pc) - -From patchwork Mon Jan 27 18:15:08 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Stefan Wahren -X-Patchwork-Id: 11353085 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BDFA01398 - for ; - Mon, 27 Jan 2020 18:16:18 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 9B66F214AF - for ; - Mon, 27 Jan 2020 18:16:18 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="ezMQm6le" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9B66F214AF -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=i2se.com -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: - List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: - In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: - Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc - :Resent-Message-ID:List-Owner; - bh=DPuQWycqdw9CxoKuQR42+vWv5iNmyUIYkTHQf1KLxgY=; b=ezMQm6leJB6R6ZsKnfpCgXjitb - W3Nw1Je9MEi8SZ9v+eC3CeiTFqVt/5x1h0N8bH5ZGdptzjP+SrRIS6oD0h4pJFGg6ugBUnLmcef06 - eNSulzVLTX6qsyPkqj4pRr4fXRyP4R9Om3GidBwWl8vRQ0LLc8ssJkt/K9nW7BslGHjMmEwd+QSiF - t7aYAjYBf45g9TP/aPeAlsgEUzpwNrdiQB0+jY4cWlMTSrz+61Fp9Ay+NopbRoQ+ZY6VHVCHoXwma - eg91Z/Mc359cQ4CBaUn20N4gS5IUc0CMh77YTOYq3QHaJUuO5FR7ARenQTie073XFTCQtrkfCIXeJ - h8y1Bvlw==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1iw8vl-0008F1-HZ; Mon, 27 Jan 2020 18:16:13 +0000 -Received: from mout.kundenserver.de ([212.227.126.134]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1iw8vL-0007pp-4e - for linux-arm-kernel@lists.infradead.org; Mon, 27 Jan 2020 18:15:48 +0000 -Received: from localhost.localdomain ([37.4.249.152]) by - mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) - id 1MIdS1-1iqMAq2lZF-00EeIy; Mon, 27 Jan 2020 19:15:41 +0100 -From: Stefan Wahren -To: Nicolas Saenz Julienne , - Florian Fainelli , - Linus Walleij , Ray Jui , - Scott Branden -Subject: [RFC PATCH 4/4] ARM: dts: bcm2711-rpi-4-b: Add SoC GPIO labels -Date: Mon, 27 Jan 2020 19:15:08 +0100 -Message-Id: <1580148908-4863-5-git-send-email-stefan.wahren@i2se.com> -X-Mailer: git-send-email 2.7.4 -In-Reply-To: <1580148908-4863-1-git-send-email-stefan.wahren@i2se.com> -References: <1580148908-4863-1-git-send-email-stefan.wahren@i2se.com> -X-Provags-ID: V03:K1:Gxba3mqtzEfAZsLaIh9BPR5KGgNDsOM8n/SyTdefyB0S+Ix6nQ6 - 3ZLcgMmQ0ZYCLRjSx9LHkgciD9ISLplz152G/qC58KgorZhlZLhVE974IeKAkTW7W6RIHig - h04Lium+H3BT4cdz+bIAKz1RoTVdqSRp3Bov22Fv5E4IbNQGvAgEx4Sh7aDH+pVGti//bPm - sxDDXE5ZOXGV0qV3mvozA== -X-Spam-Flag: NO -X-UI-Out-Filterresults: notjunk:1;V03:K0:cCaO9H+V7fw=:e54AxDo4xa1RNP7BrlXkUw - hcxiAvXNAIgIOvr2ULYOCL0TL9NzkdUBAFNQCWXg+9tQt4S1g6hU8gHkciuR6wa+2Cp8Xx5tX - +llHcigXOC2W2A3/H9CyAonFLfN2LtqKP65pY2L50CbaZwjnsBqXhx204sIbiRowV9mxvafPo - t2qbrWIi7u6FIMFVrCPP6wE54WKajQz0y/dLzyYY97zKFvnWCVnVi+wqat0odNyoSPsqVn0bZ - IosK/ArAU/cdn47p/tTAICkZ4LT3Hej8lWbLgs37gDw8DDTbDojBGQNroAepDuL3/RNn+lzON - kdG+mueLFX0OBuSSfviiSheetOwE1yiesBRvOGGH8SPAdosy99GUDu9JWlb+5Nu0T59IQTm7O - Fjvqcu1fiL9L6Qw24XdH9osD6cr2kE4395AH6pP7KLf3KbZClN203u6SfTB9Xw5mAK1mLTOJO - 8C2OC1qX/NFSNffy6qM68jxJ+dRjhB2kyFtiquL5w85hQ9A+0UHh47pQP+vii1XlpE/xYDuRX - VqTiy7fJn8xtcDs0VAoOVnelun1+ppzMdObQpGWaheuA29O4gvaKjA55oKwCw1zzpVOzHmLAg - FhqvMZv3NiqUlLpj85vqbQT9r4U6POpxLorzLyvoarWOy7nvAyVdepSLB7BhbJWwrIbzeiFNd - 2mNR6PTfFZbsMkXdj67sk75MnEgUMjxerASnkhv0xHqQXo/rbdc2HX7fC/1Ft04B1HJextbil - GrPQ6dSPe5SCpjQP6yd9yhLNoaLeNEHpY5Ds0M1hULtqYkJiubORBMvp9H1mmjV7o5UCHqlOW - S9QPe97AN6cfCJGvjb5uYcfneUnc1K0Bj8mmXat9B6fHaxA7pDEsAS1Cy0OgtFjH/t37B1P -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200127_101547_491226_F9BAEAA0 -X-CRM114-Status: GOOD ( 13.91 ) -X-Spam-Score: 0.0 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (0.0 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, - no trust [212.227.126.134 listed in list.dnswl.org] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - -0.0 SPF_PASS SPF: sender matches SPF record -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: Stefan Wahren , linux-gpio@vger.kernel.org, - bcm-kernel-feedback-list@broadcom.com, linux-arm-kernel@lists.infradead.org, - devicetree@vger.kernel.org -MIME-Version: 1.0 -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -This adds the labels for all the SoC GPIOs on the Raspberry Pi 4. - -Signed-off-by: Stefan Wahren ---- - arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 74 +++++++++++++++++++++++++++++++++++ - 1 file changed, 74 insertions(+) - -diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts -index 1b5a835..6607e2e 100644 ---- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts -+++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts -@@ -71,6 +71,80 @@ - }; - }; - -+&gpio { -+ /* -+ * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and -+ * the official GPU firmware DT blob. -+ * -+ * Legend: -+ * "NC" = not connected (no rail from the SoC) -+ * "FOO" = GPIO line named "FOO" on the schematic -+ * "FOO_N" = GPIO line named "FOO" on schematic, active low -+ */ -+ gpio-line-names = "ID_SDA", -+ "ID_SCL", -+ "SDA1", -+ "SCL1", -+ "GPIO_GCLK", -+ "GPIO5", -+ "GPIO6", -+ "SPI_CE1_N", -+ "SPI_CE0_N", -+ "SPI_MISO", -+ "SPI_MOSI", -+ "SPI_SCLK", -+ "GPIO12", -+ "GPIO13", -+ /* Serial port */ -+ "TXD1", -+ "RXD1", -+ "GPIO16", -+ "GPIO17", -+ "GPIO18", -+ "GPIO19", -+ "GPIO20", -+ "GPIO21", -+ "GPIO22", -+ "GPIO23", -+ "GPIO24", -+ "GPIO25", -+ "GPIO26", -+ "GPIO27", -+ "RGMII_MDIO", -+ "RGMIO_MDC", -+ /* Used by BT module */ -+ "CTS0", -+ "RTS0", -+ "TXD0", -+ "RXD0", -+ /* Used by Wifi */ -+ "SD1_CLK", -+ "SD1_CMD", -+ "SD1_DATA0", -+ "SD1_DATA1", -+ "SD1_DATA2", -+ "SD1_DATA3", -+ /* Shared with SPI flash */ -+ "PWM0_MISO", -+ "PWM1_MOSI", -+ "STATUS_LED_G_CLK", -+ "SPIFLASH_CE_N", -+ "SDA0", -+ "SCL0", -+ "RGMII_RXCLK", -+ "RGMII_RXCTL", -+ "RGMII_RXD0", -+ "RGMII_RXD1", -+ "RGMII_RXD2", -+ "RGMII_RXD3", -+ "RGMII_TXCLK", -+ "RGMII_TXCTL", -+ "RGMII_TXD0", -+ "RGMII_TXD1", -+ "RGMII_TXD2", -+ "RGMII_TXD3"; -+}; -+ - &pwm1 { - pinctrl-names = "default"; - pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>; diff --git a/arm64-pine64-pinephone.patch b/arm64-pine64-pinephone.patch deleted file mode 100644 index 640d53e33..000000000 --- a/arm64-pine64-pinephone.patch +++ /dev/null @@ -1,568 +0,0 @@ -From 836821a0addbd8589e949801aaa7be244703c7f8 Mon Sep 17 00:00:00 2001 -From: Ondrej Jirman -Date: Thu, 27 Feb 2020 02:26:48 +0100 -Subject: [PATCH 1/3] arm64: dts: sun50i-a64: Add i2c2 pins - -PinePhone needs I2C2 pins description. Add it, and make it default -for i2c2, since it's the only possiblilty. - -Signed-off-by: Ondrej Jirman -Signed-off-by: Maxime Ripard ---- - arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index 862b47dc9dc9..107a48f9c5b3 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -671,6 +671,11 @@ i2c1_pins: i2c1-pins { - function = "i2c1"; - }; - -+ i2c2_pins: i2c2-pins { -+ pins = "PE14", "PE15"; -+ function = "i2c2"; -+ }; -+ - /omit-if-no-ref/ - lcd_rgb666_pins: lcd-rgb666-pins { - pins = "PD0", "PD1", "PD2", "PD3", "PD4", -@@ -958,12 +963,13 @@ i2c2: i2c@1c2b400 { - interrupts = ; - clocks = <&ccu CLK_BUS_I2C2>; - resets = <&ccu RST_BUS_I2C2>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c2_pins>; - status = "disabled"; - #address-cells = <1>; - #size-cells = <0>; - }; - -- - spi0: spi@1c68000 { - compatible = "allwinner,sun8i-h3-spi"; - reg = <0x01c68000 0x1000>; --- -2.24.1 - -From 5c4e2cd9e8b600cc622c10543f69fcd897557eee Mon Sep 17 00:00:00 2001 -From: Ondrej Jirman -Date: Thu, 27 Feb 2020 02:26:49 +0100 -Subject: [PATCH 2/3] dt-bindings: arm: sunxi: Add PinePhone 1.0 and 1.1 - bindings - -Document board compatible names for Pine64 PinePhone: - -- 1.0 - Developer variant -- 1.1 - Braveheart variant - -Signed-off-by: Ondrej Jirman -Reviewed-by: Rob Herring -Signed-off-by: Maxime Ripard ---- - Documentation/devicetree/bindings/arm/sunxi.yaml | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/Documentation/devicetree/bindings/arm/sunxi.yaml b/Documentation/devicetree/bindings/arm/sunxi.yaml -index 159060b65c5d..c632252be48b 100644 ---- a/Documentation/devicetree/bindings/arm/sunxi.yaml -+++ b/Documentation/devicetree/bindings/arm/sunxi.yaml -@@ -636,6 +636,16 @@ properties: - - const: pine64,pinebook - - const: allwinner,sun50i-a64 - -+ - description: Pine64 PinePhone Developer Batch (1.0) -+ items: -+ - const: pine64,pinephone-1.0 -+ - const: allwinner,sun50i-a64 -+ -+ - description: Pine64 PinePhone Braveheart (1.1) -+ items: -+ - const: pine64,pinephone-1.1 -+ - const: allwinner,sun50i-a64 -+ - - description: Pine64 PineTab - items: - - const: pine64,pinetab --- -2.24.1 - -From 697f60799172569e8d502a44ad98994f2c48778c Mon Sep 17 00:00:00 2001 -From: Ondrej Jirman -Date: Thu, 27 Feb 2020 02:26:50 +0100 -Subject: [PATCH 3/3] arm64: dts: allwinner: Add initial support for Pine64 - PinePhone - -At the moment PinePhone comes in two slightly incompatible variants: - -- 1.0: Early Developer Batch -- 1.1: Braveheart Batch - -There will be at least one more incompatible variant in the very near -future, so let's start by sharing the dtsi among multiple variants, -right away, even though the HW description doesn't yet include the -different bits. - -The differences between 1.0 and 1.1 are: change in pins that control -the flash LED, differences in modem power status signal routing, and -maybe some other subtler things, that have not been determined yet. - -This is a basic DT that includes only features that are already -supported by mainline drivers. - -Co-developed-by: Samuel Holland -Signed-off-by: Samuel Holland -Co-developed-by: Martijn Braam -Signed-off-by: Martijn Braam -Co-developed-by: Luca Weiss -Signed-off-by: Luca Weiss -Signed-off-by: Bhushan Shah -Signed-off-by: Icenowy Zheng -Signed-off-by: Ondrej Jirman -Signed-off-by: Maxime Ripard ---- - arch/arm64/boot/dts/allwinner/Makefile | 2 + - .../allwinner/sun50i-a64-pinephone-1.0.dts | 11 + - .../allwinner/sun50i-a64-pinephone-1.1.dts | 11 + - .../dts/allwinner/sun50i-a64-pinephone.dtsi | 379 ++++++++++++++++++ - 4 files changed, 403 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi - -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 6dad63881cd3..e4d3cd0ac5bb 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -9,6 +9,8 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-lts.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinebook.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.0.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.1.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts -new file mode 100644 -index 000000000000..0c42272106af ---- /dev/null -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts -@@ -0,0 +1,11 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+// Copyright (C) 2020 Ondrej Jirman -+ -+/dts-v1/; -+ -+#include "sun50i-a64-pinephone.dtsi" -+ -+/ { -+ model = "Pine64 PinePhone Developer Batch (1.0)"; -+ compatible = "pine64,pinephone-1.0", "allwinner,sun50i-a64"; -+}; -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts -new file mode 100644 -index 000000000000..06a775c41664 ---- /dev/null -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts -@@ -0,0 +1,11 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+// Copyright (C) 2020 Ondrej Jirman -+ -+/dts-v1/; -+ -+#include "sun50i-a64-pinephone.dtsi" -+ -+/ { -+ model = "Pine64 PinePhone Braveheart (1.1)"; -+ compatible = "pine64,pinephone-1.1", "allwinner,sun50i-a64"; -+}; -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -new file mode 100644 -index 000000000000..cefda145c3c9 ---- /dev/null -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -@@ -0,0 +1,379 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+// Copyright (C) 2019 Icenowy Zheng -+// Copyright (C) 2020 Martijn Braam -+// Copyright (C) 2020 Ondrej Jirman -+ -+#include "sun50i-a64.dtsi" -+#include "sun50i-a64-cpu-opp.dtsi" -+ -+#include -+#include -+#include -+#include -+ -+/ { -+ aliases { -+ serial0 = &uart0; -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ -+ blue { -+ function = LED_FUNCTION_INDICATOR; -+ color = ; -+ gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>; /* PD20 */ -+ }; -+ -+ green { -+ function = LED_FUNCTION_INDICATOR; -+ color = ; -+ gpios = <&pio 3 18 GPIO_ACTIVE_HIGH>; /* PD18 */ -+ }; -+ -+ red { -+ function = LED_FUNCTION_INDICATOR; -+ color = ; -+ gpios = <&pio 3 19 GPIO_ACTIVE_HIGH>; /* PD19 */ -+ }; -+ }; -+ -+ speaker_amp: audio-amplifier { -+ compatible = "simple-audio-amplifier"; -+ enable-gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; /* PC7 */ -+ sound-name-prefix = "Speaker Amp"; -+ }; -+ -+ vibrator { -+ compatible = "gpio-vibrator"; -+ enable-gpios = <&pio 3 2 GPIO_ACTIVE_HIGH>; /* PD2 */ -+ vcc-supply = <®_dcdc1>; -+ }; -+}; -+ -+&codec { -+ status = "okay"; -+}; -+ -+&codec_analog { -+ cpvdd-supply = <®_eldo1>; -+ status = "okay"; -+}; -+ -+&cpu0 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&cpu1 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&cpu2 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&cpu3 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&dai { -+ status = "okay"; -+}; -+ -+&ehci0 { -+ status = "okay"; -+}; -+ -+&ehci1 { -+ status = "okay"; -+}; -+ -+&i2c1 { -+ status = "okay"; -+ -+ /* Magnetometer */ -+ lis3mdl@1e { -+ compatible = "st,lis3mdl-magn"; -+ reg = <0x1e>; -+ vdd-supply = <®_dldo1>; -+ vddio-supply = <®_dldo1>; -+ }; -+ -+ /* Accelerometer/gyroscope */ -+ mpu6050@68 { -+ compatible = "invensense,mpu6050"; -+ reg = <0x68>; -+ interrupt-parent = <&pio>; -+ interrupts = <7 5 IRQ_TYPE_EDGE_RISING>; /* PH5 */ -+ vdd-supply = <®_dldo1>; -+ vddio-supply = <®_dldo1>; -+ }; -+}; -+ -+/* Connected to pogo pins (external spring based pinheader for user addons) */ -+&i2c2 { -+ status = "okay"; -+}; -+ -+&lradc { -+ vref-supply = <®_aldo3>; -+ status = "okay"; -+ -+ button-200 { -+ label = "Volume Up"; -+ linux,code = ; -+ channel = <0>; -+ voltage = <200000>; -+ }; -+ -+ button-400 { -+ label = "Volume Down"; -+ linux,code = ; -+ channel = <0>; -+ voltage = <400000>; -+ }; -+}; -+ -+&mmc0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc0_pins>; -+ vmmc-supply = <®_dcdc1>; -+ vqmmc-supply = <®_dcdc1>; -+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ -+ disable-wp; -+ bus-width = <4>; -+ status = "okay"; -+}; -+ -+&mmc2 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc2_pins>; -+ vmmc-supply = <®_dcdc1>; -+ vqmmc-supply = <®_dcdc1>; -+ bus-width = <8>; -+ non-removable; -+ cap-mmc-hw-reset; -+ status = "okay"; -+}; -+ -+&ohci0 { -+ status = "okay"; -+}; -+ -+&ohci1 { -+ status = "okay"; -+}; -+ -+&pio { -+ vcc-pb-supply = <®_dcdc1>; -+ vcc-pc-supply = <®_dcdc1>; -+ vcc-pd-supply = <®_dcdc1>; -+ vcc-pe-supply = <®_aldo1>; -+ vcc-pf-supply = <®_dcdc1>; -+ vcc-pg-supply = <®_dldo4>; -+ vcc-ph-supply = <®_dcdc1>; -+}; -+ -+&r_pio { -+ /* -+ * FIXME: We can't add that supply for now since it would -+ * create a circular dependency between pinctrl, the regulator -+ * and the RSB Bus. -+ * -+ * vcc-pl-supply = <®_aldo2>; -+ */ -+}; -+ -+&r_rsb { -+ status = "okay"; -+ -+ axp803: pmic@3a3 { -+ compatible = "x-powers,axp803"; -+ reg = <0x3a3>; -+ interrupt-parent = <&r_intc>; -+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; -+ }; -+}; -+ -+#include "axp803.dtsi" -+ -+&ac_power_supply { -+ status = "okay"; -+}; -+ -+&battery_power_supply { -+ status = "okay"; -+}; -+ -+®_aldo1 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "dovdd-csi"; -+}; -+ -+®_aldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcc-pl"; -+}; -+ -+®_aldo3 { -+ regulator-always-on; -+ regulator-min-microvolt = <2700000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-pll-avcc"; -+}; -+ -+®_dcdc1 { -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-3v3"; -+}; -+ -+®_dcdc2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1000000>; -+ regulator-max-microvolt = <1300000>; -+ regulator-name = "vdd-cpux"; -+}; -+ -+/* DCDC3 is polyphased with DCDC2 */ -+ -+®_dcdc5 { -+ regulator-always-on; -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; -+ regulator-name = "vcc-dram"; -+}; -+ -+®_dcdc6 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-sys"; -+}; -+ -+®_dldo1 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-dsi-sensor"; -+}; -+ -+®_dldo2 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcc-mipi-io"; -+}; -+ -+®_dldo3 { -+ regulator-min-microvolt = <2800000>; -+ regulator-max-microvolt = <2800000>; -+ regulator-name = "avdd-csi"; -+}; -+ -+®_dldo4 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-wifi-io"; -+}; -+ -+®_eldo1 { -+ regulator-always-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcc-lpddr"; -+}; -+ -+®_eldo3 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "dvdd-1v8-csi"; -+}; -+ -+®_fldo1 { -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; -+ regulator-name = "vcc-1v2-hsic"; -+}; -+ -+®_fldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-cpus"; -+}; -+ -+®_ldo_io0 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-lcd-ctp-stk"; -+ status = "okay"; -+}; -+ -+®_ldo_io1 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcc-1v8-typec"; -+ status = "okay"; -+}; -+ -+®_rtc_ldo { -+ regulator-name = "vcc-rtc"; -+}; -+ -+&sound { -+ status = "okay"; -+ simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; -+ simple-audio-card,widgets = "Microphone", "Headset Microphone", -+ "Microphone", "Internal Microphone", -+ "Headphone", "Headphone Jack", -+ "Speaker", "Internal Earpiece", -+ "Speaker", "Internal Speaker"; -+ simple-audio-card,routing = -+ "Headphone Jack", "HP", -+ "Internal Earpiece", "EARPIECE", -+ "Internal Speaker", "Speaker Amp OUTL", -+ "Internal Speaker", "Speaker Amp OUTR", -+ "Speaker Amp INL", "LINEOUT", -+ "Speaker Amp INR", "LINEOUT", -+ "Left DAC", "AIF1 Slot 0 Left", -+ "Right DAC", "AIF1 Slot 0 Right", -+ "AIF1 Slot 0 Left ADC", "Left ADC", -+ "AIF1 Slot 0 Right ADC", "Right ADC", -+ "Internal Microphone", "MBIAS", -+ "MIC1", "Internal Microphone", -+ "Headset Microphone", "HBIAS", -+ "MIC2", "Headset Microphone"; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_pb_pins>; -+ status = "okay"; -+}; -+ -+/* Connected to the modem (hardware flow control can't be used) */ -+&uart3 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart3_pins>; -+ status = "okay"; -+}; -+ -+&usb_otg { -+ dr_mode = "peripheral"; -+ status = "okay"; -+}; -+ -+&usb_power_supply { -+ status = "okay"; -+}; -+ -+&usbphy { -+ status = "okay"; -+}; --- -2.24.1 - diff --git a/arm64-pine64-pinetab.patch b/arm64-pine64-pinetab.patch deleted file mode 100644 index cafbc71bd..000000000 --- a/arm64-pine64-pinetab.patch +++ /dev/null @@ -1,583 +0,0 @@ -From e15d9c7cb74033f668c19a65abfd77ed7331f91e Mon Sep 17 00:00:00 2001 -From: Icenowy Zheng -Date: Thu, 16 Jan 2020 11:36:35 +0800 -Subject: [PATCH 1/2] dt-bindings: arm: sunxi: add binding for PineTab tablet - -Add the device tree binding for Pine64's PineTab tablet, which uses -Allwinner A64 SoC. - -Signed-off-by: Icenowy Zheng -Reviewed-by: Rob Herring -Signed-off-by: Maxime Ripard ---- - Documentation/devicetree/bindings/arm/sunxi.yaml | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/Documentation/devicetree/bindings/arm/sunxi.yaml b/Documentation/devicetree/bindings/arm/sunxi.yaml -index 327ce6730823..159060b65c5d 100644 ---- a/Documentation/devicetree/bindings/arm/sunxi.yaml -+++ b/Documentation/devicetree/bindings/arm/sunxi.yaml -@@ -636,6 +636,11 @@ properties: - - const: pine64,pinebook - - const: allwinner,sun50i-a64 - -+ - description: Pine64 PineTab -+ items: -+ - const: pine64,pinetab -+ - const: allwinner,sun50i-a64 -+ - - description: Pine64 SoPine Baseboard - items: - - const: pine64,sopine-baseboard --- -2.24.1 - -From d7b56d337bb980f0b996958ec6808253c4f50771 Mon Sep 17 00:00:00 2001 -From: Icenowy Zheng -Date: Thu, 16 Jan 2020 11:36:36 +0800 -Subject: [PATCH 2/2] arm64: dts: allwinner: a64: add support for PineTab - -PineTab is a 10.1" tablet by Pine64 with Allwinner A64 inside. - -It includes the following peripherals: - -USB: -- A microUSB Type-B port connected to the OTG-capable USB PHY of -Allwinner A64. The ID pin is connected to a GPIO of the A64 SoC, and the -Vbus is connected to the Vbus of AXP803 PMIC. These enables OTG -functionality on this port. -- A USB Type-A port is connected to the internal hub attached to the -non-OTG USB PHY of Allwinner A64. -- There are reserved pins for an external keyboard connected to the -internal hub. - -Power: -- The microUSB port has its Vbus connected to AXP803, mentioned above. -- A DC jack (of a strange size, 2.5mm outer diameter) is connected to -the ACIN of AXP803. -- A Li-Polymer battery is connected to the battery pins of AXP803. - -Storage: -- An tradition Pine64 eMMC slot is on the board, mounted with an eMMC -module by factory. -- An external microSD slot is hidden under a protect case. - -Display: -- A MIPI-DSI LCD panel (800x1280) is connected to the DSI port of A64 SoC. -- A mini HDMI port. - -Input: -- A touch panel attached to a Goodix GT9271 touch controller. -- Volume keys connected to the LRADC of the A64 SoC. - -Camera: -- An OV5640 CMOS camera is at rear, connected to the CSI bus of A64 SoC. -- A GC2145 CMOS camera is at front, shares the same CSI bus with OV5640. - -Audio: -- A headphone jack is conencted to the SoC's internal codec. -- A speaker connected is to the Line Out port of SoC's internal codec, via -an amplifier. - -Misc: -- Debug UART is muxed with the headphone jack, with the switch next to -the microSD slot. -- A bosch BMA223 accelerometer is connected to the I2C bus of A64 SoC. -- Wi-Fi and Bluetooth are available via a RTL8723CS chip, similar to the -one in Pinebook. - -This commit adds a basically usable device tree for it, implementing -most of the features mentioned above. HDMI is not supported now because -bad LCD-HDMI coexistence situation of mainline A64 display driver, the -front camera currently lacks a driver and a facility to share the bus -with the rear one, and the accelerometer currently lacks a DT binding. - -Signed-off-by: Icenowy Zheng -Signed-off-by: Maxime Ripard ---- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../boot/dts/allwinner/sun50i-a64-pinetab.dts | 460 ++++++++++++++++++ - 2 files changed, 461 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts - -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index cf4f78617c3f..6dad63881cd3 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -9,6 +9,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-lts.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinebook.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus.dtb -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts -new file mode 100644 -index 000000000000..316e8a443913 ---- /dev/null -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts -@@ -0,0 +1,460 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (C) 2019 Icenowy Zheng -+ * -+ */ -+ -+/dts-v1/; -+ -+#include "sun50i-a64.dtsi" -+#include "sun50i-a64-cpu-opp.dtsi" -+ -+#include -+#include -+#include -+ -+/ { -+ model = "PineTab"; -+ compatible = "pine64,pinetab", "allwinner,sun50i-a64"; -+ -+ aliases { -+ serial0 = &uart0; -+ ethernet0 = &rtl8723cs; -+ }; -+ -+ backlight: backlight { -+ compatible = "pwm-backlight"; -+ pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; -+ brightness-levels = <0 16 18 20 22 24 26 29 32 35 38 42 46 51 56 62 68 75 83 91 100>; -+ default-brightness-level = <15>; -+ enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */ -+ power-supply = <&vdd_bl>; -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+ -+ i2c-csi { -+ compatible = "i2c-gpio"; -+ sda-gpios = <&pio 4 13 GPIO_ACTIVE_HIGH>; /* PE13 */ -+ scl-gpios = <&pio 4 12 GPIO_ACTIVE_HIGH>; /* PE12 */ -+ i2c-gpio,delay-us = <5>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ /* Rear camera */ -+ ov5640: camera@3c { -+ compatible = "ovti,ov5640"; -+ reg = <0x3c>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&csi_mclk_pin>; -+ clocks = <&ccu CLK_CSI_MCLK>; -+ clock-names = "xclk"; -+ -+ AVDD-supply = <®_dldo3>; -+ DOVDD-supply = <®_aldo1>; -+ DVDD-supply = <®_eldo3>; -+ reset-gpios = <&pio 4 14 GPIO_ACTIVE_LOW>; /* PE14 */ -+ powerdown-gpios = <&pio 4 15 GPIO_ACTIVE_HIGH>; /* PE15 */ -+ -+ port { -+ ov5640_ep: endpoint { -+ remote-endpoint = <&csi_ep>; -+ bus-width = <8>; -+ hsync-active = <1>; /* Active high */ -+ vsync-active = <0>; /* Active low */ -+ data-active = <1>; /* Active high */ -+ pclk-sample = <1>; /* Rising */ -+ }; -+ }; -+ }; -+ }; -+ -+ speaker_amp: audio-amplifier { -+ compatible = "simple-audio-amplifier"; -+ enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ -+ sound-name-prefix = "Speaker Amp"; -+ }; -+ -+ vdd_bl: regulator@0 { -+ compatible = "regulator-fixed"; -+ regulator-name = "bl-3v3"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */ -+ enable-active-high; -+ }; -+ -+ wifi_pwrseq: wifi_pwrseq { -+ compatible = "mmc-pwrseq-simple"; -+ reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ -+ post-power-on-delay-ms = <200>; -+ }; -+}; -+ -+&codec { -+ status = "okay"; -+}; -+ -+&codec_analog { -+ hpvcc-supply = <®_eldo1>; -+ status = "okay"; -+}; -+ -+&cpu0 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&cpu1 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&cpu2 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&cpu3 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&csi { -+ status = "okay"; -+ -+ port { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ csi_ep: endpoint { -+ remote-endpoint = <&ov5640_ep>; -+ bus-width = <8>; -+ hsync-active = <1>; /* Active high */ -+ vsync-active = <0>; /* Active low */ -+ data-active = <1>; /* Active high */ -+ pclk-sample = <1>; /* Rising */ -+ }; -+ }; -+}; -+ -+&dai { -+ status = "okay"; -+}; -+ -+&de { -+ status = "okay"; -+}; -+ -+&dphy { -+ status = "okay"; -+}; -+ -+&dsi { -+ vcc-dsi-supply = <®_dldo1>; -+ status = "okay"; -+ -+ panel@0 { -+ compatible = "feixin,k101-im2ba02"; -+ reg = <0>; -+ avdd-supply = <®_dc1sw>; -+ dvdd-supply = <®_dc1sw>; -+ cvdd-supply = <®_ldo_io1>; -+ reset-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */ -+ backlight = <&backlight>; -+ }; -+}; -+ -+&ehci0 { -+ status = "okay"; -+}; -+ -+&ehci1 { -+ status = "okay"; -+}; -+ -+&i2c0 { -+ status = "okay"; -+ -+ touchscreen@5d { -+ compatible = "goodix,gt9271"; -+ reg = <0x5d>; -+ interrupt-parent = <&pio>; -+ interrupts = <7 4 IRQ_TYPE_LEVEL_HIGH>; /* PH4 */ -+ irq-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ -+ reset-gpios = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */ -+ AVDD28-supply = <®_ldo_io1>; -+ }; -+}; -+ -+&i2c0_pins { -+ bias-pull-up; -+}; -+ -+&i2c1 { -+ status = "okay"; -+ -+ /* TODO: add Bochs BMA223 accelerometer here */ -+}; -+ -+&lradc { -+ vref-supply = <®_aldo3>; -+ status = "okay"; -+ -+ button-200 { -+ label = "Volume Up"; -+ linux,code = ; -+ channel = <0>; -+ voltage = <200000>; -+ }; -+ -+ button-400 { -+ label = "Volume Down"; -+ linux,code = ; -+ channel = <0>; -+ voltage = <400000>; -+ }; -+}; -+ -+&mixer1 { -+ status = "okay"; -+}; -+ -+&mmc0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc0_pins>; -+ vmmc-supply = <®_dcdc1>; -+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; -+ disable-wp; -+ bus-width = <4>; -+ status = "okay"; -+}; -+ -+&mmc1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc1_pins>; -+ vmmc-supply = <®_dldo4>; -+ vqmmc-supply = <®_eldo1>; -+ mmc-pwrseq = <&wifi_pwrseq>; -+ bus-width = <4>; -+ non-removable; -+ status = "okay"; -+ -+ rtl8723cs: wifi@1 { -+ reg = <1>; -+ }; -+}; -+ -+&mmc2 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc2_pins>; -+ vmmc-supply = <®_dcdc1>; -+ vqmmc-supply = <®_dcdc1>; -+ bus-width = <8>; -+ non-removable; -+ cap-mmc-hw-reset; -+ status = "okay"; -+}; -+ -+&ohci0 { -+ status = "okay"; -+}; -+ -+&pwm { -+ status = "okay"; -+}; -+ -+&r_rsb { -+ status = "okay"; -+ -+ axp803: pmic@3a3 { -+ compatible = "x-powers,axp803"; -+ reg = <0x3a3>; -+ interrupt-parent = <&r_intc>; -+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; -+ x-powers,drive-vbus-en; -+ }; -+}; -+ -+#include "axp803.dtsi" -+ -+&ac_power_supply { -+ status = "okay"; -+}; -+ -+&battery_power_supply { -+ status = "okay"; -+}; -+ -+®_aldo1 { -+ regulator-min-microvolt = <2800000>; -+ regulator-max-microvolt = <2800000>; -+ regulator-name = "dovdd-csi"; -+}; -+ -+®_aldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-pl"; -+}; -+ -+®_aldo3 { -+ regulator-always-on; -+ regulator-min-microvolt = <2700000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-pll-avcc"; -+}; -+ -+®_dc1sw { -+ regulator-name = "vcc-lcd"; -+}; -+ -+®_dcdc1 { -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-3v3"; -+}; -+ -+®_dcdc2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1000000>; -+ regulator-max-microvolt = <1300000>; -+ regulator-name = "vdd-cpux"; -+}; -+ -+/* DCDC3 is polyphased with DCDC2 */ -+ -+®_dcdc5 { -+ regulator-always-on; -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; -+ regulator-name = "vcc-dram"; -+}; -+ -+®_dcdc6 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-sys"; -+}; -+ -+®_dldo1 { -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-hdmi-dsi-sensor"; -+}; -+ -+®_dldo3 { -+ regulator-min-microvolt = <2800000>; -+ regulator-max-microvolt = <2800000>; -+ regulator-name = "avdd-csi"; -+}; -+ -+®_dldo4 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-wifi"; -+}; -+ -+®_drivevbus { -+ regulator-name = "usb0-vbus"; -+ status = "okay"; -+}; -+ -+®_eldo1 { -+ regulator-always-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "cpvdd"; -+}; -+ -+®_eldo2 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcca-1v8"; -+}; -+ -+®_eldo3 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "dvdd-1v8-csi"; -+}; -+ -+®_fldo1 { -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; -+ regulator-name = "vcc-1v2-hsic"; -+}; -+ -+®_fldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-cpus"; -+}; -+ -+®_ldo_io0 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-usb"; -+ status = "okay"; -+}; -+ -+®_ldo_io1 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-enable-ramp-delay = <3500000>; -+ regulator-name = "vcc-touchscreen"; -+ status = "okay"; -+}; -+ -+®_rtc_ldo { -+ regulator-name = "vcc-rtc"; -+}; -+ -+&sound { -+ status = "okay"; -+ simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; -+ simple-audio-card,widgets = "Microphone", "Internal Microphone Left", -+ "Microphone", "Internal Microphone Right", -+ "Headphone", "Headphone Jack", -+ "Speaker", "Internal Speaker"; -+ simple-audio-card,routing = -+ "Left DAC", "AIF1 Slot 0 Left", -+ "Right DAC", "AIF1 Slot 0 Right", -+ "Speaker Amp INL", "LINEOUT", -+ "Speaker Amp INR", "LINEOUT", -+ "Internal Speaker", "Speaker Amp OUTL", -+ "Internal Speaker", "Speaker Amp OUTR", -+ "Headphone Jack", "HP", -+ "AIF1 Slot 0 Left ADC", "Left ADC", -+ "AIF1 Slot 0 Right ADC", "Right ADC", -+ "Internal Microphone Left", "MBIAS", -+ "MIC1", "Internal Microphone Left", -+ "Internal Microphone Right", "HBIAS", -+ "MIC2", "Internal Microphone Right"; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_pb_pins>; -+ status = "okay"; -+}; -+ -+&usb_otg { -+ dr_mode = "otg"; -+ status = "okay"; -+}; -+ -+&usb_power_supply { -+ status = "okay"; -+}; -+ -+&usbphy { -+ usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ -+ usb0_vbus_power-supply = <&usb_power_supply>; -+ usb0_vbus-supply = <®_drivevbus>; -+ usb1_vbus-supply = <®_ldo_io0>; -+ status = "okay"; -+}; --- -2.24.1 - diff --git a/arm64-pinebook-fixes.patch b/arm64-pinebook-fixes.patch deleted file mode 100644 index 410487293..000000000 --- a/arm64-pinebook-fixes.patch +++ /dev/null @@ -1,429 +0,0 @@ -From e7a6e6b0c6506a9f070dbfb2ca948770c47a1d78 Mon Sep 17 00:00:00 2001 -From: Samuel Holland -Date: Sun, 19 Jan 2020 10:30:57 -0600 -Subject: [PATCH 1/8] arm64: dts: allwinner: pinebook: Remove unused vcc3v3 - regulator - -This fixed regulator has no consumers, GPIOs, or other connections. -Remove it. - -Signed-off-by: Samuel Holland -Signed-off-by: Maxime Ripard ---- - arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -index 3d894b208901..ff32ca1a495e 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -@@ -63,13 +63,6 @@ lid_switch { - }; - }; - -- reg_vcc3v3: vcc3v3 { -- compatible = "regulator-fixed"; -- regulator-name = "vcc3v3"; -- regulator-min-microvolt = <3300000>; -- regulator-max-microvolt = <3300000>; -- }; -- - wifi_pwrseq: wifi_pwrseq { - compatible = "mmc-pwrseq-simple"; - reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ --- -2.24.1 - -From 5eea216437eeff908d6d2942bf893fb77ebfc111 Mon Sep 17 00:00:00 2001 -From: Samuel Holland -Date: Sun, 19 Jan 2020 10:30:59 -0600 -Subject: [PATCH 2/8] arm64: dts: allwinner: pinebook: Sort device tree nodes - -The r_i2c node should come before r_rsb, and in any case should not -separate the axp803 node from its subnodes. - -Signed-off-by: Samuel Holland -Signed-off-by: Maxime Ripard ---- - .../boot/dts/allwinner/sun50i-a64-pinebook.dts | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -index ff32ca1a495e..77784f7b1da7 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -@@ -172,6 +172,14 @@ &pwm { - status = "okay"; - }; - -+/* The ANX6345 eDP-bridge is on r_i2c */ -+&r_i2c { -+ clock-frequency = <100000>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&r_i2c_pl89_pins>; -+ status = "okay"; -+}; -+ - &r_rsb { - status = "okay"; - -@@ -183,14 +191,6 @@ axp803: pmic@3a3 { - }; - }; - --/* The ANX6345 eDP-bridge is on r_i2c */ --&r_i2c { -- clock-frequency = <100000>; -- pinctrl-names = "default"; -- pinctrl-0 = <&r_i2c_pl89_pins>; -- status = "okay"; --}; -- - #include "axp803.dtsi" - - &ac_power_supply { --- -2.24.1 - -From 4bdf53ffc64e5c6738c942dcdc422d5ca8a2070a Mon Sep 17 00:00:00 2001 -From: Samuel Holland -Date: Sun, 19 Jan 2020 10:31:00 -0600 -Subject: [PATCH 3/8] arm64: dts: allwinner: pinebook: Make simplefb more - consistent - -Boards generally reference the simplefb nodes from the SoC dtsi by -label, not by full path. simplefb_hdmi is already like this in the -Pinebook DTS. Update simplefb_lcd to match. - -Signed-off-by: Samuel Holland -Signed-off-by: Maxime Ripard ---- - .../arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -index 77784f7b1da7..224bed65d008 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -@@ -41,12 +41,6 @@ backlight: backlight { - - chosen { - stdout-path = "serial0:115200n8"; -- -- framebuffer-lcd { -- panel-supply = <®_dc1sw>; -- dvdd25-supply = <®_dldo2>; -- dvdd12-supply = <®_fldo1>; -- }; - }; - - gpio_keys { -@@ -316,6 +310,12 @@ ®_rtc_ldo { - regulator-name = "vcc-rtc"; - }; - -+&simplefb_lcd { -+ panel-supply = <®_dc1sw>; -+ dvdd25-supply = <®_dldo2>; -+ dvdd12-supply = <®_fldo1>; -+}; -+ - &simplefb_hdmi { - vcc-hdmi-supply = <®_dldo1>; - }; --- -2.24.1 - -From c0f416de7141bbc713f080ad123b256f6320ec92 Mon Sep 17 00:00:00 2001 -From: Samuel Holland -Date: Sun, 19 Jan 2020 10:31:01 -0600 -Subject: [PATCH 4/8] arm64: dts: allwinner: pinebook: Document MMC0 CD pin - name - -Normally GPIO pin references are followed by a comment giving the pin -name for searchability. Add the comment here where it was missing. - -Signed-off-by: Samuel Holland -Signed-off-by: Maxime Ripard ---- - arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -index 224bed65d008..a1e15777d524 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -@@ -119,7 +119,7 @@ &mmc0 { - pinctrl-names = "default"; - pinctrl-0 = <&mmc0_pins>; - vmmc-supply = <®_dcdc1>; -- cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; -+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ - disable-wp; - bus-width = <4>; - status = "okay"; --- -2.24.1 - -From 8818d55ec31fa6e0dc14fb7a4924b3e8d3ecef7d Mon Sep 17 00:00:00 2001 -From: Samuel Holland -Date: Sun, 19 Jan 2020 10:31:02 -0600 -Subject: [PATCH 5/8] arm64: dts: allwinner: pinebook: Add GPIO port regulators - -Allwinner A64 SoC has separate supplies for PC, PD, PE, PG and PL. - -VCC-PC and VCC-PG are supplied by ELDO1 at 1.8v. -VCC-PD is supplied by DCDC1 (VCC-IO) at 3.3v. -VCC-PE is supplied by ALDO1, and is unused. - -VCC-PL creates a circular dependency, so it is omitted for now. - -Signed-off-by: Samuel Holland -Signed-off-by: Maxime Ripard ---- - .../boot/dts/allwinner/sun50i-a64-pinebook.dts | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -index a1e15777d524..1ec39120323f 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -@@ -162,6 +162,13 @@ &ohci1 { - status = "okay"; - }; - -+&pio { -+ vcc-pc-supply = <®_eldo1>; -+ vcc-pd-supply = <®_dcdc1>; -+ vcc-pe-supply = <®_aldo1>; -+ vcc-pg-supply = <®_eldo1>; -+}; -+ - &pwm { - status = "okay"; - }; -@@ -174,6 +181,16 @@ &r_i2c { - status = "okay"; - }; - -+&r_pio { -+ /* -+ * FIXME: We can't add that supply for now since it would -+ * create a circular dependency between pinctrl, the regulator -+ * and the RSB Bus. -+ * -+ * vcc-pl-supply = <®_aldo2>; -+ */ -+}; -+ - &r_rsb { - status = "okay"; - --- -2.24.1 - -From bd863f25d41173e140850772f9a02ffb3b3e0d6b Mon Sep 17 00:00:00 2001 -From: Samuel Holland -Date: Sun, 19 Jan 2020 10:31:03 -0600 -Subject: [PATCH 6/8] arm64: dts: allwinner: pinebook: Fix backlight regulator - -The output from the backlight regulator is labeled as "VBKLT" in the -schematic. Using the equation and resistor values from the schematic, -the output is approximately 18V, not 3.3V. Since the regulator in use -(SS6640STR) is a boost regulator powered by PS (battery or AC input), -which are both >3.3V, the output could not be 3.3V anyway. - -Signed-off-by: Samuel Holland -Signed-off-by: Maxime Ripard ---- - .../dts/allwinner/sun50i-a64-pinebook.dts | 20 +++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -index 1ec39120323f..313f4e6edc19 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -@@ -21,22 +21,13 @@ aliases { - ethernet0 = &rtl8723cs; - }; - -- vdd_bl: regulator@0 { -- compatible = "regulator-fixed"; -- regulator-name = "bl-3v3"; -- regulator-min-microvolt = <3300000>; -- regulator-max-microvolt = <3300000>; -- gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */ -- enable-active-high; -- }; -- - backlight: backlight { - compatible = "pwm-backlight"; - pwms = <&pwm 0 50000 0>; - brightness-levels = <0 5 10 15 20 30 40 55 70 85 100>; - default-brightness-level = <2>; - enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */ -- power-supply = <&vdd_bl>; -+ power-supply = <®_vbklt>; - }; - - chosen { -@@ -57,6 +48,15 @@ lid_switch { - }; - }; - -+ reg_vbklt: vbklt { -+ compatible = "regulator-fixed"; -+ regulator-name = "vbklt"; -+ regulator-min-microvolt = <18000000>; -+ regulator-max-microvolt = <18000000>; -+ gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */ -+ enable-active-high; -+ }; -+ - wifi_pwrseq: wifi_pwrseq { - compatible = "mmc-pwrseq-simple"; - reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ --- -2.24.1 - -From 425472eb612873c9c64b41df70020de58448bef3 Mon Sep 17 00:00:00 2001 -From: Samuel Holland -Date: Sun, 19 Jan 2020 10:31:04 -0600 -Subject: [PATCH 7/8] arm64: dts: allwinner: pinebook: Fix 5v0 boost regulator - -Now that AXP803 GPIO support is available, we can properly model -the hardware. Replace the use of GPIO0-LDO with a fixed regulator -controlled by GPIO0. This boost regulator is used to power the -(internal and external) USB ports, as well as the speakers. - -Signed-off-by: Samuel Holland -Signed-off-by: Maxime Ripard ---- - .../dts/allwinner/sun50i-a64-pinebook.dts | 27 +++++++++---------- - 1 file changed, 12 insertions(+), 15 deletions(-) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -index 313f4e6edc19..c06c540e6c08 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -@@ -57,6 +57,15 @@ reg_vbklt: vbklt { - enable-active-high; - }; - -+ reg_vcc5v0: vcc5v0 { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ gpio = <&axp_gpio 0 GPIO_ACTIVE_HIGH>; -+ enable-active-high; -+ }; -+ - wifi_pwrseq: wifi_pwrseq { - compatible = "mmc-pwrseq-simple"; - reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ -@@ -64,12 +73,7 @@ wifi_pwrseq: wifi_pwrseq { - - speaker_amp: audio-amplifier { - compatible = "simple-audio-amplifier"; -- /* -- * TODO This is actually a fixed regulator controlled by -- * the GPIO line on the PMIC. This should be corrected -- * once GPIO support is added for this PMIC. -- */ -- VCC-supply = <®_ldo_io0>; -+ VCC-supply = <®_vcc5v0>; - enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ - sound-name-prefix = "Speaker Amp"; - }; -@@ -316,13 +320,6 @@ ®_fldo2 { - regulator-name = "vdd-cpus"; - }; - --®_ldo_io0 { -- regulator-min-microvolt = <3300000>; -- regulator-max-microvolt = <3300000>; -- regulator-name = "vcc-usb"; -- status = "okay"; --}; -- - ®_rtc_ldo { - regulator-name = "vcc-rtc"; - }; -@@ -371,7 +368,7 @@ &usb_otg { - }; - - &usbphy { -- usb0_vbus-supply = <®_ldo_io0>; -- usb1_vbus-supply = <®_ldo_io0>; -+ usb0_vbus-supply = <®_vcc5v0>; -+ usb1_vbus-supply = <®_vcc5v0>; - status = "okay"; - }; --- -2.24.1 - -From c3aea4ea2117f5dc28da3d4175fc93296653ecd5 Mon Sep 17 00:00:00 2001 -From: Samuel Holland -Date: Sun, 19 Jan 2020 10:30:58 -0600 -Subject: [PATCH 8/8] arm64: dts: allwinner: pinebook: Remove unused AXP803 - regulators - -The Pinebook does not use the CSI bus on the A64. In fact it does not -use GPIO port E for anything at all. Thus the following regulators are -not used and do not need voltages set: - - - ALDO1: Connected to VCC-PE only - - DLDO3: Not connected - - ELDO3: Not connected - -Signed-off-by: Samuel Holland -Signed-off-by: Maxime Ripard ---- - .../boot/dts/allwinner/sun50i-a64-pinebook.dts | 16 +--------------- - 1 file changed, 1 insertion(+), 15 deletions(-) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -index c06c540e6c08..12e513ba8f50 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts -@@ -217,9 +217,7 @@ &battery_power_supply { - }; - - ®_aldo1 { -- regulator-min-microvolt = <2800000>; -- regulator-max-microvolt = <2800000>; -- regulator-name = "vcc-csi"; -+ regulator-name = "vcc-pe"; - }; - - ®_aldo2 { -@@ -282,12 +280,6 @@ ®_dldo2 { - regulator-name = "vcc-edp"; - }; - --®_dldo3 { -- regulator-min-microvolt = <3300000>; -- regulator-max-microvolt = <3300000>; -- regulator-name = "avdd-csi"; --}; -- - ®_dldo4 { - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; -@@ -301,12 +293,6 @@ ®_eldo1 { - regulator-name = "cpvdd"; - }; - --®_eldo3 { -- regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <1800000>; -- regulator-name = "vdd-1v8-csi"; --}; -- - ®_fldo1 { - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1200000>; --- -2.24.1 - diff --git a/arm64-serial-8250_tegra-Create-Tegra-specific-8250-driver.patch b/arm64-serial-8250_tegra-Create-Tegra-specific-8250-driver.patch deleted file mode 100644 index 8f9dd4473..000000000 --- a/arm64-serial-8250_tegra-Create-Tegra-specific-8250-driver.patch +++ /dev/null @@ -1,396 +0,0 @@ -From patchwork Wed Jan 29 13:28:17 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Jon Hunter -X-Patchwork-Id: 1230891 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; spf=none (no SPF record) - smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; - helo=vger.kernel.org; - envelope-from=linux-tegra-owner@vger.kernel.org; - receiver=) -Authentication-Results: ozlabs.org; - dmarc=pass (p=none dis=none) header.from=nvidia.com -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=nvidia.com header.i=@nvidia.com - header.a=rsa-sha256 header.s=n1 header.b=lgr6vu5h; - dkim-atps=neutral -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by ozlabs.org (Postfix) with ESMTP id 48747F4JPmz9sPW - for ; - Thu, 30 Jan 2020 00:28:25 +1100 (AEDT) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1726178AbgA2N2Y (ORCPT ); - Wed, 29 Jan 2020 08:28:24 -0500 -Received: from hqnvemgate25.nvidia.com ([216.228.121.64]:3674 "EHLO - hqnvemgate25.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1726069AbgA2N2Y (ORCPT - ); - Wed, 29 Jan 2020 08:28:24 -0500 -Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by - hqnvemgate25.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) - id ; Wed, 29 Jan 2020 05:28:03 -0800 -Received: from hqmail.nvidia.com ([172.20.161.6]) - by hqpgpgate101.nvidia.com (PGP Universal service); - Wed, 29 Jan 2020 05:28:23 -0800 -X-PGP-Universal: processed; - by hqpgpgate101.nvidia.com on Wed, 29 Jan 2020 05:28:23 -0800 -Received: from HQMAIL107.nvidia.com (172.20.187.13) by HQMAIL101.nvidia.com - (172.20.187.10) with Microsoft SMTP Server (TLS) id 15.0.1473.3; - Wed, 29 Jan 2020 13:28:22 +0000 -Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL107.nvidia.com - (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via - Frontend Transport; Wed, 29 Jan 2020 13:28:22 +0000 -Received: from localhost.localdomain (Not Verified[10.21.133.51]) by - rnnvemgw01.nvidia.com with Trustwave SEG (v7, 5, 8, 10121) - id ; Wed, 29 Jan 2020 05:28:21 -0800 -From: Jon Hunter -To: Greg Kroah-Hartman , - Jiri Slaby , Thierry Reding -CC: , , - , Jeff Brasen , - Jon Hunter -Subject: [PATCH V3] serial: 8250_tegra: Create Tegra specific 8250 driver -Date: Wed, 29 Jan 2020 13:28:17 +0000 -Message-ID: <20200129132817.26343-1-jonathanh@nvidia.com> -X-Mailer: git-send-email 2.17.1 -X-NVConfidentiality: public -MIME-Version: 1.0 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; - t=1580304483; bh=HoJs+kXsFZvSMy4ts1p9lRICvn55qhYk7d+0r26WND4=; - h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: - X-NVConfidentiality:MIME-Version:Content-Type; - b=lgr6vu5h+VXLi0/YMPdPOZmrFcPymQL2RMQS/Y94oEs9qjQBfvOy9RYiQ5bsghpNO - 9U3OavbzFTAgW3KVZK8/mx1JJMjbFph68zpRKJEwBkblJHozmOkNlYLdz/cMpg5F3z - XIdzGIouM94Y4Hf/z/PboeRmHIBT/2El0aEgzPdP9pt7VwjIlXvaaQs07AQ8RQFHaL - NV3bpUNN5YnloRF8XZ4upFOBRw06fcNAkTS9bwSFXWyFX19F+pUyKwKLaMIsmytQ8Q - 1tMqHbNUdh2yi1PLb34dnWezFZmhfrhFsKrmWnbZA/QAcB+HuvRmUMtZmIE+K4sa1B - dhsJcFUWXmJbQ== -Sender: linux-tegra-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-tegra@vger.kernel.org - -From: Jeff Brasen - -To support booting NVIDIA Tegra platforms with either Device-Tree or -ACPI, create a Tegra specific 8250 serial driver that supports both -firmware types. Another benefit from doing this, is that the Tegra -specific codec in the generic Open Firmware 8250 driver can now be -removed. - -Signed-off-by: Jeff Brasen -Signed-off-by: Jon Hunter ---- - -Changes since V2: -- Added missing header for devm_ioremap (reported by kbuild test robot) -Changes since V1: -- Added support for COMPILE_TEST - - drivers/tty/serial/8250/8250_of.c | 28 ---- - drivers/tty/serial/8250/8250_tegra.c | 198 +++++++++++++++++++++++++++ - drivers/tty/serial/8250/Kconfig | 9 ++ - drivers/tty/serial/8250/Makefile | 1 + - 4 files changed, 208 insertions(+), 28 deletions(-) - create mode 100644 drivers/tty/serial/8250/8250_tegra.c - -diff --git a/drivers/tty/serial/8250/8250_of.c b/drivers/tty/serial/8250/8250_of.c -index 531ad67395e0..5e45cf8dbc6e 100644 ---- a/drivers/tty/serial/8250/8250_of.c -+++ b/drivers/tty/serial/8250/8250_of.c -@@ -7,7 +7,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -26,28 +25,6 @@ struct of_serial_info { - int line; - }; - --#ifdef CONFIG_ARCH_TEGRA --static void tegra_serial_handle_break(struct uart_port *p) --{ -- unsigned int status, tmout = 10000; -- -- do { -- status = p->serial_in(p, UART_LSR); -- if (status & (UART_LSR_FIFOE | UART_LSR_BRK_ERROR_BITS)) -- status = p->serial_in(p, UART_RX); -- else -- break; -- if (--tmout == 0) -- break; -- udelay(1); -- } while (1); --} --#else --static inline void tegra_serial_handle_break(struct uart_port *port) --{ --} --#endif -- - static int of_8250_rs485_config(struct uart_port *port, - struct serial_rs485 *rs485) - { -@@ -211,10 +188,6 @@ static int of_platform_serial_setup(struct platform_device *ofdev, - port->rs485_config = of_8250_rs485_config; - - switch (type) { -- case PORT_TEGRA: -- port->handle_break = tegra_serial_handle_break; -- break; -- - case PORT_RT2880: - port->iotype = UPIO_AU; - break; -@@ -359,7 +332,6 @@ static const struct of_device_id of_platform_serial_table[] = { - { .compatible = "ns16550", .data = (void *)PORT_16550, }, - { .compatible = "ns16750", .data = (void *)PORT_16750, }, - { .compatible = "ns16850", .data = (void *)PORT_16850, }, -- { .compatible = "nvidia,tegra20-uart", .data = (void *)PORT_TEGRA, }, - { .compatible = "nxp,lpc3220-uart", .data = (void *)PORT_LPC3220, }, - { .compatible = "ralink,rt2880-uart", .data = (void *)PORT_RT2880, }, - { .compatible = "intel,xscale-uart", .data = (void *)PORT_XSCALE, }, -diff --git a/drivers/tty/serial/8250/8250_tegra.c b/drivers/tty/serial/8250/8250_tegra.c -new file mode 100644 -index 000000000000..c0ffad1572c6 ---- /dev/null -+++ b/drivers/tty/serial/8250/8250_tegra.c -@@ -0,0 +1,198 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+/* -+ * Serial Port driver for Tegra devices -+ * -+ * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "8250.h" -+ -+struct tegra_uart { -+ struct clk *clk; -+ struct reset_control *rst; -+ int line; -+}; -+ -+static void tegra_uart_handle_break(struct uart_port *p) -+{ -+ unsigned int status, tmout = 10000; -+ -+ do { -+ status = p->serial_in(p, UART_LSR); -+ if (status & (UART_LSR_FIFOE | UART_LSR_BRK_ERROR_BITS)) -+ status = p->serial_in(p, UART_RX); -+ else -+ break; -+ if (--tmout == 0) -+ break; -+ udelay(1); -+ } while (1); -+} -+ -+static int tegra_uart_probe(struct platform_device *pdev) -+{ -+ struct uart_8250_port port8250; -+ struct tegra_uart *uart; -+ struct uart_port *port; -+ struct resource *res; -+ int ret; -+ -+ uart = devm_kzalloc(&pdev->dev, sizeof(*uart), GFP_KERNEL); -+ if (!uart) -+ return -ENOMEM; -+ -+ memset(&port8250, 0, sizeof(port8250)); -+ -+ port = &port8250.port; -+ spin_lock_init(&port->lock); -+ -+ port->flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_FIXED_PORT | -+ UPF_FIXED_TYPE; -+ port->iotype = UPIO_MEM32; -+ port->regshift = 2; -+ port->type = PORT_TEGRA; -+ port->irqflags |= IRQF_SHARED; -+ port->dev = &pdev->dev; -+ port->handle_break = tegra_uart_handle_break; -+ -+ ret = of_alias_get_id(pdev->dev.of_node, "serial"); -+ if (ret >= 0) -+ port->line = ret; -+ -+ ret = platform_get_irq(pdev, 0); -+ if (ret < 0) -+ return ret; -+ -+ port->irq = ret; -+ -+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); -+ if (!res) -+ return -ENODEV; -+ -+ port->membase = devm_ioremap(&pdev->dev, res->start, -+ resource_size(res)); -+ if (!port->membase) -+ return -ENOMEM; -+ -+ port->mapbase = res->start; -+ port->mapsize = resource_size(res); -+ -+ uart->rst = devm_reset_control_get_optional_shared(&pdev->dev, NULL); -+ if (IS_ERR(uart->rst)) -+ return PTR_ERR(uart->rst); -+ -+ if (device_property_read_u32(&pdev->dev, "clock-frequency", -+ &port->uartclk)) { -+ uart->clk = devm_clk_get(&pdev->dev, NULL); -+ if (IS_ERR(uart->clk)) { -+ dev_err(&pdev->dev, "failed to get clock!\n"); -+ return -ENODEV; -+ } -+ -+ ret = clk_prepare_enable(uart->clk); -+ if (ret < 0) -+ return ret; -+ -+ port->uartclk = clk_get_rate(uart->clk); -+ } -+ -+ ret = reset_control_deassert(uart->rst); -+ if (ret) -+ goto err_clkdisable; -+ -+ ret = serial8250_register_8250_port(&port8250); -+ if (ret < 0) -+ goto err_clkdisable; -+ -+ platform_set_drvdata(pdev, uart); -+ uart->line = ret; -+ -+ return 0; -+ -+err_clkdisable: -+ clk_disable_unprepare(uart->clk); -+ -+ return ret; -+} -+ -+static int tegra_uart_remove(struct platform_device *pdev) -+{ -+ struct tegra_uart *uart = platform_get_drvdata(pdev); -+ -+ serial8250_unregister_port(uart->line); -+ reset_control_assert(uart->rst); -+ clk_disable_unprepare(uart->clk); -+ -+ return 0; -+} -+ -+#ifdef CONFIG_PM_SLEEP -+static int tegra_uart_suspend(struct device *dev) -+{ -+ struct tegra_uart *uart = dev_get_drvdata(dev); -+ struct uart_8250_port *port8250 = serial8250_get_port(uart->line); -+ struct uart_port *port = &port8250->port; -+ -+ serial8250_suspend_port(uart->line); -+ -+ if (!uart_console(port) || console_suspend_enabled) -+ clk_disable_unprepare(uart->clk); -+ -+ return 0; -+} -+ -+static int tegra_uart_resume(struct device *dev) -+{ -+ struct tegra_uart *uart = dev_get_drvdata(dev); -+ struct uart_8250_port *port8250 = serial8250_get_port(uart->line); -+ struct uart_port *port = &port8250->port; -+ -+ if (!uart_console(port) || console_suspend_enabled) -+ clk_prepare_enable(uart->clk); -+ -+ serial8250_resume_port(uart->line); -+ -+ return 0; -+} -+#endif -+ -+static SIMPLE_DEV_PM_OPS(tegra_uart_pm_ops, tegra_uart_suspend, -+ tegra_uart_resume); -+ -+static const struct of_device_id tegra_uart_of_match[] = { -+ { .compatible = "nvidia,tegra20-uart", }, -+ { }, -+}; -+MODULE_DEVICE_TABLE(of, tegra_uart_of_match); -+ -+static const struct acpi_device_id tegra_uart_acpi_match[] = { -+ { "NVDA0100", 0 }, -+ { }, -+}; -+MODULE_DEVICE_TABLE(acpi, tegra_uart_acpi_match); -+ -+static struct platform_driver tegra_uart_driver = { -+ .driver = { -+ .name = "tegra-uart", -+ .pm = &tegra_uart_pm_ops, -+ .of_match_table = tegra_uart_of_match, -+ .acpi_match_table = ACPI_PTR(tegra_uart_acpi_match), -+ }, -+ .probe = tegra_uart_probe, -+ .remove = tegra_uart_remove, -+}; -+ -+module_platform_driver(tegra_uart_driver); -+ -+MODULE_AUTHOR("Jeff Brasen "); -+MODULE_DESCRIPTION("NVIDIA Tegra 8250 Driver"); -+MODULE_LICENSE("GPL v2"); -diff --git a/drivers/tty/serial/8250/Kconfig b/drivers/tty/serial/8250/Kconfig -index f16824bbb573..af0688156dd0 100644 ---- a/drivers/tty/serial/8250/Kconfig -+++ b/drivers/tty/serial/8250/Kconfig -@@ -500,6 +500,15 @@ config SERIAL_8250_PXA - applicable to both devicetree and legacy boards, and early console is - part of its support. - -+config SERIAL_8250_TEGRA -+ tristate "8250 support for Tegra serial ports" -+ default SERIAL_8250 -+ depends on SERIAL_8250 -+ depends on ARCH_TEGRA || COMPILE_TEST -+ help -+ Select this option if you have machine with an NVIDIA Tegra SoC and -+ wish to enable 8250 serial driver for the Tegra serial interfaces. -+ - config SERIAL_OF_PLATFORM - tristate "Devicetree based probing for 8250 ports" - depends on SERIAL_8250 && OF -diff --git a/drivers/tty/serial/8250/Makefile b/drivers/tty/serial/8250/Makefile -index 51a6079d3f1f..a8bfb654d490 100644 ---- a/drivers/tty/serial/8250/Makefile -+++ b/drivers/tty/serial/8250/Makefile -@@ -37,6 +37,7 @@ obj-$(CONFIG_SERIAL_8250_INGENIC) += 8250_ingenic.o - obj-$(CONFIG_SERIAL_8250_LPSS) += 8250_lpss.o - obj-$(CONFIG_SERIAL_8250_MID) += 8250_mid.o - obj-$(CONFIG_SERIAL_8250_PXA) += 8250_pxa.o -+obj-$(CONFIG_SERIAL_8250_TEGRA) += 8250_tegra.o - obj-$(CONFIG_SERIAL_OF_PLATFORM) += 8250_of.o - - CFLAGS_8250_ingenic.o += -I$(srctree)/scripts/dtc/libfdt diff --git a/arm64-tegra-Fix-ethernet-phy-mode-for-Jetson-Xavier.patch b/arm64-tegra-Fix-ethernet-phy-mode-for-Jetson-Xavier.patch deleted file mode 100644 index 860d64763..000000000 --- a/arm64-tegra-Fix-ethernet-phy-mode-for-Jetson-Xavier.patch +++ /dev/null @@ -1,102 +0,0 @@ -From patchwork Fri May 1 07:27:56 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Jon Hunter -X-Patchwork-Id: 1281134 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org - (client-ip=23.128.96.18; helo=vger.kernel.org; - envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) -Authentication-Results: ozlabs.org; - dmarc=pass (p=none dis=none) header.from=nvidia.com -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=nvidia.com header.i=@nvidia.com header.a=rsa-sha256 - header.s=n1 header.b=jaB3BsED; dkim-atps=neutral -Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) - by ozlabs.org (Postfix) with ESMTP id 49D3l15Pl7z9sTP - for ; Fri, 1 May 2020 17:28:29 +1000 (AEST) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1728212AbgEAH20 (ORCPT ); - Fri, 1 May 2020 03:28:26 -0400 -Received: from hqnvemgate26.nvidia.com ([216.228.121.65]:1347 "EHLO - hqnvemgate26.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1726452AbgEAH20 (ORCPT - ); Fri, 1 May 2020 03:28:26 -0400 -Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by - hqnvemgate26.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) - id ; Fri, 01 May 2020 00:28:13 -0700 -Received: from hqmail.nvidia.com ([172.20.161.6]) - by hqpgpgate101.nvidia.com (PGP Universal service); - Fri, 01 May 2020 00:28:25 -0700 -X-PGP-Universal: processed; - by hqpgpgate101.nvidia.com on Fri, 01 May 2020 00:28:25 -0700 -Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL109.nvidia.com - (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 1 May - 2020 07:28:25 +0000 -Received: from hqnvemgw03.nvidia.com (10.124.88.68) by HQMAIL109.nvidia.com - (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend - Transport; Fri, 1 May 2020 07:28:25 +0000 -Received: from moonraker.nvidia.com (Not Verified[10.26.73.165]) by - hqnvemgw03.nvidia.com with Trustwave SEG (v7,5,8,10121) - id ; Fri, 01 May 2020 00:28:25 -0700 -From: Jon Hunter -To: Thierry Reding -CC: , , - Peter Robinson , - Jon Hunter , -Subject: [PATCH] arm64: tegra: Fix ethernet phy-mode for Jetson Xavier -Date: Fri, 1 May 2020 08:27:56 +0100 -Message-ID: <20200501072756.25348-1-jonathanh@nvidia.com> -X-Mailer: git-send-email 2.17.1 -X-NVConfidentiality: public -MIME-Version: 1.0 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; - t=1588318093; bh=d+dYuOUYYG3jFlbXdN72xXUr16sgw2ePdUeUPoMzbSo=; - h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: - X-NVConfidentiality:MIME-Version:Content-Type; - b=jaB3BsEDf3Fc0WN6kwJrPRalITORiFw8jh6J6ICTotAIsVMyxupddkxZxvK2bpOpK - dw771EHWsja2buZgJ1YGA4ZmleyqFnlXDrl/r6f/yyEoBYvTDJEBlggHz1zyZ2cCSe - AemmvCRR7KOLMYq9AUpQSVz5u8zuQVezob0pIQjVZRZ1FxjXbiDILaI5mFrAnRzpg9 - IxzEPnPtX6nAMz/IM5oCiUpUCSRwSLtIQtyvQMeOgCbeINMsGMg3AuPYxohlF1QqkZ - fRZWpiuhT4RclVX+ga7roOMUpumX0hmQPA61LmkPwdd373pOsGjBOPZWwZ9GCoq1mT - EXSJdwyKZLJvQ== -Sender: linux-tegra-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-tegra@vger.kernel.org - -The 'phy-mode' property is currently defined as 'rgmii' for Jetson -Xavier. This indicates that the RGMII RX and TX delays are set by the -MAC and the internal delays set by the PHY are not used. - -If the Marvell PHY driver is enabled, such that it is used and not the -generic PHY, ethernet failures are seen (DHCP is failing to obtain an -IP address) and this is caused because the Marvell PHY driver is -disabling the internal RX and TX delays. For Jetson Xavier the internal -PHY RX and TX delay should be used and so fix this by setting the -'phy-mode' to 'rgmii-id' and not 'rgmii'. - -Cc: stable@vger.kernel.org - -Signed-off-by: Jon Hunter ---- - arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi b/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi -index 623f7d7d216b..8e3136dfdd62 100644 ---- a/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi -+++ b/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi -@@ -33,7 +33,7 @@ - - phy-reset-gpios = <&gpio TEGRA194_MAIN_GPIO(G, 5) GPIO_ACTIVE_LOW>; - phy-handle = <&phy>; -- phy-mode = "rgmii"; -+ phy-mode = "rgmii-id"; - - mdio { - #address-cells = <1>; diff --git a/backlight-lp855x-Ensure-regulators-are-disabled-on-probe-failure.patch b/backlight-lp855x-Ensure-regulators-are-disabled-on-probe-failure.patch deleted file mode 100644 index 08c519629..000000000 --- a/backlight-lp855x-Ensure-regulators-are-disabled-on-probe-failure.patch +++ /dev/null @@ -1,186 +0,0 @@ -From patchwork Mon Feb 24 14:07:48 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Jon Hunter -X-Patchwork-Id: 1243112 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; spf=none (no SPF record) - smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; - helo=vger.kernel.org; - envelope-from=linux-tegra-owner@vger.kernel.org; - receiver=) -Authentication-Results: ozlabs.org; - dmarc=pass (p=none dis=none) header.from=nvidia.com -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=nvidia.com header.i=@nvidia.com - header.a=rsa-sha256 header.s=n1 header.b=bnwYpe6i; - dkim-atps=neutral -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by ozlabs.org (Postfix) with ESMTP id 48R3nG3y97z9sRQ - for ; - Tue, 25 Feb 2020 01:08:18 +1100 (AEDT) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1727539AbgBXOIR (ORCPT ); - Mon, 24 Feb 2020 09:08:17 -0500 -Received: from hqnvemgate24.nvidia.com ([216.228.121.143]:5063 "EHLO - hqnvemgate24.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1727451AbgBXOIR (ORCPT - ); - Mon, 24 Feb 2020 09:08:17 -0500 -Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by - hqnvemgate24.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) - id ; Mon, 24 Feb 2020 06:07:00 -0800 -Received: from hqmail.nvidia.com ([172.20.161.6]) - by hqpgpgate101.nvidia.com (PGP Universal service); - Mon, 24 Feb 2020 06:08:16 -0800 -X-PGP-Universal: processed; - by hqpgpgate101.nvidia.com on Mon, 24 Feb 2020 06:08:16 -0800 -Received: from HQMAIL105.nvidia.com (172.20.187.12) by HQMAIL107.nvidia.com - (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; - Mon, 24 Feb 2020 14:08:16 +0000 -Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL105.nvidia.com - (172.20.187.12) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via - Frontend Transport; Mon, 24 Feb 2020 14:08:15 +0000 -Received: from thunderball.nvidia.com (Not Verified[10.21.140.91]) by - rnnvemgw01.nvidia.com with Trustwave SEG (v7, 5, 8, 10121) - id ; Mon, 24 Feb 2020 06:08:15 -0800 -From: Jon Hunter -To: Milo Kim , Lee Jones , - Daniel Thompson , - Jingoo Han -CC: , , - , Jon Hunter -Subject: [PATCH] backlight: lp855x: Ensure regulators are disabled on probe - failure -Date: Mon, 24 Feb 2020 14:07:48 +0000 -Message-ID: <20200224140748.2182-1-jonathanh@nvidia.com> -X-Mailer: git-send-email 2.17.1 -X-NVConfidentiality: public -MIME-Version: 1.0 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; - t=1582553220; bh=B1HKOxHeQwu3ZxgJLvSfafO1owYsd38lFNvB2Oh8gBc=; - h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: - X-NVConfidentiality:MIME-Version:Content-Type; - b=bnwYpe6isaqG2Bp36VGI0VAYjd8jtznqNulwkVw85vf5zOMSfv809Oou4taz+1W9g - /eTLeJozbJBXhllQfybYW8hX4fyWIjWNON8aQugt/0HrnKAjg5r9wLT5lTgmy+8n2B - YrCJM3gob7XIi7l0cbONUTfyGssXmyEi+0SUamN4DDOnXIFxHBentnbyQdvOQ9+11P - Dr5X+zeRff1B/SMt2pdNwrja2cVOPDRGAM+U4epkb2bICZZUiGv1fQLKa+KgJ7xMMS - AwmdVrZ/6l2MAKwM+FuIqdF/x7mpCYg64MWX7TFFRwOSCFwNeq1fcK5TWItV01qcCa - mFLwbcDwN/IQA== -Sender: linux-tegra-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-tegra@vger.kernel.org - -If probing the LP885x backlight fails after the regulators have been -enabled, then the following warning is seen when releasing the -regulators ... - - WARNING: CPU: 1 PID: 289 at drivers/regulator/core.c:2051 _regulator_put.part.28+0x158/0x160 - Modules linked in: tegra_xudc lp855x_bl(+) host1x pwm_tegra ip_tables x_tables ipv6 nf_defrag_ipv6 - CPU: 1 PID: 289 Comm: systemd-udevd Not tainted 5.6.0-rc2-next-20200224 #1 - Hardware name: NVIDIA Jetson TX1 Developer Kit (DT) - - ... - - Call trace: - _regulator_put.part.28+0x158/0x160 - regulator_put+0x34/0x50 - devm_regulator_release+0x10/0x18 - release_nodes+0x12c/0x230 - devres_release_all+0x34/0x50 - really_probe+0x1c0/0x370 - driver_probe_device+0x58/0x100 - device_driver_attach+0x6c/0x78 - __driver_attach+0xb0/0xf0 - bus_for_each_dev+0x68/0xc8 - driver_attach+0x20/0x28 - bus_add_driver+0x160/0x1f0 - driver_register+0x60/0x110 - i2c_register_driver+0x40/0x80 - lp855x_driver_init+0x20/0x1000 [lp855x_bl] - do_one_initcall+0x58/0x1a0 - do_init_module+0x54/0x1d0 - load_module+0x1d80/0x21c8 - __do_sys_finit_module+0xe8/0x100 - __arm64_sys_finit_module+0x18/0x20 - el0_svc_common.constprop.3+0xb0/0x168 - do_el0_svc+0x20/0x98 - el0_sync_handler+0xf4/0x1b0 - el0_sync+0x140/0x180 - -Fix this by ensuring that the regulators are disabled, if enabled, on -probe failure. - -Finally, ensure that the vddio regulator is disabled in the driver -remove handler. - -Signed-off-by: Jon Hunter -Reviewed-by: Daniel Thompson ---- - drivers/video/backlight/lp855x_bl.c | 20 ++++++++++++++++---- - 1 file changed, 16 insertions(+), 4 deletions(-) - -diff --git a/drivers/video/backlight/lp855x_bl.c b/drivers/video/backlight/lp855x_bl.c -index f68920131a4a..e94932c69f54 100644 ---- a/drivers/video/backlight/lp855x_bl.c -+++ b/drivers/video/backlight/lp855x_bl.c -@@ -456,7 +456,7 @@ static int lp855x_probe(struct i2c_client *cl, const struct i2c_device_id *id) - ret = regulator_enable(lp->enable); - if (ret < 0) { - dev_err(lp->dev, "failed to enable vddio: %d\n", ret); -- return ret; -+ goto disable_supply; - } - - /* -@@ -471,24 +471,34 @@ static int lp855x_probe(struct i2c_client *cl, const struct i2c_device_id *id) - ret = lp855x_configure(lp); - if (ret) { - dev_err(lp->dev, "device config err: %d", ret); -- return ret; -+ goto disable_vddio; - } - - ret = lp855x_backlight_register(lp); - if (ret) { - dev_err(lp->dev, - "failed to register backlight. err: %d\n", ret); -- return ret; -+ goto disable_vddio; - } - - ret = sysfs_create_group(&lp->dev->kobj, &lp855x_attr_group); - if (ret) { - dev_err(lp->dev, "failed to register sysfs. err: %d\n", ret); -- return ret; -+ goto disable_vddio; - } - - backlight_update_status(lp->bl); -+ - return 0; -+ -+disable_vddio: -+ if (lp->enable) -+ regulator_disable(lp->enable); -+disable_supply: -+ if (lp->supply) -+ regulator_disable(lp->supply); -+ -+ return ret; - } - - static int lp855x_remove(struct i2c_client *cl) -@@ -497,6 +507,8 @@ static int lp855x_remove(struct i2c_client *cl) - - lp->bl->props.brightness = 0; - backlight_update_status(lp->bl); -+ if (lp->enable) -+ regulator_disable(lp->enable); - if (lp->supply) - regulator_disable(lp->supply); - sysfs_remove_group(&lp->dev->kobj, &lp855x_attr_group); diff --git a/bcm2835-irqchip-Quiesce-IRQs-left-enabled-by-bootloader.patch b/bcm2835-irqchip-Quiesce-IRQs-left-enabled-by-bootloader.patch deleted file mode 100644 index 9cb8ff5d7..000000000 --- a/bcm2835-irqchip-Quiesce-IRQs-left-enabled-by-bootloader.patch +++ /dev/null @@ -1,232 +0,0 @@ -From patchwork Mon Feb 10 09:52:20 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Lukas Wunner -X-Patchwork-Id: 11372935 -Return-Path: - -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6E6F4109A - for ; - Mon, 10 Feb 2020 09:52:52 +0000 (UTC) -Received: from bombadil.infradead.org (bombadil.infradead.org - [198.137.202.133]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by mail.kernel.org (Postfix) with ESMTPS id 3ABD621835 - for ; - Mon, 10 Feb 2020 09:52:52 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=lists.infradead.org - header.i=@lists.infradead.org header.b="sLV1I6RP" -DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3ABD621835 -Authentication-Results: mail.kernel.org; - dmarc=none (p=none dis=none) header.from=wunner.de -Authentication-Results: mail.kernel.org; - spf=none - smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org -DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; - d=lists.infradead.org; s=bombadil.20170209; h=Sender: - Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: - List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:To:Subject:Date: - From:References:In-Reply-To:Message-Id:Reply-To:Content-ID: - Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc - :Resent-Message-ID:List-Owner; - bh=52m4zqqDQ15r/4EHqLM3tCdaghuCQFRSRI636FPzyTg=; b=sLV1I6RPSfIAq0DmE3ADnTyGjh - NnOUSjVDCUDlMsaRe7dhAfC7D3enDiNCrnGXNT3kb6+57+bXrj31EU+9NhIevN+Rr+lrXe+8PaWKw - Q2LbzZDJ3owcXTu2EZAYrQPHg/BScQT5NiMMHrLmISp9B3erAO45imXsyolyfBhUFbvxPY/ijVw2C - rPXYS/w47IaC6T79wZVTZ1Iuqn0jR/qvksA7yRUBMTsnHcc3fv6yuD+cD0BFmmao7LAxKlA3uu8Ba - MXB0/7aQIlb5yOssEfnwThbbnbrpxmnIS0CT00K1yAYIkzDAv7lS7imZ5qTy2uahyJFWjQF8T++wX - TgZL/6mQ==; -Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) - by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j15kG-0008ES-UU; Mon, 10 Feb 2020 09:52:48 +0000 -Received: from mailout1.hostsharing.net ([83.223.95.204]) - by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) - id 1j15kC-0008Cu-Hl; Mon, 10 Feb 2020 09:52:46 +0000 -Received: from h08.hostsharing.net (h08.hostsharing.net - [IPv6:2a01:37:1000::53df:5f1c:0]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (Client CN "*.hostsharing.net", - Issuer "COMODO RSA Domain Validation Secure Server CA" (not verified)) - by mailout1.hostsharing.net (Postfix) with ESMTPS id 32EE510192623; - Mon, 10 Feb 2020 10:52:31 +0100 (CET) -Received: from localhost (unknown [87.130.102.138]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) - (No client certificate requested) - by h08.hostsharing.net (Postfix) with ESMTPSA id E85DF60AD5E1; - Mon, 10 Feb 2020 10:52:30 +0100 (CET) -X-Mailbox-Line: From 8be2f3e95fb29abdf80240f2b8a38621c42eb2a9 Mon Sep 17 - 00:00:00 2001 -Message-Id: - <8be2f3e95fb29abdf80240f2b8a38621c42eb2a9.1581327911.git.lukas@wunner.de> -In-Reply-To: <713627a200d9c8fd7cac424d69e98166@kernel.org> -References: <713627a200d9c8fd7cac424d69e98166@kernel.org> -From: Lukas Wunner -Date: Mon, 10 Feb 2020 10:52:20 +0100 -Subject: [PATCH v2] irqchip/bcm2835: Quiesce IRQs left enabled by bootloader -To: Thomas Gleixner , Jason Cooper , - Marc Zyngier , - "Nicolas Saenz Julienne" -X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 -X-CRM114-CacheID: sfid-20200210_015244_903439_EE700514 -X-CRM114-Status: GOOD ( 18.64 ) -X-Spam-Score: -0.7 (/) -X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: - Content analysis details: (-0.7 points) - pts rule name description - ---- ---------------------- - -------------------------------------------------- - -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, - low trust [83.223.95.204 listed in list.dnswl.org] - 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) - [83.223.95.204 listed in wl.mailspike.net] - 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record - 0.0 SPF_NONE SPF: sender does not publish an SPF Record - 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: -List-Unsubscribe: - , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: - , - -Cc: Florian Fainelli , - Kristina Brooks , Scott Branden , - Ray Jui , Serge Schneider , - linux-kernel@vger.kernel.org, Phil Elwell , - Matthias Brugger , bcm-kernel-feedback-list@broadcom.com, - linux-rpi-kernel@lists.infradead.org, Martin Sperl , - linux-arm-kernel@lists.infradead.org, Stefan Wahren -MIME-Version: 1.0 -Sender: "linux-arm-kernel" -Errors-To: - linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org - -Customers of our "Revolution Pi" open source PLCs (which are based on -the Raspberry Pi) have reported random lockups as well as jittery eMMC, -UART and SPI latency. We were able to reproduce the lockups in our lab -and hooked up a JTAG debugger: - -It turns out that the USB controller's interrupt is already enabled when -the kernel boots. All interrupts are disabled when the chip comes out -of power-on reset, according to the spec. So apparently the bootloader -enables the interrupt but neglects to disable it before handing over -control to the kernel. - -The bootloader is a closed source blob provided by the Raspberry Pi -Foundation. Development of an alternative open source bootloader was -begun by Kristina Brooks but it's not fully functional yet. Usage of -the blob is thus without alternative for the time being. - -The Raspberry Pi Foundation's downstream kernel has a performance- -optimized USB driver (which we use on our Revolution Pi products). -The driver takes advantage of the FIQ fast interrupt. Because the -regular USB interrupt was left enabled by the bootloader, both the -FIQ and the normal interrupt is enabled once the USB driver probes. - -The spec has the following to say on simultaneously enabling the FIQ -and the normal interrupt of a peripheral: - -"One interrupt source can be selected to be connected to the ARM FIQ - input. An interrupt which is selected as FIQ should have its normal - interrupt enable bit cleared. Otherwise a normal and an FIQ interrupt - will be fired at the same time. Not a good idea!" - ^^^^^^^^^^^^^^^ -https://www.raspberrypi.org/app/uploads/2012/02/BCM2835-ARM-Peripherals.pdf -page 110 - -On a multicore Raspberry Pi, the Foundation's kernel routes all normal -interrupts to CPU 0 and the FIQ to CPU 1. Because both the FIQ and the -normal interrupt is enabled, a USB interrupt causes CPU 0 to spin in -bcm2836_chained_handle_irq() until the FIQ on CPU 1 has cleared it. -Interrupts with a lower priority than USB are starved as long. - -That explains the jittery eMMC, UART and SPI latency: On one occasion -I've seen CPU 0 blocked for no less than 2.9 msec. Basically, -everything not USB takes a performance hit: Whereas eMMC throughput -on a Compute Module 3 remains relatively constant at 23.5 MB/s with -this commit, it irregularly dips to 23.0 MB/s without this commit. - -The lockups occur when CPU 0 receives a USB interrupt while holding a -lock which CPU 1 is trying to acquire while the FIQ is temporarily -disabled on CPU 1. - -I've tested old releases of the Foundation's bootloader as far back as -1.20160202-1 and they all leave the USB interrupt enabled. Still older -releases fail to boot a contemporary kernel on a Compute Module 1 or 3, -which are the only Raspberry Pi variants I have at my disposal for -testing. - -Fix by disabling IRQs left enabled by the bootloader. Although the -impact is most pronounced on the Foundation's downstream kernel, -it seems prudent to apply the fix to the upstream kernel to guard -against such mistakes in any present and future bootloader. - -Signed-off-by: Lukas Wunner -Cc: Serge Schneider -Cc: Kristina Brooks -Cc: stable@vger.kernel.org -Reviewed-by: Florian Fainelli ---- -Changes since v1: -* Use "relaxed" MMIO accessors to avoid memory barriers (Marc) -* Use u32 instead of int for register access (Marc) -* Quiesce FIQ as well (Marc) -* Quiesce IRQs after mapping them for better readability -* Drop alternative approach from commit message (Marc) - -Link to v1: -https://lore.kernel.org/lkml/988737dbbc4e499c2faaaa4e567ba3ed8deb9a89.1581089797.git.lukas@wunner.de/ - - drivers/irqchip/irq-bcm2835.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c -index 418245d31921..63539c88ac3a 100644 ---- a/drivers/irqchip/irq-bcm2835.c -+++ b/drivers/irqchip/irq-bcm2835.c -@@ -61,6 +61,7 @@ - | SHORTCUT1_MASK | SHORTCUT2_MASK) - - #define REG_FIQ_CONTROL 0x0c -+#define REG_FIQ_ENABLE 0x80 - - #define NR_BANKS 3 - #define IRQS_PER_BANK 32 -@@ -135,6 +136,7 @@ static int __init armctrl_of_init(struct device_node *node, - { - void __iomem *base; - int irq, b, i; -+ u32 reg; - - base = of_iomap(node, 0); - if (!base) -@@ -157,6 +159,19 @@ static int __init armctrl_of_init(struct device_node *node, - handle_level_irq); - irq_set_probe(irq); - } -+ -+ reg = readl_relaxed(intc.enable[b]); -+ if (reg) { -+ writel_relaxed(reg, intc.disable[b]); -+ pr_err(FW_BUG "Bootloader left irq enabled: " -+ "bank %d irq %*pbl\n", b, IRQS_PER_BANK, ®); -+ } -+ } -+ -+ reg = readl_relaxed(base + REG_FIQ_CONTROL); -+ if (reg & REG_FIQ_ENABLE) { -+ writel_relaxed(0, base + REG_FIQ_CONTROL); -+ pr_err(FW_BUG "Bootloader left fiq enabled\n"); - } - - if (is_2836) { diff --git a/configs/fedora/debug/CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE b/configs/fedora/debug/CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE index fbfa0f399..b2524eb49 100644 --- a/configs/fedora/debug/CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE +++ b/configs/fedora/debug/CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE @@ -1 +1 @@ -CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000 +CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=4096 diff --git a/configs/fedora/debug/CONFIG_TEST_LOCKUP b/configs/fedora/debug/CONFIG_TEST_LOCKUP new file mode 100644 index 000000000..4bd13f6c9 --- /dev/null +++ b/configs/fedora/debug/CONFIG_TEST_LOCKUP @@ -0,0 +1 @@ +CONFIG_TEST_LOCKUP=m diff --git a/configs/fedora/debug/x86/x86_64/README b/configs/fedora/debug/x86/x86_64/README index fa1c296db..8c6cfe13b 100644 --- a/configs/fedora/debug/x86/x86_64/README +++ b/configs/fedora/debug/x86/x86_64/README @@ -1,2 +1 @@ -Place config options in this directory that you want applied to x86_64 -debug kernel variant. +Place configuration files for x86_64 debug flavor kernels in here. diff --git a/configs/fedora/generic/CONFIG_AD5770R b/configs/fedora/generic/CONFIG_AD5770R new file mode 100644 index 000000000..94d73a75d --- /dev/null +++ b/configs/fedora/generic/CONFIG_AD5770R @@ -0,0 +1 @@ +CONFIG_AD5770R=m diff --git a/configs/fedora/generic/CONFIG_AL3010 b/configs/fedora/generic/CONFIG_AL3010 new file mode 100644 index 000000000..1e8f787e7 --- /dev/null +++ b/configs/fedora/generic/CONFIG_AL3010 @@ -0,0 +1 @@ +CONFIG_AL3010=m diff --git a/configs/fedora/generic/CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ b/configs/fedora/generic/CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ new file mode 100644 index 000000000..883c61f0e --- /dev/null +++ b/configs/fedora/generic/CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ @@ -0,0 +1 @@ +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set diff --git a/configs/fedora/generic/CONFIG_APPLE_MFI_FASTCHARGE b/configs/fedora/generic/CONFIG_APPLE_MFI_FASTCHARGE new file mode 100644 index 000000000..54ef797ea --- /dev/null +++ b/configs/fedora/generic/CONFIG_APPLE_MFI_FASTCHARGE @@ -0,0 +1 @@ +CONFIG_APPLE_MFI_FASTCHARGE=m diff --git a/configs/fedora/generic/CONFIG_BAREUDP b/configs/fedora/generic/CONFIG_BAREUDP new file mode 100644 index 000000000..7621c400f --- /dev/null +++ b/configs/fedora/generic/CONFIG_BAREUDP @@ -0,0 +1 @@ +CONFIG_BAREUDP=m diff --git a/configs/fedora/generic/CONFIG_BPF_LSM b/configs/fedora/generic/CONFIG_BPF_LSM new file mode 100644 index 000000000..bf5ae0ddc --- /dev/null +++ b/configs/fedora/generic/CONFIG_BPF_LSM @@ -0,0 +1 @@ +CONFIG_BPF_LSM=y diff --git a/configs/fedora/generic/CONFIG_CHELSIO_TLS_DEVICE b/configs/fedora/generic/CONFIG_CHELSIO_TLS_DEVICE new file mode 100644 index 000000000..0cf2ac889 --- /dev/null +++ b/configs/fedora/generic/CONFIG_CHELSIO_TLS_DEVICE @@ -0,0 +1 @@ +CONFIG_CHELSIO_TLS_DEVICE=y diff --git a/configs/fedora/generic/CONFIG_CLK_RASPBERRYPI b/configs/fedora/generic/CONFIG_CLK_RASPBERRYPI new file mode 100644 index 000000000..5dec258f3 --- /dev/null +++ b/configs/fedora/generic/CONFIG_CLK_RASPBERRYPI @@ -0,0 +1 @@ +# CONFIG_CLK_RASPBERRYPI is not set diff --git a/configs/fedora/generic/CONFIG_CROS_EC_TYPEC b/configs/fedora/generic/CONFIG_CROS_EC_TYPEC new file mode 100644 index 000000000..b4b3cd383 --- /dev/null +++ b/configs/fedora/generic/CONFIG_CROS_EC_TYPEC @@ -0,0 +1 @@ +CONFIG_CROS_EC_TYPEC=m diff --git a/configs/fedora/generic/CONFIG_CROS_USBPD_NOTIFY b/configs/fedora/generic/CONFIG_CROS_USBPD_NOTIFY new file mode 100644 index 000000000..adfdbc34a --- /dev/null +++ b/configs/fedora/generic/CONFIG_CROS_USBPD_NOTIFY @@ -0,0 +1 @@ +CONFIG_CROS_USBPD_NOTIFY=m diff --git a/configs/fedora/generic/CONFIG_DMABUF_MOVE_NOTIFY b/configs/fedora/generic/CONFIG_DMABUF_MOVE_NOTIFY new file mode 100644 index 000000000..33c2fe876 --- /dev/null +++ b/configs/fedora/generic/CONFIG_DMABUF_MOVE_NOTIFY @@ -0,0 +1 @@ +# CONFIG_DMABUF_MOVE_NOTIFY is not set diff --git a/configs/fedora/generic/CONFIG_DRM_DISPLAY_CONNECTOR b/configs/fedora/generic/CONFIG_DRM_DISPLAY_CONNECTOR new file mode 100644 index 000000000..032c865e2 --- /dev/null +++ b/configs/fedora/generic/CONFIG_DRM_DISPLAY_CONNECTOR @@ -0,0 +1 @@ +CONFIG_DRM_DISPLAY_CONNECTOR=m diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 b/configs/fedora/generic/CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 new file mode 100644 index 000000000..00a9d1488 --- /dev/null +++ b/configs/fedora/generic/CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 @@ -0,0 +1 @@ +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_ELIDA_KD35T133 b/configs/fedora/generic/CONFIG_DRM_PANEL_ELIDA_KD35T133 new file mode 100644 index 000000000..53b518923 --- /dev/null +++ b/configs/fedora/generic/CONFIG_DRM_PANEL_ELIDA_KD35T133 @@ -0,0 +1 @@ +CONFIG_DRM_PANEL_ELIDA_KD35T133=m diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 b/configs/fedora/generic/CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 new file mode 100644 index 000000000..d34009a8a --- /dev/null +++ b/configs/fedora/generic/CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 @@ -0,0 +1 @@ +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_NOVATEK_NT35510 b/configs/fedora/generic/CONFIG_DRM_PANEL_NOVATEK_NT35510 new file mode 100644 index 000000000..f93f2df87 --- /dev/null +++ b/configs/fedora/generic/CONFIG_DRM_PANEL_NOVATEK_NT35510 @@ -0,0 +1 @@ +CONFIG_DRM_PANEL_NOVATEK_NT35510=m diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 b/configs/fedora/generic/CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 deleted file mode 100644 index 070c7734f..000000000 --- a/configs/fedora/generic/CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 +++ /dev/null @@ -1 +0,0 @@ -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 b/configs/fedora/generic/CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 new file mode 100644 index 000000000..d367a8e9b --- /dev/null +++ b/configs/fedora/generic/CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 @@ -0,0 +1 @@ +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_SITRONIX_ST7703 b/configs/fedora/generic/CONFIG_DRM_PANEL_SITRONIX_ST7703 new file mode 100644 index 000000000..aa14cabc0 --- /dev/null +++ b/configs/fedora/generic/CONFIG_DRM_PANEL_SITRONIX_ST7703 @@ -0,0 +1 @@ +CONFIG_DRM_PANEL_SITRONIX_ST7703=m diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 b/configs/fedora/generic/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 deleted file mode 100644 index b3e186e66..000000000 --- a/configs/fedora/generic/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set diff --git a/configs/fedora/generic/CONFIG_DRM_PARADE_PS8640 b/configs/fedora/generic/CONFIG_DRM_PARADE_PS8640 new file mode 100644 index 000000000..e0d900588 --- /dev/null +++ b/configs/fedora/generic/CONFIG_DRM_PARADE_PS8640 @@ -0,0 +1 @@ +CONFIG_DRM_PARADE_PS8640=m diff --git a/configs/fedora/generic/CONFIG_DRM_SIMPLE_BRIDGE b/configs/fedora/generic/CONFIG_DRM_SIMPLE_BRIDGE new file mode 100644 index 000000000..7139399c9 --- /dev/null +++ b/configs/fedora/generic/CONFIG_DRM_SIMPLE_BRIDGE @@ -0,0 +1 @@ +CONFIG_DRM_SIMPLE_BRIDGE=m diff --git a/configs/fedora/generic/CONFIG_DRM_TIDSS b/configs/fedora/generic/CONFIG_DRM_TIDSS new file mode 100644 index 000000000..577c1261a --- /dev/null +++ b/configs/fedora/generic/CONFIG_DRM_TIDSS @@ -0,0 +1 @@ +CONFIG_DRM_TIDSS=m diff --git a/configs/fedora/generic/CONFIG_DRM_TI_TPD12S015 b/configs/fedora/generic/CONFIG_DRM_TI_TPD12S015 new file mode 100644 index 000000000..a70ac6746 --- /dev/null +++ b/configs/fedora/generic/CONFIG_DRM_TI_TPD12S015 @@ -0,0 +1 @@ +CONFIG_DRM_TI_TPD12S015=m diff --git a/configs/fedora/generic/CONFIG_DRM_TOSHIBA_TC358768 b/configs/fedora/generic/CONFIG_DRM_TOSHIBA_TC358768 new file mode 100644 index 000000000..1bbb36bec --- /dev/null +++ b/configs/fedora/generic/CONFIG_DRM_TOSHIBA_TC358768 @@ -0,0 +1 @@ +CONFIG_DRM_TOSHIBA_TC358768=m diff --git a/configs/fedora/generic/CONFIG_EXFAT_DEFAULT_IOCHARSET b/configs/fedora/generic/CONFIG_EXFAT_DEFAULT_IOCHARSET new file mode 100644 index 000000000..6d5b5bd4f --- /dev/null +++ b/configs/fedora/generic/CONFIG_EXFAT_DEFAULT_IOCHARSET @@ -0,0 +1 @@ +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" diff --git a/configs/fedora/generic/CONFIG_EXFAT_FS b/configs/fedora/generic/CONFIG_EXFAT_FS new file mode 100644 index 000000000..e55c7e414 --- /dev/null +++ b/configs/fedora/generic/CONFIG_EXFAT_FS @@ -0,0 +1 @@ +CONFIG_EXFAT_FS=m diff --git a/configs/fedora/generic/CONFIG_F2FS_FS_ZSTD b/configs/fedora/generic/CONFIG_F2FS_FS_ZSTD new file mode 100644 index 000000000..b67a24592 --- /dev/null +++ b/configs/fedora/generic/CONFIG_F2FS_FS_ZSTD @@ -0,0 +1 @@ +CONFIG_F2FS_FS_ZSTD=y diff --git a/configs/fedora/generic/CONFIG_FSL_ENETC b/configs/fedora/generic/CONFIG_FSL_ENETC new file mode 100644 index 000000000..cbb37c22c --- /dev/null +++ b/configs/fedora/generic/CONFIG_FSL_ENETC @@ -0,0 +1 @@ +# CONFIG_FSL_ENETC is not set diff --git a/configs/fedora/generic/CONFIG_FSL_ENETC_MDIO b/configs/fedora/generic/CONFIG_FSL_ENETC_MDIO new file mode 100644 index 000000000..9ae6245d1 --- /dev/null +++ b/configs/fedora/generic/CONFIG_FSL_ENETC_MDIO @@ -0,0 +1 @@ +# CONFIG_FSL_ENETC_MDIO is not set diff --git a/configs/fedora/generic/CONFIG_FSL_ENETC_VF b/configs/fedora/generic/CONFIG_FSL_ENETC_VF new file mode 100644 index 000000000..3501beeab --- /dev/null +++ b/configs/fedora/generic/CONFIG_FSL_ENETC_VF @@ -0,0 +1 @@ +# CONFIG_FSL_ENETC_VF is not set diff --git a/configs/fedora/generic/CONFIG_GP2AP002 b/configs/fedora/generic/CONFIG_GP2AP002 new file mode 100644 index 000000000..b97826f54 --- /dev/null +++ b/configs/fedora/generic/CONFIG_GP2AP002 @@ -0,0 +1 @@ +CONFIG_GP2AP002=m diff --git a/configs/fedora/generic/CONFIG_HID_CREATIVE_SB0540 b/configs/fedora/generic/CONFIG_HID_CREATIVE_SB0540 index ce52dd6a4..917239adc 100644 --- a/configs/fedora/generic/CONFIG_HID_CREATIVE_SB0540 +++ b/configs/fedora/generic/CONFIG_HID_CREATIVE_SB0540 @@ -1 +1 @@ -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m diff --git a/configs/fedora/generic/CONFIG_HID_GLORIOUS b/configs/fedora/generic/CONFIG_HID_GLORIOUS new file mode 100644 index 000000000..5bf4a544b --- /dev/null +++ b/configs/fedora/generic/CONFIG_HID_GLORIOUS @@ -0,0 +1 @@ +CONFIG_HID_GLORIOUS=m diff --git a/configs/fedora/generic/CONFIG_HID_MCP2221 b/configs/fedora/generic/CONFIG_HID_MCP2221 new file mode 100644 index 000000000..a638da6e9 --- /dev/null +++ b/configs/fedora/generic/CONFIG_HID_MCP2221 @@ -0,0 +1 @@ +CONFIG_HID_MCP2221=m diff --git a/configs/fedora/generic/CONFIG_HMC425 b/configs/fedora/generic/CONFIG_HMC425 new file mode 100644 index 000000000..c9d90a8b9 --- /dev/null +++ b/configs/fedora/generic/CONFIG_HMC425 @@ -0,0 +1 @@ +CONFIG_HMC425=m diff --git a/configs/fedora/generic/CONFIG_HW_RANDOM_HISI_V2 b/configs/fedora/generic/CONFIG_HW_RANDOM_HISI_V2 new file mode 100644 index 000000000..7ca3b277f --- /dev/null +++ b/configs/fedora/generic/CONFIG_HW_RANDOM_HISI_V2 @@ -0,0 +1 @@ +CONFIG_HW_RANDOM_HISI_V2=y diff --git a/configs/fedora/generic/CONFIG_ICP10100 b/configs/fedora/generic/CONFIG_ICP10100 new file mode 100644 index 000000000..6399ba2db --- /dev/null +++ b/configs/fedora/generic/CONFIG_ICP10100 @@ -0,0 +1 @@ +CONFIG_ICP10100=m diff --git a/configs/fedora/generic/CONFIG_IFCVF b/configs/fedora/generic/CONFIG_IFCVF new file mode 100644 index 000000000..b62ea9a03 --- /dev/null +++ b/configs/fedora/generic/CONFIG_IFCVF @@ -0,0 +1 @@ +CONFIG_IFCVF=m diff --git a/configs/fedora/generic/CONFIG_IPV6_RPL_LWTUNNEL b/configs/fedora/generic/CONFIG_IPV6_RPL_LWTUNNEL new file mode 100644 index 000000000..ed569d5b1 --- /dev/null +++ b/configs/fedora/generic/CONFIG_IPV6_RPL_LWTUNNEL @@ -0,0 +1 @@ +CONFIG_IPV6_RPL_LWTUNNEL=y diff --git a/configs/fedora/generic/CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE b/configs/fedora/generic/CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE new file mode 100644 index 000000000..3b2b7e8de --- /dev/null +++ b/configs/fedora/generic/CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE @@ -0,0 +1 @@ +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" diff --git a/configs/fedora/generic/CONFIG_MDIO_MVUSB b/configs/fedora/generic/CONFIG_MDIO_MVUSB new file mode 100644 index 000000000..8972ea7a1 --- /dev/null +++ b/configs/fedora/generic/CONFIG_MDIO_MVUSB @@ -0,0 +1 @@ +CONFIG_MDIO_MVUSB=m diff --git a/configs/fedora/generic/CONFIG_MDIO_XPCS b/configs/fedora/generic/CONFIG_MDIO_XPCS new file mode 100644 index 000000000..f830b5946 --- /dev/null +++ b/configs/fedora/generic/CONFIG_MDIO_XPCS @@ -0,0 +1 @@ +CONFIG_MDIO_XPCS=m diff --git a/configs/fedora/generic/CONFIG_MFD_IQS62X b/configs/fedora/generic/CONFIG_MFD_IQS62X new file mode 100644 index 000000000..c1f3356ac --- /dev/null +++ b/configs/fedora/generic/CONFIG_MFD_IQS62X @@ -0,0 +1 @@ +# CONFIG_MFD_IQS62X is not set diff --git a/configs/fedora/generic/CONFIG_MHI_BUS b/configs/fedora/generic/CONFIG_MHI_BUS new file mode 100644 index 000000000..09ff041fc --- /dev/null +++ b/configs/fedora/generic/CONFIG_MHI_BUS @@ -0,0 +1 @@ +CONFIG_MHI_BUS=m diff --git a/configs/fedora/generic/CONFIG_MLX5_TC_CT b/configs/fedora/generic/CONFIG_MLX5_TC_CT new file mode 100644 index 000000000..0651a412e --- /dev/null +++ b/configs/fedora/generic/CONFIG_MLX5_TC_CT @@ -0,0 +1 @@ +CONFIG_MLX5_TC_CT=y diff --git a/configs/fedora/generic/CONFIG_MMC_HSQ b/configs/fedora/generic/CONFIG_MMC_HSQ new file mode 100644 index 000000000..f654960d5 --- /dev/null +++ b/configs/fedora/generic/CONFIG_MMC_HSQ @@ -0,0 +1 @@ +CONFIG_MMC_HSQ=m diff --git a/configs/fedora/generic/CONFIG_PCIE_EDR b/configs/fedora/generic/CONFIG_PCIE_EDR new file mode 100644 index 000000000..9c6ee7bc6 --- /dev/null +++ b/configs/fedora/generic/CONFIG_PCIE_EDR @@ -0,0 +1 @@ +CONFIG_PCIE_EDR=y diff --git a/configs/fedora/generic/CONFIG_PHY_CADENCE_TORRENT b/configs/fedora/generic/CONFIG_PHY_CADENCE_TORRENT new file mode 100644 index 000000000..87768734a --- /dev/null +++ b/configs/fedora/generic/CONFIG_PHY_CADENCE_TORRENT @@ -0,0 +1 @@ +CONFIG_PHY_CADENCE_TORRENT=m diff --git a/configs/fedora/generic/CONFIG_PINCTRL_IPQ6018 b/configs/fedora/generic/CONFIG_PINCTRL_IPQ6018 new file mode 100644 index 000000000..2a4b31643 --- /dev/null +++ b/configs/fedora/generic/CONFIG_PINCTRL_IPQ6018 @@ -0,0 +1 @@ +# CONFIG_PINCTRL_IPQ6018 is not set diff --git a/configs/fedora/generic/CONFIG_PROVE_RAW_LOCK_NESTING b/configs/fedora/generic/CONFIG_PROVE_RAW_LOCK_NESTING new file mode 100644 index 000000000..54a0316fb --- /dev/null +++ b/configs/fedora/generic/CONFIG_PROVE_RAW_LOCK_NESTING @@ -0,0 +1 @@ +# CONFIG_PROVE_RAW_LOCK_NESTING is not set diff --git a/configs/fedora/generic/CONFIG_PTP_1588_CLOCK_IDT82P33 b/configs/fedora/generic/CONFIG_PTP_1588_CLOCK_IDT82P33 new file mode 100644 index 000000000..86fc2044b --- /dev/null +++ b/configs/fedora/generic/CONFIG_PTP_1588_CLOCK_IDT82P33 @@ -0,0 +1 @@ +CONFIG_PTP_1588_CLOCK_IDT82P33=m diff --git a/configs/fedora/generic/CONFIG_PWM_DEBUG b/configs/fedora/generic/CONFIG_PWM_DEBUG new file mode 100644 index 000000000..2c6acd1d0 --- /dev/null +++ b/configs/fedora/generic/CONFIG_PWM_DEBUG @@ -0,0 +1 @@ +# CONFIG_PWM_DEBUG is not set diff --git a/configs/fedora/generic/CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT b/configs/fedora/generic/CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT new file mode 100644 index 000000000..8f9c32859 --- /dev/null +++ b/configs/fedora/generic/CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT @@ -0,0 +1 @@ +# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set diff --git a/configs/fedora/generic/CONFIG_REGULATOR_MP5416 b/configs/fedora/generic/CONFIG_REGULATOR_MP5416 new file mode 100644 index 000000000..74760adb7 --- /dev/null +++ b/configs/fedora/generic/CONFIG_REGULATOR_MP5416 @@ -0,0 +1 @@ +CONFIG_REGULATOR_MP5416=m diff --git a/configs/fedora/generic/CONFIG_REGULATOR_MP886X b/configs/fedora/generic/CONFIG_REGULATOR_MP886X new file mode 100644 index 000000000..2bd390af4 --- /dev/null +++ b/configs/fedora/generic/CONFIG_REGULATOR_MP886X @@ -0,0 +1 @@ +CONFIG_REGULATOR_MP886X=m diff --git a/configs/fedora/generic/CONFIG_RHEL_DIFFERENCES b/configs/fedora/generic/CONFIG_RHEL_DIFFERENCES new file mode 100644 index 000000000..ada097df6 --- /dev/null +++ b/configs/fedora/generic/CONFIG_RHEL_DIFFERENCES @@ -0,0 +1 @@ +# CONFIG_RHEL_DIFFERENCES is not set diff --git a/configs/fedora/generic/CONFIG_RH_DISABLE_DEPRECATED b/configs/fedora/generic/CONFIG_RH_DISABLE_DEPRECATED new file mode 100644 index 000000000..977459f7e --- /dev/null +++ b/configs/fedora/generic/CONFIG_RH_DISABLE_DEPRECATED @@ -0,0 +1 @@ +# CONFIG_RH_DISABLE_DEPRECATED is not set diff --git a/configs/fedora/generic/CONFIG_SCHED_THERMAL_PRESSURE b/configs/fedora/generic/CONFIG_SCHED_THERMAL_PRESSURE new file mode 100644 index 000000000..cf16318c1 --- /dev/null +++ b/configs/fedora/generic/CONFIG_SCHED_THERMAL_PRESSURE @@ -0,0 +1 @@ +CONFIG_SCHED_THERMAL_PRESSURE=y diff --git a/configs/fedora/generic/CONFIG_SENSORS_AXI_FAN_CONTROL b/configs/fedora/generic/CONFIG_SENSORS_AXI_FAN_CONTROL new file mode 100644 index 000000000..9302e94fb --- /dev/null +++ b/configs/fedora/generic/CONFIG_SENSORS_AXI_FAN_CONTROL @@ -0,0 +1 @@ +CONFIG_SENSORS_AXI_FAN_CONTROL=m diff --git a/configs/fedora/generic/CONFIG_SERIAL_SC16IS7XX b/configs/fedora/generic/CONFIG_SERIAL_SC16IS7XX index 29deacf2a..0bafcc1df 100644 --- a/configs/fedora/generic/CONFIG_SERIAL_SC16IS7XX +++ b/configs/fedora/generic/CONFIG_SERIAL_SC16IS7XX @@ -1 +1 @@ -# CONFIG_SERIAL_SC16IS7XX is not set +CONFIG_SERIAL_SC16IS7XX=m diff --git a/configs/fedora/generic/CONFIG_SERIAL_SC16IS7XX_I2C b/configs/fedora/generic/CONFIG_SERIAL_SC16IS7XX_I2C new file mode 100644 index 000000000..80373470c --- /dev/null +++ b/configs/fedora/generic/CONFIG_SERIAL_SC16IS7XX_I2C @@ -0,0 +1 @@ +# CONFIG_SERIAL_SC16IS7XX_I2C is not set diff --git a/configs/fedora/generic/CONFIG_SERIAL_SC16IS7XX_SPI b/configs/fedora/generic/CONFIG_SERIAL_SC16IS7XX_SPI new file mode 100644 index 000000000..5ca414012 --- /dev/null +++ b/configs/fedora/generic/CONFIG_SERIAL_SC16IS7XX_SPI @@ -0,0 +1 @@ +CONFIG_SERIAL_SC16IS7XX_SPI=y diff --git a/configs/fedora/generic/CONFIG_SERIAL_SPRD b/configs/fedora/generic/CONFIG_SERIAL_SPRD new file mode 100644 index 000000000..c1831502f --- /dev/null +++ b/configs/fedora/generic/CONFIG_SERIAL_SPRD @@ -0,0 +1 @@ +# CONFIG_SERIAL_SPRD is not set diff --git a/configs/fedora/generic/CONFIG_SND_BCM63XX_I2S_WHISTLER b/configs/fedora/generic/CONFIG_SND_BCM63XX_I2S_WHISTLER new file mode 100644 index 000000000..ed6338ee3 --- /dev/null +++ b/configs/fedora/generic/CONFIG_SND_BCM63XX_I2S_WHISTLER @@ -0,0 +1 @@ +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set diff --git a/configs/fedora/generic/CONFIG_SND_SOC_PCM512x_I2C b/configs/fedora/generic/CONFIG_SND_SOC_PCM512x_I2C index 4482311b2..dc0ba2922 100644 --- a/configs/fedora/generic/CONFIG_SND_SOC_PCM512x_I2C +++ b/configs/fedora/generic/CONFIG_SND_SOC_PCM512x_I2C @@ -1 +1 @@ -# CONFIG_SND_SOC_PCM512x_I2C is not set +CONFIG_SND_SOC_PCM512x_I2C=m diff --git a/configs/fedora/generic/CONFIG_SND_SOC_RT5682_SDW b/configs/fedora/generic/CONFIG_SND_SOC_RT5682_SDW new file mode 100644 index 000000000..c1639c499 --- /dev/null +++ b/configs/fedora/generic/CONFIG_SND_SOC_RT5682_SDW @@ -0,0 +1 @@ +CONFIG_SND_SOC_RT5682_SDW=m diff --git a/configs/fedora/generic/CONFIG_SND_SOC_SOF_DEBUG_PROBES b/configs/fedora/generic/CONFIG_SND_SOC_SOF_DEBUG_PROBES new file mode 100644 index 000000000..91adbc3f4 --- /dev/null +++ b/configs/fedora/generic/CONFIG_SND_SOC_SOF_DEBUG_PROBES @@ -0,0 +1 @@ +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set diff --git a/configs/fedora/generic/CONFIG_SND_SOC_TLV320ADCX140 b/configs/fedora/generic/CONFIG_SND_SOC_TLV320ADCX140 new file mode 100644 index 000000000..ba39dce1c --- /dev/null +++ b/configs/fedora/generic/CONFIG_SND_SOC_TLV320ADCX140 @@ -0,0 +1 @@ +CONFIG_SND_SOC_TLV320ADCX140=m diff --git a/configs/fedora/generic/CONFIG_SPI_FSI b/configs/fedora/generic/CONFIG_SPI_FSI new file mode 100644 index 000000000..983a5a666 --- /dev/null +++ b/configs/fedora/generic/CONFIG_SPI_FSI @@ -0,0 +1 @@ +CONFIG_SPI_FSI=m diff --git a/configs/fedora/generic/CONFIG_SPI_MUX b/configs/fedora/generic/CONFIG_SPI_MUX new file mode 100644 index 000000000..29715a133 --- /dev/null +++ b/configs/fedora/generic/CONFIG_SPI_MUX @@ -0,0 +1 @@ +CONFIG_SPI_MUX=m diff --git a/configs/fedora/generic/CONFIG_TEST_LOCKUP b/configs/fedora/generic/CONFIG_TEST_LOCKUP new file mode 100644 index 000000000..bdd84b4fb --- /dev/null +++ b/configs/fedora/generic/CONFIG_TEST_LOCKUP @@ -0,0 +1 @@ +# CONFIG_TEST_LOCKUP is not set diff --git a/configs/fedora/generic/CONFIG_TEST_MIN_HEAP b/configs/fedora/generic/CONFIG_TEST_MIN_HEAP new file mode 100644 index 000000000..3bafbc636 --- /dev/null +++ b/configs/fedora/generic/CONFIG_TEST_MIN_HEAP @@ -0,0 +1 @@ +# CONFIG_TEST_MIN_HEAP is not set diff --git a/configs/fedora/generic/CONFIG_TINYDRM_ILI9486 b/configs/fedora/generic/CONFIG_TINYDRM_ILI9486 new file mode 100644 index 000000000..3041bd921 --- /dev/null +++ b/configs/fedora/generic/CONFIG_TINYDRM_ILI9486 @@ -0,0 +1 @@ +CONFIG_TINYDRM_ILI9486=m diff --git a/configs/fedora/generic/CONFIG_UACCE b/configs/fedora/generic/CONFIG_UACCE new file mode 100644 index 000000000..ec75233c9 --- /dev/null +++ b/configs/fedora/generic/CONFIG_UACCE @@ -0,0 +1 @@ +CONFIG_UACCE=m diff --git a/configs/fedora/generic/CONFIG_USB_MAX3420_UDC b/configs/fedora/generic/CONFIG_USB_MAX3420_UDC new file mode 100644 index 000000000..ac7bc5391 --- /dev/null +++ b/configs/fedora/generic/CONFIG_USB_MAX3420_UDC @@ -0,0 +1 @@ +CONFIG_USB_MAX3420_UDC=m diff --git a/configs/fedora/generic/CONFIG_USB_RAW_GADGET b/configs/fedora/generic/CONFIG_USB_RAW_GADGET new file mode 100644 index 000000000..b759806a6 --- /dev/null +++ b/configs/fedora/generic/CONFIG_USB_RAW_GADGET @@ -0,0 +1 @@ +CONFIG_USB_RAW_GADGET=m diff --git a/configs/fedora/generic/CONFIG_VDPA b/configs/fedora/generic/CONFIG_VDPA new file mode 100644 index 000000000..62ea1179d --- /dev/null +++ b/configs/fedora/generic/CONFIG_VDPA @@ -0,0 +1,16 @@ +# CONFIG_VDPA: +# +# Enable this module to support vDPA device that uses a +# datapath which complies with virtio specifications with +# vendor specific control path. +# +# Symbol: VDPA [=n] +# Type : tristate +# Defined at drivers/vdpa/Kconfig:2 +# Prompt: vDPA drivers +# Location: +# -> Device Drivers +# +# +# +CONFIG_VDPA=m diff --git a/configs/fedora/generic/CONFIG_VDPA_MENU b/configs/fedora/generic/CONFIG_VDPA_MENU new file mode 100644 index 000000000..64492a7e0 --- /dev/null +++ b/configs/fedora/generic/CONFIG_VDPA_MENU @@ -0,0 +1 @@ +CONFIG_VDPA_MENU=y diff --git a/configs/fedora/generic/CONFIG_VDPA_SIM b/configs/fedora/generic/CONFIG_VDPA_SIM new file mode 100644 index 000000000..79236659a --- /dev/null +++ b/configs/fedora/generic/CONFIG_VDPA_SIM @@ -0,0 +1 @@ +CONFIG_VDPA_SIM=m diff --git a/configs/fedora/generic/CONFIG_VHOST_MENU b/configs/fedora/generic/CONFIG_VHOST_MENU new file mode 100644 index 000000000..00536a2b0 --- /dev/null +++ b/configs/fedora/generic/CONFIG_VHOST_MENU @@ -0,0 +1 @@ +CONFIG_VHOST_MENU=y diff --git a/configs/fedora/generic/CONFIG_VHOST_VDPA b/configs/fedora/generic/CONFIG_VHOST_VDPA new file mode 100644 index 000000000..703d7d511 --- /dev/null +++ b/configs/fedora/generic/CONFIG_VHOST_VDPA @@ -0,0 +1 @@ +CONFIG_VHOST_VDPA=m diff --git a/configs/fedora/generic/CONFIG_VIDEO_USBVISION b/configs/fedora/generic/CONFIG_VIDEO_USBVISION index 1a04d6b12..032981c97 100644 --- a/configs/fedora/generic/CONFIG_VIDEO_USBVISION +++ b/configs/fedora/generic/CONFIG_VIDEO_USBVISION @@ -1 +1 @@ -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set diff --git a/configs/fedora/generic/CONFIG_VIRTIO_VDPA b/configs/fedora/generic/CONFIG_VIRTIO_VDPA new file mode 100644 index 000000000..229dc778c --- /dev/null +++ b/configs/fedora/generic/CONFIG_VIRTIO_VDPA @@ -0,0 +1 @@ +CONFIG_VIRTIO_VDPA=m diff --git a/configs/fedora/generic/CONFIG_XILINX_LL_TEMAC b/configs/fedora/generic/CONFIG_XILINX_LL_TEMAC new file mode 100644 index 000000000..70dbd1490 --- /dev/null +++ b/configs/fedora/generic/CONFIG_XILINX_LL_TEMAC @@ -0,0 +1 @@ +CONFIG_XILINX_LL_TEMAC=m diff --git a/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 b/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 new file mode 100644 index 000000000..3f2f042dc --- /dev/null +++ b/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 @@ -0,0 +1 @@ +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set diff --git a/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE b/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE new file mode 100644 index 000000000..73b9be5b0 --- /dev/null +++ b/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE @@ -0,0 +1 @@ +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set diff --git a/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 b/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 new file mode 100644 index 000000000..d15eadf94 --- /dev/null +++ b/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 @@ -0,0 +1 @@ +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set diff --git a/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC b/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC new file mode 100644 index 000000000..96763a4c4 --- /dev/null +++ b/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC @@ -0,0 +1 @@ +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set diff --git a/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO b/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO new file mode 100644 index 000000000..c6af1aeb9 --- /dev/null +++ b/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO @@ -0,0 +1 @@ +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y diff --git a/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD b/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD new file mode 100644 index 000000000..adcc3b947 --- /dev/null +++ b/configs/fedora/generic/CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD @@ -0,0 +1 @@ +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set diff --git a/configs/fedora/generic/CONFIG_ZSWAP_DEFAULT_ON b/configs/fedora/generic/CONFIG_ZSWAP_DEFAULT_ON new file mode 100644 index 000000000..93a95edd6 --- /dev/null +++ b/configs/fedora/generic/CONFIG_ZSWAP_DEFAULT_ON @@ -0,0 +1 @@ +# CONFIG_ZSWAP_DEFAULT_ON is not set diff --git a/configs/fedora/generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD b/configs/fedora/generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD new file mode 100644 index 000000000..c963eaebf --- /dev/null +++ b/configs/fedora/generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD @@ -0,0 +1 @@ +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set diff --git a/configs/fedora/generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD b/configs/fedora/generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD new file mode 100644 index 000000000..15a8e22be --- /dev/null +++ b/configs/fedora/generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD @@ -0,0 +1 @@ +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y diff --git a/configs/fedora/generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC b/configs/fedora/generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC new file mode 100644 index 000000000..cb1392399 --- /dev/null +++ b/configs/fedora/generic/CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC @@ -0,0 +1 @@ +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set diff --git a/configs/fedora/generic/arm/CONFIG_HISILICON_IRQ_MBIGEN b/configs/fedora/generic/arm/CONFIG_HISILICON_IRQ_MBIGEN index 72ab88e11..5ca6d30d1 100644 --- a/configs/fedora/generic/arm/CONFIG_HISILICON_IRQ_MBIGEN +++ b/configs/fedora/generic/arm/CONFIG_HISILICON_IRQ_MBIGEN @@ -1 +1 @@ -# CONFIG_HISILICON_IRQ_MBIGEN is not set +CONFIG_HISILICON_IRQ_MBIGEN=y diff --git a/configs/fedora/generic/arm/CONFIG_ROCKCHIP_CDN_DP b/configs/fedora/generic/arm/CONFIG_ROCKCHIP_CDN_DP index 98a696d76..86d2137bd 100644 --- a/configs/fedora/generic/arm/CONFIG_ROCKCHIP_CDN_DP +++ b/configs/fedora/generic/arm/CONFIG_ROCKCHIP_CDN_DP @@ -1 +1 @@ -# CONFIG_ROCKCHIP_CDN_DP is not set +CONFIG_ROCKCHIP_CDN_DP=y diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 b/configs/fedora/generic/arm/aarch64/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 deleted file mode 100644 index aba5e985e..000000000 --- a/configs/fedora/generic/arm/aarch64/CONFIG_DRM_PANEL_XINGBANGDA_XBD599 +++ /dev/null @@ -1 +0,0 @@ -CONFIG_DRM_PANEL_XINGBANGDA_XBD599=m diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_FORCE_MAX_ZONEORDER b/configs/fedora/generic/arm/aarch64/CONFIG_FORCE_MAX_ZONEORDER index 6d42a47fc..b730690db 100644 --- a/configs/fedora/generic/arm/aarch64/CONFIG_FORCE_MAX_ZONEORDER +++ b/configs/fedora/generic/arm/aarch64/CONFIG_FORCE_MAX_ZONEORDER @@ -1 +1,4 @@ +# We technically want this to be 13 for Fedora with 4K pages but that's only +# an option with an out of tree patch. Keep this 11 for compatibility until +# we figure out what we want here CONFIG_FORCE_MAX_ZONEORDER=13 diff --git a/configs/fedora/generic/arm/armv7/CONFIG_HIGHPTE b/configs/fedora/generic/arm/armv7/CONFIG_HIGHPTE index cd440ed6d..4f5e59821 100644 --- a/configs/fedora/generic/arm/armv7/CONFIG_HIGHPTE +++ b/configs/fedora/generic/arm/armv7/CONFIG_HIGHPTE @@ -1 +1,2 @@ -# CONFIG_HIGHPTE is not set +# TODO fix due to hardware errata +CONFIG_HIGHPTE=y diff --git a/configs/fedora/generic/powerpc/CONFIG_COMPAT b/configs/fedora/generic/powerpc/CONFIG_COMPAT new file mode 100644 index 000000000..3e041f1b6 --- /dev/null +++ b/configs/fedora/generic/powerpc/CONFIG_COMPAT @@ -0,0 +1 @@ +# CONFIG_COMPAT is not set diff --git a/configs/fedora/generic/powerpc/CONFIG_PMU_SYSFS b/configs/fedora/generic/powerpc/CONFIG_PMU_SYSFS new file mode 100644 index 000000000..d192b509f --- /dev/null +++ b/configs/fedora/generic/powerpc/CONFIG_PMU_SYSFS @@ -0,0 +1 @@ +# CONFIG_PMU_SYSFS is not set diff --git a/configs/fedora/generic/s390x/CONFIG_64BIT b/configs/fedora/generic/s390x/CONFIG_64BIT new file mode 100644 index 000000000..06a94e48b --- /dev/null +++ b/configs/fedora/generic/s390x/CONFIG_64BIT @@ -0,0 +1 @@ +CONFIG_64BIT=y diff --git a/configs/fedora/generic/s390x/CONFIG_NODES_SHIFT b/configs/fedora/generic/s390x/CONFIG_NODES_SHIFT index 747517623..7768e1477 100644 --- a/configs/fedora/generic/s390x/CONFIG_NODES_SHIFT +++ b/configs/fedora/generic/s390x/CONFIG_NODES_SHIFT @@ -1 +1 @@ -CONFIG_NODES_SHIFT=4 +CONFIG_NODES_SHIFT=1 diff --git a/configs/fedora/generic/s390x/CONFIG_QETH_OSN b/configs/fedora/generic/s390x/CONFIG_QETH_OSN new file mode 100644 index 000000000..80386fea2 --- /dev/null +++ b/configs/fedora/generic/s390x/CONFIG_QETH_OSN @@ -0,0 +1 @@ +CONFIG_QETH_OSN=y diff --git a/configs/fedora/generic/s390x/CONFIG_QETH_OSX b/configs/fedora/generic/s390x/CONFIG_QETH_OSX new file mode 100644 index 000000000..3ab5e1426 --- /dev/null +++ b/configs/fedora/generic/s390x/CONFIG_QETH_OSX @@ -0,0 +1 @@ +CONFIG_QETH_OSX=y diff --git a/configs/fedora/generic/x86/CONFIG_CRC_PMIC_OPREGION b/configs/fedora/generic/x86/CONFIG_CRC_PMIC_OPREGION new file mode 100644 index 000000000..cf61babe7 --- /dev/null +++ b/configs/fedora/generic/x86/CONFIG_CRC_PMIC_OPREGION @@ -0,0 +1 @@ +CONFIG_CRC_PMIC_OPREGION=y diff --git a/configs/fedora/generic/x86/CONFIG_DRM_NOUVEAU_SVM b/configs/fedora/generic/x86/CONFIG_DRM_NOUVEAU_SVM new file mode 100644 index 000000000..dbd2333b2 --- /dev/null +++ b/configs/fedora/generic/x86/CONFIG_DRM_NOUVEAU_SVM @@ -0,0 +1 @@ +# CONFIG_DRM_NOUVEAU_SVM is not set diff --git a/configs/fedora/generic/x86/CONFIG_DWMAC_INTEL b/configs/fedora/generic/x86/CONFIG_DWMAC_INTEL new file mode 100644 index 000000000..276e570ea --- /dev/null +++ b/configs/fedora/generic/x86/CONFIG_DWMAC_INTEL @@ -0,0 +1 @@ +CONFIG_DWMAC_INTEL=m diff --git a/configs/fedora/generic/x86/CONFIG_IMA_ARCH_POLICY b/configs/fedora/generic/x86/CONFIG_IMA_ARCH_POLICY new file mode 100644 index 000000000..7187ae0dc --- /dev/null +++ b/configs/fedora/generic/x86/CONFIG_IMA_ARCH_POLICY @@ -0,0 +1 @@ +# CONFIG_IMA_ARCH_POLICY is not set diff --git a/configs/fedora/generic/x86/CONFIG_KEYBOARD_APPLESPI b/configs/fedora/generic/x86/CONFIG_KEYBOARD_APPLESPI new file mode 100644 index 000000000..b13ce3c0b --- /dev/null +++ b/configs/fedora/generic/x86/CONFIG_KEYBOARD_APPLESPI @@ -0,0 +1 @@ +CONFIG_KEYBOARD_APPLESPI=m diff --git a/configs/fedora/generic/x86/CONFIG_PTP_1588_CLOCK_VMW b/configs/fedora/generic/x86/CONFIG_PTP_1588_CLOCK_VMW new file mode 100644 index 000000000..d36fbe326 --- /dev/null +++ b/configs/fedora/generic/x86/CONFIG_PTP_1588_CLOCK_VMW @@ -0,0 +1 @@ +CONFIG_PTP_1588_CLOCK_VMW=m diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH new file mode 100644 index 000000000..fb43c5728 --- /dev/null +++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH @@ -0,0 +1 @@ +CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m diff --git a/configs/fedora/generic/x86/CONFIG_SURFACE_3_POWER_OPREGION b/configs/fedora/generic/x86/CONFIG_SURFACE_3_POWER_OPREGION new file mode 100644 index 000000000..75e17ac02 --- /dev/null +++ b/configs/fedora/generic/x86/CONFIG_SURFACE_3_POWER_OPREGION @@ -0,0 +1 @@ +CONFIG_SURFACE_3_POWER_OPREGION=m diff --git a/configs/fedora/generic/x86/CONFIG_TYPEC_MUX_INTEL_PMC b/configs/fedora/generic/x86/CONFIG_TYPEC_MUX_INTEL_PMC new file mode 100644 index 000000000..d91ff304f --- /dev/null +++ b/configs/fedora/generic/x86/CONFIG_TYPEC_MUX_INTEL_PMC @@ -0,0 +1 @@ +CONFIG_TYPEC_MUX_INTEL_PMC=m diff --git a/configs/fedora/generic/x86/CONFIG_X86_INTEL_MPX b/configs/fedora/generic/x86/CONFIG_X86_INTEL_MPX new file mode 100644 index 000000000..ed1a6daeb --- /dev/null +++ b/configs/fedora/generic/x86/CONFIG_X86_INTEL_MPX @@ -0,0 +1 @@ +CONFIG_X86_INTEL_MPX=y diff --git a/drm-dp-mst-error-handling-improvements.patch b/drm-dp-mst-error-handling-improvements.patch deleted file mode 100644 index 91e396940..000000000 --- a/drm-dp-mst-error-handling-improvements.patch +++ /dev/null @@ -1,471 +0,0 @@ -From 52bd42038880354565bd5ca0bcc1d24b15136b0d Mon Sep 17 00:00:00 2001 -From: Benjamin Gaignard -Date: Wed, 5 Feb 2020 09:48:42 +0100 -Subject: [PATCH 1/3] drm/dp_mst: Fix W=1 warnings - -Fix the warnings that show up with W=1. -They are all about unused but set variables. -If functions returns are not used anymore make them void. - -Signed-off-by: Benjamin Gaignard -Reviewed-by: Lyude Paul -Link: https://patchwork.freedesktop.org/patch/msgid/20200205084842.5642-1-benjamin.gaignard@st.com ---- - drivers/gpu/drm/drm_dp_mst_topology.c | 114 +++++++++++++++----------- - 1 file changed, 65 insertions(+), 49 deletions(-) - -diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c -index 415bd0770eab..95e08d908dd2 100644 ---- a/drivers/gpu/drm/drm_dp_mst_topology.c -+++ b/drivers/gpu/drm/drm_dp_mst_topology.c -@@ -1035,7 +1035,8 @@ static bool drm_dp_sideband_parse_req(struct drm_dp_sideband_msg_rx *raw, - } - } - --static int build_dpcd_write(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 offset, u8 num_bytes, u8 *bytes) -+static void build_dpcd_write(struct drm_dp_sideband_msg_tx *msg, -+ u8 port_num, u32 offset, u8 num_bytes, u8 *bytes) - { - struct drm_dp_sideband_msg_req_body req; - -@@ -1045,17 +1046,14 @@ static int build_dpcd_write(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 - req.u.dpcd_write.num_bytes = num_bytes; - req.u.dpcd_write.bytes = bytes; - drm_dp_encode_sideband_req(&req, msg); -- -- return 0; - } - --static int build_link_address(struct drm_dp_sideband_msg_tx *msg) -+static void build_link_address(struct drm_dp_sideband_msg_tx *msg) - { - struct drm_dp_sideband_msg_req_body req; - - req.req_type = DP_LINK_ADDRESS; - drm_dp_encode_sideband_req(&req, msg); -- return 0; - } - - static int build_clear_payload_id_table(struct drm_dp_sideband_msg_tx *msg) -@@ -1067,7 +1065,8 @@ static int build_clear_payload_id_table(struct drm_dp_sideband_msg_tx *msg) - return 0; - } - --static int build_enum_path_resources(struct drm_dp_sideband_msg_tx *msg, int port_num) -+static int build_enum_path_resources(struct drm_dp_sideband_msg_tx *msg, -+ int port_num) - { - struct drm_dp_sideband_msg_req_body req; - -@@ -1078,10 +1077,11 @@ static int build_enum_path_resources(struct drm_dp_sideband_msg_tx *msg, int por - return 0; - } - --static int build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, int port_num, -- u8 vcpi, uint16_t pbn, -- u8 number_sdp_streams, -- u8 *sdp_stream_sink) -+static void build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, -+ int port_num, -+ u8 vcpi, uint16_t pbn, -+ u8 number_sdp_streams, -+ u8 *sdp_stream_sink) - { - struct drm_dp_sideband_msg_req_body req; - memset(&req, 0, sizeof(req)); -@@ -1094,11 +1094,10 @@ static int build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, int port_n - number_sdp_streams); - drm_dp_encode_sideband_req(&req, msg); - msg->path_msg = true; -- return 0; - } - --static int build_power_updown_phy(struct drm_dp_sideband_msg_tx *msg, -- int port_num, bool power_up) -+static void build_power_updown_phy(struct drm_dp_sideband_msg_tx *msg, -+ int port_num, bool power_up) - { - struct drm_dp_sideband_msg_req_body req; - -@@ -1110,7 +1109,6 @@ static int build_power_updown_phy(struct drm_dp_sideband_msg_tx *msg, - req.u.port_num.port_number = port_num; - drm_dp_encode_sideband_req(&req, msg); - msg->path_msg = true; -- return 0; - } - - static int drm_dp_mst_assign_payload_id(struct drm_dp_mst_topology_mgr *mgr, -@@ -2073,29 +2071,24 @@ ssize_t drm_dp_mst_dpcd_write(struct drm_dp_aux *aux, - offset, size, buffer); - } - --static void drm_dp_check_mstb_guid(struct drm_dp_mst_branch *mstb, u8 *guid) -+static int drm_dp_check_mstb_guid(struct drm_dp_mst_branch *mstb, u8 *guid) - { -- int ret; -+ int ret = 0; - - memcpy(mstb->guid, guid, 16); - - if (!drm_dp_validate_guid(mstb->mgr, mstb->guid)) { - if (mstb->port_parent) { -- ret = drm_dp_send_dpcd_write( -- mstb->mgr, -- mstb->port_parent, -- DP_GUID, -- 16, -- mstb->guid); -+ ret = drm_dp_send_dpcd_write(mstb->mgr, -+ mstb->port_parent, -+ DP_GUID, 16, mstb->guid); - } else { -- -- ret = drm_dp_dpcd_write( -- mstb->mgr->aux, -- DP_GUID, -- mstb->guid, -- 16); -+ ret = drm_dp_dpcd_write(mstb->mgr->aux, -+ DP_GUID, mstb->guid, 16); - } - } -+ -+ return ret; - } - - static void build_mst_prop_path(const struct drm_dp_mst_branch *mstb, -@@ -2641,7 +2634,8 @@ static bool drm_dp_validate_guid(struct drm_dp_mst_topology_mgr *mgr, - return false; - } - --static int build_dpcd_read(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 offset, u8 num_bytes) -+static void build_dpcd_read(struct drm_dp_sideband_msg_tx *msg, -+ u8 port_num, u32 offset, u8 num_bytes) - { - struct drm_dp_sideband_msg_req_body req; - -@@ -2650,8 +2644,6 @@ static int build_dpcd_read(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 - req.u.dpcd_read.dpcd_address = offset; - req.u.dpcd_read.num_bytes = num_bytes; - drm_dp_encode_sideband_req(&req, msg); -- -- return 0; - } - - static int drm_dp_send_sideband_msg(struct drm_dp_mst_topology_mgr *mgr, -@@ -2877,7 +2869,7 @@ static int drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr, - struct drm_dp_sideband_msg_tx *txmsg; - struct drm_dp_link_address_ack_reply *reply; - struct drm_dp_mst_port *port, *tmp; -- int i, len, ret, port_mask = 0; -+ int i, ret, port_mask = 0; - bool changed = false; - - txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL); -@@ -2885,7 +2877,7 @@ static int drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr, - return -ENOMEM; - - txmsg->dst = mstb; -- len = build_link_address(txmsg); -+ build_link_address(txmsg); - - mstb->link_address_sent = true; - drm_dp_queue_down_tx(mgr, txmsg); -@@ -2906,7 +2898,9 @@ static int drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr, - DRM_DEBUG_KMS("link address reply: %d\n", reply->nports); - drm_dp_dump_link_address(reply); - -- drm_dp_check_mstb_guid(mstb, reply->guid); -+ ret = drm_dp_check_mstb_guid(mstb, reply->guid); -+ if (ret) -+ goto out; - - for (i = 0; i < reply->nports; i++) { - port_mask |= BIT(reply->ports[i].port_number); -@@ -2947,14 +2941,14 @@ void drm_dp_send_clear_payload_id_table(struct drm_dp_mst_topology_mgr *mgr, - struct drm_dp_mst_branch *mstb) - { - struct drm_dp_sideband_msg_tx *txmsg; -- int len, ret; -+ int ret; - - txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL); - if (!txmsg) - return; - - txmsg->dst = mstb; -- len = build_clear_payload_id_table(txmsg); -+ build_clear_payload_id_table(txmsg); - - drm_dp_queue_down_tx(mgr, txmsg); - -@@ -2972,7 +2966,6 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, - { - struct drm_dp_enum_path_resources_ack_reply *path_res; - struct drm_dp_sideband_msg_tx *txmsg; -- int len; - int ret; - - txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL); -@@ -2980,7 +2973,7 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, - return -ENOMEM; - - txmsg->dst = mstb; -- len = build_enum_path_resources(txmsg, port->port_num); -+ build_enum_path_resources(txmsg, port->port_num); - - drm_dp_queue_down_tx(mgr, txmsg); - -@@ -3073,7 +3066,7 @@ static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr, - { - struct drm_dp_sideband_msg_tx *txmsg; - struct drm_dp_mst_branch *mstb; -- int len, ret, port_num; -+ int ret, port_num; - u8 sinks[DRM_DP_MAX_SDP_STREAMS]; - int i; - -@@ -3098,9 +3091,9 @@ static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr, - sinks[i] = i; - - txmsg->dst = mstb; -- len = build_allocate_payload(txmsg, port_num, -- id, -- pbn, port->num_sdp_streams, sinks); -+ build_allocate_payload(txmsg, port_num, -+ id, -+ pbn, port->num_sdp_streams, sinks); - - drm_dp_queue_down_tx(mgr, txmsg); - -@@ -3129,7 +3122,7 @@ int drm_dp_send_power_updown_phy(struct drm_dp_mst_topology_mgr *mgr, - struct drm_dp_mst_port *port, bool power_up) - { - struct drm_dp_sideband_msg_tx *txmsg; -- int len, ret; -+ int ret; - - port = drm_dp_mst_topology_get_port_validated(mgr, port); - if (!port) -@@ -3142,7 +3135,7 @@ int drm_dp_send_power_updown_phy(struct drm_dp_mst_topology_mgr *mgr, - } - - txmsg->dst = port->parent; -- len = build_power_updown_phy(txmsg, port->port_num, power_up); -+ build_power_updown_phy(txmsg, port->port_num, power_up); - drm_dp_queue_down_tx(mgr, txmsg); - - ret = drm_dp_mst_wait_tx_reply(port->parent, txmsg); -@@ -3364,7 +3357,6 @@ static int drm_dp_send_dpcd_read(struct drm_dp_mst_topology_mgr *mgr, - struct drm_dp_mst_port *port, - int offset, int size, u8 *bytes) - { -- int len; - int ret = 0; - struct drm_dp_sideband_msg_tx *txmsg; - struct drm_dp_mst_branch *mstb; -@@ -3379,7 +3371,7 @@ static int drm_dp_send_dpcd_read(struct drm_dp_mst_topology_mgr *mgr, - goto fail_put; - } - -- len = build_dpcd_read(txmsg, port->port_num, offset, size); -+ build_dpcd_read(txmsg, port->port_num, offset, size); - txmsg->dst = port->parent; - - drm_dp_queue_down_tx(mgr, txmsg); -@@ -3417,7 +3409,6 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr, - struct drm_dp_mst_port *port, - int offset, int size, u8 *bytes) - { -- int len; - int ret; - struct drm_dp_sideband_msg_tx *txmsg; - struct drm_dp_mst_branch *mstb; -@@ -3432,7 +3423,7 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr, - goto fail_put; - } - -- len = build_dpcd_write(txmsg, port->port_num, offset, size, bytes); -+ build_dpcd_write(txmsg, port->port_num, offset, size, bytes); - txmsg->dst = mstb; - - drm_dp_queue_down_tx(mgr, txmsg); -@@ -3682,7 +3673,12 @@ int drm_dp_mst_topology_mgr_resume(struct drm_dp_mst_topology_mgr *mgr, - DRM_DEBUG_KMS("dpcd read failed - undocked during suspend?\n"); - goto out_fail; - } -- drm_dp_check_mstb_guid(mgr->mst_primary, guid); -+ -+ ret = drm_dp_check_mstb_guid(mgr->mst_primary, guid); -+ if (ret) { -+ DRM_DEBUG_KMS("check mstb failed - undocked during suspend?\n"); -+ goto out_fail; -+ } - - /* - * For the final step of resuming the topology, we need to bring the -@@ -4625,15 +4621,34 @@ void drm_dp_mst_dump_topology(struct seq_file *m, - int ret; - - ret = drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, buf, DP_RECEIVER_CAP_SIZE); -+ if (ret) { -+ seq_printf(m, "dpcd read failed\n"); -+ goto out; -+ } - seq_printf(m, "dpcd: %*ph\n", DP_RECEIVER_CAP_SIZE, buf); -+ - ret = drm_dp_dpcd_read(mgr->aux, DP_FAUX_CAP, buf, 2); -+ if (ret) { -+ seq_printf(m, "faux/mst read failed\n"); -+ goto out; -+ } - seq_printf(m, "faux/mst: %*ph\n", 2, buf); -+ - ret = drm_dp_dpcd_read(mgr->aux, DP_MSTM_CTRL, buf, 1); -+ if (ret) { -+ seq_printf(m, "mst ctrl read failed\n"); -+ goto out; -+ } - seq_printf(m, "mst ctrl: %*ph\n", 1, buf); - - /* dump the standard OUI branch header */ - ret = drm_dp_dpcd_read(mgr->aux, DP_BRANCH_OUI, buf, DP_BRANCH_OUI_HEADER_SIZE); -+ if (ret) { -+ seq_printf(m, "branch oui read failed\n"); -+ goto out; -+ } - seq_printf(m, "branch oui: %*phN devid: ", 3, buf); -+ - for (i = 0x3; i < 0x8 && buf[i]; i++) - seq_printf(m, "%c", buf[i]); - seq_printf(m, " revision: hw: %x.%x sw: %x.%x\n", -@@ -4642,6 +4657,7 @@ void drm_dp_mst_dump_topology(struct seq_file *m, - seq_printf(m, "payload table: %*ph\n", DP_PAYLOAD_TABLE_SIZE, buf); - } - -+out: - mutex_unlock(&mgr->lock); - - } --- -2.25.1 - -From 9004e704af8486da3dcbde0fb35a2a309152a5c3 Mon Sep 17 00:00:00 2001 -From: Lyude Paul -Date: Fri, 6 Mar 2020 18:49:21 -0500 -Subject: [PATCH 2/3] drm/dp_mst: Make drm_dp_mst_dpcd_write() consistent with - drm_dp_dpcd_write() - -Noticed this while having some problems with hubs sometimes not being -detected on the first plug. Every single dpcd read or write function -returns the number of bytes transferred on success or a negative error -code, except apparently for drm_dp_mst_dpcd_write() - which returns 0 on -success. - -There's not really any good reason for this difference that I can tell, -and having the two functions give differing behavior means that -drm_dp_dpcd_write() will end up returning 0 on success for MST devices, -but the number of bytes transferred for everything else. - -So, fix that and update the kernel doc. - -Signed-off-by: Lyude Paul -Fixes: 2f221a5efed4 ("drm/dp_mst: Add MST support to DP DPCD R/W functions") -Cc: Hans de Goede -Cc: Mikita Lipski -Cc: Sean Paul ---- - drivers/gpu/drm/drm_dp_mst_topology.c | 11 ++++------- - 1 file changed, 4 insertions(+), 7 deletions(-) - -diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c -index 95e08d908dd2..2dc1c0ba456b 100644 ---- a/drivers/gpu/drm/drm_dp_mst_topology.c -+++ b/drivers/gpu/drm/drm_dp_mst_topology.c -@@ -2059,7 +2059,7 @@ ssize_t drm_dp_mst_dpcd_read(struct drm_dp_aux *aux, - * sideband messaging as drm_dp_dpcd_write() does for local - * devices via actual AUX CH. - * -- * Return: 0 on success, negative error code on failure. -+ * Return: number of bytes written on success, negative error code on failure. - */ - ssize_t drm_dp_mst_dpcd_write(struct drm_dp_aux *aux, - unsigned int offset, void *buffer, size_t size) -@@ -3429,12 +3429,9 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr, - drm_dp_queue_down_tx(mgr, txmsg); - - ret = drm_dp_mst_wait_tx_reply(mstb, txmsg); -- if (ret > 0) { -- if (txmsg->reply.reply_type == DP_SIDEBAND_REPLY_NAK) -- ret = -EIO; -- else -- ret = 0; -- } -+ if (ret > 0 && txmsg->reply.reply_type == DP_SIDEBAND_REPLY_NAK) -+ ret = -EIO; -+ - kfree(txmsg); - fail_put: - drm_dp_mst_topology_put_mstb(mstb); --- -2.25.1 - -From ff18e1a7ef709cdd3dcbf7b4ae2b37e1c6695289 Mon Sep 17 00:00:00 2001 -From: Lyude Paul -Date: Fri, 6 Mar 2020 18:49:22 -0500 -Subject: [PATCH 3/3] drm/dp_mst: Fix drm_dp_check_mstb_guid() return code - -We actually expect this to return a 0 on success, or negative error code -on failure. In order to do that, we check whether or not we managed to -write the whole GUID and then return 0 if so, otherwise return a -negative error code. Also, let's add an error message here so it's a -little more obvious when this fails in the middle of a link address -probe. - -This should fix issues with certain MST hubs seemingly stopping for no -reason in the middle of the link address probe process. - -Fixes: cb897542c6d2 ("drm/dp_mst: Fix W=1 warnings") -Cc: Benjamin Gaignard -Cc: Sean Paul -Cc: Hans de Goede -Signed-off-by: Lyude Paul ---- - drivers/gpu/drm/drm_dp_mst_topology.c | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c -index 2dc1c0ba456b..d0e5993b0622 100644 ---- a/drivers/gpu/drm/drm_dp_mst_topology.c -+++ b/drivers/gpu/drm/drm_dp_mst_topology.c -@@ -2088,7 +2088,10 @@ static int drm_dp_check_mstb_guid(struct drm_dp_mst_branch *mstb, u8 *guid) - } - } - -- return ret; -+ if (ret < 16 && ret > 0) -+ return -EPROTO; -+ -+ return ret == 16 ? 0 : ret; - } - - static void build_mst_prop_path(const struct drm_dp_mst_branch *mstb, -@@ -2899,8 +2902,14 @@ static int drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr, - drm_dp_dump_link_address(reply); - - ret = drm_dp_check_mstb_guid(mstb, reply->guid); -- if (ret) -+ if (ret) { -+ char buf[64]; -+ -+ drm_dp_mst_rad_to_str(mstb->rad, mstb->lct, buf, sizeof(buf)); -+ DRM_ERROR("GUID check on %s failed: %d\n", -+ buf, ret); - goto out; -+ } - - for (i = 0; i < reply->nports; i++) { - port_mask |= BIT(reply->ports[i].port_number); --- -2.25.1 - diff --git a/drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch b/drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch deleted file mode 100644 index d5b7f003f..000000000 --- a/drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch +++ /dev/null @@ -1,47 +0,0 @@ -From: Lyude Paul -Date: Fri, 24 Apr 2020 15:07:22 -0400 -Subject: drm/dp_mst: Fix drm_dp_send_dpcd_write() return code - -drm_dp_mst_wait_tx_reply() returns > 1 if time elapsed in -wait_event_timeout() before check_txmsg_state(mgr, txmsg) evaluated to -true. However, we make the mistake of returning this time from -drm_dp_send_dpcd_write() on success instead of returning the number of -bytes written - causing spontaneous failures during link probing: - -[drm:drm_dp_send_link_address [drm_kms_helper]] *ERROR* GUID check on -10:01 failed: 3975 - -Yikes! So, fix this by returning the number of bytes written on success -instead. - -Signed-off-by: Lyude Paul -Fixes: cb897542c6d2 ("drm/dp_mst: Fix W=1 warnings") -Cc: Benjamin Gaignard -Cc: Sean Paul -Acked-by: Alex Deucher -Reviewed-by: Sean Paul -Link: https://patchwork.freedesktop.org/patch/msgid/20200424190722.775284-1-lyude@redhat.com ---- - drivers/gpu/drm/drm_dp_mst_topology.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - - -diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c -index 03a1496f6120..21dc78cb4ba6 100644 ---- a/drivers/gpu/drm/drm_dp_mst_topology.c -+++ b/drivers/gpu/drm/drm_dp_mst_topology.c -@@ -3436,8 +3436,12 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr, - drm_dp_queue_down_tx(mgr, txmsg); - - ret = drm_dp_mst_wait_tx_reply(mstb, txmsg); -- if (ret > 0 && txmsg->reply.reply_type == DP_SIDEBAND_REPLY_NAK) -- ret = -EIO; -+ if (ret > 0) { -+ if (txmsg->reply.reply_type == DP_SIDEBAND_REPLY_NAK) -+ ret = -EIO; -+ else -+ ret = size; -+ } - - kfree(txmsg); - fail_put: diff --git a/drm-i915-backports.patch b/drm-i915-backports.patch deleted file mode 100644 index 6fa8d2849..000000000 --- a/drm-i915-backports.patch +++ /dev/null @@ -1,894 +0,0 @@ -From 0fdb20f83f9962a3501e9cbdbfcc37ed5e721ab8 Mon Sep 17 00:00:00 2001 -From: Lyude Paul -Date: Tue, 10 Mar 2020 14:07:31 -0400 -Subject: [PATCH 1/7] drm/i915: Fix eDP DPCD aux max backlight calculations - -Max backlight value for the panel was being calculated using byte -count i.e. 0xffff if 2 bytes are supported for backlight brightness -and 0xff if 1 byte is supported. However, EDP_PWMGEN_BIT_COUNT -determines the number of active control bits used for the brightness -setting. Thus, even if the panel uses 2 byte setting, it might not use -all the control bits. Thus, max backlight should be set based on the -value of EDP_PWMGEN_BIT_COUNT instead of assuming 65535 or 255. - -Additionally, EDP_PWMGEN_BIT_COUNT was being updated based on the VBT -frequency which results in a different max backlight value. Thus, -setting of EDP_PWMGEN_BIT_COUNT is moved to setup phase instead of -enable so that max backlight can be calculated correctly. Only the -frequency divider is set during the enable phase using the value of -EDP_PWMGEN_BIT_COUNT. - -This is based off the original patch series from Furquan Shaikh -: - -https://patchwork.freedesktop.org/patch/317255/?series=62326&rev=3 - -Changes since original patch: -* Remove unused intel_dp variable in intel_dp_aux_setup_backlight() -* Fix checkpatch issues -* Make sure that we rewrite the pwmgen bit count whenever we bring the - panel out of D3 mode - -v2 by Jani: -* rebase -* fix readb return value check - -Cc: Furquan Shaikh -Tested-by: AceLan Kao -Tested-by: Perry Yuan -Signed-off-by: Lyude Paul -Signed-off-by: Jani Nikula -Link: https://patchwork.freedesktop.org/patch/msgid/20200116211623.53799-2-lyude@redhat.com ---- - .../drm/i915/display/intel_display_types.h | 3 + - .../drm/i915/display/intel_dp_aux_backlight.c | 139 ++++++++++++------ - 2 files changed, 95 insertions(+), 47 deletions(-) - -diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h -index 888ea8a170d1..778bd30743e5 100644 ---- a/drivers/gpu/drm/i915/display/intel_display_types.h -+++ b/drivers/gpu/drm/i915/display/intel_display_types.h -@@ -214,6 +214,9 @@ struct intel_panel { - u8 controller; /* bxt+ only */ - struct pwm_device *pwm; - -+ /* DPCD backlight */ -+ u8 pwmgen_bit_count; -+ - struct backlight_device *device; - - /* Connector and platform specific backlight functions */ -diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -index 7c653f8c307f..345eed641455 100644 ---- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -+++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -@@ -111,61 +111,28 @@ static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector) - { - struct drm_i915_private *dev_priv = to_i915(connector->base.dev); - struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder); -- int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1; -- u8 pn, pn_min, pn_max; -+ const u8 pn = connector->panel.backlight.pwmgen_bit_count; -+ int freq, fxp, f, fxp_actual, fxp_min, fxp_max; - -- /* Find desired value of (F x P) -- * Note that, if F x P is out of supported range, the maximum value or -- * minimum value will applied automatically. So no need to check that. -- */ - freq = dev_priv->vbt.backlight.pwm_freq_hz; -- DRM_DEBUG_KMS("VBT defined backlight frequency %u Hz\n", freq); - if (!freq) { - DRM_DEBUG_KMS("Use panel default backlight frequency\n"); - return false; - } - - fxp = DIV_ROUND_CLOSEST(KHz(DP_EDP_BACKLIGHT_FREQ_BASE_KHZ), freq); -+ f = clamp(DIV_ROUND_CLOSEST(fxp, 1 << pn), 1, 255); -+ fxp_actual = f << pn; - -- /* Use highest possible value of Pn for more granularity of brightness -- * adjustment while satifying the conditions below. -- * - Pn is in the range of Pn_min and Pn_max -- * - F is in the range of 1 and 255 -- * - FxP is within 25% of desired value. -- * Note: 25% is arbitrary value and may need some tweak. -- */ -- if (drm_dp_dpcd_readb(&intel_dp->aux, -- DP_EDP_PWMGEN_BIT_COUNT_CAP_MIN, &pn_min) != 1) { -- DRM_DEBUG_KMS("Failed to read pwmgen bit count cap min\n"); -- return false; -- } -- if (drm_dp_dpcd_readb(&intel_dp->aux, -- DP_EDP_PWMGEN_BIT_COUNT_CAP_MAX, &pn_max) != 1) { -- DRM_DEBUG_KMS("Failed to read pwmgen bit count cap max\n"); -- return false; -- } -- pn_min &= DP_EDP_PWMGEN_BIT_COUNT_MASK; -- pn_max &= DP_EDP_PWMGEN_BIT_COUNT_MASK; -- -+ /* Ensure frequency is within 25% of desired value */ - fxp_min = DIV_ROUND_CLOSEST(fxp * 3, 4); - fxp_max = DIV_ROUND_CLOSEST(fxp * 5, 4); -- if (fxp_min < (1 << pn_min) || (255 << pn_max) < fxp_max) { -- DRM_DEBUG_KMS("VBT defined backlight frequency out of range\n"); -- return false; -- } - -- for (pn = pn_max; pn >= pn_min; pn--) { -- f = clamp(DIV_ROUND_CLOSEST(fxp, 1 << pn), 1, 255); -- fxp_actual = f << pn; -- if (fxp_min <= fxp_actual && fxp_actual <= fxp_max) -- break; -- } -- -- if (drm_dp_dpcd_writeb(&intel_dp->aux, -- DP_EDP_PWMGEN_BIT_COUNT, pn) < 0) { -- DRM_DEBUG_KMS("Failed to write aux pwmgen bit count\n"); -+ if (fxp_min > fxp_actual || fxp_actual > fxp_max) { -+ DRM_DEBUG_KMS("Actual frequency out of range\n"); - return false; - } -+ - if (drm_dp_dpcd_writeb(&intel_dp->aux, - DP_EDP_BACKLIGHT_FREQ_SET, (u8) f) < 0) { - DRM_DEBUG_KMS("Failed to write aux backlight freq\n"); -@@ -179,6 +146,7 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st - { - struct intel_connector *connector = to_intel_connector(conn_state->connector); - struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder); -+ struct intel_panel *panel = &connector->panel; - u8 dpcd_buf, new_dpcd_buf, edp_backlight_mode; - - if (drm_dp_dpcd_readb(&intel_dp->aux, -@@ -197,6 +165,12 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st - case DP_EDP_BACKLIGHT_CONTROL_MODE_PRODUCT: - new_dpcd_buf &= ~DP_EDP_BACKLIGHT_CONTROL_MODE_MASK; - new_dpcd_buf |= DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD; -+ -+ if (drm_dp_dpcd_writeb(&intel_dp->aux, -+ DP_EDP_PWMGEN_BIT_COUNT, -+ panel->backlight.pwmgen_bit_count) < 0) -+ DRM_DEBUG_KMS("Failed to write aux pwmgen bit count\n"); -+ - break; - - /* Do nothing when it is already DPCD mode */ -@@ -226,20 +200,91 @@ static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old - false); - } - -+static u32 intel_dp_aux_calc_max_backlight(struct intel_connector *connector) -+{ -+ struct drm_i915_private *i915 = to_i915(connector->base.dev); -+ struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder); -+ struct intel_panel *panel = &connector->panel; -+ u32 max_backlight = 0; -+ int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1; -+ u8 pn, pn_min, pn_max; -+ -+ if (drm_dp_dpcd_readb(&intel_dp->aux, DP_EDP_PWMGEN_BIT_COUNT, &pn) == 1) { -+ pn &= DP_EDP_PWMGEN_BIT_COUNT_MASK; -+ max_backlight = (1 << pn) - 1; -+ } -+ -+ /* Find desired value of (F x P) -+ * Note that, if F x P is out of supported range, the maximum value or -+ * minimum value will applied automatically. So no need to check that. -+ */ -+ freq = i915->vbt.backlight.pwm_freq_hz; -+ DRM_DEBUG_KMS("VBT defined backlight frequency %u Hz\n", freq); -+ if (!freq) { -+ DRM_DEBUG_KMS("Use panel default backlight frequency\n"); -+ return max_backlight; -+ } -+ -+ fxp = DIV_ROUND_CLOSEST(KHz(DP_EDP_BACKLIGHT_FREQ_BASE_KHZ), freq); -+ -+ /* Use highest possible value of Pn for more granularity of brightness -+ * adjustment while satifying the conditions below. -+ * - Pn is in the range of Pn_min and Pn_max -+ * - F is in the range of 1 and 255 -+ * - FxP is within 25% of desired value. -+ * Note: 25% is arbitrary value and may need some tweak. -+ */ -+ if (drm_dp_dpcd_readb(&intel_dp->aux, -+ DP_EDP_PWMGEN_BIT_COUNT_CAP_MIN, &pn_min) != 1) { -+ DRM_DEBUG_KMS("Failed to read pwmgen bit count cap min\n"); -+ return max_backlight; -+ } -+ if (drm_dp_dpcd_readb(&intel_dp->aux, -+ DP_EDP_PWMGEN_BIT_COUNT_CAP_MAX, &pn_max) != 1) { -+ DRM_DEBUG_KMS("Failed to read pwmgen bit count cap max\n"); -+ return max_backlight; -+ } -+ pn_min &= DP_EDP_PWMGEN_BIT_COUNT_MASK; -+ pn_max &= DP_EDP_PWMGEN_BIT_COUNT_MASK; -+ -+ fxp_min = DIV_ROUND_CLOSEST(fxp * 3, 4); -+ fxp_max = DIV_ROUND_CLOSEST(fxp * 5, 4); -+ if (fxp_min < (1 << pn_min) || (255 << pn_max) < fxp_max) { -+ DRM_DEBUG_KMS("VBT defined backlight frequency out of range\n"); -+ return max_backlight; -+ } -+ -+ for (pn = pn_max; pn >= pn_min; pn--) { -+ f = clamp(DIV_ROUND_CLOSEST(fxp, 1 << pn), 1, 255); -+ fxp_actual = f << pn; -+ if (fxp_min <= fxp_actual && fxp_actual <= fxp_max) -+ break; -+ } -+ -+ DRM_DEBUG_KMS("Using eDP pwmgen bit count of %d\n", pn); -+ if (drm_dp_dpcd_writeb(&intel_dp->aux, -+ DP_EDP_PWMGEN_BIT_COUNT, pn) < 0) { -+ DRM_DEBUG_KMS("Failed to write aux pwmgen bit count\n"); -+ return max_backlight; -+ } -+ panel->backlight.pwmgen_bit_count = pn; -+ -+ max_backlight = (1 << pn) - 1; -+ -+ return max_backlight; -+} -+ - static int intel_dp_aux_setup_backlight(struct intel_connector *connector, - enum pipe pipe) - { -- struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder); - struct intel_panel *panel = &connector->panel; - -- if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT) -- panel->backlight.max = 0xFFFF; -- else -- panel->backlight.max = 0xFF; -+ panel->backlight.max = intel_dp_aux_calc_max_backlight(connector); -+ if (!panel->backlight.max) -+ return -ENODEV; - - panel->backlight.min = 0; - panel->backlight.level = intel_dp_aux_get_backlight(connector); -- - panel->backlight.enabled = panel->backlight.level != 0; - - return 0; --- -2.25.1 - -From 7dbe3f659d364de34b210baf0598913dc8c3cabd Mon Sep 17 00:00:00 2001 -From: Lyude Paul -Date: Tue, 10 Mar 2020 14:07:32 -0400 -Subject: [PATCH 2/7] drm/i915: Assume 100% brightness when not in DPCD control - mode - -Currently we always determine the initial panel brightness level by -simply reading the value from DP_EDP_BACKLIGHT_BRIGHTNESS_MSB/LSB. This -seems wrong though, because if the panel is not currently in DPCD -control mode there's not really any reason why there would be any -brightness value programmed in the first place. - -This appears to be the case on the Lenovo ThinkPad X1 Extreme 2nd -Generation, where the default value in these registers is always 0 on -boot despite the fact the panel runs at max brightness by default. -Getting the initial brightness value correct here is important as well, -since the panel on this laptop doesn't behave well if it's ever put into -DPCD control mode while the brightness level is programmed to 0. - -So, let's fix this by checking what the current backlight control mode -is before reading the brightness level. If it's in DPCD control mode, we -return the programmed brightness level. Otherwise we assume 100% -brightness and return the highest possible brightness level. This also -prevents us from accidentally programming a brightness level of 0. - -This is one of the many fixes that gets backlight controls working on -the ThinkPad X1 Extreme 2nd Generation with optional 4K AMOLED screen. - -Changes since v1: -* s/DP_EDP_DISPLAY_CONTROL_REGISTER/DP_EDP_BACKLIGHT_MODE_SET_REGISTER/ - - Jani - -Tested-by: AceLan Kao -Tested-by: Perry Yuan -Signed-off-by: Lyude Paul -Signed-off-by: Jani Nikula -Link: https://patchwork.freedesktop.org/patch/msgid/20200116211623.53799-3-lyude@redhat.com ---- - .../drm/i915/display/intel_dp_aux_backlight.c | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -index 345eed641455..5d4db5f8a165 100644 ---- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -+++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -@@ -59,8 +59,25 @@ static u32 intel_dp_aux_get_backlight(struct intel_connector *connector) - { - struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder); - u8 read_val[2] = { 0x0 }; -+ u8 mode_reg; - u16 level = 0; - -+ if (drm_dp_dpcd_readb(&intel_dp->aux, -+ DP_EDP_BACKLIGHT_MODE_SET_REGISTER, -+ &mode_reg) != 1) { -+ DRM_DEBUG_KMS("Failed to read the DPCD register 0x%x\n", -+ DP_EDP_BACKLIGHT_MODE_SET_REGISTER); -+ return 0; -+ } -+ -+ /* -+ * If we're not in DPCD control mode yet, the programmed brightness -+ * value is meaningless and we should assume max brightness -+ */ -+ if ((mode_reg & DP_EDP_BACKLIGHT_CONTROL_MODE_MASK) != -+ DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD) -+ return connector->panel.backlight.max; -+ - if (drm_dp_dpcd_read(&intel_dp->aux, DP_EDP_BACKLIGHT_BRIGHTNESS_MSB, - &read_val, sizeof(read_val)) < 0) { - DRM_DEBUG_KMS("Failed to read DPCD register 0x%x\n", --- -2.25.1 - -From b2a29a70e386c2fbd92e1b7980091e7980495211 Mon Sep 17 00:00:00 2001 -From: Lyude Paul -Date: Tue, 10 Mar 2020 14:07:33 -0400 -Subject: [PATCH 3/7] drm/i915: Fix DPCD register order in - intel_dp_aux_enable_backlight() - -For eDP panels, it appears it's expected that so long as the panel is in -DPCD control mode that the brightness value is never set to 0. Instead, -if the desired effect is to set the panel's backlight to 0 we're -expected to simply turn off the backlight through the -DP_EDP_DISPLAY_CONTROL_REGISTER. - -We already do the latter correctly in intel_dp_aux_disable_backlight(). -But, we make the mistake of writing the DPCD registers in the wrong -order when enabling the backlight in intel_dp_aux_enable_backlight() -since we currently enable the backlight through -DP_EDP_DISPLAY_CONTROL_REGISTER before writing the brightness level. On -the X1 Extreme 2nd Generation, this appears to have the potential of -confusing the panel in such a way that further attempts to set the -brightness don't actually change the backlight as expected and leave it -off. Presumably, this happens because the incorrect register writing -order briefly leaves the panel with DPCD mode enabled and a 0 brightness -level set. - -So, reverse the order we write the DPCD registers when enabling the -panel backlight so that we write the brightness value first, and enable -the backlight second. This fix appears to be the final bit needed to get -the backlight on the ThinkPad X1 Extreme 2nd Generation's AMOLED screen -working. - -Tested-by: AceLan Kao -Tested-by: Perry Yuan -Signed-off-by: Lyude Paul -Signed-off-by: Jani Nikula -Link: https://patchwork.freedesktop.org/patch/msgid/20200116211623.53799-4-lyude@redhat.com ---- - drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -index 5d4db5f8a165..77a759361c5c 100644 ---- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -+++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -@@ -207,8 +207,9 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st - } - } - -+ intel_dp_aux_set_backlight(conn_state, -+ connector->panel.backlight.level); - set_aux_backlight_enable(intel_dp, true); -- intel_dp_aux_set_backlight(conn_state, connector->panel.backlight.level); - } - - static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old_conn_state) --- -2.25.1 - -From 8b2e6f450c1f8d34632d4789369030008e874a75 Mon Sep 17 00:00:00 2001 -From: Lyude Paul -Date: Tue, 10 Mar 2020 14:07:34 -0400 -Subject: [PATCH 4/7] drm/i915: Auto detect DPCD backlight support by default - -Turns out we actually already have some companies, such as Lenovo, -shipping machines with AMOLED screens that don't allow controlling the -backlight through the usual PWM interface and only allow controlling it -through the standard EDP DPCD interface. One example of one of these -laptops is the X1 Extreme 2nd Generation. - -Since we've got systems that need this turned on by default now to have -backlight controls working out of the box, let's start auto-detecting it -for systems by default based on what the VBT tells us. We do this by -changing the default value for the enable_dpcd_backlight module param -from 0 to -1. - -Tested-by: AceLan Kao -Tested-by: Perry Yuan -Signed-off-by: Lyude Paul -Signed-off-by: Jani Nikula -Link: https://patchwork.freedesktop.org/patch/msgid/20200116211623.53799-6-lyude@redhat.com ---- - drivers/gpu/drm/i915/i915_params.c | 2 +- - drivers/gpu/drm/i915/i915_params.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c -index 1dd1f3652795..31eed60c167e 100644 ---- a/drivers/gpu/drm/i915/i915_params.c -+++ b/drivers/gpu/drm/i915/i915_params.c -@@ -172,7 +172,7 @@ i915_param_named_unsafe(inject_probe_failure, uint, 0400, - - i915_param_named(enable_dpcd_backlight, int, 0600, - "Enable support for DPCD backlight control" -- "(-1=use per-VBT LFP backlight type setting, 0=disabled [default], 1=enabled)"); -+ "(-1=use per-VBT LFP backlight type setting [default], 0=disabled, 1=enabled)"); - - #if IS_ENABLED(CONFIG_DRM_I915_GVT) - i915_param_named(enable_gvt, bool, 0400, -diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h -index 31b88f297fbc..a79d0867f77a 100644 ---- a/drivers/gpu/drm/i915/i915_params.h -+++ b/drivers/gpu/drm/i915/i915_params.h -@@ -64,7 +64,7 @@ struct drm_printer; - param(int, reset, 3) \ - param(unsigned int, inject_probe_failure, 0) \ - param(int, fastboot, -1) \ -- param(int, enable_dpcd_backlight, 0) \ -+ param(int, enable_dpcd_backlight, -1) \ - param(char *, force_probe, CONFIG_DRM_I915_FORCE_PROBE) \ - param(unsigned long, fake_lmem_start, 0) \ - /* leave bools at the end to not create holes */ \ --- -2.25.1 - -From c10b0dfaac8385f9b712a552c9a5eed9976aacf2 Mon Sep 17 00:00:00 2001 -From: Lyude Paul -Date: Tue, 10 Mar 2020 14:07:35 -0400 -Subject: [PATCH 5/7] drm/dp: Introduce EDID-based quirks - -The whole point of using OUIs is so that we can recognize certain -devices and potentially apply quirks for them. Normally this should work -quite well, but there appears to be quite a number of laptop panels out -there that will fill the OUI but not the device ID. As such, for devices -like this I can't imagine it's a very good idea to try relying on OUIs -for applying quirks. As well, some laptop vendors have confirmed to us -that their panels have this exact issue. - -So, let's introduce the ability to apply DP quirks based on EDID -identification. We reuse the same quirk bits for OUI-based quirks, so -that callers can simply check all possible quirks using -drm_dp_has_quirk(). - -Signed-off-by: Lyude Paul -Reviewed-by: Adam Jackson -Cc: Jani Nikula ---- - drivers/gpu/drm/drm_dp_helper.c | 61 +++++++++++++++++++ - drivers/gpu/drm/drm_dp_mst_topology.c | 3 +- - .../drm/i915/display/intel_display_types.h | 1 + - drivers/gpu/drm/i915/display/intel_dp.c | 11 ++-- - drivers/gpu/drm/i915/display/intel_dp_mst.c | 2 +- - drivers/gpu/drm/i915/display/intel_psr.c | 2 +- - include/drm/drm_dp_helper.h | 11 +++- - 7 files changed, 81 insertions(+), 10 deletions(-) - -diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c -index a5364b5192b8..9b2ea2ae0204 100644 ---- a/drivers/gpu/drm/drm_dp_helper.c -+++ b/drivers/gpu/drm/drm_dp_helper.c -@@ -1222,6 +1222,67 @@ drm_dp_get_quirks(const struct drm_dp_dpcd_ident *ident, bool is_branch) - #undef DEVICE_ID_ANY - #undef DEVICE_ID - -+struct edid_quirk { -+ u8 mfg_id[2]; -+ u8 prod_id[2]; -+ u32 quirks; -+}; -+ -+#define MFG(first, second) { (first), (second) } -+#define PROD_ID(first, second) { (first), (second) } -+ -+/* -+ * Some devices have unreliable OUIDs where they don't set the device ID -+ * correctly, and as a result we need to use the EDID for finding additional -+ * DP quirks in such cases. -+ */ -+static const struct edid_quirk edid_quirk_list[] = { -+}; -+ -+#undef MFG -+#undef PROD_ID -+ -+/** -+ * drm_dp_get_edid_quirks() - Check the EDID of a DP device to find additional -+ * DP-specific quirks -+ * @edid: The EDID to check -+ * -+ * While OUIDs are meant to be used to recognize a DisplayPort device, a lot -+ * of manufacturers don't seem to like following standards and neglect to fill -+ * the dev-ID in, making it impossible to only use OUIDs for determining -+ * quirks in some cases. This function can be used to check the EDID and look -+ * up any additional DP quirks. The bits returned by this function correspond -+ * to the quirk bits in &drm_dp_quirk. -+ * -+ * Returns: a bitmask of quirks, if any. The driver can check this using -+ * drm_dp_has_quirk(). -+ */ -+u32 drm_dp_get_edid_quirks(const struct edid *edid) -+{ -+ const struct edid_quirk *quirk; -+ u32 quirks = 0; -+ int i; -+ -+ if (!edid) -+ return 0; -+ -+ for (i = 0; i < ARRAY_SIZE(edid_quirk_list); i++) { -+ quirk = &edid_quirk_list[i]; -+ if (memcmp(quirk->mfg_id, edid->mfg_id, -+ sizeof(edid->mfg_id)) == 0 && -+ memcmp(quirk->prod_id, edid->prod_code, -+ sizeof(edid->prod_code)) == 0) -+ quirks |= quirk->quirks; -+ } -+ -+ DRM_DEBUG_KMS("DP sink: EDID mfg %*phD prod-ID %*phD quirks: 0x%04x\n", -+ (int)sizeof(edid->mfg_id), edid->mfg_id, -+ (int)sizeof(edid->prod_code), edid->prod_code, quirks); -+ -+ return quirks; -+} -+EXPORT_SYMBOL(drm_dp_get_edid_quirks); -+ - /** - * drm_dp_read_desc - read sink/branch descriptor from DPCD - * @aux: DisplayPort AUX channel -diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c -index cce0b1bba591..685c35e67144 100644 ---- a/drivers/gpu/drm/drm_dp_mst_topology.c -+++ b/drivers/gpu/drm/drm_dp_mst_topology.c -@@ -5461,7 +5461,8 @@ struct drm_dp_aux *drm_dp_mst_dsc_aux_for_port(struct drm_dp_mst_port *port) - if (drm_dp_read_desc(port->mgr->aux, &desc, true)) - return NULL; - -- if (drm_dp_has_quirk(&desc, DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD) && -+ if (drm_dp_has_quirk(&desc, 0, -+ DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD) && - port->mgr->dpcd[DP_DPCD_REV] >= DP_DPCD_REV_14 && - port->parent == port->mgr->mst_primary) { - u8 downstreamport; -diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h -index 778bd30743e5..8e3c5569603b 100644 ---- a/drivers/gpu/drm/i915/display/intel_display_types.h -+++ b/drivers/gpu/drm/i915/display/intel_display_types.h -@@ -1253,6 +1253,7 @@ struct intel_dp { - int max_link_rate; - /* sink or branch descriptor */ - struct drm_dp_desc desc; -+ u32 edid_quirks; - struct drm_dp_aux aux; - u32 aux_busy_last_status; - u8 train_set[4]; -diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c -index c7424e2a04a3..e20b85ff937d 100644 ---- a/drivers/gpu/drm/i915/display/intel_dp.c -+++ b/drivers/gpu/drm/i915/display/intel_dp.c -@@ -2373,7 +2373,7 @@ intel_dp_compute_config(struct intel_encoder *encoder, - struct intel_connector *intel_connector = intel_dp->attached_connector; - struct intel_digital_connector_state *intel_conn_state = - to_intel_digital_connector_state(conn_state); -- bool constant_n = drm_dp_has_quirk(&intel_dp->desc, -+ bool constant_n = drm_dp_has_quirk(&intel_dp->desc, 0, - DP_DPCD_QUIRK_CONSTANT_N); - int ret = 0, output_bpp; - -@@ -4466,7 +4466,8 @@ intel_dp_get_dpcd(struct intel_dp *intel_dp) - * it don't care about read it here and in intel_edp_init_dpcd(). - */ - if (!intel_dp_is_edp(intel_dp) && -- !drm_dp_has_quirk(&intel_dp->desc, DP_DPCD_QUIRK_NO_SINK_COUNT)) { -+ !drm_dp_has_quirk(&intel_dp->desc, 0, -+ DP_DPCD_QUIRK_NO_SINK_COUNT)) { - u8 count; - ssize_t r; - -@@ -5631,6 +5632,7 @@ intel_dp_set_edid(struct intel_dp *intel_dp) - - intel_dp->has_audio = drm_detect_monitor_audio(edid); - drm_dp_cec_set_edid(&intel_dp->aux, edid); -+ intel_dp->edid_quirks = drm_dp_get_edid_quirks(edid); - } - - static void -@@ -5643,6 +5645,7 @@ intel_dp_unset_edid(struct intel_dp *intel_dp) - intel_connector->detect_edid = NULL; - - intel_dp->has_audio = false; -+ intel_dp->edid_quirks = 0; - } - - static int -@@ -7356,8 +7359,8 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, - edid = drm_get_edid(connector, &intel_dp->aux.ddc); - if (edid) { - if (drm_add_edid_modes(connector, edid)) { -- drm_connector_update_edid_property(connector, -- edid); -+ drm_connector_update_edid_property(connector, edid); -+ intel_dp->edid_quirks = drm_dp_get_edid_quirks(edid); - } else { - kfree(edid); - edid = ERR_PTR(-EINVAL); -diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c -index cba68c5a80fa..4a1a2f868423 100644 ---- a/drivers/gpu/drm/i915/display/intel_dp_mst.c -+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c -@@ -50,7 +50,7 @@ static int intel_dp_mst_compute_link_config(struct intel_encoder *encoder, - const struct drm_display_mode *adjusted_mode = - &crtc_state->hw.adjusted_mode; - void *port = connector->port; -- bool constant_n = drm_dp_has_quirk(&intel_dp->desc, -+ bool constant_n = drm_dp_has_quirk(&intel_dp->desc, 0, - DP_DPCD_QUIRK_CONSTANT_N); - int bpp, slots = -EINVAL; - -diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c -index 83025052c965..82ba5624d14f 100644 ---- a/drivers/gpu/drm/i915/display/intel_psr.c -+++ b/drivers/gpu/drm/i915/display/intel_psr.c -@@ -282,7 +282,7 @@ void intel_psr_init_dpcd(struct intel_dp *intel_dp) - DRM_DEBUG_KMS("eDP panel supports PSR version %x\n", - intel_dp->psr_dpcd[0]); - -- if (drm_dp_has_quirk(&intel_dp->desc, DP_DPCD_QUIRK_NO_PSR)) { -+ if (drm_dp_has_quirk(&intel_dp->desc, 0, DP_DPCD_QUIRK_NO_PSR)) { - DRM_DEBUG_KMS("PSR support not currently available for this panel\n"); - return; - } -diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h -index bc04467f7c3a..1fe49e202dfb 100644 ---- a/include/drm/drm_dp_helper.h -+++ b/include/drm/drm_dp_helper.h -@@ -1493,13 +1493,16 @@ struct drm_dp_desc { - - int drm_dp_read_desc(struct drm_dp_aux *aux, struct drm_dp_desc *desc, - bool is_branch); -+u32 drm_dp_get_edid_quirks(const struct edid *edid); - - /** - * enum drm_dp_quirk - Display Port sink/branch device specific quirks - * - * Display Port sink and branch devices in the wild have a variety of bugs, try - * to collect them here. The quirks are shared, but it's up to the drivers to -- * implement workarounds for them. -+ * implement workarounds for them. Note that because some devices have -+ * unreliable OUIDs, the EDID of sinks should also be checked for quirks using -+ * drm_dp_get_edid_quirks(). - */ - enum drm_dp_quirk { - /** -@@ -1535,14 +1538,16 @@ enum drm_dp_quirk { - /** - * drm_dp_has_quirk() - does the DP device have a specific quirk - * @desc: Device decriptor filled by drm_dp_read_desc() -+ * @edid_quirks: Optional quirk bitmask filled by drm_dp_get_edid_quirks() - * @quirk: Quirk to query for - * - * Return true if DP device identified by @desc has @quirk. - */ - static inline bool --drm_dp_has_quirk(const struct drm_dp_desc *desc, enum drm_dp_quirk quirk) -+drm_dp_has_quirk(const struct drm_dp_desc *desc, u32 edid_quirks, -+ enum drm_dp_quirk quirk) - { -- return desc->quirks & BIT(quirk); -+ return (desc->quirks | edid_quirks) & BIT(quirk); - } - - #ifdef CONFIG_DRM_DP_CEC --- -2.25.1 - -From a21ec8aec8452de788d6b1fc175dc8281a57d5de Mon Sep 17 00:00:00 2001 -From: Lyude Paul -Date: Tue, 10 Mar 2020 14:07:36 -0400 -Subject: [PATCH 6/7] drm/i915: Force DPCD backlight mode on X1 Extreme 2nd Gen - 4K AMOLED panel - -The X1 Extreme is one of the systems that lies about which backlight -interface that it uses in its VBIOS as PWM backlight controls don't work -at all on this machine. It's possible that this panel could be one of -the infamous ones that can switch between PWM mode and DPCD backlight -control mode, but we haven't gotten any more details on this from Lenovo -just yet. For the time being though, making sure the backlight 'just -works' is a bit more important. - -So, add a quirk to force DPCD backlight controls on for these systems -based on EDID (since this panel doesn't appear to fill in the device ID). -Hopefully in the future we'll figure out a better way of probing this. - -Signed-off-by: Lyude Paul -Reviewed-by: Adam Jackson -Cc: Jani Nikula - -Changes since v2: -* The bugzilla URL is deprecated, bug reporting happens on gitlab now. - Update the messages we print to reflect this -* Also, take the opportunity to move FDO_BUG_URL out of i915_utils.c and - into i915_utils.h so that other places which print things that aren't - traditional errors but are worth filing bugs about, can actually use - it. - -Signed-off-by: Lyude Paul ---- - drivers/gpu/drm/drm_dp_helper.c | 4 ++++ - .../drm/i915/display/intel_dp_aux_backlight.c | 24 +++++++++++++++---- - drivers/gpu/drm/i915/i915_utils.c | 1 - - drivers/gpu/drm/i915/i915_utils.h | 2 ++ - include/drm/drm_dp_helper.h | 10 ++++++++ - 5 files changed, 36 insertions(+), 5 deletions(-) - -diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c -index 9b2ea2ae0204..026f701eac69 100644 ---- a/drivers/gpu/drm/drm_dp_helper.c -+++ b/drivers/gpu/drm/drm_dp_helper.c -@@ -1237,6 +1237,10 @@ struct edid_quirk { - * DP quirks in such cases. - */ - static const struct edid_quirk edid_quirk_list[] = { -+ /* Optional 4K AMOLED panel in the ThinkPad X1 Extreme 2nd Generation -+ * only supports DPCD backlight controls -+ */ -+ { MFG(0x4c, 0x83), PROD_ID(0x41, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, - }; - - #undef MFG -diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -index 77a759361c5c..a7c94c201b38 100644 ---- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -+++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c -@@ -328,15 +328,31 @@ intel_dp_aux_display_control_capable(struct intel_connector *connector) - int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector) - { - struct intel_panel *panel = &intel_connector->panel; -- struct drm_i915_private *dev_priv = to_i915(intel_connector->base.dev); -+ struct intel_dp *intel_dp = enc_to_intel_dp(intel_connector->encoder); -+ struct drm_device *dev = intel_connector->base.dev; -+ struct drm_i915_private *dev_priv = to_i915(dev); - - if (i915_modparams.enable_dpcd_backlight == 0 || -- (i915_modparams.enable_dpcd_backlight == -1 && -- dev_priv->vbt.backlight.type != INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE)) -+ !intel_dp_aux_display_control_capable(intel_connector)) - return -ENODEV; - -- if (!intel_dp_aux_display_control_capable(intel_connector)) -+ /* -+ * There are a lot of machines that don't advertise the backlight -+ * control interface to use properly in their VBIOS, :\ -+ */ -+ if (dev_priv->vbt.backlight.type != -+ INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE && -+ !drm_dp_has_quirk(&intel_dp->desc, intel_dp->edid_quirks, -+ DP_QUIRK_FORCE_DPCD_BACKLIGHT)) { -+ DRM_DEV_INFO(dev->dev, -+ "Panel advertises DPCD backlight support, but " -+ "VBT disagrees. If your backlight controls " -+ "don't work try booting with " -+ "i915.enable_dpcd_backlight=1. If your machine " -+ "needs this, please file a _new_ bug report on " -+ "drm/i915, see " FDO_BUG_URL " for details.\n"); - return -ENODEV; -+ } - - panel->backlight.setup = intel_dp_aux_setup_backlight; - panel->backlight.enable = intel_dp_aux_enable_backlight; -diff --git a/drivers/gpu/drm/i915/i915_utils.c b/drivers/gpu/drm/i915/i915_utils.c -index 632d6953c78d..029854ae65fc 100644 ---- a/drivers/gpu/drm/i915/i915_utils.c -+++ b/drivers/gpu/drm/i915/i915_utils.c -@@ -8,7 +8,6 @@ - #include "i915_drv.h" - #include "i915_utils.h" - --#define FDO_BUG_URL "https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs" - #define FDO_BUG_MSG "Please file a bug on drm/i915; see " FDO_BUG_URL " for details." - - void -diff --git a/drivers/gpu/drm/i915/i915_utils.h b/drivers/gpu/drm/i915/i915_utils.h -index b0ade76bec90..cae0ae520398 100644 ---- a/drivers/gpu/drm/i915/i915_utils.h -+++ b/drivers/gpu/drm/i915/i915_utils.h -@@ -34,6 +34,8 @@ - struct drm_i915_private; - struct timer_list; - -+#define FDO_BUG_URL "https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs" -+ - #undef WARN_ON - /* Many gcc seem to no see through this and fall over :( */ - #if 0 -diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h -index 1fe49e202dfb..eff5a69051d6 100644 ---- a/include/drm/drm_dp_helper.h -+++ b/include/drm/drm_dp_helper.h -@@ -1533,6 +1533,16 @@ enum drm_dp_quirk { - * The DSC caps can be read from the physical aux instead. - */ - DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD, -+ /** -+ * @DP_QUIRK_FORCE_DPCD_BACKLIGHT: -+ * -+ * The device is telling the truth when it says that it uses DPCD -+ * backlight controls, even if the system's firmware disagrees. This -+ * quirk should be checked against both the ident and panel EDID. -+ * When present, the driver should honor the DPCD backlight -+ * capabilities advertised. -+ */ -+ DP_QUIRK_FORCE_DPCD_BACKLIGHT, - }; - - /** --- -2.25.1 - -From 057e7f8db05c2382b666270b1fbf986fdd172769 Mon Sep 17 00:00:00 2001 -From: Lyude Paul -Date: Tue, 10 Mar 2020 14:07:37 -0400 -Subject: [PATCH 7/7] drm/i915: Force DPCD backlight mode for some Dell CML - 2020 panels - -According to Dell, trying to match their panels via OUI is not reliable -enough and we've been told that we should check against the EDID -instead. As well, Dell seems to have some panels that are actually -intended to switch between using PWM for backlight controls and DPCD for -backlight controls depending on whether or not the panel is in HDR or -SDR mode. Yikes. - -Regardless, we need to add quirks for these so that DPCD backlight -controls get enabled by default, since without additional driver support -that's the only form of brightness control that will work. Hopefully in -the future we can remove these quirks once we have a better way of -probing for this. - -Changes since v1: -* Add one more EDID per Dell's request -* Remove model number (which is possibly wrong) and replace with Dell - CML 2020 systems - -Signed-off-by: Lyude Paul -Reviewed-by: Adam Jackson -Cc: Jani Nikula ---- - drivers/gpu/drm/drm_dp_helper.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c -index 026f701eac69..d3a636a925d4 100644 ---- a/drivers/gpu/drm/drm_dp_helper.c -+++ b/drivers/gpu/drm/drm_dp_helper.c -@@ -1241,6 +1241,20 @@ static const struct edid_quirk edid_quirk_list[] = { - * only supports DPCD backlight controls - */ - { MFG(0x4c, 0x83), PROD_ID(0x41, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, -+ /* -+ * Some Dell CML 2020 systems have panels support both AUX and PWM -+ * backlight control, and some only support AUX backlight control. All -+ * said panels start up in AUX mode by default, and we don't have any -+ * support for disabling HDR mode on these panels which would be -+ * required to switch to PWM backlight control mode (plus, I'm not -+ * even sure we want PWM backlight controls over DPCD backlight -+ * controls anyway...). Until we have a better way of detecting these, -+ * force DPCD backlight mode on all of them. -+ */ -+ { MFG(0x06, 0xaf), PROD_ID(0x9b, 0x32), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, -+ { MFG(0x06, 0xaf), PROD_ID(0xeb, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, -+ { MFG(0x4d, 0x10), PROD_ID(0xc7, 0x14), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, -+ { MFG(0x4d, 0x10), PROD_ID(0xe6, 0x14), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, - }; - - #undef MFG --- -2.25.1 - diff --git a/e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch b/e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch deleted file mode 100644 index 921228c2b..000000000 --- a/e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch +++ /dev/null @@ -1,112 +0,0 @@ -From patchwork Mon Mar 23 19:16:39 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Aaron Ma -X-Patchwork-Id: 1260523 -X-Patchwork-Delegate: jeffrey.t.kirsher@intel.com -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) - smtp.mailfrom=osuosl.org (client-ip=140.211.166.137; - helo=fraxinus.osuosl.org; - envelope-from=intel-wired-lan-bounces@osuosl.org; - receiver=) -Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) - header.from=canonical.com -Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 - bits)) (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 48ml8T0lZVz9sRf - for ; - Tue, 24 Mar 2020 19:41:11 +1100 (AEDT) -Received: from localhost (localhost [127.0.0.1]) - by fraxinus.osuosl.org (Postfix) with ESMTP id 3FD71861C9; - Tue, 24 Mar 2020 08:41:10 +0000 (UTC) -X-Virus-Scanned: amavisd-new at osuosl.org -Received: from fraxinus.osuosl.org ([127.0.0.1]) - by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id Z-iCoXjZ6uPi; Tue, 24 Mar 2020 08:41:09 +0000 (UTC) -Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) - by fraxinus.osuosl.org (Postfix) with ESMTP id 9184E860D1; - Tue, 24 Mar 2020 08:41:09 +0000 (UTC) -X-Original-To: intel-wired-lan@lists.osuosl.org -Delivered-To: intel-wired-lan@lists.osuosl.org -Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) - by ash.osuosl.org (Postfix) with ESMTP id 522811BF2B6 - for ; - Mon, 23 Mar 2020 19:17:15 +0000 (UTC) -Received: from localhost (localhost [127.0.0.1]) - by whitealder.osuosl.org (Postfix) with ESMTP id 4BD3187D15 - for ; - Mon, 23 Mar 2020 19:17:15 +0000 (UTC) -X-Virus-Scanned: amavisd-new at osuosl.org -Received: from whitealder.osuosl.org ([127.0.0.1]) - by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id Cyxj7lfnvPR6 for ; - Mon, 23 Mar 2020 19:17:12 +0000 (UTC) -X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 -Received: from youngberry.canonical.com (youngberry.canonical.com - [91.189.89.112]) - by whitealder.osuosl.org (Postfix) with ESMTP id 68B4087EBD - for ; - Mon, 23 Mar 2020 19:17:12 +0000 (UTC) -Received: from [222.129.50.174] (helo=localhost.localdomain) - by youngberry.canonical.com with esmtpsa - (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) - (envelope-from ) - id 1jGSZN-00031K-JS; Mon, 23 Mar 2020 19:17:06 +0000 -From: Aaron Ma -To: jeffrey.t.kirsher@intel.com, aaron.ma@canonical.com, davem@davemloft.net, - intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, - linux-kernel@vger.kernel.org, sasha.neftin@intel.com -Date: Tue, 24 Mar 2020 03:16:39 +0800 -Message-Id: <20200323191639.48826-1-aaron.ma@canonical.com> -X-Mailer: git-send-email 2.25.2 -MIME-Version: 1.0 -X-Mailman-Approved-At: Tue, 24 Mar 2020 08:41:05 +0000 -Subject: [Intel-wired-lan] [PATCH] e1000e: bump up timeout to wait when ME - un-configure ULP mode -X-BeenThere: intel-wired-lan@osuosl.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Intel Wired Ethernet Linux Kernel Driver Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: intel-wired-lan-bounces@osuosl.org -Sender: "Intel-wired-lan" - -ME takes 2+ seconds to un-configure ULP mode done after resume -from s2idle on some ThinkPad laptops. -Without enough wait, reset and re-init will fail with error. - -Fixes: f15bb6dde738cc8fa0 ("e1000e: Add support for S0ix") -BugLink: https://bugs.launchpad.net/bugs/1865570 -Signed-off-by: Aaron Ma ---- - drivers/net/ethernet/intel/e1000e/ich8lan.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c -index b4135c50e905..147b15a2f8b3 100644 ---- a/drivers/net/ethernet/intel/e1000e/ich8lan.c -+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c -@@ -1240,9 +1240,9 @@ static s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force) - ew32(H2ME, mac_reg); - } - -- /* Poll up to 300msec for ME to clear ULP_CFG_DONE. */ -+ /* Poll up to 2.5sec for ME to clear ULP_CFG_DONE. */ - while (er32(FWSM) & E1000_FWSM_ULP_CFG_DONE) { -- if (i++ == 30) { -+ if (i++ == 250) { - ret_val = -E1000_ERR_PHY; - goto out; - } diff --git a/efi-secureboot.patch b/efi-secureboot.patch deleted file mode 100644 index 90ac9feca..000000000 --- a/efi-secureboot.patch +++ /dev/null @@ -1,337 +0,0 @@ -From 478a0cff698409224330ea9e25eb332220b55dbb Mon Sep 17 00:00:00 2001 -From: Jeremy Cline -Date: Mon, 30 Sep 2019 21:22:47 +0000 -Subject: [PATCH 1/3] security: lockdown: expose a hook to lock the kernel down - -In order to automatically lock down kernels running on UEFI machines -booted in Secure Boot mode, expose the lock_kernel_down() hook. - -Signed-off-by: Jeremy Cline ---- - include/linux/lsm_hooks.h | 8 ++++++++ - include/linux/security.h | 5 +++++ - security/lockdown/lockdown.c | 1 + - security/security.c | 6 ++++++ - 4 files changed, 20 insertions(+) - -diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h -index a3763247547c..8d76d1f153ed 100644 ---- a/include/linux/lsm_hooks.h -+++ b/include/linux/lsm_hooks.h -@@ -1454,6 +1454,12 @@ - * code execution in kernel space should be permitted. - * - * @what: kernel feature being accessed -+ * -+ * @lock_kernel_down -+ * Put the kernel into lock-down mode. -+ * -+ * @where: Where the lock-down is originating from (e.g. command line option) -+ * @level: The lock-down level (can only increase) - */ - union security_list_options { - int (*binder_set_context_mgr)(struct task_struct *mgr); -@@ -1818,6 +1824,7 @@ union security_list_options { - void (*bpf_prog_free_security)(struct bpf_prog_aux *aux); - #endif /* CONFIG_BPF_SYSCALL */ - int (*locked_down)(enum lockdown_reason what); -+ int (*lock_kernel_down)(const char *where, enum lockdown_reason level); - #ifdef CONFIG_PERF_EVENTS - int (*perf_event_open)(struct perf_event_attr *attr, int type); - int (*perf_event_alloc)(struct perf_event *event); -@@ -2060,6 +2067,7 @@ struct security_hook_heads { - struct hlist_head bpf_prog_free_security; - #endif /* CONFIG_BPF_SYSCALL */ - struct hlist_head locked_down; -+ struct hlist_head lock_kernel_down; - #ifdef CONFIG_PERF_EVENTS - struct hlist_head perf_event_open; - struct hlist_head perf_event_alloc; -diff --git a/include/linux/security.h b/include/linux/security.h -index a8d59d612d27..467b9ccdf993 100644 ---- a/include/linux/security.h -+++ b/include/linux/security.h -@@ -442,6 +442,7 @@ int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen); - int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen); - int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen); - int security_locked_down(enum lockdown_reason what); -+int security_lock_kernel_down(const char *where, enum lockdown_reason level); - #else /* CONFIG_SECURITY */ - - static inline int call_blocking_lsm_notifier(enum lsm_event event, void *data) -@@ -1269,6 +1270,10 @@ static inline int security_locked_down(enum lockdown_reason what) - { - return 0; - } -+static inline int security_lock_kernel_down(const char *where, enum lockdown_reason level) -+{ -+ return 0; -+} - #endif /* CONFIG_SECURITY */ - - #ifdef CONFIG_SECURITY_NETWORK -diff --git a/security/lockdown/lockdown.c b/security/lockdown/lockdown.c -index 8a10b43daf74..72a623075749 100644 ---- a/security/lockdown/lockdown.c -+++ b/security/lockdown/lockdown.c -@@ -97,6 +97,7 @@ static int lockdown_is_locked_down(enum lockdown_reason what) - - static struct security_hook_list lockdown_hooks[] __lsm_ro_after_init = { - LSM_HOOK_INIT(locked_down, lockdown_is_locked_down), -+ LSM_HOOK_INIT(lock_kernel_down, lock_kernel_down), - }; - - static int __init lockdown_lsm_init(void) -diff --git a/security/security.c b/security/security.c -index 1bc000f834e2..1506b95427cf 100644 ---- a/security/security.c -+++ b/security/security.c -@@ -2404,6 +2404,12 @@ int security_locked_down(enum lockdown_reason what) - return call_int_hook(locked_down, 0, what); - } - EXPORT_SYMBOL(security_locked_down); -+ -+int security_lock_kernel_down(const char *where, enum lockdown_reason level) -+{ -+ return call_int_hook(lock_kernel_down, 0, where, level); -+} -+EXPORT_SYMBOL(security_lock_kernel_down); - - #ifdef CONFIG_PERF_EVENTS - int security_perf_event_open(struct perf_event_attr *attr, int type) --- -2.21.0 - - -From b5123d0553f4ed5e734f6457696cdd30228d1eee Mon Sep 17 00:00:00 2001 -From: David Howells -Date: Tue, 27 Feb 2018 10:04:55 +0000 -Subject: [PATCH 2/3] efi: Add an EFI_SECURE_BOOT flag to indicate secure - boot mode - -UEFI machines can be booted in Secure Boot mode. Add an EFI_SECURE_BOOT -flag that can be passed to efi_enabled() to find out whether secure boot is -enabled. - -Move the switch-statement in x86's setup_arch() that inteprets the -secure_boot boot parameter to generic code and set the bit there. - -Suggested-by: Ard Biesheuvel -Signed-off-by: David Howells -Reviewed-by: Ard Biesheuvel -cc: linux-efi@vger.kernel.org -[Rebased for context; efi_is_table_address was moved to arch/x86] -Signed-off-by: Jeremy Cline ---- - arch/x86/kernel/setup.c | 14 +----------- - drivers/firmware/efi/Makefile | 1 + - drivers/firmware/efi/secureboot.c | 38 +++++++++++++++++++++++++++++++ - include/linux/efi.h | 18 ++++++++++----- - 4 files changed, 52 insertions(+), 19 deletions(-) - create mode 100644 drivers/firmware/efi/secureboot.c - -diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index 2441b64d061f..1797623b0c3a 100644 ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c -@@ -1126,19 +1126,7 @@ void __init setup_arch(char **cmdline_p) - /* Allocate bigger log buffer */ - setup_log_buf(1); - -- if (efi_enabled(EFI_BOOT)) { -- switch (boot_params.secure_boot) { -- case efi_secureboot_mode_disabled: -- pr_info("Secure boot disabled\n"); -- break; -- case efi_secureboot_mode_enabled: -- pr_info("Secure boot enabled\n"); -- break; -- default: -- pr_info("Secure boot could not be determined\n"); -- break; -- } -- } -+ efi_set_secure_boot(boot_params.secure_boot); - - reserve_initrd(); - -diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile -index 554d795270d9..d2e17e26ac55 100644 ---- a/drivers/firmware/efi/Makefile -+++ b/drivers/firmware/efi/Makefile -@@ -24,6 +24,7 @@ obj-$(CONFIG_EFI_FAKE_MEMMAP) += fake_map.o - obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) += efibc.o - obj-$(CONFIG_EFI_TEST) += test/ - obj-$(CONFIG_EFI_DEV_PATH_PARSER) += dev-path-parser.o -+obj-$(CONFIG_EFI) += secureboot.o - obj-$(CONFIG_APPLE_PROPERTIES) += apple-properties.o - obj-$(CONFIG_EFI_RCI2_TABLE) += rci2-table.o - -diff --git a/drivers/firmware/efi/secureboot.c b/drivers/firmware/efi/secureboot.c -new file mode 100644 -index 000000000000..de0a3714a5d4 ---- /dev/null -+++ b/drivers/firmware/efi/secureboot.c -@@ -0,0 +1,38 @@ -+/* Core kernel secure boot support. -+ * -+ * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. -+ * Written by David Howells (dhowells@redhat.com) -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public Licence -+ * as published by the Free Software Foundation; either version -+ * 2 of the Licence, or (at your option) any later version. -+ */ -+ -+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+#include -+#include -+#include -+ -+/* -+ * Decide what to do when UEFI secure boot mode is enabled. -+ */ -+void __init efi_set_secure_boot(enum efi_secureboot_mode mode) -+{ -+ if (efi_enabled(EFI_BOOT)) { -+ switch (mode) { -+ case efi_secureboot_mode_disabled: -+ pr_info("Secure boot disabled\n"); -+ break; -+ case efi_secureboot_mode_enabled: -+ set_bit(EFI_SECURE_BOOT, &efi.flags); -+ pr_info("Secure boot enabled\n"); -+ break; -+ default: -+ pr_warn("Secure boot could not be determined (mode %u)\n", -+ mode); -+ break; -+ } -+ } -+} -diff --git a/include/linux/efi.h b/include/linux/efi.h -index 5062683d4d08..6ae0e02f461e 100644 ---- a/include/linux/efi.h -+++ b/include/linux/efi.h -@@ -1126,6 +1126,14 @@ extern int __init efi_setup_pcdp_console(char *); - #define EFI_NX_PE_DATA 9 /* Can runtime data regions be mapped non-executable? */ - #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ - #define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */ -+#define EFI_SECURE_BOOT 12 /* Are we in Secure Boot mode? */ -+ -+enum efi_secureboot_mode { -+ efi_secureboot_mode_unset, -+ efi_secureboot_mode_unknown, -+ efi_secureboot_mode_disabled, -+ efi_secureboot_mode_enabled, -+}; - - #ifdef CONFIG_EFI - /* -@@ -1137,6 +1145,8 @@ static inline bool efi_enabled(int feature) - } - extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); - -+extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode); -+ - bool __pure __efi_soft_reserve_enabled(void); - - static inline bool __pure efi_soft_reserve_enabled(void) -@@ -1158,6 +1168,8 @@ efi_capsule_pending(int *reset_type) - return false; - } - -+static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {} -+ - static inline bool efi_soft_reserve_enabled(void) - { - return false; -@@ -1541,12 +1553,6 @@ static inline bool efi_runtime_disabled(void) { return true; } - extern void efi_call_virt_check_flags(unsigned long flags, const char *call); - extern unsigned long efi_call_virt_save_flags(void); - --enum efi_secureboot_mode { -- efi_secureboot_mode_unset, -- efi_secureboot_mode_unknown, -- efi_secureboot_mode_disabled, -- efi_secureboot_mode_enabled, --}; - enum efi_secureboot_mode efi_get_secureboot(void); - - #ifdef CONFIG_RESET_ATTACK_MITIGATION --- -2.24.1 - - -From 15368f76d4997912318d35c52bfeb9041d85098e Mon Sep 17 00:00:00 2001 -From: David Howells -Date: Mon, 30 Sep 2019 21:28:16 +0000 -Subject: [PATCH 3/3] efi: Lock down the kernel if booted in secure boot mode - -UEFI Secure Boot provides a mechanism for ensuring that the firmware -will only load signed bootloaders and kernels. Certain use cases may -also require that all kernel modules also be signed. Add a -configuration option that to lock down the kernel - which includes -requiring validly signed modules - if the kernel is secure-booted. - -Signed-off-by: David Howells -Signed-off-by: Jeremy Cline ---- - arch/x86/kernel/setup.c | 8 ++++++++ - security/lockdown/Kconfig | 13 +++++++++++++ - 2 files changed, 21 insertions(+) - -diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index 1797623b0c3a..fa8ac411bf6e 100644 ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c -@@ -17,6 +17,7 @@ - #include - #include - #include -+#include - #include - - #include -@@ -975,6 +976,13 @@ void __init setup_arch(char **cmdline_p) - if (efi_enabled(EFI_BOOT)) - efi_init(); - -+ efi_set_secure_boot(boot_params.secure_boot); -+ -+#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT -+ if (efi_enabled(EFI_SECURE_BOOT)) -+ security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_INTEGRITY_MAX); -+#endif -+ - dmi_setup(); - - /* -diff --git a/security/lockdown/Kconfig b/security/lockdown/Kconfig -index e84ddf484010..d0501353a4b9 100644 ---- a/security/lockdown/Kconfig -+++ b/security/lockdown/Kconfig -@@ -16,6 +16,19 @@ config SECURITY_LOCKDOWN_LSM_EARLY - subsystem is fully initialised. If enabled, lockdown will - unconditionally be called before any other LSMs. - -+config LOCK_DOWN_IN_EFI_SECURE_BOOT -+ bool "Lock down the kernel in EFI Secure Boot mode" -+ default n -+ depends on EFI && SECURITY_LOCKDOWN_LSM_EARLY -+ help -+ UEFI Secure Boot provides a mechanism for ensuring that the firmware -+ will only load signed bootloaders and kernels. Secure boot mode may -+ be determined from EFI variables provided by the system firmware if -+ not indicated by the boot parameters. -+ -+ Enabling this option results in kernel lockdown being triggered if -+ EFI Secure Boot is set. -+ - choice - prompt "Kernel default lockdown mode" - default LOCK_DOWN_KERNEL_FORCE_NONE --- -2.24.1 diff --git a/filter-aarch64.sh.rhel b/filter-aarch64.sh.rhel index e69de29bb..e088c8e9f 100644 --- a/filter-aarch64.sh.rhel +++ b/filter-aarch64.sh.rhel @@ -0,0 +1,18 @@ +#! /bin/bash + +# This is the aarch64 override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia platform power ssb staging tty uio uwb w1" + +ethdrvs="3com adaptec arc alteon atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell micrel myricom neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti via wiznet xircom" + +drmdrvs="amd arm bridge ast exynos hisilicon i2c imx mgag200 meson msm nouveau panel radeon rockchip tegra sun4i tinydrm vc4" + +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls" diff --git a/filter-modules.sh b/filter-modules.sh index eb246e157..436dcc50a 100755 --- a/filter-modules.sh +++ b/filter-modules.sh @@ -13,6 +13,9 @@ # subsys should be in kernel-modules on all arches, please change the defaults # listed here. +# Overrides is individual modules which need to remain in kernel-core due to deps. +overrides="cec" + # Set the default dirs/modules to filter out driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio uwb w1" @@ -145,6 +148,20 @@ do filter_ko $1 ${mod} done +# Now process the override list to bring those modules back into core +for mod in ${overrides} +do + grep -v -e "/${mod}.ko" k-d.list > k-d.list.tmp + if [ $? -ne 0 ] + then + echo "Couldn't save ${mod}.ko Skipping." + else + grep -e "/${mod}.ko" k-d.list >> $filelist + mv k-d.list.tmp k-d.list + fi + +done + # Go through our generated drivers list and remove the .ko files. We'll # restore them later. for mod in `cat k-d.list` diff --git a/filter-modules.sh.fedora b/filter-modules.sh.fedora index eb246e157..436dcc50a 100755 --- a/filter-modules.sh.fedora +++ b/filter-modules.sh.fedora @@ -13,6 +13,9 @@ # subsys should be in kernel-modules on all arches, please change the defaults # listed here. +# Overrides is individual modules which need to remain in kernel-core due to deps. +overrides="cec" + # Set the default dirs/modules to filter out driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio uwb w1" @@ -145,6 +148,20 @@ do filter_ko $1 ${mod} done +# Now process the override list to bring those modules back into core +for mod in ${overrides} +do + grep -v -e "/${mod}.ko" k-d.list > k-d.list.tmp + if [ $? -ne 0 ] + then + echo "Couldn't save ${mod}.ko Skipping." + else + grep -e "/${mod}.ko" k-d.list >> $filelist + mv k-d.list.tmp k-d.list + fi + +done + # Go through our generated drivers list and remove the .ko files. We'll # restore them later. for mod in `cat k-d.list` diff --git a/filter-modules.sh.rhel b/filter-modules.sh.rhel index e69de29bb..726a6d92c 100644 --- a/filter-modules.sh.rhel +++ b/filter-modules.sh.rhel @@ -0,0 +1,168 @@ +#! /bin/bash +# +# Called as filter-modules.sh list-of-modules Arch + +# This script filters the modules into the kernel-core and kernel-modules +# subpackages. We list out subsystems/subdirs to prune from the installed +# module directory. What is left is put into the kernel-core package. What is +# pruned is contained in the kernel-modules package. +# +# This file contains the default subsys/subdirs to prune from all architectures. +# If an architecture needs to differ, we source a per-arch filter-.sh file +# that contains the set of override lists to be used instead. If a module or +# subsys should be in kernel-modules on all arches, please change the defaults +# listed here. + +# Overrides is individual modules which need to remain in kernel-core due to deps. +overrides="cec" + +# Set the default dirs/modules to filter out +driverdirs="atm auxdisplay bcma bluetooth firewire fmc iio infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb staging tty uio uwb w1" + +chardrvs="mwave pcmcia" + +netdrvs="appletalk can dsa hamradio ieee802154 irda ppp slip usb wireless" + +ethdrvs="3com adaptec alteon amd aquantia atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti wiznet xircom" + +inputdrvs="gameport tablet touchscreen" + +scsidrvs="aacraid aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic hisi_sas isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf" + +usbdrvs="atm image misc serial wusbcore" + +fsdrvs="affs befs coda cramfs ecryptfs hfs hfsplus jfs minix ncpfs nilfs2 ocfs2 reiserfs romfs squashfs sysv ubifs ufs" + +netprots="6lowpan appletalk atm ax25 batman-adv bluetooth can dccp dsa ieee802154 irda l2tp mac80211 mac802154 mpls netrom nfc rds rfkill rose sctp smc wireless" + +drmdrvs="amd ast gma500 i2c i915 mgag200 nouveau radeon via " + +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls parport_serial ism hid-asus" + +# Grab the arch-specific filter list overrides +source ./filter-$2.sh + +filter_dir() { + filelist=$1 + dir=$2 + + grep -v -e "${dir}/" ${filelist} > ${filelist}.tmp + + if [ $? -ne 0 ] + then + echo "Couldn't remove ${dir}. Skipping." + else + grep -e "${dir}/" ${filelist} >> k-d.list + mv ${filelist}.tmp $filelist + fi + + return 0 +} + +filter_ko() { + filelist=$1 + mod=$2 + + grep -v -e "${mod}.ko" ${filelist} > ${filelist}.tmp + + if [ $? -ne 0 ] + then + echo "Couldn't remove ${mod}.ko Skipping." + else + grep -e "${mod}.ko" ${filelist} >> k-d.list + mv ${filelist}.tmp $filelist + fi + + return 0 +} + +# Filter the drivers/ subsystems +for subsys in ${driverdirs} +do + filter_dir $1 drivers/${subsys} +done + +# Filter the networking drivers +for netdrv in ${netdrvs} +do + filter_dir $1 drivers/net/${netdrv} +done + +# Filter the char drivers +for char in ${chardrvs} +do + filter_dir $1 drivers/char/${input} +done + +# Filter the ethernet drivers +for eth in ${ethdrvs} +do + filter_dir $1 drivers/net/ethernet/${eth} +done + +# SCSI +for scsi in ${scsidrvs} +do + filter_dir $1 drivers/scsi/${scsi} +done + +# Input +for input in ${inputdrvs} +do + filter_dir $1 drivers/input/${input} +done + +# USB +for usb in ${usbdrvs} +do + filter_dir $1 drivers/usb/${usb} +done + +# Filesystems +for fs in ${fsdrvs} +do + filter_dir $1 fs/${fs} +done + +# Network protocols +for prot in ${netprots} +do + filter_dir $1 kernel/net/${prot} +done + +# DRM +for drm in ${drmdrvs} +do + filter_dir $1 drivers/gpu/drm/${drm} +done + +# Just kill sound. +filter_dir $1 kernel/sound + +# Now go through and filter any single .ko files that might have deps on the +# things we filtered above +for mod in ${singlemods} +do + filter_ko $1 ${mod} +done + +# Now process the override list to bring those modules back into core +for mod in ${overrides} +do + grep -v -e "/${mod}.ko" k-d.list > k-d.list.tmp + if [ $? -ne 0 ] + then + echo "Couldn't save ${mod}.ko Skipping." + else + grep -e "/${mod}.ko" k-d.list >> $filelist + mv k-d.list.tmp k-d.list + fi + +done + +# Go through our generated drivers list and remove the .ko files. We'll +# restore them later. +for mod in `cat k-d.list` +do + rm -rf $mod +done diff --git a/filter-ppc64le.sh.rhel b/filter-ppc64le.sh.rhel index e69de29bb..d80956d2a 100644 --- a/filter-ppc64le.sh.rhel +++ b/filter-ppc64le.sh.rhel @@ -0,0 +1,14 @@ +#! /bin/bash + +# This is the ppc64le override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia platform power ssb staging tty uio uwb w1" + +singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls" diff --git a/filter-s390x.sh.rhel b/filter-s390x.sh.rhel index e69de29bb..04f7110ad 100644 --- a/filter-s390x.sh.rhel +++ b/filter-s390x.sh.rhel @@ -0,0 +1,12 @@ +#! /bin/bash + +# This is the s390x override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +# Defaults work so no need to override diff --git a/filter-x86_64.sh.rhel b/filter-x86_64.sh.rhel index e69de29bb..1aa80f2e0 100644 --- a/filter-x86_64.sh.rhel +++ b/filter-x86_64.sh.rhel @@ -0,0 +1,12 @@ +#! /bin/bash + +# This is the x86_64 override file for the core/drivers package split. The +# module directories listed here and in the generic list in filter-modules.sh +# will be moved to the resulting kernel-modules package for this arch. +# Anything not listed in those files will be in the kernel-core package. +# +# Please review the default list in filter-modules.sh before making +# modifications to the overrides below. If something should be removed across +# all arches, remove it in the default instead of per-arch. + +# Defaults work so no need to override diff --git a/kernel-aarch64-debug-fedora.config b/kernel-aarch64-debug-fedora.config index 03f9352a4..864d2584c 100644 --- a/kernel-aarch64-debug-fedora.config +++ b/kernel-aarch64-debug-fedora.config @@ -1,5 +1,6 @@ # arm64 # CONFIG_60XX_WDT is not set +CONFIG_64BIT=y CONFIG_6LOWPAN_DEBUGFS=y CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m @@ -94,6 +95,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -185,10 +187,12 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set CONFIG_AK8975=m +CONFIG_AL3010=m # CONFIG_AL3320A is not set CONFIG_AL_FIC=y CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -210,6 +214,7 @@ CONFIG_AMLOGIC_THERMAL=m # CONFIG_APDS9300 is not set CONFIG_APDS9802ALS=m CONFIG_APDS9960=m +CONFIG_APPLE_MFI_FASTCHARGE=m # CONFIG_APPLE_PROPERTIES is not set # CONFIG_APPLICOM is not set CONFIG_APQ_GCC_8084=y @@ -288,6 +293,7 @@ CONFIG_ARCH_ZYNQMP=y CONFIG_ARM64_4K_PAGES=y # CONFIG_ARM64_64K_PAGES is not set CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y +CONFIG_ARM64_AMU_EXTN=y CONFIG_ARM64_CNP=y CONFIG_ARM64_CRYPTO=y CONFIG_ARM64_E0PD=y @@ -538,6 +544,7 @@ CONFIG_BACKLIGHT_QCOM_WLED=m # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -692,6 +699,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y CONFIG_BPF_KPROBE_OVERRIDE=y CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -943,6 +951,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -1117,10 +1126,12 @@ CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m CONFIG_CROS_EC_SPI=m CONFIG_CROS_EC_SYSFS=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_EC_VBC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128=m @@ -1199,10 +1210,12 @@ CONFIG_CRYPTO_DEV_HISI_SEC2=m CONFIG_CRYPTO_DEV_MARVELL_CESA=m # CONFIG_CRYPTO_DEV_MXS_DCP is not set CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m +CONFIG_CRYPTO_DEV_OCTEONTX_CPT=m CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL=y # CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA is not set # CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER is not set CONFIG_CRYPTO_DEV_QCE=m +CONFIG_CRYPTO_DEV_QCE_SW_MAX_LEN=512 CONFIG_CRYPTO_DEV_QCOM_RNG=m CONFIG_CRYPTO_DEV_ROCKCHIP=m CONFIG_CRYPTO_DEV_SAFEXCEL=m @@ -1215,6 +1228,7 @@ CONFIG_CRYPTO_DEV_SUN8I_CE=m # CONFIG_CRYPTO_DEV_SUN8I_SS_DEBUG is not set CONFIG_CRYPTO_DEV_SUN8I_SS=m CONFIG_CRYPTO_DEV_VIRTIO=m +CONFIG_CRYPTO_DEV_ZYNQMP_AES=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y CONFIG_CRYPTO_DRBG_HASH=y @@ -1342,7 +1356,7 @@ CONFIG_DEBUG_INFO=y CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y -CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000 +CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=4096 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KOBJECT is not set @@ -1407,6 +1421,7 @@ CONFIG_DEVFREQ_GOV_POWERSAVE=m CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m CONFIG_DEVFREQ_GOV_USERSPACE=m CONFIG_DEVFREQ_THERMAL=y +CONFIG_DEVICE_PRIVATE=y # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1422,6 +1437,7 @@ CONFIG_DM9102=m CONFIG_DMA_API_DEBUG=y CONFIG_DMA_BCM2835=m # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set CONFIG_DMA_CMA=y # CONFIG_DMADEVICES_DEBUG is not set @@ -1503,6 +1519,7 @@ CONFIG_DRM_BOCHS=m # CONFIG_DRM_CDNS_DSI is not set CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set CONFIG_DRM_DUMB_VGA_DAC=m @@ -1559,7 +1576,10 @@ CONFIG_DRM_NOUVEAU=m CONFIG_DRM_NXP_PTN3460=m CONFIG_DRM_PANEL_ARM_VERSATILE=m # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m @@ -1571,6 +1591,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m CONFIG_DRM_PANEL_LG_LG4573=m CONFIG_DRM_PANEL_LVDS=m # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1579,13 +1600,13 @@ CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set CONFIG_DRM_PANEL_RAYDIUM_RM68200=m -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m CONFIG_DRM_PANEL_SAMSUNG_LD9040=m # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m CONFIG_DRM_PANEL_SEIKO_43WVF1G=m CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m @@ -1593,6 +1614,7 @@ CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m CONFIG_DRM_PANEL_SIMPLE=m CONFIG_DRM_PANEL_SITRONIX_ST7701=m +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1600,11 +1622,11 @@ CONFIG_DRM_PANEL_SITRONIX_ST7701=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m -CONFIG_DRM_PANEL_XINGBANGDA_XBD599=m # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y CONFIG_DRM_PANFROST=m CONFIG_DRM_PARADE_PS8622=m +CONFIG_DRM_PARADE_PS8640=m CONFIG_DRM_PL111=m CONFIG_DRM_QXL=m # CONFIG_DRM_R128 is not set @@ -1617,6 +1639,7 @@ CONFIG_DRM_ROCKCHIP=m # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m CONFIG_DRM_SUN4I_BACKEND=m CONFIG_DRM_SUN4I_HDMI_CEC=y CONFIG_DRM_SUN4I_HDMI=m @@ -1629,10 +1652,13 @@ CONFIG_DRM_SUN8I_MIXER=m CONFIG_DRM_TEGRA=m CONFIG_DRM_TEGRA_STAGING=y # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m CONFIG_DRM_TOSHIBA_TC358767=m +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_UDL=m CONFIG_DRM_V3D=m # CONFIG_DRM_VBOXVIDEO is not set @@ -1761,6 +1787,7 @@ CONFIG_ECRYPT_FS=m # CONFIG_ECRYPT_FS_MESSAGING is not set CONFIG_EDAC_BLUEFIELD=m # CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_DMC520=m CONFIG_EDAC_GHES=y CONFIG_EDAC_LAYERSCAPE=m CONFIG_EDAC_LEGACY_SYSFS=y @@ -1817,6 +1844,8 @@ CONFIG_ETHOC=m CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set # CONFIG_EXPOLINE_AUTO is not set CONFIG_EXPOLINE_FULL=y @@ -1852,6 +1881,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y CONFIG_FAIL_FUNCTION=y @@ -2080,6 +2110,7 @@ CONFIG_GIANFAR=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set # CONFIG_GPIO_74X164 is not set # CONFIG_GPIO_74XX_MMIO is not set @@ -2110,6 +2141,7 @@ CONFIG_GPIO_MAX77620=y CONFIG_GPIO_MAX77650=m CONFIG_GPIO_MB86S7X=m # CONFIG_GPIO_MC33880 is not set +CONFIG_GPIO_MLXBF2=m CONFIG_GPIO_MLXBF=m # CONFIG_GPIO_MOCKUP is not set CONFIG_GPIO_MOXTET=m @@ -2195,7 +2227,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -2206,6 +2238,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -2227,6 +2260,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -2294,6 +2328,7 @@ CONFIG_HISILICON_LPC=y CONFIG_HISI_PMU=y CONFIG_HISI_THERMAL=m CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set CONFIG_HOLTEK_FF=y @@ -2450,6 +2485,7 @@ CONFIG_I6300ESB_WDT=m CONFIG_I82092=m # CONFIG_IAQCORE is not set CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set # CONFIG_IDE is not set @@ -2472,6 +2508,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2540,6 +2577,7 @@ CONFIG_IMA=y CONFIG_IMX2_WDT=m CONFIG_IMX7D_ADC=m # CONFIG_IMX7ULP_WDT is not set +CONFIG_IMX8MM_THERMAL=m # CONFIG_IMX_DMA is not set CONFIG_IMX_DSP=m CONFIG_IMX_GPCV2_PM_DOMAINS=y @@ -2548,6 +2586,7 @@ CONFIG_IMX_GPCV2=y # CONFIG_IMX_IRQSTEER is not set CONFIG_IMX_MBOX=m CONFIG_IMX_REMOTEPROC=m +CONFIG_IMX_SC_THERMAL=m CONFIG_IMX_SCU_PD=y CONFIG_IMX_SCU_SOC=y CONFIG_IMX_SCU=y @@ -2687,7 +2726,9 @@ CONFIG_INTEL_XWAY_PHY=m CONFIG_INTERCONNECT=m CONFIG_INTERCONNECT_QCOM_MSM8916=m # CONFIG_INTERCONNECT_QCOM_MSM8974 is not set +CONFIG_INTERCONNECT_QCOM_OSM_L3=m # CONFIG_INTERCONNECT_QCOM_QCS404 is not set +CONFIG_INTERCONNECT_QCOM_SC7180=m CONFIG_INTERCONNECT_QCOM_SDM845=m CONFIG_INTERCONNECT_QCOM=y # CONFIG_INTERVAL_TREE_TEST is not set @@ -2808,6 +2849,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -3258,6 +3300,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_MAG3110=m CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX_TEST is not set @@ -3323,11 +3366,14 @@ CONFIG_MDIO_DEVICE=y CONFIG_MDIO_GPIO=m CONFIG_MDIO_HISI_FEMAC=m CONFIG_MDIO_I2C=m +CONFIG_MDIO_IPQ8064=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_SUN4I is not set CONFIG_MDIO_THUNDER=m CONFIG_MDIO_XGENE=m +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m # CONFIG_MDM_GCC_9615 is not set # CONFIG_MDM_LCC_9615 is not set @@ -3367,6 +3413,7 @@ CONFIG_MEMCG=y CONFIG_MEMORY_FAILURE=y CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTREMOVE=y CONFIG_MEMORY=y # CONFIG_MEMSTICK_DEBUG is not set CONFIG_MEMSTICK_JMICRON_38X=m @@ -3390,6 +3437,7 @@ CONFIG_MESON_IRQ_GPIO=y # CONFIG_MESON_MX_EFUSE is not set # CONFIG_MESON_MX_SOCINFO is not set CONFIG_MESON_SARADC=m +CONFIG_MESON_SECURE_PM_DOMAINS=y CONFIG_MESON_SM=y # CONFIG_MESON_WATCHDOG is not set CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 @@ -3426,6 +3474,7 @@ CONFIG_MFD_CROS_EC_DEV=m # CONFIG_MFD_DLN2 is not set CONFIG_MFD_HI6421_PMIC=m CONFIG_MFD_HI655X_PMIC=m +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -3505,6 +3554,7 @@ CONFIG_MFD_WL1273_CORE=m # CONFIG_MFD_WM8994 is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m # CONFIG_MICREL_KS8995MA is not set CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m @@ -3536,6 +3586,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -3579,6 +3630,7 @@ CONFIG_MMC_DW=m CONFIG_MMC_DW_PCI=m CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_ROCKCHIP=m +CONFIG_MMC_HSQ=m CONFIG_MMC_MESON_GX=m CONFIG_MMC_MESON_MX_SDIO=m # CONFIG_MMC_MTK is not set @@ -4361,6 +4413,8 @@ CONFIG_NULL_TTY=m CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_NUMA_BALANCING=y CONFIG_NUMA=y +CONFIG_NVDIMM_DAX=y +CONFIG_NVDIMM_PFN=y CONFIG_NVME_FC=m CONFIG_NVME_HWMON=y # CONFIG_NVMEM_IMX_IIM is not set @@ -4394,6 +4448,7 @@ CONFIG_OCFS2_FS_O2CB=m CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m CONFIG_OCTEONTX2_AF=m CONFIG_OCTEONTX2_PF=m +CONFIG_OCTEONTX2_VF=m CONFIG_OF_ADDRESS=y CONFIG_OF_DYNAMIC=y CONFIG_OF_EARLY_FLATTREE=y @@ -4529,15 +4584,19 @@ CONFIG_PCIE_DW_HOST=y CONFIG_PCIE_DW_PLAT_HOST=y CONFIG_PCIE_DW=y CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y CONFIG_PCIE_HISI_STB=y CONFIG_PCIE_KIRIN=y -# CONFIG_PCIE_MOBIVEIL is not set +CONFIG_PCIE_LAYERSCAPE_GEN4=y +CONFIG_PCIE_MOBIVEIL_PLAT=y +CONFIG_PCIE_MOBIVEIL=y # CONFIG_PCI_ENDPOINT is not set # CONFIG_PCI_ENDPOINT_TEST is not set CONFIG_PCIEPORTBUS=y CONFIG_PCIE_PTM=y CONFIG_PCIE_QCOM=y # CONFIG_PCIE_ROCKCHIP_HOST is not set +CONFIG_PCIE_TEGRA194_HOST=m CONFIG_PCIE_TEGRA194=m CONFIG_PCIE_XILINX_NWL=y CONFIG_PCIE_XILINX=y @@ -4596,6 +4655,7 @@ CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PHY_CADENCE_DPHY=m CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_DM816X_USB is not set CONFIG_PHY_FSL_IMX8MQ_USB=m @@ -4608,6 +4668,8 @@ CONFIG_PHYLIB=y CONFIG_PHYLINK=m # CONFIG_PHY_MAPPHONE_MDM6600 is not set CONFIG_PHY_MESON8B_USB2=m +CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y +CONFIG_PHY_MESON_AXG_PCIE=m CONFIG_PHY_MESON_G12A_USB2=y CONFIG_PHY_MESON_G12A_USB3_PCIE=m CONFIG_PHY_MESON_GXL_USB2=m @@ -4628,8 +4690,10 @@ CONFIG_PHY_QCOM_QMP=m CONFIG_PHY_QCOM_QUSB2=m CONFIG_PHY_QCOM_UFS_14NM=m CONFIG_PHY_QCOM_UFS=m +CONFIG_PHY_QCOM_USB_HS_28NM=m CONFIG_PHY_QCOM_USB_HSIC=m CONFIG_PHY_QCOM_USB_HS=m +CONFIG_PHY_QCOM_USB_SS=m CONFIG_PHY_ROCKCHIP_DPHY_RX0=m CONFIG_PHY_ROCKCHIP_DP=m CONFIG_PHY_ROCKCHIP_EMMC=m @@ -4671,6 +4735,7 @@ CONFIG_PINCTRL_IMX8MQ=y CONFIG_PINCTRL_IMX8QM=y CONFIG_PINCTRL_IMX8QXP=y # CONFIG_PINCTRL_IPQ4019 is not set +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8064 is not set # CONFIG_PINCTRL_IPQ8074 is not set CONFIG_PINCTRL_MAX77620=y @@ -4827,6 +4892,7 @@ CONFIG_PROC_VMCORE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_PROFILING=y CONFIG_PROVE_LOCKING=y +# CONFIG_PROVE_RAW_LOCK_NESTING is not set CONFIG_PROVE_RCU=y CONFIG_PSAMPLE=m # CONFIG_PSI_DEFAULT_DISABLED is not set @@ -4848,6 +4914,7 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_PCH=m @@ -4856,6 +4923,7 @@ CONFIG_PTP_1588_CLOCK=y CONFIG_PVPANIC=m CONFIG_PWM_BCM2835=m CONFIG_PWM_CROS_EC=m +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m # CONFIG_PWM_IMX1 is not set @@ -4899,6 +4967,7 @@ CONFIG_QCOM_HFPLL=m CONFIG_QCOM_HIDMA=m CONFIG_QCOM_HIDMA_MGMT=m CONFIG_QCOM_IOMMU=y +CONFIG_QCOM_IPA=m CONFIG_QCOM_IRQ_COMBINER=y CONFIG_QCOM_L2_PMU=y CONFIG_QCOM_L3_PMU=y @@ -5072,7 +5141,9 @@ CONFIG_REGULATOR_MAX77802=m # CONFIG_REGULATOR_MAX8952 is not set CONFIG_REGULATOR_MAX8973=m # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m CONFIG_REGULATOR_MP8859=m +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set CONFIG_REGULATOR_PFUZE100=m @@ -5130,6 +5201,8 @@ CONFIG_RESET_TI_SYSCON=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -5148,7 +5221,7 @@ CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m # CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y -# CONFIG_ROCKCHIP_CDN_DP is not set +CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y CONFIG_ROCKCHIP_EFUSE=m @@ -5391,7 +5464,9 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_SCHED_SMT=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TRACER=y +# CONFIG_SC_MSS_7180 is not set # CONFIG_SCR24X is not set # CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_3W_SAS is not set @@ -5561,6 +5636,7 @@ CONFIG_SENSORS_ARM_SCPI=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_DME1737=m @@ -5773,9 +5849,12 @@ CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SERIAL_QCOM_GENI_CONSOLE=y CONFIG_SERIAL_QCOM_GENI=y # CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set # CONFIG_SERIAL_ST_ASC is not set CONFIG_SERIAL_TEGRA_TCU_CONSOLE=y CONFIG_SERIAL_TEGRA_TCU=y @@ -5844,6 +5923,7 @@ CONFIG_SMC_DIAG=m CONFIG_SMC=m # CONFIG_SM_FTL is not set CONFIG_SM_GCC_8150=y +CONFIG_SM_GCC_8250=m CONFIG_SMP=y CONFIG_SMSC911X=m CONFIG_SMSC9420=m @@ -5874,6 +5954,7 @@ CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m CONFIG_SND_BCM2835=m CONFIG_SND_BCM2835_SOC_I2S=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -5966,6 +6047,7 @@ CONFIG_SND=m CONFIG_SND_MAESTRO3_INPUT=y CONFIG_SND_MAESTRO3=m CONFIG_SND_MAX_CARDS=32 +CONFIG_SND_MESON_AIU=m CONFIG_SND_MESON_AXG_FRDDR=m CONFIG_SND_MESON_AXG_PDM=m CONFIG_SND_MESON_AXG_SOUND_CARD=m @@ -5974,7 +6056,9 @@ CONFIG_SND_MESON_AXG_SPDIFOUT=m CONFIG_SND_MESON_AXG_TDMIN=m CONFIG_SND_MESON_AXG_TDMOUT=m CONFIG_SND_MESON_AXG_TODDR=m +CONFIG_SND_MESON_G12A_TOACODEC=m CONFIG_SND_MESON_G12A_TOHDMITX=m +CONFIG_SND_MESON_GX_SOUND_CARD=m CONFIG_SND_MIA=m CONFIG_SND_MIXART=m CONFIG_SND_MIXER_OSS=m @@ -6090,6 +6174,7 @@ CONFIG_SND_SOC_MAX98373=m # CONFIG_SND_SOC_MAX9860 is not set CONFIG_SND_SOC_MAX9867=m CONFIG_SND_SOC_MAX98927=m +CONFIG_SND_SOC_MESON_T9015=m CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m CONFIG_SND_SOC_MSM8996=m @@ -6135,6 +6220,7 @@ CONFIG_SND_SOC_RT5660=m CONFIG_SND_SOC_RT5663=m CONFIG_SND_SOC_RT5677=m CONFIG_SND_SOC_RT5677_SPI=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -6144,9 +6230,12 @@ CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set +CONFIG_SND_SOC_SOF_IMX8_SUPPORT=y +CONFIG_SND_SOC_SOF_IMX_TOPLEVEL=y # CONFIG_SND_SOC_SOF_NOCODEC is not set # CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set -# CONFIG_SND_SOC_SOF_OF is not set +CONFIG_SND_SOC_SOF_OF=m CONFIG_SND_SOC_SOF_PCI=m # CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set CONFIG_SND_SOC_SOF_TOPLEVEL=y @@ -6184,6 +6273,7 @@ CONFIG_SND_SOC_TEGRA_SGTL5000=m # CONFIG_SND_SOC_TEGRA_WM8903 is not set # CONFIG_SND_SOC_TEGRA_WM9712 is not set # CONFIG_SND_SOC_TFA9879 is not set +CONFIG_SND_SOC_TLV320ADCX140=m CONFIG_SND_SOC_TLV320AIC23_I2C=m CONFIG_SND_SOC_TLV320AIC23=m CONFIG_SND_SOC_TLV320AIC23_SPI=m @@ -6262,6 +6352,7 @@ CONFIG_SND_YMFPCI=m CONFIG_SNI_NETSEC=m # CONFIG_SOC_BRCMSTB is not set # CONFIG_SOC_CAMERA is not set +CONFIG_SOC_IMX8M=y CONFIG_SOCIONEXT_SYNQUACER_PREITS=y CONFIG_SOC_TEGRA_FLOWCTRL=y # CONFIG_SOC_TI is not set @@ -6295,6 +6386,7 @@ CONFIG_SPI_DESIGNWARE=m # CONFIG_SPI_DW_MID_DMA is not set CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DW_PCI=m +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_DSPI=m CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m @@ -6310,6 +6402,7 @@ CONFIG_SPI_MEM=y CONFIG_SPI_MESON_SPICC=m CONFIG_SPI_MESON_SPIFC=m # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -6409,6 +6502,7 @@ CONFIG_SUN50I_DE2_BUS=y CONFIG_SUN50I_ERRATUM_UNKNOWN1=y CONFIG_SUN50I_H6_CCU=y CONFIG_SUN50I_H6_R_CCU=y +CONFIG_SUN6I_MSGBOX=y # CONFIG_SUN8I_A83T_CCU is not set CONFIG_SUN8I_DE2_CCU=y CONFIG_SUN8I_H3_CCU=y @@ -6548,8 +6642,10 @@ CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=y # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +CONFIG_TEST_LOCKUP=m # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -6615,6 +6711,7 @@ CONFIG_TIGON3=m CONFIG_TINYDRM_HX8357D=m CONFIG_TINYDRM_ILI9225=m CONFIG_TINYDRM_ILI9341=m +CONFIG_TINYDRM_ILI9486=m CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_REPAPER=m CONFIG_TINYDRM_ST7586=m @@ -6766,6 +6863,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set @@ -7007,6 +7105,7 @@ CONFIG_USB_M5602=m # CONFIG_USB_M66592 is not set CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -7075,6 +7174,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597 is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m @@ -7212,6 +7312,9 @@ CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VALIDATE_FS_PARSER=y # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m CONFIG_VDSO=y CONFIG_VEML6030=m CONFIG_VEML6070=m @@ -7237,8 +7340,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 CONFIG_VGACON_SOFT_SCROLLBACK=y # CONFIG_VGA_CONSOLE is not set # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -7283,6 +7388,7 @@ CONFIG_VIDEO_GO7007_LOADER=m CONFIG_VIDEO_GO7007=m CONFIG_VIDEO_GO7007_USB=m CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m +CONFIG_VIDEO_HANTRO_IMX8M=y CONFIG_VIDEO_HANTRO=m CONFIG_VIDEO_HANTRO_ROCKCHIP=y CONFIG_VIDEO_HDPVR=m @@ -7324,6 +7430,7 @@ CONFIG_VIDEO_STK1160=m CONFIG_VIDEO_SUN4I_CSI=m CONFIG_VIDEO_SUN6I_CSI=m CONFIG_VIDEO_SUN8I_DEINTERLACE=m +CONFIG_VIDEO_SUN8I_ROTATE=m CONFIG_VIDEO_SUNXI_CEDRUS=m CONFIG_VIDEO_SUNXI=y CONFIG_VIDEO_TEGRA_HDMI_CEC=m @@ -7335,7 +7442,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -7356,6 +7463,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -7513,6 +7621,7 @@ CONFIG_XGENE_SLIMPRO_MBOX=m # CONFIG_XILINX_AXI_EMAC is not set # CONFIG_XILINX_DMA is not set CONFIG_XILINX_GMII2RGMII=m +CONFIG_XILINX_LL_TEMAC=m CONFIG_XILINX_PR_DECOUPLER=m CONFIG_XILINX_SDFEC=m CONFIG_XILINX_VCU=m @@ -7542,6 +7651,7 @@ CONFIG_ZEROPLUS_FF=y CONFIG_ZISOFS=y CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_INFLATE=y +CONFIG_ZONE_DEVICE=y # CONFIG_ZONEFS_FS is not set CONFIG_ZOPT2201=m # CONFIG_ZPA2326 is not set @@ -7550,7 +7660,17 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set # CONFIG_ZYNQMP_FIRMWARE_DEBUG is not set CONFIG_ZYNQMP_FIRMWARE=y diff --git a/kernel-aarch64-fedora.config b/kernel-aarch64-fedora.config index b706406c7..3b8207cce 100644 --- a/kernel-aarch64-fedora.config +++ b/kernel-aarch64-fedora.config @@ -1,5 +1,6 @@ # arm64 # CONFIG_60XX_WDT is not set +CONFIG_64BIT=y CONFIG_6LOWPAN_DEBUGFS=y CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m @@ -94,6 +95,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -185,10 +187,12 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set CONFIG_AK8975=m +CONFIG_AL3010=m # CONFIG_AL3320A is not set CONFIG_AL_FIC=y CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -210,6 +214,7 @@ CONFIG_AMLOGIC_THERMAL=m # CONFIG_APDS9300 is not set CONFIG_APDS9802ALS=m CONFIG_APDS9960=m +CONFIG_APPLE_MFI_FASTCHARGE=m # CONFIG_APPLE_PROPERTIES is not set # CONFIG_APPLICOM is not set CONFIG_APQ_GCC_8084=y @@ -288,6 +293,7 @@ CONFIG_ARCH_ZYNQMP=y CONFIG_ARM64_4K_PAGES=y # CONFIG_ARM64_64K_PAGES is not set CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y +CONFIG_ARM64_AMU_EXTN=y CONFIG_ARM64_CNP=y CONFIG_ARM64_CRYPTO=y CONFIG_ARM64_E0PD=y @@ -538,6 +544,7 @@ CONFIG_BACKLIGHT_QCOM_WLED=m # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -692,6 +699,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y # CONFIG_BPF_KPROBE_OVERRIDE is not set CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -943,6 +951,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -1117,10 +1126,12 @@ CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m CONFIG_CROS_EC_SPI=m CONFIG_CROS_EC_SYSFS=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_EC_VBC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128=m @@ -1199,10 +1210,12 @@ CONFIG_CRYPTO_DEV_HISI_SEC2=m CONFIG_CRYPTO_DEV_MARVELL_CESA=m # CONFIG_CRYPTO_DEV_MXS_DCP is not set CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m +CONFIG_CRYPTO_DEV_OCTEONTX_CPT=m CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL=y # CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA is not set # CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER is not set CONFIG_CRYPTO_DEV_QCE=m +CONFIG_CRYPTO_DEV_QCE_SW_MAX_LEN=512 CONFIG_CRYPTO_DEV_QCOM_RNG=m CONFIG_CRYPTO_DEV_ROCKCHIP=m CONFIG_CRYPTO_DEV_SAFEXCEL=m @@ -1215,6 +1228,7 @@ CONFIG_CRYPTO_DEV_SUN8I_CE=m # CONFIG_CRYPTO_DEV_SUN8I_SS_DEBUG is not set CONFIG_CRYPTO_DEV_SUN8I_SS=m CONFIG_CRYPTO_DEV_VIRTIO=m +CONFIG_CRYPTO_DEV_ZYNQMP_AES=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y CONFIG_CRYPTO_DRBG_HASH=y @@ -1400,6 +1414,7 @@ CONFIG_DEVFREQ_GOV_POWERSAVE=m CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m CONFIG_DEVFREQ_GOV_USERSPACE=m CONFIG_DEVFREQ_THERMAL=y +CONFIG_DEVICE_PRIVATE=y # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1415,6 +1430,7 @@ CONFIG_DM9102=m # CONFIG_DMA_API_DEBUG_SG is not set CONFIG_DMA_BCM2835=m # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set CONFIG_DMA_CMA=y # CONFIG_DMADEVICES_DEBUG is not set @@ -1495,6 +1511,7 @@ CONFIG_DRM_BOCHS=m # CONFIG_DRM_CDNS_DSI is not set CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set CONFIG_DRM_DUMB_VGA_DAC=m @@ -1551,7 +1568,10 @@ CONFIG_DRM_NOUVEAU=m CONFIG_DRM_NXP_PTN3460=m CONFIG_DRM_PANEL_ARM_VERSATILE=m # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m @@ -1563,6 +1583,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m CONFIG_DRM_PANEL_LG_LG4573=m CONFIG_DRM_PANEL_LVDS=m # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1571,13 +1592,13 @@ CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set CONFIG_DRM_PANEL_RAYDIUM_RM68200=m -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m CONFIG_DRM_PANEL_SAMSUNG_LD9040=m # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m CONFIG_DRM_PANEL_SEIKO_43WVF1G=m CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m @@ -1585,6 +1606,7 @@ CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m CONFIG_DRM_PANEL_SIMPLE=m CONFIG_DRM_PANEL_SITRONIX_ST7701=m +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1592,11 +1614,11 @@ CONFIG_DRM_PANEL_SITRONIX_ST7701=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m -CONFIG_DRM_PANEL_XINGBANGDA_XBD599=m # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y CONFIG_DRM_PANFROST=m CONFIG_DRM_PARADE_PS8622=m +CONFIG_DRM_PARADE_PS8640=m CONFIG_DRM_PL111=m CONFIG_DRM_QXL=m # CONFIG_DRM_R128 is not set @@ -1609,6 +1631,7 @@ CONFIG_DRM_ROCKCHIP=m # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m CONFIG_DRM_SUN4I_BACKEND=m CONFIG_DRM_SUN4I_HDMI_CEC=y CONFIG_DRM_SUN4I_HDMI=m @@ -1621,10 +1644,13 @@ CONFIG_DRM_SUN8I_MIXER=m CONFIG_DRM_TEGRA=m CONFIG_DRM_TEGRA_STAGING=y # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m CONFIG_DRM_TOSHIBA_TC358767=m +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_UDL=m CONFIG_DRM_V3D=m # CONFIG_DRM_VBOXVIDEO is not set @@ -1753,6 +1779,7 @@ CONFIG_ECRYPT_FS=m # CONFIG_ECRYPT_FS_MESSAGING is not set CONFIG_EDAC_BLUEFIELD=m # CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_DMC520=m CONFIG_EDAC_GHES=y CONFIG_EDAC_LAYERSCAPE=m CONFIG_EDAC_LEGACY_SYSFS=y @@ -1809,6 +1836,8 @@ CONFIG_ETHOC=m CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set # CONFIG_EXPOLINE_AUTO is not set CONFIG_EXPOLINE_FULL=y @@ -1844,6 +1873,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y # CONFIG_FAIL_FUTEX is not set @@ -2064,6 +2094,7 @@ CONFIG_GIANFAR=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set # CONFIG_GPIO_74X164 is not set # CONFIG_GPIO_74XX_MMIO is not set @@ -2094,6 +2125,7 @@ CONFIG_GPIO_MAX77620=y CONFIG_GPIO_MAX77650=m CONFIG_GPIO_MB86S7X=m # CONFIG_GPIO_MC33880 is not set +CONFIG_GPIO_MLXBF2=m CONFIG_GPIO_MLXBF=m # CONFIG_GPIO_MOCKUP is not set CONFIG_GPIO_MOXTET=m @@ -2179,7 +2211,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -2190,6 +2222,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -2211,6 +2244,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -2278,6 +2312,7 @@ CONFIG_HISILICON_LPC=y CONFIG_HISI_PMU=y CONFIG_HISI_THERMAL=m CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set CONFIG_HOLTEK_FF=y @@ -2434,6 +2469,7 @@ CONFIG_I6300ESB_WDT=m CONFIG_I82092=m # CONFIG_IAQCORE is not set CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set # CONFIG_IDE is not set @@ -2456,6 +2492,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2524,6 +2561,7 @@ CONFIG_IMA=y CONFIG_IMX2_WDT=m CONFIG_IMX7D_ADC=m # CONFIG_IMX7ULP_WDT is not set +CONFIG_IMX8MM_THERMAL=m # CONFIG_IMX_DMA is not set CONFIG_IMX_DSP=m CONFIG_IMX_GPCV2_PM_DOMAINS=y @@ -2532,6 +2570,7 @@ CONFIG_IMX_GPCV2=y # CONFIG_IMX_IRQSTEER is not set CONFIG_IMX_MBOX=m CONFIG_IMX_REMOTEPROC=m +CONFIG_IMX_SC_THERMAL=m CONFIG_IMX_SCU_PD=y CONFIG_IMX_SCU_SOC=y CONFIG_IMX_SCU=y @@ -2671,7 +2710,9 @@ CONFIG_INTEL_XWAY_PHY=m CONFIG_INTERCONNECT=m CONFIG_INTERCONNECT_QCOM_MSM8916=m # CONFIG_INTERCONNECT_QCOM_MSM8974 is not set +CONFIG_INTERCONNECT_QCOM_OSM_L3=m # CONFIG_INTERCONNECT_QCOM_QCS404 is not set +CONFIG_INTERCONNECT_QCOM_SC7180=m CONFIG_INTERCONNECT_QCOM_SDM845=m CONFIG_INTERCONNECT_QCOM=y # CONFIG_INTERVAL_TREE_TEST is not set @@ -2792,6 +2833,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -3240,6 +3282,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_MAG3110=m CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX_TEST is not set @@ -3304,11 +3347,14 @@ CONFIG_MDIO_DEVICE=y CONFIG_MDIO_GPIO=m CONFIG_MDIO_HISI_FEMAC=m CONFIG_MDIO_I2C=m +CONFIG_MDIO_IPQ8064=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_SUN4I is not set CONFIG_MDIO_THUNDER=m CONFIG_MDIO_XGENE=m +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m # CONFIG_MDM_GCC_9615 is not set # CONFIG_MDM_LCC_9615 is not set @@ -3348,6 +3394,7 @@ CONFIG_MEMCG=y CONFIG_MEMORY_FAILURE=y CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTREMOVE=y CONFIG_MEMORY=y # CONFIG_MEMSTICK_DEBUG is not set CONFIG_MEMSTICK_JMICRON_38X=m @@ -3371,6 +3418,7 @@ CONFIG_MESON_IRQ_GPIO=y # CONFIG_MESON_MX_EFUSE is not set # CONFIG_MESON_MX_SOCINFO is not set CONFIG_MESON_SARADC=m +CONFIG_MESON_SECURE_PM_DOMAINS=y CONFIG_MESON_SM=y # CONFIG_MESON_WATCHDOG is not set CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 @@ -3407,6 +3455,7 @@ CONFIG_MFD_CROS_EC_DEV=m # CONFIG_MFD_DLN2 is not set CONFIG_MFD_HI6421_PMIC=m CONFIG_MFD_HI655X_PMIC=m +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -3486,6 +3535,7 @@ CONFIG_MFD_WL1273_CORE=m # CONFIG_MFD_WM8994 is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m # CONFIG_MICREL_KS8995MA is not set CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m @@ -3517,6 +3567,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -3560,6 +3611,7 @@ CONFIG_MMC_DW=m CONFIG_MMC_DW_PCI=m CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_ROCKCHIP=m +CONFIG_MMC_HSQ=m CONFIG_MMC_MESON_GX=m CONFIG_MMC_MESON_MX_SDIO=m # CONFIG_MMC_MTK is not set @@ -4341,6 +4393,8 @@ CONFIG_NULL_TTY=m CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_NUMA_BALANCING=y CONFIG_NUMA=y +CONFIG_NVDIMM_DAX=y +CONFIG_NVDIMM_PFN=y CONFIG_NVME_FC=m CONFIG_NVME_HWMON=y # CONFIG_NVMEM_IMX_IIM is not set @@ -4374,6 +4428,7 @@ CONFIG_OCFS2_FS_O2CB=m CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m CONFIG_OCTEONTX2_AF=m CONFIG_OCTEONTX2_PF=m +CONFIG_OCTEONTX2_VF=m CONFIG_OF_ADDRESS=y CONFIG_OF_DYNAMIC=y CONFIG_OF_EARLY_FLATTREE=y @@ -4509,15 +4564,19 @@ CONFIG_PCIE_DW_HOST=y CONFIG_PCIE_DW_PLAT_HOST=y CONFIG_PCIE_DW=y CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y CONFIG_PCIE_HISI_STB=y CONFIG_PCIE_KIRIN=y -# CONFIG_PCIE_MOBIVEIL is not set +CONFIG_PCIE_LAYERSCAPE_GEN4=y +CONFIG_PCIE_MOBIVEIL_PLAT=y +CONFIG_PCIE_MOBIVEIL=y # CONFIG_PCI_ENDPOINT is not set # CONFIG_PCI_ENDPOINT_TEST is not set CONFIG_PCIEPORTBUS=y CONFIG_PCIE_PTM=y CONFIG_PCIE_QCOM=y # CONFIG_PCIE_ROCKCHIP_HOST is not set +CONFIG_PCIE_TEGRA194_HOST=m CONFIG_PCIE_TEGRA194=m CONFIG_PCIE_XILINX_NWL=y CONFIG_PCIE_XILINX=y @@ -4576,6 +4635,7 @@ CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PHY_CADENCE_DPHY=m CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_DM816X_USB is not set CONFIG_PHY_FSL_IMX8MQ_USB=m @@ -4588,6 +4648,8 @@ CONFIG_PHYLIB=y CONFIG_PHYLINK=m # CONFIG_PHY_MAPPHONE_MDM6600 is not set CONFIG_PHY_MESON8B_USB2=m +CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y +CONFIG_PHY_MESON_AXG_PCIE=m CONFIG_PHY_MESON_G12A_USB2=y CONFIG_PHY_MESON_G12A_USB3_PCIE=m CONFIG_PHY_MESON_GXL_USB2=m @@ -4608,8 +4670,10 @@ CONFIG_PHY_QCOM_QMP=m CONFIG_PHY_QCOM_QUSB2=m CONFIG_PHY_QCOM_UFS_14NM=m CONFIG_PHY_QCOM_UFS=m +CONFIG_PHY_QCOM_USB_HS_28NM=m CONFIG_PHY_QCOM_USB_HSIC=m CONFIG_PHY_QCOM_USB_HS=m +CONFIG_PHY_QCOM_USB_SS=m CONFIG_PHY_ROCKCHIP_DPHY_RX0=m CONFIG_PHY_ROCKCHIP_DP=m CONFIG_PHY_ROCKCHIP_EMMC=m @@ -4651,6 +4715,7 @@ CONFIG_PINCTRL_IMX8MQ=y CONFIG_PINCTRL_IMX8QM=y CONFIG_PINCTRL_IMX8QXP=y # CONFIG_PINCTRL_IPQ4019 is not set +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8064 is not set # CONFIG_PINCTRL_IPQ8074 is not set CONFIG_PINCTRL_MAX77620=y @@ -4807,6 +4872,7 @@ CONFIG_PROC_VMCORE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_PROFILING=y # CONFIG_PROVE_LOCKING is not set +# CONFIG_PROVE_RAW_LOCK_NESTING is not set CONFIG_PSAMPLE=m # CONFIG_PSI_DEFAULT_DISABLED is not set CONFIG_PSI=y @@ -4827,6 +4893,7 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_PCH=m @@ -4835,6 +4902,7 @@ CONFIG_PTP_1588_CLOCK=y CONFIG_PVPANIC=m CONFIG_PWM_BCM2835=m CONFIG_PWM_CROS_EC=m +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m # CONFIG_PWM_IMX1 is not set @@ -4878,6 +4946,7 @@ CONFIG_QCOM_HFPLL=m CONFIG_QCOM_HIDMA=m CONFIG_QCOM_HIDMA_MGMT=m CONFIG_QCOM_IOMMU=y +CONFIG_QCOM_IPA=m CONFIG_QCOM_IRQ_COMBINER=y CONFIG_QCOM_L2_PMU=y CONFIG_QCOM_L3_PMU=y @@ -5051,7 +5120,9 @@ CONFIG_REGULATOR_MAX77802=m # CONFIG_REGULATOR_MAX8952 is not set CONFIG_REGULATOR_MAX8973=m # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m CONFIG_REGULATOR_MP8859=m +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set CONFIG_REGULATOR_PFUZE100=m @@ -5109,6 +5180,8 @@ CONFIG_RESET_TI_SYSCON=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -5127,7 +5200,7 @@ CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m # CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y -# CONFIG_ROCKCHIP_CDN_DP is not set +CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y CONFIG_ROCKCHIP_EFUSE=m @@ -5370,7 +5443,9 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_SCHED_SMT=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TRACER=y +# CONFIG_SC_MSS_7180 is not set # CONFIG_SCR24X is not set # CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_3W_SAS is not set @@ -5540,6 +5615,7 @@ CONFIG_SENSORS_ARM_SCPI=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_DME1737=m @@ -5752,9 +5828,12 @@ CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SERIAL_QCOM_GENI_CONSOLE=y CONFIG_SERIAL_QCOM_GENI=y # CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set # CONFIG_SERIAL_ST_ASC is not set CONFIG_SERIAL_TEGRA_TCU_CONSOLE=y CONFIG_SERIAL_TEGRA_TCU=y @@ -5823,6 +5902,7 @@ CONFIG_SMC_DIAG=m CONFIG_SMC=m # CONFIG_SM_FTL is not set CONFIG_SM_GCC_8150=y +CONFIG_SM_GCC_8250=m CONFIG_SMP=y CONFIG_SMSC911X=m CONFIG_SMSC9420=m @@ -5853,6 +5933,7 @@ CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m CONFIG_SND_BCM2835=m CONFIG_SND_BCM2835_SOC_I2S=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -5945,6 +6026,7 @@ CONFIG_SND=m CONFIG_SND_MAESTRO3_INPUT=y CONFIG_SND_MAESTRO3=m CONFIG_SND_MAX_CARDS=32 +CONFIG_SND_MESON_AIU=m CONFIG_SND_MESON_AXG_FRDDR=m CONFIG_SND_MESON_AXG_PDM=m CONFIG_SND_MESON_AXG_SOUND_CARD=m @@ -5953,7 +6035,9 @@ CONFIG_SND_MESON_AXG_SPDIFOUT=m CONFIG_SND_MESON_AXG_TDMIN=m CONFIG_SND_MESON_AXG_TDMOUT=m CONFIG_SND_MESON_AXG_TODDR=m +CONFIG_SND_MESON_G12A_TOACODEC=m CONFIG_SND_MESON_G12A_TOHDMITX=m +CONFIG_SND_MESON_GX_SOUND_CARD=m CONFIG_SND_MIA=m CONFIG_SND_MIXART=m CONFIG_SND_MIXER_OSS=m @@ -6068,6 +6152,7 @@ CONFIG_SND_SOC_MAX98373=m # CONFIG_SND_SOC_MAX9860 is not set CONFIG_SND_SOC_MAX9867=m CONFIG_SND_SOC_MAX98927=m +CONFIG_SND_SOC_MESON_T9015=m CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m CONFIG_SND_SOC_MSM8996=m @@ -6113,6 +6198,7 @@ CONFIG_SND_SOC_RT5660=m CONFIG_SND_SOC_RT5663=m CONFIG_SND_SOC_RT5677=m CONFIG_SND_SOC_RT5677_SPI=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -6122,9 +6208,12 @@ CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set +CONFIG_SND_SOC_SOF_IMX8_SUPPORT=y +CONFIG_SND_SOC_SOF_IMX_TOPLEVEL=y # CONFIG_SND_SOC_SOF_NOCODEC is not set # CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set -# CONFIG_SND_SOC_SOF_OF is not set +CONFIG_SND_SOC_SOF_OF=m CONFIG_SND_SOC_SOF_PCI=m # CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set CONFIG_SND_SOC_SOF_TOPLEVEL=y @@ -6162,6 +6251,7 @@ CONFIG_SND_SOC_TEGRA_SGTL5000=m # CONFIG_SND_SOC_TEGRA_WM8903 is not set # CONFIG_SND_SOC_TEGRA_WM9712 is not set # CONFIG_SND_SOC_TFA9879 is not set +CONFIG_SND_SOC_TLV320ADCX140=m CONFIG_SND_SOC_TLV320AIC23_I2C=m CONFIG_SND_SOC_TLV320AIC23=m CONFIG_SND_SOC_TLV320AIC23_SPI=m @@ -6240,6 +6330,7 @@ CONFIG_SND_YMFPCI=m CONFIG_SNI_NETSEC=m # CONFIG_SOC_BRCMSTB is not set # CONFIG_SOC_CAMERA is not set +CONFIG_SOC_IMX8M=y CONFIG_SOCIONEXT_SYNQUACER_PREITS=y CONFIG_SOC_TEGRA_FLOWCTRL=y # CONFIG_SOC_TI is not set @@ -6273,6 +6364,7 @@ CONFIG_SPI_DESIGNWARE=m # CONFIG_SPI_DW_MID_DMA is not set CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DW_PCI=m +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_DSPI=m CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m @@ -6288,6 +6380,7 @@ CONFIG_SPI_MEM=y CONFIG_SPI_MESON_SPICC=m CONFIG_SPI_MESON_SPIFC=m # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -6387,6 +6480,7 @@ CONFIG_SUN50I_DE2_BUS=y CONFIG_SUN50I_ERRATUM_UNKNOWN1=y CONFIG_SUN50I_H6_CCU=y CONFIG_SUN50I_H6_R_CCU=y +CONFIG_SUN6I_MSGBOX=y # CONFIG_SUN8I_A83T_CCU is not set CONFIG_SUN8I_DE2_CCU=y CONFIG_SUN8I_H3_CCU=y @@ -6526,8 +6620,10 @@ CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +# CONFIG_TEST_LOCKUP is not set # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -6593,6 +6689,7 @@ CONFIG_TIGON3=m CONFIG_TINYDRM_HX8357D=m CONFIG_TINYDRM_ILI9225=m CONFIG_TINYDRM_ILI9341=m +CONFIG_TINYDRM_ILI9486=m CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_REPAPER=m CONFIG_TINYDRM_ST7586=m @@ -6744,6 +6841,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set @@ -6985,6 +7083,7 @@ CONFIG_USB_M5602=m # CONFIG_USB_M66592 is not set CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -7053,6 +7152,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597 is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m @@ -7190,6 +7290,9 @@ CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VALIDATE_FS_PARSER=y # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m CONFIG_VDSO=y CONFIG_VEML6030=m CONFIG_VEML6070=m @@ -7215,8 +7318,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 CONFIG_VGACON_SOFT_SCROLLBACK=y # CONFIG_VGA_CONSOLE is not set # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -7261,6 +7366,7 @@ CONFIG_VIDEO_GO7007_LOADER=m CONFIG_VIDEO_GO7007=m CONFIG_VIDEO_GO7007_USB=m CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m +CONFIG_VIDEO_HANTRO_IMX8M=y CONFIG_VIDEO_HANTRO=m CONFIG_VIDEO_HANTRO_ROCKCHIP=y CONFIG_VIDEO_HDPVR=m @@ -7302,6 +7408,7 @@ CONFIG_VIDEO_STK1160=m CONFIG_VIDEO_SUN4I_CSI=m CONFIG_VIDEO_SUN6I_CSI=m CONFIG_VIDEO_SUN8I_DEINTERLACE=m +CONFIG_VIDEO_SUN8I_ROTATE=m CONFIG_VIDEO_SUNXI_CEDRUS=m CONFIG_VIDEO_SUNXI=y CONFIG_VIDEO_TEGRA_HDMI_CEC=m @@ -7313,7 +7420,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -7334,6 +7441,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -7490,6 +7598,7 @@ CONFIG_XGENE_SLIMPRO_MBOX=m # CONFIG_XILINX_AXI_EMAC is not set # CONFIG_XILINX_DMA is not set CONFIG_XILINX_GMII2RGMII=m +CONFIG_XILINX_LL_TEMAC=m CONFIG_XILINX_PR_DECOUPLER=m CONFIG_XILINX_SDFEC=m CONFIG_XILINX_VCU=m @@ -7519,6 +7628,7 @@ CONFIG_ZEROPLUS_FF=y CONFIG_ZISOFS=y CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_INFLATE=y +CONFIG_ZONE_DEVICE=y # CONFIG_ZONEFS_FS is not set CONFIG_ZOPT2201=m # CONFIG_ZPA2326 is not set @@ -7527,7 +7637,17 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set # CONFIG_ZYNQMP_FIRMWARE_DEBUG is not set CONFIG_ZYNQMP_FIRMWARE=y diff --git a/kernel-armv7hl-debug-fedora.config b/kernel-armv7hl-debug-fedora.config index 329f4efd1..bfb6b2fb5 100644 --- a/kernel-armv7hl-debug-fedora.config +++ b/kernel-armv7hl-debug-fedora.config @@ -65,6 +65,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -158,10 +159,12 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set CONFIG_AK8975=m +CONFIG_AL3010=m # CONFIG_AL3320A is not set # CONFIG_AL_FIC is not set CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -186,6 +189,7 @@ CONFIG_AMX3_PM=m CONFIG_APDS9802ALS=m CONFIG_APDS9960=m # CONFIG_APM_EMULATION is not set +CONFIG_APPLE_MFI_FASTCHARGE=m # CONFIG_APPLE_PROPERTIES is not set # CONFIG_APPLICOM is not set CONFIG_APQ_GCC_8084=y @@ -226,6 +230,7 @@ CONFIG_ARCH_HAS_TICK_BROADCAST=y CONFIG_ARCH_HIGHBANK=y # CONFIG_ARCH_HISI is not set # CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IPQ40XX is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_KEYSTONE is not set # CONFIG_ARCH_MDM9615 is not set @@ -374,6 +379,7 @@ CONFIG_ARM_STI_CPUFREQ=m CONFIG_ARM_TEGRA124_CPUFREQ=y CONFIG_ARM_TEGRA20_CPUFREQ=m CONFIG_ARM_TEGRA20_DEVFREQ=m +CONFIG_ARM_TEGRA_CPUIDLE=y CONFIG_ARM_TEGRA_DEVFREQ=m CONFIG_ARM_THUMBEE=y CONFIG_ARM_THUMB=y @@ -535,6 +541,7 @@ CONFIG_BACKLIGHT_PWM=m CONFIG_BACKLIGHT_TPS65217=m # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -693,6 +700,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y CONFIG_BPF_KPROBE_OVERRIDE=y CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -943,6 +951,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -1104,10 +1113,12 @@ CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m CONFIG_CROS_EC_SPI=m CONFIG_CROS_EC_SYSFS=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_EC_VBC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128=m @@ -1184,6 +1195,7 @@ CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL=y # CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA is not set # CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER is not set CONFIG_CRYPTO_DEV_QCE=m +CONFIG_CRYPTO_DEV_QCE_SW_MAX_LEN=512 CONFIG_CRYPTO_DEV_QCOM_RNG=m CONFIG_CRYPTO_DEV_ROCKCHIP=m CONFIG_CRYPTO_DEV_S5P=m @@ -1324,7 +1336,7 @@ CONFIG_DEBUG_INFO=y CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y -CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000 +CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=4096 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KOBJECT is not set @@ -1410,6 +1422,7 @@ CONFIG_DM9102=m CONFIG_DMA_API_DEBUG=y CONFIG_DMA_BCM2835=m # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set CONFIG_DMA_CMA=y # CONFIG_DMADEVICES_DEBUG is not set @@ -1493,6 +1506,7 @@ CONFIG_DRM_BOCHS=m # CONFIG_DRM_CDNS_DSI is not set CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set CONFIG_DRM_DUMB_VGA_DAC=m @@ -1575,7 +1589,10 @@ CONFIG_DRM_OMAP=m CONFIG_DRM_OMAP_PANEL_DSI_CM=m CONFIG_DRM_PANEL_ARM_VERSATILE=m # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m @@ -1587,6 +1604,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m CONFIG_DRM_PANEL_LG_LG4573=m CONFIG_DRM_PANEL_LVDS=m # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1595,13 +1613,13 @@ CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set CONFIG_DRM_PANEL_RAYDIUM_RM68200=m -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m CONFIG_DRM_PANEL_SAMSUNG_LD9040=m # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m CONFIG_DRM_PANEL_SEIKO_43WVF1G=m CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m @@ -1609,6 +1627,7 @@ CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m CONFIG_DRM_PANEL_SIMPLE=m CONFIG_DRM_PANEL_SITRONIX_ST7701=m +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1616,11 +1635,11 @@ CONFIG_DRM_PANEL_SITRONIX_ST7701=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y CONFIG_DRM_PANFROST=m CONFIG_DRM_PARADE_PS8622=m +CONFIG_DRM_PARADE_PS8640=m CONFIG_DRM_PL111=m CONFIG_DRM_QXL=m # CONFIG_DRM_R128 is not set @@ -1633,6 +1652,7 @@ CONFIG_DRM_ROCKCHIP=m # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m CONFIG_DRM_STI=m CONFIG_DRM_STM_DSI=m CONFIG_DRM_STM=m @@ -1648,11 +1668,14 @@ CONFIG_DRM_SUN8I_MIXER=m CONFIG_DRM_TEGRA=m CONFIG_DRM_TEGRA_STAGING=y # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m CONFIG_DRM_TILCDC=m CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m CONFIG_DRM_TOSHIBA_TC358767=m +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TVE200=m CONFIG_DRM_UDL=m CONFIG_DRM_V3D=m @@ -1839,6 +1862,8 @@ CONFIG_ETHOC=m CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set # CONFIG_EXPOLINE_AUTO is not set CONFIG_EXPOLINE_FULL=y @@ -1882,6 +1907,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y CONFIG_FAIL_FUNCTION=y @@ -2016,6 +2042,9 @@ CONFIG_FSI_MASTER_HUB=m # CONFIG_FSI_SBEFIFO is not set CONFIG_FSI_SCOM=m # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_MDIO is not set +# CONFIG_FSL_ENETC_VF is not set # CONFIG_FSL_IMX8_DDR_PMU is not set # CONFIG_FSL_PQ_MDIO is not set # CONFIG_FSL_QDMA is not set @@ -2087,6 +2116,7 @@ CONFIG_GFS2_FS=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set CONFIG_GPIO_74X164=m # CONFIG_GPIO_74XX_MMIO is not set @@ -2207,7 +2237,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -2218,6 +2248,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -2239,6 +2270,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -2297,12 +2329,13 @@ CONFIG_HID=y CONFIG_HID_ZEROPLUS=m CONFIG_HID_ZYDACRON=m CONFIG_HIGHMEM=y -# CONFIG_HIGHPTE is not set +CONFIG_HIGHPTE=y CONFIG_HIGH_RES_TIMERS=y # CONFIG_HIPPI is not set # CONFIG_HISILICON_IRQ_MBIGEN is not set CONFIG_HISI_PMU=y CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set CONFIG_HOLTEK_FF=y @@ -2339,6 +2372,7 @@ CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_BCM2835=m CONFIG_HW_RANDOM_EXYNOS=m +CONFIG_HW_RANDOM_HISI_V2=y CONFIG_HW_RANDOM_IMX_RNGC=m CONFIG_HW_RANDOM_IPROC_RNG200=m CONFIG_HW_RANDOM_MESON=m @@ -2459,6 +2493,7 @@ CONFIG_I6300ESB_WDT=m CONFIG_I82092=m # CONFIG_IAQCORE is not set CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set # CONFIG_IDE is not set @@ -2481,6 +2516,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2550,6 +2586,7 @@ CONFIG_IMA=y CONFIG_IMX2_WDT=m CONFIG_IMX7D_ADC=m # CONFIG_IMX7ULP_WDT is not set +CONFIG_IMX8MM_THERMAL=m # CONFIG_IMX_DMA is not set CONFIG_IMX_DSP=m CONFIG_IMX_GPCV2_PM_DOMAINS=y @@ -2705,7 +2742,9 @@ CONFIG_INTEL_XWAY_PHY=m # CONFIG_INTERCONNECT is not set CONFIG_INTERCONNECT_QCOM_MSM8916=m # CONFIG_INTERCONNECT_QCOM_MSM8974 is not set +CONFIG_INTERCONNECT_QCOM_OSM_L3=m # CONFIG_INTERCONNECT_QCOM_QCS404 is not set +CONFIG_INTERCONNECT_QCOM_SC7180=m # CONFIG_INTERVAL_TREE_TEST is not set CONFIG_INV_MPU6050_I2C=m CONFIG_INV_MPU6050_IIO=m @@ -2824,6 +2863,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -3302,6 +3342,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_MAG3110=m CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX_TEST is not set @@ -3366,10 +3407,13 @@ CONFIG_MDIO_DEVICE=y CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_I2C=m +CONFIG_MDIO_IPQ8064=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set CONFIG_MDIO_SUN4I=m # CONFIG_MDIO_THUNDER is not set +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m # CONFIG_MDM_GCC_9615 is not set # CONFIG_MDM_LCC_9615 is not set @@ -3431,6 +3475,7 @@ CONFIG_MESON_IRQ_GPIO=y CONFIG_MESON_MX_EFUSE=m CONFIG_MESON_MX_SOCINFO=y CONFIG_MESON_SARADC=m +CONFIG_MESON_SECURE_PM_DOMAINS=y CONFIG_MESON_SM=y CONFIG_MESON_WATCHDOG=m CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 @@ -3467,6 +3512,7 @@ CONFIG_MFD_DA9063=m # CONFIG_MFD_DLN2 is not set CONFIG_MFD_EXYNOS_LPASS=m # CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -3551,6 +3597,7 @@ CONFIG_MFD_WL1273_CORE=m CONFIG_MFD_WM8994=m # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m CONFIG_MICREL_KS8995MA=m CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m @@ -3582,6 +3629,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_INFINIBAND is not set CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -3622,6 +3670,7 @@ CONFIG_MMC_DW=m CONFIG_MMC_DW_PCI=m CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_ROCKCHIP=m +CONFIG_MMC_HSQ=m # CONFIG_MMC_MESON_GX is not set CONFIG_MMC_MESON_MX_SDIO=m # CONFIG_MMC_MTK is not set @@ -4493,6 +4542,7 @@ CONFIG_OMAP_IOMMU=y CONFIG_OMAP_MBOX_KFIFO_SIZE=256 CONFIG_OMAP_OCP2SCP=m CONFIG_OMAP_REMOTEPROC=m +CONFIG_OMAP_REMOTEPROC_WATCHDOG=y CONFIG_OMAP_RESET_CLOCKS=y CONFIG_OMAP_USB2=m CONFIG_OMAP_WATCHDOG=m @@ -4616,6 +4666,7 @@ CONFIG_PCIE_DW_HOST=y CONFIG_PCIE_DW_PLAT_HOST=y CONFIG_PCIE_DW=y CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y # CONFIG_PCIE_MOBIVEIL is not set # CONFIG_PCI_ENDPOINT is not set # CONFIG_PCI_ENDPOINT_TEST is not set @@ -4675,6 +4726,7 @@ CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PHY_CADENCE_DPHY=m CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_DM816X_USB is not set CONFIG_PHY_EXYNOS5250_SATA=m @@ -4688,6 +4740,8 @@ CONFIG_PHYLIB=y CONFIG_PHYLINK=m # CONFIG_PHY_MAPPHONE_MDM6600 is not set CONFIG_PHY_MESON8B_USB2=m +CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y +CONFIG_PHY_MESON_AXG_PCIE=m CONFIG_PHY_MESON_G12A_USB2=y CONFIG_PHY_MESON_G12A_USB3_PCIE=m # CONFIG_PHY_MESON_GXL_USB2 is not set @@ -4711,8 +4765,10 @@ CONFIG_PHY_QCOM_QMP=m CONFIG_PHY_QCOM_QUSB2=m CONFIG_PHY_QCOM_UFS_14NM=m CONFIG_PHY_QCOM_UFS=m +CONFIG_PHY_QCOM_USB_HS_28NM=m CONFIG_PHY_QCOM_USB_HSIC=m CONFIG_PHY_QCOM_USB_HS=m +CONFIG_PHY_QCOM_USB_SS=m CONFIG_PHY_ROCKCHIP_DPHY_RX0=m CONFIG_PHY_ROCKCHIP_DP=m CONFIG_PHY_ROCKCHIP_EMMC=m @@ -4752,7 +4808,12 @@ CONFIG_PINCTRL_DOVE=y # CONFIG_PINCTRL_EQUILIBRIUM is not set # CONFIG_PINCTRL_GEMINILAKE is not set CONFIG_PINCTRL_IMX6SL=y +CONFIG_PINCTRL_IMX8MM=y +CONFIG_PINCTRL_IMX8MN=y +# CONFIG_PINCTRL_IMX8MP is not set +CONFIG_PINCTRL_IMX8MQ=y # CONFIG_PINCTRL_IPQ4019 is not set +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8064 is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL_MCP23S08 is not set @@ -4910,6 +4971,7 @@ CONFIG_PROC_VMCORE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_PROFILING=y CONFIG_PROVE_LOCKING=y +# CONFIG_PROVE_RAW_LOCK_NESTING is not set CONFIG_PROVE_RCU=y CONFIG_PSAMPLE=m # CONFIG_PSI_DEFAULT_DISABLED is not set @@ -4931,6 +4993,7 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_PCH=m @@ -4938,6 +5001,7 @@ CONFIG_PTP_1588_CLOCK=y CONFIG_PVPANIC=m CONFIG_PWM_BCM2835=m CONFIG_PWM_CROS_EC=m +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m # CONFIG_PWM_IMX1 is not set @@ -5155,7 +5219,9 @@ CONFIG_REGULATOR_MAX8997=m CONFIG_REGULATOR_MC13783=m CONFIG_REGULATOR_MC13892=m # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m # CONFIG_REGULATOR_MP8859 is not set +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set CONFIG_REGULATOR_PALMAS=y @@ -5229,6 +5295,8 @@ CONFIG_RESET_TI_SYSCON=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -5247,7 +5315,7 @@ CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m # CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y -# CONFIG_ROCKCHIP_CDN_DP is not set +CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y CONFIG_ROCKCHIP_EFUSE=m @@ -5505,7 +5573,9 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_SCHED_SMT=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TRACER=y +# CONFIG_SC_MSS_7180 is not set # CONFIG_SCR24X is not set # CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_3W_SAS is not set @@ -5673,6 +5743,7 @@ CONFIG_SENSORS_ARM_SCPI=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_DA9052_ADC=m @@ -5896,9 +5967,12 @@ CONFIG_SERIAL_OF_PLATFORM=y # CONFIG_SERIAL_RP2 is not set CONFIG_SERIAL_SAMSUNG_CONSOLE=y CONFIG_SERIAL_SAMSUNG=y -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set CONFIG_SERIAL_ST_ASC_CONSOLE=y CONFIG_SERIAL_ST_ASC=y CONFIG_SERIAL_STM32_CONSOLE=y @@ -5968,6 +6042,7 @@ CONFIG_SMC_DIAG=m CONFIG_SMC=m # CONFIG_SM_FTL is not set # CONFIG_SM_GCC_8150 is not set +CONFIG_SM_GCC_8250=m CONFIG_SMP_ON_UP=y CONFIG_SMP=y CONFIG_SMSC911X=m @@ -6001,6 +6076,7 @@ CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m CONFIG_SND_BCM2835=m CONFIG_SND_BCM2835_SOC_I2S=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -6094,6 +6170,7 @@ CONFIG_SND=m CONFIG_SND_MAESTRO3_INPUT=y CONFIG_SND_MAESTRO3=m CONFIG_SND_MAX_CARDS=32 +CONFIG_SND_MESON_AIU=m # CONFIG_SND_MESON_AXG_FRDDR is not set # CONFIG_SND_MESON_AXG_PDM is not set # CONFIG_SND_MESON_AXG_SOUND_CARD is not set @@ -6102,7 +6179,9 @@ CONFIG_SND_MAX_CARDS=32 # CONFIG_SND_MESON_AXG_TDMIN is not set # CONFIG_SND_MESON_AXG_TDMOUT is not set # CONFIG_SND_MESON_AXG_TODDR is not set +CONFIG_SND_MESON_G12A_TOACODEC=m CONFIG_SND_MESON_G12A_TOHDMITX=m +CONFIG_SND_MESON_GX_SOUND_CARD=m CONFIG_SND_MIA=m CONFIG_SND_MIXART=m CONFIG_SND_MIXER_OSS=m @@ -6237,6 +6316,7 @@ CONFIG_SND_SOC_MAX98373=m # CONFIG_SND_SOC_MAX9860 is not set CONFIG_SND_SOC_MAX9867=m CONFIG_SND_SOC_MAX98927=m +CONFIG_SND_SOC_MESON_T9015=m # CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m # CONFIG_SND_SOC_MT6351 is not set @@ -6285,6 +6365,7 @@ CONFIG_SND_SOC_ROCKCHIP_SPDIF=m # CONFIG_SND_SOC_RT5616 is not set CONFIG_SND_SOC_RT5631=m CONFIG_SND_SOC_RT5660=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -6298,6 +6379,7 @@ CONFIG_SND_SOC_SMDK_WM8994_PCM=m CONFIG_SND_SOC_SNOW=m CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set # CONFIG_SND_SOC_SOF_NOCODEC is not set # CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -6345,6 +6427,7 @@ CONFIG_SND_SOC_TEGRA_WM9712=m # CONFIG_SND_SOC_TFA9879 is not set CONFIG_SND_SOC_TI_EDMA_PCM=m CONFIG_SND_SOC_TI_SDMA_PCM=m +CONFIG_SND_SOC_TLV320ADCX140=m CONFIG_SND_SOC_TLV320AIC23_I2C=m CONFIG_SND_SOC_TLV320AIC23=m CONFIG_SND_SOC_TLV320AIC23_SPI=m @@ -6445,6 +6528,7 @@ CONFIG_SOC_IMX6UL=y CONFIG_SOC_IMX6=y CONFIG_SOC_IMX7D=y CONFIG_SOC_IMX7ULP=y +CONFIG_SOC_IMX8M=y # CONFIG_SOC_LS1021A is not set CONFIG_SOC_OMAP3430=y CONFIG_SOC_OMAP5=y @@ -6483,6 +6567,7 @@ CONFIG_SPI_DESIGNWARE=m # CONFIG_SPI_DW_MID_DMA is not set CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DW_PCI=m +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m CONFIG_SPI_FSL_SPI=m @@ -6496,6 +6581,7 @@ CONFIG_SPI_MEM=y CONFIG_SPI_MESON_SPICC=m CONFIG_SPI_MESON_SPIFC=m # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -6620,6 +6706,7 @@ CONFIG_SUN4I_GPADC=m # CONFIG_SUN50I_DE2_BUS is not set CONFIG_SUN5I_CCU=y CONFIG_SUN6I_A31_CCU=y +CONFIG_SUN6I_MSGBOX=y CONFIG_SUN8I_A23_CCU=y CONFIG_SUN8I_A33_CCU=y CONFIG_SUN8I_A83T_CCU=y @@ -6762,8 +6849,10 @@ CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=y # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +CONFIG_TEST_LOCKUP=m # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -6837,6 +6926,7 @@ CONFIG_TIGON3=m CONFIG_TINYDRM_HX8357D=m CONFIG_TINYDRM_ILI9225=m CONFIG_TINYDRM_ILI9341=m +CONFIG_TINYDRM_ILI9486=m CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_REPAPER=m CONFIG_TINYDRM_ST7586=m @@ -6852,6 +6942,7 @@ CONFIG_TI_PWMSS=y CONFIG_TI_SCI_PROTOCOL=m CONFIG_TI_SOC_THERMAL=m # CONFIG_TI_ST is not set +CONFIG_TI_SYSCON_CLK=m CONFIG_TI_THERMAL=y # CONFIG_TI_TLC4541 is not set # CONFIG_TLAN is not set @@ -7001,6 +7092,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m # CONFIG_UACCESS_WITH_MEMCPY is not set CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y @@ -7253,6 +7345,7 @@ CONFIG_USB_M5602=m # CONFIG_USB_M66592 is not set CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -7326,6 +7419,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597 is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m @@ -7465,6 +7559,9 @@ CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VALIDATE_FS_PARSER=y # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m # CONFIG_VDSO is not set CONFIG_VEML6030=m CONFIG_VEML6070=m @@ -7492,8 +7589,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGA_CONSOLE=y # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -7542,6 +7641,7 @@ CONFIG_VIDEO_GO7007_LOADER=m CONFIG_VIDEO_GO7007=m CONFIG_VIDEO_GO7007_USB=m CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m +CONFIG_VIDEO_HANTRO_IMX8M=y CONFIG_VIDEO_HANTRO=m CONFIG_VIDEO_HANTRO_ROCKCHIP=y CONFIG_VIDEO_HDPVR=m @@ -7605,6 +7705,7 @@ CONFIG_VIDEO_STM32_HDMI_CEC=m CONFIG_VIDEO_SUN4I_CSI=m CONFIG_VIDEO_SUN6I_CSI=m CONFIG_VIDEO_SUN8I_DEINTERLACE=m +CONFIG_VIDEO_SUN8I_ROTATE=m CONFIG_VIDEO_SUNXI_CEDRUS=m CONFIG_VIDEO_SUNXI=y CONFIG_VIDEO_TEGRA_HDMI_CEC=m @@ -7619,7 +7720,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -7640,6 +7741,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -7796,6 +7898,7 @@ CONFIG_XFS_WARN=y # CONFIG_XILINX_DMA is not set CONFIG_XILINX_EMACLITE=m CONFIG_XILINX_GMII2RGMII=m +CONFIG_XILINX_LL_TEMAC=m CONFIG_XILINX_PR_DECOUPLER=m # CONFIG_XILINX_SDFEC is not set CONFIG_XILINX_VCU=m @@ -7835,5 +7938,15 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set diff --git a/kernel-armv7hl-fedora.config b/kernel-armv7hl-fedora.config index 818921707..aad6dce32 100644 --- a/kernel-armv7hl-fedora.config +++ b/kernel-armv7hl-fedora.config @@ -65,6 +65,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -158,10 +159,12 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set CONFIG_AK8975=m +CONFIG_AL3010=m # CONFIG_AL3320A is not set # CONFIG_AL_FIC is not set CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -186,6 +189,7 @@ CONFIG_AMX3_PM=m CONFIG_APDS9802ALS=m CONFIG_APDS9960=m # CONFIG_APM_EMULATION is not set +CONFIG_APPLE_MFI_FASTCHARGE=m # CONFIG_APPLE_PROPERTIES is not set # CONFIG_APPLICOM is not set CONFIG_APQ_GCC_8084=y @@ -226,6 +230,7 @@ CONFIG_ARCH_HAS_TICK_BROADCAST=y CONFIG_ARCH_HIGHBANK=y # CONFIG_ARCH_HISI is not set # CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IPQ40XX is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_KEYSTONE is not set # CONFIG_ARCH_MDM9615 is not set @@ -374,6 +379,7 @@ CONFIG_ARM_STI_CPUFREQ=m CONFIG_ARM_TEGRA124_CPUFREQ=y CONFIG_ARM_TEGRA20_CPUFREQ=m CONFIG_ARM_TEGRA20_DEVFREQ=m +CONFIG_ARM_TEGRA_CPUIDLE=y CONFIG_ARM_TEGRA_DEVFREQ=m CONFIG_ARM_THUMBEE=y CONFIG_ARM_THUMB=y @@ -535,6 +541,7 @@ CONFIG_BACKLIGHT_PWM=m CONFIG_BACKLIGHT_TPS65217=m # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -693,6 +700,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y # CONFIG_BPF_KPROBE_OVERRIDE is not set CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -943,6 +951,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -1104,10 +1113,12 @@ CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m CONFIG_CROS_EC_SPI=m CONFIG_CROS_EC_SYSFS=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_EC_VBC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128=m @@ -1184,6 +1195,7 @@ CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL=y # CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA is not set # CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER is not set CONFIG_CRYPTO_DEV_QCE=m +CONFIG_CRYPTO_DEV_QCE_SW_MAX_LEN=512 CONFIG_CRYPTO_DEV_QCOM_RNG=m CONFIG_CRYPTO_DEV_ROCKCHIP=m CONFIG_CRYPTO_DEV_S5P=m @@ -1403,6 +1415,7 @@ CONFIG_DM9102=m # CONFIG_DMA_API_DEBUG_SG is not set CONFIG_DMA_BCM2835=m # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set CONFIG_DMA_CMA=y # CONFIG_DMADEVICES_DEBUG is not set @@ -1486,6 +1499,7 @@ CONFIG_DRM_BOCHS=m # CONFIG_DRM_CDNS_DSI is not set CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set CONFIG_DRM_DUMB_VGA_DAC=m @@ -1568,7 +1582,10 @@ CONFIG_DRM_OMAP=m CONFIG_DRM_OMAP_PANEL_DSI_CM=m CONFIG_DRM_PANEL_ARM_VERSATILE=m # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m @@ -1580,6 +1597,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m CONFIG_DRM_PANEL_LG_LG4573=m CONFIG_DRM_PANEL_LVDS=m # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1588,13 +1606,13 @@ CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set CONFIG_DRM_PANEL_RAYDIUM_RM68200=m -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m CONFIG_DRM_PANEL_SAMSUNG_LD9040=m # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m CONFIG_DRM_PANEL_SEIKO_43WVF1G=m CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m @@ -1602,6 +1620,7 @@ CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m CONFIG_DRM_PANEL_SIMPLE=m CONFIG_DRM_PANEL_SITRONIX_ST7701=m +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1609,11 +1628,11 @@ CONFIG_DRM_PANEL_SITRONIX_ST7701=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y CONFIG_DRM_PANFROST=m CONFIG_DRM_PARADE_PS8622=m +CONFIG_DRM_PARADE_PS8640=m CONFIG_DRM_PL111=m CONFIG_DRM_QXL=m # CONFIG_DRM_R128 is not set @@ -1626,6 +1645,7 @@ CONFIG_DRM_ROCKCHIP=m # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m CONFIG_DRM_STI=m CONFIG_DRM_STM_DSI=m CONFIG_DRM_STM=m @@ -1641,11 +1661,14 @@ CONFIG_DRM_SUN8I_MIXER=m CONFIG_DRM_TEGRA=m CONFIG_DRM_TEGRA_STAGING=y # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m CONFIG_DRM_TILCDC=m CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m CONFIG_DRM_TOSHIBA_TC358767=m +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TVE200=m CONFIG_DRM_UDL=m CONFIG_DRM_V3D=m @@ -1832,6 +1855,8 @@ CONFIG_ETHOC=m CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set # CONFIG_EXPOLINE_AUTO is not set CONFIG_EXPOLINE_FULL=y @@ -1875,6 +1900,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y # CONFIG_FAIL_FUTEX is not set @@ -2001,6 +2027,9 @@ CONFIG_FSI_MASTER_HUB=m # CONFIG_FSI_SBEFIFO is not set CONFIG_FSI_SCOM=m # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_MDIO is not set +# CONFIG_FSL_ENETC_VF is not set # CONFIG_FSL_IMX8_DDR_PMU is not set # CONFIG_FSL_PQ_MDIO is not set # CONFIG_FSL_QDMA is not set @@ -2072,6 +2101,7 @@ CONFIG_GFS2_FS=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set CONFIG_GPIO_74X164=m # CONFIG_GPIO_74XX_MMIO is not set @@ -2192,7 +2222,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -2203,6 +2233,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -2224,6 +2255,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -2282,12 +2314,13 @@ CONFIG_HID=y CONFIG_HID_ZEROPLUS=m CONFIG_HID_ZYDACRON=m CONFIG_HIGHMEM=y -# CONFIG_HIGHPTE is not set +CONFIG_HIGHPTE=y CONFIG_HIGH_RES_TIMERS=y # CONFIG_HIPPI is not set # CONFIG_HISILICON_IRQ_MBIGEN is not set CONFIG_HISI_PMU=y CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set CONFIG_HOLTEK_FF=y @@ -2324,6 +2357,7 @@ CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_BCM2835=m CONFIG_HW_RANDOM_EXYNOS=m +CONFIG_HW_RANDOM_HISI_V2=y CONFIG_HW_RANDOM_IMX_RNGC=m CONFIG_HW_RANDOM_IPROC_RNG200=m CONFIG_HW_RANDOM_MESON=m @@ -2444,6 +2478,7 @@ CONFIG_I6300ESB_WDT=m CONFIG_I82092=m # CONFIG_IAQCORE is not set CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set # CONFIG_IDE is not set @@ -2466,6 +2501,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2535,6 +2571,7 @@ CONFIG_IMA=y CONFIG_IMX2_WDT=m CONFIG_IMX7D_ADC=m # CONFIG_IMX7ULP_WDT is not set +CONFIG_IMX8MM_THERMAL=m # CONFIG_IMX_DMA is not set CONFIG_IMX_DSP=m CONFIG_IMX_GPCV2_PM_DOMAINS=y @@ -2690,7 +2727,9 @@ CONFIG_INTEL_XWAY_PHY=m # CONFIG_INTERCONNECT is not set CONFIG_INTERCONNECT_QCOM_MSM8916=m # CONFIG_INTERCONNECT_QCOM_MSM8974 is not set +CONFIG_INTERCONNECT_QCOM_OSM_L3=m # CONFIG_INTERCONNECT_QCOM_QCS404 is not set +CONFIG_INTERCONNECT_QCOM_SC7180=m # CONFIG_INTERVAL_TREE_TEST is not set CONFIG_INV_MPU6050_I2C=m CONFIG_INV_MPU6050_IIO=m @@ -2809,6 +2848,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -3285,6 +3325,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_MAG3110=m CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX_TEST is not set @@ -3348,10 +3389,13 @@ CONFIG_MDIO_DEVICE=y CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_I2C=m +CONFIG_MDIO_IPQ8064=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set CONFIG_MDIO_SUN4I=m # CONFIG_MDIO_THUNDER is not set +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m # CONFIG_MDM_GCC_9615 is not set # CONFIG_MDM_LCC_9615 is not set @@ -3413,6 +3457,7 @@ CONFIG_MESON_IRQ_GPIO=y CONFIG_MESON_MX_EFUSE=m CONFIG_MESON_MX_SOCINFO=y CONFIG_MESON_SARADC=m +CONFIG_MESON_SECURE_PM_DOMAINS=y CONFIG_MESON_SM=y CONFIG_MESON_WATCHDOG=m CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 @@ -3449,6 +3494,7 @@ CONFIG_MFD_DA9063=m # CONFIG_MFD_DLN2 is not set CONFIG_MFD_EXYNOS_LPASS=m # CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -3533,6 +3579,7 @@ CONFIG_MFD_WL1273_CORE=m CONFIG_MFD_WM8994=m # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m CONFIG_MICREL_KS8995MA=m CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m @@ -3564,6 +3611,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_INFINIBAND is not set CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -3604,6 +3652,7 @@ CONFIG_MMC_DW=m CONFIG_MMC_DW_PCI=m CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_ROCKCHIP=m +CONFIG_MMC_HSQ=m # CONFIG_MMC_MESON_GX is not set CONFIG_MMC_MESON_MX_SDIO=m # CONFIG_MMC_MTK is not set @@ -4474,6 +4523,7 @@ CONFIG_OMAP_IOMMU=y CONFIG_OMAP_MBOX_KFIFO_SIZE=256 CONFIG_OMAP_OCP2SCP=m CONFIG_OMAP_REMOTEPROC=m +CONFIG_OMAP_REMOTEPROC_WATCHDOG=y CONFIG_OMAP_RESET_CLOCKS=y CONFIG_OMAP_USB2=m CONFIG_OMAP_WATCHDOG=m @@ -4597,6 +4647,7 @@ CONFIG_PCIE_DW_HOST=y CONFIG_PCIE_DW_PLAT_HOST=y CONFIG_PCIE_DW=y CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y # CONFIG_PCIE_MOBIVEIL is not set # CONFIG_PCI_ENDPOINT is not set # CONFIG_PCI_ENDPOINT_TEST is not set @@ -4656,6 +4707,7 @@ CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PHY_CADENCE_DPHY=m CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_DM816X_USB is not set CONFIG_PHY_EXYNOS5250_SATA=m @@ -4669,6 +4721,8 @@ CONFIG_PHYLIB=y CONFIG_PHYLINK=m # CONFIG_PHY_MAPPHONE_MDM6600 is not set CONFIG_PHY_MESON8B_USB2=m +CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y +CONFIG_PHY_MESON_AXG_PCIE=m CONFIG_PHY_MESON_G12A_USB2=y CONFIG_PHY_MESON_G12A_USB3_PCIE=m # CONFIG_PHY_MESON_GXL_USB2 is not set @@ -4692,8 +4746,10 @@ CONFIG_PHY_QCOM_QMP=m CONFIG_PHY_QCOM_QUSB2=m CONFIG_PHY_QCOM_UFS_14NM=m CONFIG_PHY_QCOM_UFS=m +CONFIG_PHY_QCOM_USB_HS_28NM=m CONFIG_PHY_QCOM_USB_HSIC=m CONFIG_PHY_QCOM_USB_HS=m +CONFIG_PHY_QCOM_USB_SS=m CONFIG_PHY_ROCKCHIP_DPHY_RX0=m CONFIG_PHY_ROCKCHIP_DP=m CONFIG_PHY_ROCKCHIP_EMMC=m @@ -4733,7 +4789,12 @@ CONFIG_PINCTRL_DOVE=y # CONFIG_PINCTRL_EQUILIBRIUM is not set # CONFIG_PINCTRL_GEMINILAKE is not set CONFIG_PINCTRL_IMX6SL=y +CONFIG_PINCTRL_IMX8MM=y +CONFIG_PINCTRL_IMX8MN=y +# CONFIG_PINCTRL_IMX8MP is not set +CONFIG_PINCTRL_IMX8MQ=y # CONFIG_PINCTRL_IPQ4019 is not set +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8064 is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL_MCP23S08 is not set @@ -4891,6 +4952,7 @@ CONFIG_PROC_VMCORE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_PROFILING=y # CONFIG_PROVE_LOCKING is not set +# CONFIG_PROVE_RAW_LOCK_NESTING is not set CONFIG_PSAMPLE=m # CONFIG_PSI_DEFAULT_DISABLED is not set CONFIG_PSI=y @@ -4911,6 +4973,7 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_PCH=m @@ -4918,6 +4981,7 @@ CONFIG_PTP_1588_CLOCK=y CONFIG_PVPANIC=m CONFIG_PWM_BCM2835=m CONFIG_PWM_CROS_EC=m +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m # CONFIG_PWM_IMX1 is not set @@ -5135,7 +5199,9 @@ CONFIG_REGULATOR_MAX8997=m CONFIG_REGULATOR_MC13783=m CONFIG_REGULATOR_MC13892=m # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m # CONFIG_REGULATOR_MP8859 is not set +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set CONFIG_REGULATOR_PALMAS=y @@ -5209,6 +5275,8 @@ CONFIG_RESET_TI_SYSCON=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -5227,7 +5295,7 @@ CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m # CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y -# CONFIG_ROCKCHIP_CDN_DP is not set +CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y CONFIG_ROCKCHIP_EFUSE=m @@ -5485,7 +5553,9 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_SCHED_SMT=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TRACER=y +# CONFIG_SC_MSS_7180 is not set # CONFIG_SCR24X is not set # CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_3W_SAS is not set @@ -5653,6 +5723,7 @@ CONFIG_SENSORS_ARM_SCPI=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_DA9052_ADC=m @@ -5876,9 +5947,12 @@ CONFIG_SERIAL_OF_PLATFORM=y # CONFIG_SERIAL_RP2 is not set CONFIG_SERIAL_SAMSUNG_CONSOLE=y CONFIG_SERIAL_SAMSUNG=y -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set CONFIG_SERIAL_ST_ASC_CONSOLE=y CONFIG_SERIAL_ST_ASC=y CONFIG_SERIAL_STM32_CONSOLE=y @@ -5948,6 +6022,7 @@ CONFIG_SMC_DIAG=m CONFIG_SMC=m # CONFIG_SM_FTL is not set # CONFIG_SM_GCC_8150 is not set +CONFIG_SM_GCC_8250=m CONFIG_SMP_ON_UP=y CONFIG_SMP=y CONFIG_SMSC911X=m @@ -5981,6 +6056,7 @@ CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m CONFIG_SND_BCM2835=m CONFIG_SND_BCM2835_SOC_I2S=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -6074,6 +6150,7 @@ CONFIG_SND=m CONFIG_SND_MAESTRO3_INPUT=y CONFIG_SND_MAESTRO3=m CONFIG_SND_MAX_CARDS=32 +CONFIG_SND_MESON_AIU=m # CONFIG_SND_MESON_AXG_FRDDR is not set # CONFIG_SND_MESON_AXG_PDM is not set # CONFIG_SND_MESON_AXG_SOUND_CARD is not set @@ -6082,7 +6159,9 @@ CONFIG_SND_MAX_CARDS=32 # CONFIG_SND_MESON_AXG_TDMIN is not set # CONFIG_SND_MESON_AXG_TDMOUT is not set # CONFIG_SND_MESON_AXG_TODDR is not set +CONFIG_SND_MESON_G12A_TOACODEC=m CONFIG_SND_MESON_G12A_TOHDMITX=m +CONFIG_SND_MESON_GX_SOUND_CARD=m CONFIG_SND_MIA=m CONFIG_SND_MIXART=m CONFIG_SND_MIXER_OSS=m @@ -6216,6 +6295,7 @@ CONFIG_SND_SOC_MAX98373=m # CONFIG_SND_SOC_MAX9860 is not set CONFIG_SND_SOC_MAX9867=m CONFIG_SND_SOC_MAX98927=m +CONFIG_SND_SOC_MESON_T9015=m # CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m # CONFIG_SND_SOC_MT6351 is not set @@ -6264,6 +6344,7 @@ CONFIG_SND_SOC_ROCKCHIP_SPDIF=m # CONFIG_SND_SOC_RT5616 is not set CONFIG_SND_SOC_RT5631=m CONFIG_SND_SOC_RT5660=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -6277,6 +6358,7 @@ CONFIG_SND_SOC_SMDK_WM8994_PCM=m CONFIG_SND_SOC_SNOW=m CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set # CONFIG_SND_SOC_SOF_NOCODEC is not set # CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -6324,6 +6406,7 @@ CONFIG_SND_SOC_TEGRA_WM9712=m # CONFIG_SND_SOC_TFA9879 is not set CONFIG_SND_SOC_TI_EDMA_PCM=m CONFIG_SND_SOC_TI_SDMA_PCM=m +CONFIG_SND_SOC_TLV320ADCX140=m CONFIG_SND_SOC_TLV320AIC23_I2C=m CONFIG_SND_SOC_TLV320AIC23=m CONFIG_SND_SOC_TLV320AIC23_SPI=m @@ -6424,6 +6507,7 @@ CONFIG_SOC_IMX6UL=y CONFIG_SOC_IMX6=y CONFIG_SOC_IMX7D=y CONFIG_SOC_IMX7ULP=y +CONFIG_SOC_IMX8M=y # CONFIG_SOC_LS1021A is not set CONFIG_SOC_OMAP3430=y CONFIG_SOC_OMAP5=y @@ -6462,6 +6546,7 @@ CONFIG_SPI_DESIGNWARE=m # CONFIG_SPI_DW_MID_DMA is not set CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DW_PCI=m +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m CONFIG_SPI_FSL_SPI=m @@ -6475,6 +6560,7 @@ CONFIG_SPI_MEM=y CONFIG_SPI_MESON_SPICC=m CONFIG_SPI_MESON_SPIFC=m # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -6599,6 +6685,7 @@ CONFIG_SUN4I_GPADC=m # CONFIG_SUN50I_DE2_BUS is not set CONFIG_SUN5I_CCU=y CONFIG_SUN6I_A31_CCU=y +CONFIG_SUN6I_MSGBOX=y CONFIG_SUN8I_A23_CCU=y CONFIG_SUN8I_A33_CCU=y CONFIG_SUN8I_A83T_CCU=y @@ -6741,8 +6828,10 @@ CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +# CONFIG_TEST_LOCKUP is not set # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -6816,6 +6905,7 @@ CONFIG_TIGON3=m CONFIG_TINYDRM_HX8357D=m CONFIG_TINYDRM_ILI9225=m CONFIG_TINYDRM_ILI9341=m +CONFIG_TINYDRM_ILI9486=m CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_REPAPER=m CONFIG_TINYDRM_ST7586=m @@ -6831,6 +6921,7 @@ CONFIG_TI_PWMSS=y CONFIG_TI_SCI_PROTOCOL=m CONFIG_TI_SOC_THERMAL=m # CONFIG_TI_ST is not set +CONFIG_TI_SYSCON_CLK=m CONFIG_TI_THERMAL=y # CONFIG_TI_TLC4541 is not set # CONFIG_TLAN is not set @@ -6980,6 +7071,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m # CONFIG_UACCESS_WITH_MEMCPY is not set CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y @@ -7232,6 +7324,7 @@ CONFIG_USB_M5602=m # CONFIG_USB_M66592 is not set CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -7305,6 +7398,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597 is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m @@ -7444,6 +7538,9 @@ CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VALIDATE_FS_PARSER=y # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m # CONFIG_VDSO is not set CONFIG_VEML6030=m CONFIG_VEML6070=m @@ -7471,8 +7568,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGA_CONSOLE=y # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -7521,6 +7620,7 @@ CONFIG_VIDEO_GO7007_LOADER=m CONFIG_VIDEO_GO7007=m CONFIG_VIDEO_GO7007_USB=m CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m +CONFIG_VIDEO_HANTRO_IMX8M=y CONFIG_VIDEO_HANTRO=m CONFIG_VIDEO_HANTRO_ROCKCHIP=y CONFIG_VIDEO_HDPVR=m @@ -7584,6 +7684,7 @@ CONFIG_VIDEO_STM32_HDMI_CEC=m CONFIG_VIDEO_SUN4I_CSI=m CONFIG_VIDEO_SUN6I_CSI=m CONFIG_VIDEO_SUN8I_DEINTERLACE=m +CONFIG_VIDEO_SUN8I_ROTATE=m CONFIG_VIDEO_SUNXI_CEDRUS=m CONFIG_VIDEO_SUNXI=y CONFIG_VIDEO_TEGRA_HDMI_CEC=m @@ -7598,7 +7699,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -7619,6 +7720,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -7774,6 +7876,7 @@ CONFIG_XFS_QUOTA=y # CONFIG_XILINX_DMA is not set CONFIG_XILINX_EMACLITE=m CONFIG_XILINX_GMII2RGMII=m +CONFIG_XILINX_LL_TEMAC=m CONFIG_XILINX_PR_DECOUPLER=m # CONFIG_XILINX_SDFEC is not set CONFIG_XILINX_VCU=m @@ -7813,5 +7916,15 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set diff --git a/kernel-armv7hl-lpae-debug-fedora.config b/kernel-armv7hl-lpae-debug-fedora.config index bb8361837..05778dcc2 100644 --- a/kernel-armv7hl-lpae-debug-fedora.config +++ b/kernel-armv7hl-lpae-debug-fedora.config @@ -65,6 +65,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -157,10 +158,12 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set CONFIG_AK8975=m +CONFIG_AL3010=m # CONFIG_AL3320A is not set # CONFIG_AL_FIC is not set CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -170,7 +173,7 @@ CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m # CONFIG_AM2315 is not set -CONFIG_AM335X_PHY_USB=m +# CONFIG_AM335X_PHY_USB is not set CONFIG_AMBA_PL08X=y CONFIG_AMD8111_ETH=m # CONFIG_AMD_IOMMU_DEBUGFS is not set @@ -183,6 +186,7 @@ CONFIG_AMLOGIC_THERMAL=m CONFIG_APDS9802ALS=m CONFIG_APDS9960=m # CONFIG_APM_EMULATION is not set +CONFIG_APPLE_MFI_FASTCHARGE=m # CONFIG_APPLE_PROPERTIES is not set # CONFIG_APPLICOM is not set CONFIG_AQTION=m @@ -222,6 +226,7 @@ CONFIG_ARCH_HAS_TICK_BROADCAST=y CONFIG_ARCH_HIGHBANK=y # CONFIG_ARCH_HISI is not set # CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IPQ40XX is not set # CONFIG_ARCH_IXP4XX is not set CONFIG_ARCH_KEYSTONE=y # CONFIG_ARCH_MEDIATEK is not set @@ -364,6 +369,7 @@ CONFIG_ARM_SP805_WATCHDOG=m CONFIG_ARM_SPE_PMU=m CONFIG_ARM_TEGRA124_CPUFREQ=y # CONFIG_ARM_TEGRA20_CPUFREQ is not set +CONFIG_ARM_TEGRA_CPUIDLE=y CONFIG_ARM_TEGRA_DEVFREQ=m CONFIG_ARM_THUMBEE=y CONFIG_ARM_THUMB=y @@ -521,6 +527,7 @@ CONFIG_BACKLIGHT_PWM=m # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -672,6 +679,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y CONFIG_BPF_KPROBE_OVERRIDE=y CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -918,6 +926,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -1075,10 +1084,12 @@ CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m CONFIG_CROS_EC_SPI=m CONFIG_CROS_EC_SYSFS=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_EC_VBC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128=m @@ -1154,6 +1165,7 @@ CONFIG_CRYPTO_DEV_OMAP_SHAM=m CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL=y # CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA is not set # CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER is not set +CONFIG_CRYPTO_DEV_QCE_SW_MAX_LEN=512 CONFIG_CRYPTO_DEV_QCOM_RNG=m CONFIG_CRYPTO_DEV_ROCKCHIP=m CONFIG_CRYPTO_DEV_S5P=m @@ -1292,7 +1304,7 @@ CONFIG_DEBUG_INFO=y CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y -CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000 +CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=4096 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KOBJECT is not set @@ -1378,6 +1390,7 @@ CONFIG_DM9102=m CONFIG_DMA_API_DEBUG=y CONFIG_DMA_BCM2835=m # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set CONFIG_DMA_CMA=y # CONFIG_DMADEVICES_DEBUG is not set @@ -1461,6 +1474,7 @@ CONFIG_DRM_BOCHS=m # CONFIG_DRM_CDNS_DSI is not set CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set CONFIG_DRM_DUMB_VGA_DAC=m @@ -1530,7 +1544,10 @@ CONFIG_DRM_OMAP=m CONFIG_DRM_OMAP_PANEL_DSI_CM=m CONFIG_DRM_PANEL_ARM_VERSATILE=m # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m @@ -1542,6 +1559,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m CONFIG_DRM_PANEL_LG_LG4573=m CONFIG_DRM_PANEL_LVDS=m # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1550,13 +1568,13 @@ CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set CONFIG_DRM_PANEL_RAYDIUM_RM68200=m -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m CONFIG_DRM_PANEL_SAMSUNG_LD9040=m # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m CONFIG_DRM_PANEL_SEIKO_43WVF1G=m CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m @@ -1564,6 +1582,7 @@ CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m CONFIG_DRM_PANEL_SIMPLE=m CONFIG_DRM_PANEL_SITRONIX_ST7701=m +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1571,11 +1590,11 @@ CONFIG_DRM_PANEL_SITRONIX_ST7701=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y CONFIG_DRM_PANFROST=m CONFIG_DRM_PARADE_PS8622=m +CONFIG_DRM_PARADE_PS8640=m CONFIG_DRM_PL111=m CONFIG_DRM_QXL=m # CONFIG_DRM_R128 is not set @@ -1588,6 +1607,7 @@ CONFIG_DRM_ROCKCHIP=m # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m CONFIG_DRM_STI=m CONFIG_DRM_STM_DSI=m CONFIG_DRM_STM=m @@ -1603,11 +1623,14 @@ CONFIG_DRM_SUN8I_MIXER=m CONFIG_DRM_TEGRA=m CONFIG_DRM_TEGRA_STAGING=y # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m # CONFIG_DRM_TILCDC is not set CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m CONFIG_DRM_TOSHIBA_TC358767=m +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TVE200=m CONFIG_DRM_UDL=m CONFIG_DRM_V3D=m @@ -1791,6 +1814,8 @@ CONFIG_ETHOC=m CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set # CONFIG_EXPOLINE_AUTO is not set CONFIG_EXPOLINE_FULL=y @@ -1833,6 +1858,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y CONFIG_FAIL_FUNCTION=y @@ -1967,6 +1993,9 @@ CONFIG_FSI_MASTER_HUB=m # CONFIG_FSI_SBEFIFO is not set CONFIG_FSI_SCOM=m # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_MDIO is not set +# CONFIG_FSL_ENETC_VF is not set # CONFIG_FSL_IMX8_DDR_PMU is not set # CONFIG_FSL_PQ_MDIO is not set # CONFIG_FSL_QDMA is not set @@ -2037,6 +2066,7 @@ CONFIG_GFS2_FS=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set CONFIG_GPIO_74X164=m # CONFIG_GPIO_74XX_MMIO is not set @@ -2152,7 +2182,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -2163,6 +2193,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -2184,6 +2215,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -2242,12 +2274,13 @@ CONFIG_HID=y CONFIG_HID_ZEROPLUS=m CONFIG_HID_ZYDACRON=m CONFIG_HIGHMEM=y -# CONFIG_HIGHPTE is not set +CONFIG_HIGHPTE=y CONFIG_HIGH_RES_TIMERS=y # CONFIG_HIPPI is not set # CONFIG_HISILICON_IRQ_MBIGEN is not set CONFIG_HISI_PMU=y CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set CONFIG_HOLTEK_FF=y @@ -2284,6 +2317,7 @@ CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_BCM2835=m CONFIG_HW_RANDOM_EXYNOS=m +CONFIG_HW_RANDOM_HISI_V2=y CONFIG_HW_RANDOM_IMX_RNGC=m CONFIG_HW_RANDOM_IPROC_RNG200=m CONFIG_HW_RANDOM_KEYSTONE=m @@ -2401,6 +2435,7 @@ CONFIG_I6300ESB_WDT=m CONFIG_I82092=m # CONFIG_IAQCORE is not set CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set # CONFIG_IDE is not set @@ -2423,6 +2458,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2492,6 +2528,7 @@ CONFIG_IMA=y CONFIG_IMX2_WDT=m CONFIG_IMX7D_ADC=m # CONFIG_IMX7ULP_WDT is not set +CONFIG_IMX8MM_THERMAL=m # CONFIG_IMX_DMA is not set CONFIG_IMX_DSP=m CONFIG_IMX_GPCV2_PM_DOMAINS=y @@ -2499,6 +2536,7 @@ CONFIG_IMX_GPCV2=y # CONFIG_IMX_IPUV3_CORE is not set # CONFIG_IMX_IRQSTEER is not set CONFIG_IMX_MBOX=m +CONFIG_IMX_REMOTEPROC=m # CONFIG_IMX_SCU is not set CONFIG_IMX_SC_WDT=m CONFIG_IMX_SDMA=m @@ -2636,7 +2674,9 @@ CONFIG_INTEL_XWAY_PHY=m # CONFIG_INTERCONNECT is not set CONFIG_INTERCONNECT_QCOM_MSM8916=m # CONFIG_INTERCONNECT_QCOM_MSM8974 is not set +CONFIG_INTERCONNECT_QCOM_OSM_L3=m # CONFIG_INTERCONNECT_QCOM_QCS404 is not set +CONFIG_INTERCONNECT_QCOM_SC7180=m # CONFIG_INTERVAL_TREE_TEST is not set CONFIG_INV_MPU6050_I2C=m CONFIG_INV_MPU6050_IIO=m @@ -2755,6 +2795,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -3221,6 +3262,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_MAG3110=m CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX_TEST is not set @@ -3285,10 +3327,13 @@ CONFIG_MDIO_DEVICE=y CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_I2C=m +CONFIG_MDIO_IPQ8064=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set CONFIG_MDIO_SUN4I=m # CONFIG_MDIO_THUNDER is not set +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m CONFIG_MD_MULTIPATH=m CONFIG_MD_RAID0=m @@ -3348,6 +3393,7 @@ CONFIG_MESON_IRQ_GPIO=y CONFIG_MESON_MX_EFUSE=m CONFIG_MESON_MX_SOCINFO=y CONFIG_MESON_SARADC=m +CONFIG_MESON_SECURE_PM_DOMAINS=y CONFIG_MESON_SM=y CONFIG_MESON_WATCHDOG=m CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 @@ -3384,6 +3430,7 @@ CONFIG_MFD_CROS_EC_DEV=m # CONFIG_MFD_DLN2 is not set CONFIG_MFD_EXYNOS_LPASS=m # CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -3466,6 +3513,7 @@ CONFIG_MFD_WL1273_CORE=m CONFIG_MFD_WM8994=m # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m CONFIG_MICREL_KS8995MA=m CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m @@ -3497,6 +3545,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_INFINIBAND is not set CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -3537,6 +3586,7 @@ CONFIG_MMC_DW=m CONFIG_MMC_DW_PCI=m CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_ROCKCHIP=m +CONFIG_MMC_HSQ=m # CONFIG_MMC_MESON_GX is not set CONFIG_MMC_MESON_MX_SDIO=m # CONFIG_MMC_MTK is not set @@ -4380,6 +4430,7 @@ CONFIG_OMAP_IOMMU=y CONFIG_OMAP_MBOX_KFIFO_SIZE=256 CONFIG_OMAP_OCP2SCP=m CONFIG_OMAP_REMOTEPROC=m +CONFIG_OMAP_REMOTEPROC_WATCHDOG=y CONFIG_OMAP_RESET_CLOCKS=y CONFIG_OMAP_USB2=m CONFIG_OMAP_WATCHDOG=m @@ -4503,6 +4554,7 @@ CONFIG_PCIE_DW_HOST=y CONFIG_PCIE_DW_PLAT_HOST=y CONFIG_PCIE_DW=y CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y # CONFIG_PCIE_MOBIVEIL is not set # CONFIG_PCI_ENDPOINT is not set # CONFIG_PCI_ENDPOINT_TEST is not set @@ -4562,6 +4614,7 @@ CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PHY_CADENCE_DPHY=m CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_DM816X_USB is not set CONFIG_PHY_EXYNOS5250_SATA=m @@ -4575,6 +4628,8 @@ CONFIG_PHYLIB=y CONFIG_PHYLINK=m # CONFIG_PHY_MAPPHONE_MDM6600 is not set CONFIG_PHY_MESON8B_USB2=m +CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y +CONFIG_PHY_MESON_AXG_PCIE=m CONFIG_PHY_MESON_G12A_USB2=y CONFIG_PHY_MESON_G12A_USB3_PCIE=m # CONFIG_PHY_MESON_GXL_USB2 is not set @@ -4593,8 +4648,10 @@ CONFIG_PHY_MVEBU_SATA=y # CONFIG_PHY_QCOM_PCIE2 is not set CONFIG_PHY_QCOM_UFS_14NM=m CONFIG_PHY_QCOM_UFS=m +CONFIG_PHY_QCOM_USB_HS_28NM=m # CONFIG_PHY_QCOM_USB_HSIC is not set # CONFIG_PHY_QCOM_USB_HS is not set +CONFIG_PHY_QCOM_USB_SS=m CONFIG_PHY_ROCKCHIP_DPHY_RX0=m CONFIG_PHY_ROCKCHIP_DP=m CONFIG_PHY_ROCKCHIP_EMMC=m @@ -4630,7 +4687,12 @@ CONFIG_PINCTRL_CEDARFORK=m CONFIG_PINCTRL_DOVE=y # CONFIG_PINCTRL_EQUILIBRIUM is not set # CONFIG_PINCTRL_GEMINILAKE is not set +CONFIG_PINCTRL_IMX8MM=y +CONFIG_PINCTRL_IMX8MN=y +# CONFIG_PINCTRL_IMX8MP is not set +CONFIG_PINCTRL_IMX8MQ=y # CONFIG_PINCTRL_IPQ4019 is not set +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8064 is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL_MCP23S08 is not set @@ -4777,6 +4839,7 @@ CONFIG_PROC_VMCORE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_PROFILING=y CONFIG_PROVE_LOCKING=y +# CONFIG_PROVE_RAW_LOCK_NESTING is not set CONFIG_PROVE_RCU=y CONFIG_PSAMPLE=m # CONFIG_PSI_DEFAULT_DISABLED is not set @@ -4798,6 +4861,7 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_PCH=m @@ -4805,6 +4869,7 @@ CONFIG_PTP_1588_CLOCK=y CONFIG_PVPANIC=m CONFIG_PWM_BCM2835=m CONFIG_PWM_CROS_EC=m +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m # CONFIG_PWM_IMX1 is not set @@ -4988,7 +5053,9 @@ CONFIG_REGULATOR_MAX8952=m CONFIG_REGULATOR_MAX8973=m CONFIG_REGULATOR_MAX8997=m # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m # CONFIG_REGULATOR_MP8859 is not set +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set CONFIG_REGULATOR_PALMAS=y @@ -5056,6 +5123,8 @@ CONFIG_RESET_TI_SYSCON=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -5074,7 +5143,7 @@ CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m # CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y -# CONFIG_ROCKCHIP_CDN_DP is not set +CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y CONFIG_ROCKCHIP_EFUSE=m @@ -5322,7 +5391,9 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_SCHED_SMT=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TRACER=y +# CONFIG_SC_MSS_7180 is not set # CONFIG_SCR24X is not set # CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_3W_SAS is not set @@ -5490,6 +5561,7 @@ CONFIG_SENSORS_ARM_SCPI=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_DME1737=m @@ -5706,9 +5778,12 @@ CONFIG_SERIAL_OF_PLATFORM=y # CONFIG_SERIAL_RP2 is not set CONFIG_SERIAL_SAMSUNG_CONSOLE=y CONFIG_SERIAL_SAMSUNG=y -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set CONFIG_SERIAL_ST_ASC_CONSOLE=y CONFIG_SERIAL_ST_ASC=y CONFIG_SERIAL_STM32_CONSOLE=y @@ -5774,6 +5849,7 @@ CONFIG_SMC_DIAG=m CONFIG_SMC=m # CONFIG_SM_FTL is not set # CONFIG_SM_GCC_8150 is not set +CONFIG_SM_GCC_8250=m CONFIG_SMP_ON_UP=y CONFIG_SMP=y CONFIG_SMSC911X=m @@ -5807,6 +5883,7 @@ CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m CONFIG_SND_BCM2835=m CONFIG_SND_BCM2835_SOC_I2S=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -5900,6 +5977,7 @@ CONFIG_SND=m CONFIG_SND_MAESTRO3_INPUT=y CONFIG_SND_MAESTRO3=m CONFIG_SND_MAX_CARDS=32 +CONFIG_SND_MESON_AIU=m # CONFIG_SND_MESON_AXG_FRDDR is not set # CONFIG_SND_MESON_AXG_PDM is not set # CONFIG_SND_MESON_AXG_SOUND_CARD is not set @@ -5908,7 +5986,9 @@ CONFIG_SND_MAX_CARDS=32 # CONFIG_SND_MESON_AXG_TDMIN is not set # CONFIG_SND_MESON_AXG_TDMOUT is not set # CONFIG_SND_MESON_AXG_TODDR is not set +CONFIG_SND_MESON_G12A_TOACODEC=m CONFIG_SND_MESON_G12A_TOHDMITX=m +CONFIG_SND_MESON_GX_SOUND_CARD=m CONFIG_SND_MIA=m CONFIG_SND_MIXART=m CONFIG_SND_MIXER_OSS=m @@ -6029,6 +6109,7 @@ CONFIG_SND_SOC_MAX98373=m # CONFIG_SND_SOC_MAX9860 is not set CONFIG_SND_SOC_MAX9867=m CONFIG_SND_SOC_MAX98927=m +CONFIG_SND_SOC_MESON_T9015=m # CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set # CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set # CONFIG_SND_SOC_MT6351 is not set @@ -6073,6 +6154,7 @@ CONFIG_SND_SOC_ROCKCHIP_SPDIF=m # CONFIG_SND_SOC_RT5616 is not set CONFIG_SND_SOC_RT5631=m CONFIG_SND_SOC_RT5660=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -6086,6 +6168,7 @@ CONFIG_SND_SOC_SMDK_WM8994_PCM=m CONFIG_SND_SOC_SNOW=m CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set # CONFIG_SND_SOC_SOF_NOCODEC is not set # CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -6129,6 +6212,7 @@ CONFIG_SND_SOC_TEGRA_SGTL5000=m # CONFIG_SND_SOC_TEGRA_WM8903 is not set # CONFIG_SND_SOC_TEGRA_WM9712 is not set # CONFIG_SND_SOC_TFA9879 is not set +CONFIG_SND_SOC_TLV320ADCX140=m CONFIG_SND_SOC_TLV320AIC23_I2C=m CONFIG_SND_SOC_TLV320AIC23=m CONFIG_SND_SOC_TLV320AIC23_SPI=m @@ -6203,7 +6287,7 @@ CONFIG_SND_VX222=m # CONFIG_SND_XEN_FRONTEND is not set CONFIG_SND_YMFPCI=m # CONFIG_SOC_AM33XX is not set -CONFIG_SOC_AM43XX=y +# CONFIG_SOC_AM43XX is not set # CONFIG_SOC_BRCMSTB is not set # CONFIG_SOC_CAMERA is not set CONFIG_SOC_DRA7XX=y @@ -6216,6 +6300,7 @@ CONFIG_SOC_EXYNOS5800=y # CONFIG_SOC_HAS_OMAP2_SDRC is not set CONFIG_SOC_HAS_REALTIME_COUNTER=y # CONFIG_SOC_IMX6SLL is not set +CONFIG_SOC_IMX8M=y # CONFIG_SOC_LS1021A is not set CONFIG_SOC_OMAP5=y CONFIG_SOC_TEGRA_FLOWCTRL=y @@ -6248,6 +6333,7 @@ CONFIG_SPI_DESIGNWARE=m # CONFIG_SPI_DW_MID_DMA is not set CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DW_PCI=m +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m CONFIG_SPI_FSL_SPI=m @@ -6261,6 +6347,7 @@ CONFIG_SPI_MEM=y CONFIG_SPI_MESON_SPICC=m CONFIG_SPI_MESON_SPIFC=m # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -6375,6 +6462,7 @@ CONFIG_SUN4I_GPADC=m # CONFIG_SUN50I_DE2_BUS is not set CONFIG_SUN5I_CCU=y CONFIG_SUN6I_A31_CCU=y +CONFIG_SUN6I_MSGBOX=y CONFIG_SUN8I_A23_CCU=y CONFIG_SUN8I_A33_CCU=y CONFIG_SUN8I_A83T_CCU=y @@ -6517,8 +6605,10 @@ CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=y # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +CONFIG_TEST_LOCKUP=m # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -6594,6 +6684,7 @@ CONFIG_TI_MESSAGE_MANAGER=m CONFIG_TINYDRM_HX8357D=m CONFIG_TINYDRM_ILI9225=m CONFIG_TINYDRM_ILI9341=m +CONFIG_TINYDRM_ILI9486=m CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_REPAPER=m CONFIG_TINYDRM_ST7586=m @@ -6609,6 +6700,7 @@ CONFIG_TI_PWMSS=y CONFIG_TI_SCI_PROTOCOL=m CONFIG_TI_SOC_THERMAL=m # CONFIG_TI_ST is not set +CONFIG_TI_SYSCON_CLK=m CONFIG_TI_THERMAL=y # CONFIG_TI_TLC4541 is not set # CONFIG_TLAN is not set @@ -6751,6 +6843,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m # CONFIG_UACCESS_WITH_MEMCPY is not set CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y @@ -6996,6 +7089,7 @@ CONFIG_USB_M5602=m # CONFIG_USB_M66592 is not set CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -7066,6 +7160,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597 is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m @@ -7205,6 +7300,9 @@ CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VALIDATE_FS_PARSER=y # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m CONFIG_VDSO=y CONFIG_VEML6030=m CONFIG_VEML6070=m @@ -7232,8 +7330,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGA_CONSOLE=y # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -7282,6 +7382,7 @@ CONFIG_VIDEO_GO7007_LOADER=m CONFIG_VIDEO_GO7007=m CONFIG_VIDEO_GO7007_USB=m CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m +CONFIG_VIDEO_HANTRO_IMX8M=y CONFIG_VIDEO_HANTRO=m CONFIG_VIDEO_HANTRO_ROCKCHIP=y CONFIG_VIDEO_HDPVR=m @@ -7332,6 +7433,7 @@ CONFIG_VIDEO_STM32_HDMI_CEC=m CONFIG_VIDEO_SUN4I_CSI=m CONFIG_VIDEO_SUN6I_CSI=m CONFIG_VIDEO_SUN8I_DEINTERLACE=m +CONFIG_VIDEO_SUN8I_ROTATE=m CONFIG_VIDEO_SUNXI_CEDRUS=m CONFIG_VIDEO_SUNXI=y CONFIG_VIDEO_TEGRA_HDMI_CEC=m @@ -7346,7 +7448,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -7367,6 +7469,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -7521,11 +7624,12 @@ CONFIG_XFS_WARN=y # CONFIG_XILINX_AXI_EMAC is not set # CONFIG_XILINX_DMA is not set CONFIG_XILINX_GMII2RGMII=m +CONFIG_XILINX_LL_TEMAC=m CONFIG_XILINX_PR_DECOUPLER=m # CONFIG_XILINX_SDFEC is not set CONFIG_XILINX_VCU=m # CONFIG_XILINX_WATCHDOG is not set -# CONFIG_XILINX_XADC is not set +CONFIG_XILINX_XADC=m # CONFIG_XILINX_ZYNQMP_DMA is not set CONFIG_XILLYBUS=m # CONFIG_XILLYBUS_OF is not set @@ -7560,5 +7664,15 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set diff --git a/kernel-armv7hl-lpae-fedora.config b/kernel-armv7hl-lpae-fedora.config index 2bc45fa97..f485c88d6 100644 --- a/kernel-armv7hl-lpae-fedora.config +++ b/kernel-armv7hl-lpae-fedora.config @@ -65,6 +65,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -157,10 +158,12 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set CONFIG_AK8975=m +CONFIG_AL3010=m # CONFIG_AL3320A is not set # CONFIG_AL_FIC is not set CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -170,7 +173,7 @@ CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m # CONFIG_AM2315 is not set -CONFIG_AM335X_PHY_USB=m +# CONFIG_AM335X_PHY_USB is not set CONFIG_AMBA_PL08X=y CONFIG_AMD8111_ETH=m # CONFIG_AMD_IOMMU_DEBUGFS is not set @@ -183,6 +186,7 @@ CONFIG_AMLOGIC_THERMAL=m CONFIG_APDS9802ALS=m CONFIG_APDS9960=m # CONFIG_APM_EMULATION is not set +CONFIG_APPLE_MFI_FASTCHARGE=m # CONFIG_APPLE_PROPERTIES is not set # CONFIG_APPLICOM is not set CONFIG_AQTION=m @@ -222,6 +226,7 @@ CONFIG_ARCH_HAS_TICK_BROADCAST=y CONFIG_ARCH_HIGHBANK=y # CONFIG_ARCH_HISI is not set # CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IPQ40XX is not set # CONFIG_ARCH_IXP4XX is not set CONFIG_ARCH_KEYSTONE=y # CONFIG_ARCH_MEDIATEK is not set @@ -364,6 +369,7 @@ CONFIG_ARM_SP805_WATCHDOG=m CONFIG_ARM_SPE_PMU=m CONFIG_ARM_TEGRA124_CPUFREQ=y # CONFIG_ARM_TEGRA20_CPUFREQ is not set +CONFIG_ARM_TEGRA_CPUIDLE=y CONFIG_ARM_TEGRA_DEVFREQ=m CONFIG_ARM_THUMBEE=y CONFIG_ARM_THUMB=y @@ -521,6 +527,7 @@ CONFIG_BACKLIGHT_PWM=m # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -672,6 +679,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y # CONFIG_BPF_KPROBE_OVERRIDE is not set CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -918,6 +926,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -1075,10 +1084,12 @@ CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m CONFIG_CROS_EC_SPI=m CONFIG_CROS_EC_SYSFS=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_EC_VBC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128=m @@ -1154,6 +1165,7 @@ CONFIG_CRYPTO_DEV_OMAP_SHAM=m CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL=y # CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA is not set # CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER is not set +CONFIG_CRYPTO_DEV_QCE_SW_MAX_LEN=512 CONFIG_CRYPTO_DEV_QCOM_RNG=m CONFIG_CRYPTO_DEV_ROCKCHIP=m CONFIG_CRYPTO_DEV_S5P=m @@ -1371,6 +1383,7 @@ CONFIG_DM9102=m # CONFIG_DMA_API_DEBUG_SG is not set CONFIG_DMA_BCM2835=m # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set CONFIG_DMA_CMA=y # CONFIG_DMADEVICES_DEBUG is not set @@ -1454,6 +1467,7 @@ CONFIG_DRM_BOCHS=m # CONFIG_DRM_CDNS_DSI is not set CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set CONFIG_DRM_DUMB_VGA_DAC=m @@ -1523,7 +1537,10 @@ CONFIG_DRM_OMAP=m CONFIG_DRM_OMAP_PANEL_DSI_CM=m CONFIG_DRM_PANEL_ARM_VERSATILE=m # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m @@ -1535,6 +1552,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m CONFIG_DRM_PANEL_LG_LG4573=m CONFIG_DRM_PANEL_LVDS=m # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1543,13 +1561,13 @@ CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set CONFIG_DRM_PANEL_RAYDIUM_RM68200=m -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m CONFIG_DRM_PANEL_SAMSUNG_LD9040=m # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m CONFIG_DRM_PANEL_SEIKO_43WVF1G=m CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m @@ -1557,6 +1575,7 @@ CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m CONFIG_DRM_PANEL_SIMPLE=m CONFIG_DRM_PANEL_SITRONIX_ST7701=m +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1564,11 +1583,11 @@ CONFIG_DRM_PANEL_SITRONIX_ST7701=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set CONFIG_DRM_PANEL_TPO_TPG110=m # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y CONFIG_DRM_PANFROST=m CONFIG_DRM_PARADE_PS8622=m +CONFIG_DRM_PARADE_PS8640=m CONFIG_DRM_PL111=m CONFIG_DRM_QXL=m # CONFIG_DRM_R128 is not set @@ -1581,6 +1600,7 @@ CONFIG_DRM_ROCKCHIP=m # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m CONFIG_DRM_STI=m CONFIG_DRM_STM_DSI=m CONFIG_DRM_STM=m @@ -1596,11 +1616,14 @@ CONFIG_DRM_SUN8I_MIXER=m CONFIG_DRM_TEGRA=m CONFIG_DRM_TEGRA_STAGING=y # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m # CONFIG_DRM_TILCDC is not set CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m CONFIG_DRM_TOSHIBA_TC358767=m +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_TVE200=m CONFIG_DRM_UDL=m CONFIG_DRM_V3D=m @@ -1784,6 +1807,8 @@ CONFIG_ETHOC=m CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set # CONFIG_EXPOLINE_AUTO is not set CONFIG_EXPOLINE_FULL=y @@ -1826,6 +1851,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y # CONFIG_FAIL_FUTEX is not set @@ -1952,6 +1978,9 @@ CONFIG_FSI_MASTER_HUB=m # CONFIG_FSI_SBEFIFO is not set CONFIG_FSI_SCOM=m # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_MDIO is not set +# CONFIG_FSL_ENETC_VF is not set # CONFIG_FSL_IMX8_DDR_PMU is not set # CONFIG_FSL_PQ_MDIO is not set # CONFIG_FSL_QDMA is not set @@ -2022,6 +2051,7 @@ CONFIG_GFS2_FS=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set CONFIG_GPIO_74X164=m # CONFIG_GPIO_74XX_MMIO is not set @@ -2137,7 +2167,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -2148,6 +2178,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -2169,6 +2200,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -2227,12 +2259,13 @@ CONFIG_HID=y CONFIG_HID_ZEROPLUS=m CONFIG_HID_ZYDACRON=m CONFIG_HIGHMEM=y -# CONFIG_HIGHPTE is not set +CONFIG_HIGHPTE=y CONFIG_HIGH_RES_TIMERS=y # CONFIG_HIPPI is not set # CONFIG_HISILICON_IRQ_MBIGEN is not set CONFIG_HISI_PMU=y CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set CONFIG_HOLTEK_FF=y @@ -2269,6 +2302,7 @@ CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_BCM2835=m CONFIG_HW_RANDOM_EXYNOS=m +CONFIG_HW_RANDOM_HISI_V2=y CONFIG_HW_RANDOM_IMX_RNGC=m CONFIG_HW_RANDOM_IPROC_RNG200=m CONFIG_HW_RANDOM_KEYSTONE=m @@ -2386,6 +2420,7 @@ CONFIG_I6300ESB_WDT=m CONFIG_I82092=m # CONFIG_IAQCORE is not set CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set # CONFIG_IDE is not set @@ -2408,6 +2443,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2477,6 +2513,7 @@ CONFIG_IMA=y CONFIG_IMX2_WDT=m CONFIG_IMX7D_ADC=m # CONFIG_IMX7ULP_WDT is not set +CONFIG_IMX8MM_THERMAL=m # CONFIG_IMX_DMA is not set CONFIG_IMX_DSP=m CONFIG_IMX_GPCV2_PM_DOMAINS=y @@ -2484,6 +2521,7 @@ CONFIG_IMX_GPCV2=y # CONFIG_IMX_IPUV3_CORE is not set # CONFIG_IMX_IRQSTEER is not set CONFIG_IMX_MBOX=m +CONFIG_IMX_REMOTEPROC=m # CONFIG_IMX_SCU is not set CONFIG_IMX_SC_WDT=m CONFIG_IMX_SDMA=m @@ -2621,7 +2659,9 @@ CONFIG_INTEL_XWAY_PHY=m # CONFIG_INTERCONNECT is not set CONFIG_INTERCONNECT_QCOM_MSM8916=m # CONFIG_INTERCONNECT_QCOM_MSM8974 is not set +CONFIG_INTERCONNECT_QCOM_OSM_L3=m # CONFIG_INTERCONNECT_QCOM_QCS404 is not set +CONFIG_INTERCONNECT_QCOM_SC7180=m # CONFIG_INTERVAL_TREE_TEST is not set CONFIG_INV_MPU6050_I2C=m CONFIG_INV_MPU6050_IIO=m @@ -2740,6 +2780,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -3204,6 +3245,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_MAG3110=m CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX_TEST is not set @@ -3267,10 +3309,13 @@ CONFIG_MDIO_DEVICE=y CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_I2C=m +CONFIG_MDIO_IPQ8064=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set CONFIG_MDIO_SUN4I=m # CONFIG_MDIO_THUNDER is not set +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m CONFIG_MD_MULTIPATH=m CONFIG_MD_RAID0=m @@ -3330,6 +3375,7 @@ CONFIG_MESON_IRQ_GPIO=y CONFIG_MESON_MX_EFUSE=m CONFIG_MESON_MX_SOCINFO=y CONFIG_MESON_SARADC=m +CONFIG_MESON_SECURE_PM_DOMAINS=y CONFIG_MESON_SM=y CONFIG_MESON_WATCHDOG=m CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 @@ -3366,6 +3412,7 @@ CONFIG_MFD_CROS_EC_DEV=m # CONFIG_MFD_DLN2 is not set CONFIG_MFD_EXYNOS_LPASS=m # CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -3448,6 +3495,7 @@ CONFIG_MFD_WL1273_CORE=m CONFIG_MFD_WM8994=m # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m CONFIG_MICREL_KS8995MA=m CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m @@ -3479,6 +3527,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_INFINIBAND is not set CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -3519,6 +3568,7 @@ CONFIG_MMC_DW=m CONFIG_MMC_DW_PCI=m CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_ROCKCHIP=m +CONFIG_MMC_HSQ=m # CONFIG_MMC_MESON_GX is not set CONFIG_MMC_MESON_MX_SDIO=m # CONFIG_MMC_MTK is not set @@ -4361,6 +4411,7 @@ CONFIG_OMAP_IOMMU=y CONFIG_OMAP_MBOX_KFIFO_SIZE=256 CONFIG_OMAP_OCP2SCP=m CONFIG_OMAP_REMOTEPROC=m +CONFIG_OMAP_REMOTEPROC_WATCHDOG=y CONFIG_OMAP_RESET_CLOCKS=y CONFIG_OMAP_USB2=m CONFIG_OMAP_WATCHDOG=m @@ -4484,6 +4535,7 @@ CONFIG_PCIE_DW_HOST=y CONFIG_PCIE_DW_PLAT_HOST=y CONFIG_PCIE_DW=y CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y # CONFIG_PCIE_MOBIVEIL is not set # CONFIG_PCI_ENDPOINT is not set # CONFIG_PCI_ENDPOINT_TEST is not set @@ -4543,6 +4595,7 @@ CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PHY_CADENCE_DPHY=m CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_DM816X_USB is not set CONFIG_PHY_EXYNOS5250_SATA=m @@ -4556,6 +4609,8 @@ CONFIG_PHYLIB=y CONFIG_PHYLINK=m # CONFIG_PHY_MAPPHONE_MDM6600 is not set CONFIG_PHY_MESON8B_USB2=m +CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y +CONFIG_PHY_MESON_AXG_PCIE=m CONFIG_PHY_MESON_G12A_USB2=y CONFIG_PHY_MESON_G12A_USB3_PCIE=m # CONFIG_PHY_MESON_GXL_USB2 is not set @@ -4574,8 +4629,10 @@ CONFIG_PHY_MVEBU_SATA=y # CONFIG_PHY_QCOM_PCIE2 is not set CONFIG_PHY_QCOM_UFS_14NM=m CONFIG_PHY_QCOM_UFS=m +CONFIG_PHY_QCOM_USB_HS_28NM=m # CONFIG_PHY_QCOM_USB_HSIC is not set # CONFIG_PHY_QCOM_USB_HS is not set +CONFIG_PHY_QCOM_USB_SS=m CONFIG_PHY_ROCKCHIP_DPHY_RX0=m CONFIG_PHY_ROCKCHIP_DP=m CONFIG_PHY_ROCKCHIP_EMMC=m @@ -4611,7 +4668,12 @@ CONFIG_PINCTRL_CEDARFORK=m CONFIG_PINCTRL_DOVE=y # CONFIG_PINCTRL_EQUILIBRIUM is not set # CONFIG_PINCTRL_GEMINILAKE is not set +CONFIG_PINCTRL_IMX8MM=y +CONFIG_PINCTRL_IMX8MN=y +# CONFIG_PINCTRL_IMX8MP is not set +CONFIG_PINCTRL_IMX8MQ=y # CONFIG_PINCTRL_IPQ4019 is not set +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8064 is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL_MCP23S08 is not set @@ -4758,6 +4820,7 @@ CONFIG_PROC_VMCORE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_PROFILING=y # CONFIG_PROVE_LOCKING is not set +# CONFIG_PROVE_RAW_LOCK_NESTING is not set CONFIG_PSAMPLE=m # CONFIG_PSI_DEFAULT_DISABLED is not set CONFIG_PSI=y @@ -4778,6 +4841,7 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_PCH=m @@ -4785,6 +4849,7 @@ CONFIG_PTP_1588_CLOCK=y CONFIG_PVPANIC=m CONFIG_PWM_BCM2835=m CONFIG_PWM_CROS_EC=m +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m # CONFIG_PWM_IMX1 is not set @@ -4968,7 +5033,9 @@ CONFIG_REGULATOR_MAX8952=m CONFIG_REGULATOR_MAX8973=m CONFIG_REGULATOR_MAX8997=m # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m # CONFIG_REGULATOR_MP8859 is not set +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set CONFIG_REGULATOR_PALMAS=y @@ -5036,6 +5103,8 @@ CONFIG_RESET_TI_SYSCON=m CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -5054,7 +5123,7 @@ CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m # CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y -# CONFIG_ROCKCHIP_CDN_DP is not set +CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y CONFIG_ROCKCHIP_EFUSE=m @@ -5302,7 +5371,9 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_SCHED_SMT=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TRACER=y +# CONFIG_SC_MSS_7180 is not set # CONFIG_SCR24X is not set # CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_3W_SAS is not set @@ -5470,6 +5541,7 @@ CONFIG_SENSORS_ARM_SCPI=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_DME1737=m @@ -5686,9 +5758,12 @@ CONFIG_SERIAL_OF_PLATFORM=y # CONFIG_SERIAL_RP2 is not set CONFIG_SERIAL_SAMSUNG_CONSOLE=y CONFIG_SERIAL_SAMSUNG=y -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set CONFIG_SERIAL_ST_ASC_CONSOLE=y CONFIG_SERIAL_ST_ASC=y CONFIG_SERIAL_STM32_CONSOLE=y @@ -5754,6 +5829,7 @@ CONFIG_SMC_DIAG=m CONFIG_SMC=m # CONFIG_SM_FTL is not set # CONFIG_SM_GCC_8150 is not set +CONFIG_SM_GCC_8250=m CONFIG_SMP_ON_UP=y CONFIG_SMP=y CONFIG_SMSC911X=m @@ -5787,6 +5863,7 @@ CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m CONFIG_SND_BCM2835=m CONFIG_SND_BCM2835_SOC_I2S=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -5880,6 +5957,7 @@ CONFIG_SND=m CONFIG_SND_MAESTRO3_INPUT=y CONFIG_SND_MAESTRO3=m CONFIG_SND_MAX_CARDS=32 +CONFIG_SND_MESON_AIU=m # CONFIG_SND_MESON_AXG_FRDDR is not set # CONFIG_SND_MESON_AXG_PDM is not set # CONFIG_SND_MESON_AXG_SOUND_CARD is not set @@ -5888,7 +5966,9 @@ CONFIG_SND_MAX_CARDS=32 # CONFIG_SND_MESON_AXG_TDMIN is not set # CONFIG_SND_MESON_AXG_TDMOUT is not set # CONFIG_SND_MESON_AXG_TODDR is not set +CONFIG_SND_MESON_G12A_TOACODEC=m CONFIG_SND_MESON_G12A_TOHDMITX=m +CONFIG_SND_MESON_GX_SOUND_CARD=m CONFIG_SND_MIA=m CONFIG_SND_MIXART=m CONFIG_SND_MIXER_OSS=m @@ -6008,6 +6088,7 @@ CONFIG_SND_SOC_MAX98373=m # CONFIG_SND_SOC_MAX9860 is not set CONFIG_SND_SOC_MAX9867=m CONFIG_SND_SOC_MAX98927=m +CONFIG_SND_SOC_MESON_T9015=m # CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set # CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set # CONFIG_SND_SOC_MT6351 is not set @@ -6052,6 +6133,7 @@ CONFIG_SND_SOC_ROCKCHIP_SPDIF=m # CONFIG_SND_SOC_RT5616 is not set CONFIG_SND_SOC_RT5631=m CONFIG_SND_SOC_RT5660=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -6065,6 +6147,7 @@ CONFIG_SND_SOC_SMDK_WM8994_PCM=m CONFIG_SND_SOC_SNOW=m CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set # CONFIG_SND_SOC_SOF_NOCODEC is not set # CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -6108,6 +6191,7 @@ CONFIG_SND_SOC_TEGRA_SGTL5000=m # CONFIG_SND_SOC_TEGRA_WM8903 is not set # CONFIG_SND_SOC_TEGRA_WM9712 is not set # CONFIG_SND_SOC_TFA9879 is not set +CONFIG_SND_SOC_TLV320ADCX140=m CONFIG_SND_SOC_TLV320AIC23_I2C=m CONFIG_SND_SOC_TLV320AIC23=m CONFIG_SND_SOC_TLV320AIC23_SPI=m @@ -6182,7 +6266,7 @@ CONFIG_SND_VX222=m # CONFIG_SND_XEN_FRONTEND is not set CONFIG_SND_YMFPCI=m # CONFIG_SOC_AM33XX is not set -CONFIG_SOC_AM43XX=y +# CONFIG_SOC_AM43XX is not set # CONFIG_SOC_BRCMSTB is not set # CONFIG_SOC_CAMERA is not set CONFIG_SOC_DRA7XX=y @@ -6195,6 +6279,7 @@ CONFIG_SOC_EXYNOS5800=y # CONFIG_SOC_HAS_OMAP2_SDRC is not set CONFIG_SOC_HAS_REALTIME_COUNTER=y # CONFIG_SOC_IMX6SLL is not set +CONFIG_SOC_IMX8M=y # CONFIG_SOC_LS1021A is not set CONFIG_SOC_OMAP5=y CONFIG_SOC_TEGRA_FLOWCTRL=y @@ -6227,6 +6312,7 @@ CONFIG_SPI_DESIGNWARE=m # CONFIG_SPI_DW_MID_DMA is not set CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DW_PCI=m +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_FSL_QUADSPI=m CONFIG_SPI_FSL_SPI=m @@ -6240,6 +6326,7 @@ CONFIG_SPI_MEM=y CONFIG_SPI_MESON_SPICC=m CONFIG_SPI_MESON_SPIFC=m # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -6354,6 +6441,7 @@ CONFIG_SUN4I_GPADC=m # CONFIG_SUN50I_DE2_BUS is not set CONFIG_SUN5I_CCU=y CONFIG_SUN6I_A31_CCU=y +CONFIG_SUN6I_MSGBOX=y CONFIG_SUN8I_A23_CCU=y CONFIG_SUN8I_A33_CCU=y CONFIG_SUN8I_A83T_CCU=y @@ -6496,8 +6584,10 @@ CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +# CONFIG_TEST_LOCKUP is not set # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -6573,6 +6663,7 @@ CONFIG_TI_MESSAGE_MANAGER=m CONFIG_TINYDRM_HX8357D=m CONFIG_TINYDRM_ILI9225=m CONFIG_TINYDRM_ILI9341=m +CONFIG_TINYDRM_ILI9486=m CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_REPAPER=m CONFIG_TINYDRM_ST7586=m @@ -6588,6 +6679,7 @@ CONFIG_TI_PWMSS=y CONFIG_TI_SCI_PROTOCOL=m CONFIG_TI_SOC_THERMAL=m # CONFIG_TI_ST is not set +CONFIG_TI_SYSCON_CLK=m CONFIG_TI_THERMAL=y # CONFIG_TI_TLC4541 is not set # CONFIG_TLAN is not set @@ -6730,6 +6822,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m # CONFIG_UACCESS_WITH_MEMCPY is not set CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y @@ -6975,6 +7068,7 @@ CONFIG_USB_M5602=m # CONFIG_USB_M66592 is not set CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -7045,6 +7139,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597 is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m @@ -7184,6 +7279,9 @@ CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VALIDATE_FS_PARSER=y # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m CONFIG_VDSO=y CONFIG_VEML6030=m CONFIG_VEML6070=m @@ -7211,8 +7309,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGA_CONSOLE=y # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -7261,6 +7361,7 @@ CONFIG_VIDEO_GO7007_LOADER=m CONFIG_VIDEO_GO7007=m CONFIG_VIDEO_GO7007_USB=m CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m +CONFIG_VIDEO_HANTRO_IMX8M=y CONFIG_VIDEO_HANTRO=m CONFIG_VIDEO_HANTRO_ROCKCHIP=y CONFIG_VIDEO_HDPVR=m @@ -7311,6 +7412,7 @@ CONFIG_VIDEO_STM32_HDMI_CEC=m CONFIG_VIDEO_SUN4I_CSI=m CONFIG_VIDEO_SUN6I_CSI=m CONFIG_VIDEO_SUN8I_DEINTERLACE=m +CONFIG_VIDEO_SUN8I_ROTATE=m CONFIG_VIDEO_SUNXI_CEDRUS=m CONFIG_VIDEO_SUNXI=y CONFIG_VIDEO_TEGRA_HDMI_CEC=m @@ -7325,7 +7427,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -7346,6 +7448,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -7499,11 +7602,12 @@ CONFIG_XFS_QUOTA=y # CONFIG_XILINX_AXI_EMAC is not set # CONFIG_XILINX_DMA is not set CONFIG_XILINX_GMII2RGMII=m +CONFIG_XILINX_LL_TEMAC=m CONFIG_XILINX_PR_DECOUPLER=m # CONFIG_XILINX_SDFEC is not set CONFIG_XILINX_VCU=m # CONFIG_XILINX_WATCHDOG is not set -# CONFIG_XILINX_XADC is not set +CONFIG_XILINX_XADC=m # CONFIG_XILINX_ZYNQMP_DMA is not set CONFIG_XILLYBUS=m # CONFIG_XILLYBUS_OF is not set @@ -7538,5 +7642,15 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set diff --git a/kernel-i686-debug-fedora.config b/kernel-i686-debug-fedora.config index eae66431d..947abfce0 100644 --- a/kernel-i686-debug-fedora.config +++ b/kernel-i686-debug-fedora.config @@ -1,5 +1,6 @@ # i386 # CONFIG_60XX_WDT is not set +# CONFIG_64BIT is not set CONFIG_6LOWPAN_DEBUGFS=y CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m @@ -100,6 +101,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -197,12 +199,14 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set # CONFIG_AK8975 is not set +CONFIG_AL3010=m # CONFIG_AL3320A is not set # CONFIG_AL_FIC is not set CONFIG_ALIENWARE_WMI=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m # CONFIG_ALIX is not set +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -230,6 +234,7 @@ CONFIG_APM_CPU_IDLE=y # CONFIG_APM_IGNORE_USER_SUSPEND is not set CONFIG_APM=y CONFIG_APPLE_GMUX=m +CONFIG_APPLE_MFI_FASTCHARGE=m CONFIG_APPLE_PROPERTIES=y # CONFIG_APPLICOM is not set CONFIG_AQTION=m @@ -394,6 +399,7 @@ CONFIG_BACKLIGHT_PWM=m # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -533,6 +539,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y CONFIG_BPF_KPROBE_OVERRIDE=y CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -770,6 +777,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -796,6 +804,7 @@ CONFIG_CIFS_XATTR=y CONFIG_CLEANCACHE=y # CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLK_RASPBERRYPI is not set # CONFIG_CLK_SIFIVE is not set # CONFIG_CLK_SUNXI_CLOCKS is not set # CONFIG_CLK_SUNXI is not set @@ -897,6 +906,7 @@ CONFIG_CRC7=m CONFIG_CRC8=m CONFIG_CRC_CCITT=y CONFIG_CRC_ITU_T=m +CONFIG_CRC_PMIC_OPREGION=y CONFIG_CRC_T10DIF=y CONFIG_CROS_EC_DEBUGFS=m CONFIG_CROS_EC_ISHTP=m @@ -904,9 +914,11 @@ CONFIG_CROS_EC_ISHTP=m # CONFIG_CROS_EC_LIGHTBAR is not set CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128=m @@ -1084,7 +1096,7 @@ CONFIG_DEBUG_INFO=y CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y -CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000 +CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=4096 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KOBJECT is not set @@ -1175,6 +1187,7 @@ CONFIG_DM9102=m # CONFIG_DMA_API_DEBUG_SG is not set CONFIG_DMA_API_DEBUG=y # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set CONFIG_DMA_CMA=y # CONFIG_DMADEVICES_DEBUG is not set @@ -1253,6 +1266,7 @@ CONFIG_DRM_BOCHS=m # CONFIG_DRM_CDNS_DSI is not set CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set # CONFIG_DRM_DUMB_VGA_DAC is not set @@ -1294,7 +1308,10 @@ CONFIG_DRM_NOUVEAU=m # CONFIG_DRM_NOUVEAU_SVM is not set # CONFIG_DRM_NXP_PTN3460 is not set # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set @@ -1306,6 +1323,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_LG_LG4573 is not set # CONFIG_DRM_PANEL_LVDS is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1314,13 +1332,13 @@ CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set # CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set @@ -1328,6 +1346,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set # CONFIG_DRM_PANEL_SIMPLE is not set # CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1335,10 +1354,10 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set +CONFIG_DRM_PARADE_PS8640=m CONFIG_DRM_QXL=m # CONFIG_DRM_R128 is not set CONFIG_DRM_RADEON=m @@ -1349,12 +1368,16 @@ CONFIG_DRM_RADEON_USERPTR=y # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_UDL=m CONFIG_DRM_VBOXVIDEO=m CONFIG_DRM_VGEM=m @@ -1458,6 +1481,7 @@ CONFIG_DW_DMAC=m CONFIG_DW_DMAC_PCI=y CONFIG_DW_EDMA=m CONFIG_DW_EDMA_PCIE=m +CONFIG_DWMAC_INTEL=m # CONFIG_DW_WATCHDOG is not set CONFIG_DYNAMIC_DEBUG=y CONFIG_DYNAMIC_FTRACE=y @@ -1549,6 +1573,8 @@ CONFIG_ETHOC=m CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set # CONFIG_EXPOLINE_AUTO is not set CONFIG_EXPOLINE_FULL=y @@ -1582,6 +1608,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y CONFIG_F71808E_WDT=m @@ -1726,6 +1753,9 @@ CONFIG_FSI_MASTER_HUB=m # CONFIG_FSI_SBEFIFO is not set CONFIG_FSI_SCOM=m # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_MDIO is not set +# CONFIG_FSL_ENETC_VF is not set # CONFIG_FSL_PQ_MDIO is not set # CONFIG_FSL_QDMA is not set CONFIG_FS_MBCACHE=y @@ -1797,6 +1827,7 @@ CONFIG_GFS2_FS=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set CONFIG_GPD_POCKET_FAN=m # CONFIG_GPIO_74X164 is not set @@ -1903,7 +1934,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -1914,6 +1945,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -1936,6 +1968,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -2000,6 +2033,7 @@ CONFIG_HIGHPTE=y CONFIG_HIGH_RES_TIMERS=y # CONFIG_HIPPI is not set CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set CONFIG_HOLTEK_FF=y @@ -2048,6 +2082,7 @@ CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_GEODE=m +CONFIG_HW_RANDOM_HISI_V2=y CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=y @@ -2159,6 +2194,7 @@ CONFIG_IBM_ASM=m CONFIG_IBMASR=m # CONFIG_IBM_RTL is not set CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set CONFIG_IDEAPAD_LAPTOP=m @@ -2183,6 +2219,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2522,6 +2559,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -2722,7 +2760,7 @@ CONFIG_KEXEC=y # CONFIG_KEYBOARD_ADC is not set # CONFIG_KEYBOARD_ADP5588 is not set # CONFIG_KEYBOARD_ADP5589 is not set -# CONFIG_KEYBOARD_APPLESPI is not set +CONFIG_KEYBOARD_APPLESPI=m CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_BCM is not set # CONFIG_KEYBOARD_CAP11XX is not set @@ -2979,6 +3017,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m # CONFIG_MAG3110 is not set CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX is not set @@ -3045,8 +3084,10 @@ CONFIG_MDIO_DEVICE=y # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_I2C=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m CONFIG_MD_MULTIPATH=m CONFIG_MD_RAID0=m @@ -3127,6 +3168,7 @@ CONFIG_MFD_CS5535=y CONFIG_MFD_INTEL_LPSS_ACPI=y CONFIG_MFD_INTEL_LPSS_PCI=y # CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -3199,6 +3241,7 @@ CONFIG_MFD_WL1273_CORE=m # CONFIG_MFD_WM8994 is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m # CONFIG_MICREL_KS8995MA is not set CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m @@ -3237,6 +3280,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_INFINIBAND is not set CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -3269,6 +3313,7 @@ CONFIG_MMC_CB710=m CONFIG_MMC_CQHCI=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_DW_BLUEFIELD is not set +CONFIG_MMC_HSQ=m CONFIG_MMC=m # CONFIG_MMC_MTK is not set CONFIG_MMC_REALTEK_PCI=m @@ -4170,6 +4215,7 @@ CONFIG_PCIE_CADENCE_HOST=y CONFIG_PCIE_DPC=y # CONFIG_PCIE_DW_PLAT_HOST is not set CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y # CONFIG_PCIE_INTEL_GW is not set # CONFIG_PCIE_MOBIVEIL is not set # CONFIG_PCI_ENDPOINT is not set @@ -4233,6 +4279,7 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHY_CADENCE_DPHY is not set CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set CONFIG_PHY_INTEL_EMMC=m @@ -4261,6 +4308,7 @@ CONFIG_PINCTRL_DENVERTON=m CONFIG_PINCTRL_EQUILIBRIUM=m CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_ICELAKE=m +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8074 is not set CONFIG_PINCTRL_LEWISBURG=m CONFIG_PINCTRL_LYNXPOINT=m @@ -4387,6 +4435,7 @@ CONFIG_PROC_VMCORE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_PROFILING=y CONFIG_PROVE_LOCKING=y +# CONFIG_PROVE_RAW_LOCK_NESTING is not set CONFIG_PROVE_RCU=y # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set CONFIG_PSAMPLE=m @@ -4409,15 +4458,18 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m CONFIG_PTP_1588_CLOCK_PCH=m +CONFIG_PTP_1588_CLOCK_VMW=m CONFIG_PTP_1588_CLOCK=y # CONFIG_PUNIT_ATOM_DEBUG is not set CONFIG_PVH=y CONFIG_PVPANIC=m CONFIG_PWM_CRC=y +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m CONFIG_PWM_LPSS=m @@ -4434,6 +4486,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set # CONFIG_QCS_TURING_404 is not set CONFIG_QEDE=m CONFIG_QEDF=m @@ -4553,7 +4606,9 @@ CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m # CONFIG_REGULATOR_MP8859 is not set +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set # CONFIG_REGULATOR_PFUZE100 is not set @@ -4596,6 +4651,8 @@ CONFIG_RETPOLINE=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -4821,6 +4878,7 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_SCHED_SMT=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TRACER=y # CONFIG_SCR24X is not set CONFIG_SCSI_3W_9XXX=m @@ -4988,6 +5046,7 @@ CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATK0110=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_CORETEMP=m @@ -5191,9 +5250,12 @@ CONFIG_SERIAL_NONSTANDARD=y CONFIG_SERIAL_OF_PLATFORM=m # CONFIG_SERIAL_PCH_UART is not set # CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set # CONFIG_SERIAL_ST_ASC is not set # CONFIG_SERIAL_TIMBERDALE is not set # CONFIG_SERIAL_UARTLITE is not set @@ -5280,6 +5342,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -5504,6 +5567,7 @@ CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m CONFIG_SND_SOC_INTEL_SKYLAKE=m CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m +CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m CONFIG_SND_SOC_INTEL_SST_ACPI=m CONFIG_SND_SOC_INTEL_SST=m @@ -5537,7 +5601,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m CONFIG_SND_SOC_PCM3060_SPI=m # CONFIG_SND_SOC_PCM3168A_I2C is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set +CONFIG_SND_SOC_PCM512x_I2C=m # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_RK3328 is not set CONFIG_SND_SOC_RL6231=m @@ -5545,6 +5609,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set CONFIG_SND_SOC_RT5660=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -5558,6 +5623,7 @@ CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y # CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set @@ -5592,6 +5658,7 @@ CONFIG_SND_SOC_TAS2770=m CONFIG_SND_SOC_TAS6424=m CONFIG_SND_SOC_TDA7419=m # CONFIG_SND_SOC_TFA9879 is not set +CONFIG_SND_SOC_TLV320ADCX140=m # CONFIG_SND_SOC_TLV320AIC23_I2C is not set # CONFIG_SND_SOC_TLV320AIC23_SPI is not set # CONFIG_SND_SOC_TLV320AIC31XX is not set @@ -5688,6 +5755,7 @@ CONFIG_SPARSEMEM_MANUAL=y # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_LPSPI=m # CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_GPIO is not set @@ -5697,6 +5765,7 @@ CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_MASTER=y # CONFIG_SPI_MEM is not set # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -5780,6 +5849,7 @@ CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SURFACE_3_BUTTON=m +CONFIG_SURFACE_3_POWER_OPREGION=m CONFIG_SURFACE3_WMI=m CONFIG_SURFACE_PRO3_BUTTON=m CONFIG_SUSPEND=y @@ -5883,8 +5953,10 @@ CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=y # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +CONFIG_TEST_LOCKUP=m # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -5952,6 +6024,7 @@ CONFIG_TIME_NS=y # CONFIG_TINYDRM_HX8357D is not set # CONFIG_TINYDRM_ILI9225 is not set # CONFIG_TINYDRM_ILI9341 is not set +CONFIG_TINYDRM_ILI9486=m # CONFIG_TINYDRM_MI0283QT is not set # CONFIG_TINYDRM_REPAPER is not set # CONFIG_TINYDRM_ST7586 is not set @@ -6093,6 +6166,7 @@ CONFIG_TYPEC_DP_ALTMODE=m CONFIG_TYPEC_FUSB302=m CONFIG_TYPEC_HD3SS3220=m CONFIG_TYPEC=m +CONFIG_TYPEC_MUX_INTEL_PMC=m CONFIG_TYPEC_MUX_PI3USB30532=m CONFIG_TYPEC_NVIDIA_ALTMODE=m # CONFIG_TYPEC_RT1711H is not set @@ -6102,6 +6176,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set @@ -6297,6 +6372,7 @@ CONFIG_USB_LEGOTOWER=m CONFIG_USB_M5602=m CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -6352,6 +6428,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLES_INTEL_XHCI=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m @@ -6487,6 +6564,9 @@ CONFIG_VBOXGUEST=m CONFIG_VBOXSF_FS=m # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m CONFIG_VEML6030=m # CONFIG_VEML6070 is not set CONFIG_VETH=m @@ -6509,8 +6589,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGA_CONSOLE=y CONFIG_VGA_SWITCHEROO=y # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -6592,7 +6674,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -6613,6 +6695,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -6771,6 +6854,7 @@ CONFIG_X86_GENERIC=y # CONFIG_X86_GX_SUSPMOD is not set CONFIG_X86_INTEL_LPSS=y # CONFIG_X86_INTEL_MID is not set +CONFIG_X86_INTEL_MPX=y CONFIG_X86_INTEL_PSTATE=y # CONFIG_X86_INTEL_QUARK is not set # CONFIG_X86_INTEL_TSX_MODE_AUTO is not set @@ -6899,5 +6983,15 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set diff --git a/kernel-i686-fedora.config b/kernel-i686-fedora.config index 1c235651f..14d2577e0 100644 --- a/kernel-i686-fedora.config +++ b/kernel-i686-fedora.config @@ -1,5 +1,6 @@ # i386 # CONFIG_60XX_WDT is not set +# CONFIG_64BIT is not set CONFIG_6LOWPAN_DEBUGFS=y CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m @@ -100,6 +101,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -197,12 +199,14 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set # CONFIG_AK8975 is not set +CONFIG_AL3010=m # CONFIG_AL3320A is not set # CONFIG_AL_FIC is not set CONFIG_ALIENWARE_WMI=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m # CONFIG_ALIX is not set +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -230,6 +234,7 @@ CONFIG_APM_CPU_IDLE=y # CONFIG_APM_IGNORE_USER_SUSPEND is not set CONFIG_APM=y CONFIG_APPLE_GMUX=m +CONFIG_APPLE_MFI_FASTCHARGE=m CONFIG_APPLE_PROPERTIES=y # CONFIG_APPLICOM is not set CONFIG_AQTION=m @@ -393,6 +398,7 @@ CONFIG_BACKLIGHT_PWM=m # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -532,6 +538,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y # CONFIG_BPF_KPROBE_OVERRIDE is not set CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -769,6 +776,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -795,6 +803,7 @@ CONFIG_CIFS_XATTR=y CONFIG_CLEANCACHE=y # CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLK_RASPBERRYPI is not set # CONFIG_CLK_SIFIVE is not set # CONFIG_CLK_SUNXI_CLOCKS is not set # CONFIG_CLK_SUNXI is not set @@ -896,6 +905,7 @@ CONFIG_CRC7=m CONFIG_CRC8=m CONFIG_CRC_CCITT=y CONFIG_CRC_ITU_T=m +CONFIG_CRC_PMIC_OPREGION=y CONFIG_CRC_T10DIF=y # CONFIG_CROS_EC_DEBUGFS is not set CONFIG_CROS_EC_ISHTP=m @@ -903,9 +913,11 @@ CONFIG_CROS_EC_ISHTP=m # CONFIG_CROS_EC_LIGHTBAR is not set CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128=m @@ -1167,6 +1179,7 @@ CONFIG_DM9102=m # CONFIG_DMA_API_DEBUG is not set # CONFIG_DMA_API_DEBUG_SG is not set # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set CONFIG_DMA_CMA=y # CONFIG_DMADEVICES_DEBUG is not set @@ -1244,6 +1257,7 @@ CONFIG_DRM_BOCHS=m # CONFIG_DRM_CDNS_DSI is not set CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set # CONFIG_DRM_DUMB_VGA_DAC is not set @@ -1285,7 +1299,10 @@ CONFIG_DRM_NOUVEAU=m # CONFIG_DRM_NOUVEAU_SVM is not set # CONFIG_DRM_NXP_PTN3460 is not set # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set @@ -1297,6 +1314,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_LG_LG4573 is not set # CONFIG_DRM_PANEL_LVDS is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1305,13 +1323,13 @@ CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set # CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set @@ -1319,6 +1337,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set # CONFIG_DRM_PANEL_SIMPLE is not set # CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1326,10 +1345,10 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set +CONFIG_DRM_PARADE_PS8640=m CONFIG_DRM_QXL=m # CONFIG_DRM_R128 is not set CONFIG_DRM_RADEON=m @@ -1340,12 +1359,16 @@ CONFIG_DRM_RADEON_USERPTR=y # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_UDL=m CONFIG_DRM_VBOXVIDEO=m CONFIG_DRM_VGEM=m @@ -1449,6 +1472,7 @@ CONFIG_DW_DMAC=m CONFIG_DW_DMAC_PCI=y CONFIG_DW_EDMA=m CONFIG_DW_EDMA_PCIE=m +CONFIG_DWMAC_INTEL=m # CONFIG_DW_WATCHDOG is not set CONFIG_DYNAMIC_DEBUG=y CONFIG_DYNAMIC_FTRACE=y @@ -1540,6 +1564,8 @@ CONFIG_ETHOC=m CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set # CONFIG_EXPOLINE_AUTO is not set CONFIG_EXPOLINE_FULL=y @@ -1573,6 +1599,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y CONFIG_F71808E_WDT=m @@ -1709,6 +1736,9 @@ CONFIG_FSI_MASTER_HUB=m # CONFIG_FSI_SBEFIFO is not set CONFIG_FSI_SCOM=m # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_MDIO is not set +# CONFIG_FSL_ENETC_VF is not set # CONFIG_FSL_PQ_MDIO is not set # CONFIG_FSL_QDMA is not set CONFIG_FS_MBCACHE=y @@ -1780,6 +1810,7 @@ CONFIG_GFS2_FS=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set CONFIG_GPD_POCKET_FAN=m # CONFIG_GPIO_74X164 is not set @@ -1886,7 +1917,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -1897,6 +1928,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -1919,6 +1951,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -1983,6 +2016,7 @@ CONFIG_HIGHPTE=y CONFIG_HIGH_RES_TIMERS=y # CONFIG_HIPPI is not set CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set CONFIG_HOLTEK_FF=y @@ -2031,6 +2065,7 @@ CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_GEODE=m +CONFIG_HW_RANDOM_HISI_V2=y CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=y @@ -2142,6 +2177,7 @@ CONFIG_IBM_ASM=m CONFIG_IBMASR=m # CONFIG_IBM_RTL is not set CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set CONFIG_IDEAPAD_LAPTOP=m @@ -2166,6 +2202,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2505,6 +2542,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -2703,7 +2741,7 @@ CONFIG_KEXEC=y # CONFIG_KEYBOARD_ADC is not set # CONFIG_KEYBOARD_ADP5588 is not set # CONFIG_KEYBOARD_ADP5589 is not set -# CONFIG_KEYBOARD_APPLESPI is not set +CONFIG_KEYBOARD_APPLESPI=m CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_BCM is not set # CONFIG_KEYBOARD_CAP11XX is not set @@ -2960,6 +2998,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m # CONFIG_MAG3110 is not set CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX is not set @@ -3026,8 +3065,10 @@ CONFIG_MDIO_DEVICE=y # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_I2C=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m CONFIG_MD_MULTIPATH=m CONFIG_MD_RAID0=m @@ -3108,6 +3149,7 @@ CONFIG_MFD_CS5535=y CONFIG_MFD_INTEL_LPSS_ACPI=y CONFIG_MFD_INTEL_LPSS_PCI=y # CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -3180,6 +3222,7 @@ CONFIG_MFD_WL1273_CORE=m # CONFIG_MFD_WM8994 is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m # CONFIG_MICREL_KS8995MA is not set CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m @@ -3218,6 +3261,7 @@ CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_INFINIBAND is not set CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -3250,6 +3294,7 @@ CONFIG_MMC_CB710=m CONFIG_MMC_CQHCI=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_DW_BLUEFIELD is not set +CONFIG_MMC_HSQ=m CONFIG_MMC=m # CONFIG_MMC_MTK is not set CONFIG_MMC_REALTEK_PCI=m @@ -4151,6 +4196,7 @@ CONFIG_PCIE_CADENCE_HOST=y CONFIG_PCIE_DPC=y # CONFIG_PCIE_DW_PLAT_HOST is not set CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y # CONFIG_PCIE_INTEL_GW is not set # CONFIG_PCIE_MOBIVEIL is not set # CONFIG_PCI_ENDPOINT is not set @@ -4214,6 +4260,7 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHY_CADENCE_DPHY is not set CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set CONFIG_PHY_INTEL_EMMC=m @@ -4242,6 +4289,7 @@ CONFIG_PINCTRL_DENVERTON=m CONFIG_PINCTRL_EQUILIBRIUM=m CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_ICELAKE=m +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8074 is not set CONFIG_PINCTRL_LEWISBURG=m CONFIG_PINCTRL_LYNXPOINT=m @@ -4368,6 +4416,7 @@ CONFIG_PROC_VMCORE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_PROFILING=y # CONFIG_PROVE_LOCKING is not set +# CONFIG_PROVE_RAW_LOCK_NESTING is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set CONFIG_PSAMPLE=m # CONFIG_PSI_DEFAULT_DISABLED is not set @@ -4389,15 +4438,18 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m CONFIG_PTP_1588_CLOCK_PCH=m +CONFIG_PTP_1588_CLOCK_VMW=m CONFIG_PTP_1588_CLOCK=y # CONFIG_PUNIT_ATOM_DEBUG is not set CONFIG_PVH=y CONFIG_PVPANIC=m CONFIG_PWM_CRC=y +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m CONFIG_PWM_LPSS=m @@ -4414,6 +4466,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set # CONFIG_QCS_TURING_404 is not set CONFIG_QEDE=m CONFIG_QEDF=m @@ -4533,7 +4586,9 @@ CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m # CONFIG_REGULATOR_MP8859 is not set +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set # CONFIG_REGULATOR_PFUZE100 is not set @@ -4576,6 +4631,8 @@ CONFIG_RETPOLINE=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -4801,6 +4858,7 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_SCHED_SMT=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TRACER=y # CONFIG_SCR24X is not set CONFIG_SCSI_3W_9XXX=m @@ -4968,6 +5026,7 @@ CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATK0110=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_CORETEMP=m @@ -5171,9 +5230,12 @@ CONFIG_SERIAL_NONSTANDARD=y CONFIG_SERIAL_OF_PLATFORM=m # CONFIG_SERIAL_PCH_UART is not set # CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set # CONFIG_SERIAL_ST_ASC is not set # CONFIG_SERIAL_TIMBERDALE is not set # CONFIG_SERIAL_UARTLITE is not set @@ -5260,6 +5322,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -5483,6 +5546,7 @@ CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m CONFIG_SND_SOC_INTEL_SKYLAKE=m CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m +CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m CONFIG_SND_SOC_INTEL_SST_ACPI=m CONFIG_SND_SOC_INTEL_SST=m @@ -5516,7 +5580,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m CONFIG_SND_SOC_PCM3060_SPI=m # CONFIG_SND_SOC_PCM3168A_I2C is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set +CONFIG_SND_SOC_PCM512x_I2C=m # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_RK3328 is not set CONFIG_SND_SOC_RL6231=m @@ -5524,6 +5588,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set CONFIG_SND_SOC_RT5660=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -5537,6 +5602,7 @@ CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y # CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set @@ -5571,6 +5637,7 @@ CONFIG_SND_SOC_TAS2770=m CONFIG_SND_SOC_TAS6424=m CONFIG_SND_SOC_TDA7419=m # CONFIG_SND_SOC_TFA9879 is not set +CONFIG_SND_SOC_TLV320ADCX140=m # CONFIG_SND_SOC_TLV320AIC23_I2C is not set # CONFIG_SND_SOC_TLV320AIC23_SPI is not set # CONFIG_SND_SOC_TLV320AIC31XX is not set @@ -5667,6 +5734,7 @@ CONFIG_SPARSEMEM_MANUAL=y # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_LPSPI=m # CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_GPIO is not set @@ -5676,6 +5744,7 @@ CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_MASTER=y # CONFIG_SPI_MEM is not set # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -5759,6 +5828,7 @@ CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SURFACE_3_BUTTON=m +CONFIG_SURFACE_3_POWER_OPREGION=m CONFIG_SURFACE3_WMI=m CONFIG_SURFACE_PRO3_BUTTON=m CONFIG_SUSPEND=y @@ -5862,8 +5932,10 @@ CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +# CONFIG_TEST_LOCKUP is not set # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -5931,6 +6003,7 @@ CONFIG_TIME_NS=y # CONFIG_TINYDRM_HX8357D is not set # CONFIG_TINYDRM_ILI9225 is not set # CONFIG_TINYDRM_ILI9341 is not set +CONFIG_TINYDRM_ILI9486=m # CONFIG_TINYDRM_MI0283QT is not set # CONFIG_TINYDRM_REPAPER is not set # CONFIG_TINYDRM_ST7586 is not set @@ -6072,6 +6145,7 @@ CONFIG_TYPEC_DP_ALTMODE=m CONFIG_TYPEC_FUSB302=m CONFIG_TYPEC_HD3SS3220=m CONFIG_TYPEC=m +CONFIG_TYPEC_MUX_INTEL_PMC=m CONFIG_TYPEC_MUX_PI3USB30532=m CONFIG_TYPEC_NVIDIA_ALTMODE=m # CONFIG_TYPEC_RT1711H is not set @@ -6081,6 +6155,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set @@ -6276,6 +6351,7 @@ CONFIG_USB_LEGOTOWER=m CONFIG_USB_M5602=m CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -6331,6 +6407,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLES_INTEL_XHCI=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m @@ -6466,6 +6543,9 @@ CONFIG_VBOXGUEST=m CONFIG_VBOXSF_FS=m # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m CONFIG_VEML6030=m # CONFIG_VEML6070 is not set CONFIG_VETH=m @@ -6488,8 +6568,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGA_CONSOLE=y CONFIG_VGA_SWITCHEROO=y # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -6571,7 +6653,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -6592,6 +6674,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -6750,6 +6833,7 @@ CONFIG_X86_GENERIC=y # CONFIG_X86_GX_SUSPMOD is not set CONFIG_X86_INTEL_LPSS=y # CONFIG_X86_INTEL_MID is not set +CONFIG_X86_INTEL_MPX=y CONFIG_X86_INTEL_PSTATE=y # CONFIG_X86_INTEL_QUARK is not set # CONFIG_X86_INTEL_TSX_MODE_AUTO is not set @@ -6877,5 +6961,15 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set diff --git a/kernel-ppc64le-debug-fedora.config b/kernel-ppc64le-debug-fedora.config index d19eb7b28..e142cc157 100644 --- a/kernel-ppc64le-debug-fedora.config +++ b/kernel-ppc64le-debug-fedora.config @@ -64,6 +64,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -151,10 +152,12 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set # CONFIG_AK8975 is not set +CONFIG_AL3010=m # CONFIG_AL3320A is not set # CONFIG_AL_FIC is not set CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -174,6 +177,7 @@ CONFIG_AMIGA_PARTITION=y # CONFIG_APDS9300 is not set CONFIG_APDS9802ALS=m # CONFIG_APDS9960 is not set +CONFIG_APPLE_MFI_FASTCHARGE=m # CONFIG_APPLE_PROPERTIES is not set # CONFIG_APPLICOM is not set CONFIG_AQTION=m @@ -332,6 +336,7 @@ CONFIG_BACKLIGHT_PWM=m # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -471,6 +476,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y CONFIG_BPF_KPROBE_OVERRIDE=y CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -706,6 +712,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -729,6 +736,7 @@ CONFIG_CIFS_XATTR=y CONFIG_CLEANCACHE=y # CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLK_RASPBERRYPI is not set # CONFIG_CLK_SIFIVE is not set # CONFIG_CLK_SUNXI_CLOCKS is not set # CONFIG_CLK_SUNXI is not set @@ -772,6 +780,7 @@ CONFIG_COMMON_CLK_SI544=m CONFIG_COMPACTION=y CONFIG_COMPAT_32BIT_TIME=y # CONFIG_COMPAT_BRK is not set +# CONFIG_COMPAT is not set # CONFIG_COMPILE_TEST is not set CONFIG_CONFIGFS_FS=y CONFIG_CONNECTOR=y @@ -834,9 +843,11 @@ CONFIG_CROS_EC_ISHTP=m # CONFIG_CROS_EC_LIGHTBAR is not set CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128=m @@ -1004,7 +1015,7 @@ CONFIG_DEBUG_INFO=y CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y -CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000 +CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=4096 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KOBJECT is not set @@ -1085,6 +1096,7 @@ CONFIG_DM9102=m # CONFIG_DMA_API_DEBUG_SG is not set CONFIG_DMA_API_DEBUG=y # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set # CONFIG_DMA_CMA is not set # CONFIG_DMADEVICES_DEBUG is not set @@ -1156,6 +1168,7 @@ CONFIG_DRM_BOCHS=m # CONFIG_DRM_CDNS_DSI is not set CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set # CONFIG_DRM_DUMB_VGA_DAC is not set @@ -1186,7 +1199,10 @@ CONFIG_DRM_NOUVEAU=m # CONFIG_DRM_NOUVEAU_SVM is not set # CONFIG_DRM_NXP_PTN3460 is not set # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set @@ -1198,6 +1214,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_LG_LG4573 is not set # CONFIG_DRM_PANEL_LVDS is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1206,13 +1223,13 @@ CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set # CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set @@ -1220,6 +1237,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set # CONFIG_DRM_PANEL_SIMPLE is not set # CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1227,10 +1245,10 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set +CONFIG_DRM_PARADE_PS8640=m CONFIG_DRM_QXL=m # CONFIG_DRM_R128 is not set CONFIG_DRM_RADEON=m @@ -1241,12 +1259,16 @@ CONFIG_DRM_RADEON_USERPTR=y # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_UDL=m # CONFIG_DRM_VBOXVIDEO is not set CONFIG_DRM_VGEM=m @@ -1406,6 +1428,8 @@ CONFIG_ETHOC=m CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set # CONFIG_EXPOLINE_AUTO is not set CONFIG_EXPOLINE_FULL=y @@ -1439,6 +1463,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y CONFIG_FA_DUMP=y @@ -1571,6 +1596,9 @@ CONFIG_FSI_OCC=m CONFIG_FSI_SBEFIFO=m CONFIG_FSI_SCOM=m # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_MDIO is not set +# CONFIG_FSL_ENETC_VF is not set # CONFIG_FSL_LBC is not set # CONFIG_FSL_PQ_MDIO is not set # CONFIG_FSL_QDMA is not set @@ -1639,6 +1667,7 @@ CONFIG_GFS2_FS=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set # CONFIG_GPIO_74X164 is not set # CONFIG_GPIO_74XX_MMIO is not set @@ -1733,7 +1762,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -1744,6 +1773,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -1765,6 +1795,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -1825,6 +1856,7 @@ CONFIG_HID_ZYDACRON=m CONFIG_HIGH_RES_TIMERS=y # CONFIG_HIPPI is not set CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set CONFIG_HMM_MIRROR=y @@ -1868,6 +1900,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_HISI_V2=y CONFIG_HW_RANDOM_POWERNV=m CONFIG_HW_RANDOM_PSERIES=m CONFIG_HW_RANDOM_TIMERIOMEM=m @@ -1963,6 +1996,7 @@ CONFIG_IBMVETH=m CONFIG_IBMVMC=m CONFIG_IBMVNIC=m CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set # CONFIG_IDE is not set @@ -1985,6 +2019,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2280,6 +2315,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -2718,6 +2754,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m # CONFIG_MAG3110 is not set CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX is not set @@ -2782,8 +2819,10 @@ CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_I2C=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m CONFIG_MD_MULTIPATH=m CONFIG_MD_RAID0=m @@ -2864,6 +2903,7 @@ CONFIG_MFD_CORE=m # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_DLN2 is not set # CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -2936,6 +2976,7 @@ CONFIG_MFD_WL1273_CORE=m # CONFIG_MFD_WM8994 is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m # CONFIG_MICREL_KS8995MA is not set CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m @@ -2967,6 +3008,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -2998,6 +3040,7 @@ CONFIG_MMC_CB710=m CONFIG_MMC_CQHCI=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_DW_BLUEFIELD is not set +CONFIG_MMC_HSQ=m CONFIG_MMC=m # CONFIG_MMC_MTK is not set CONFIG_MMC_REALTEK_PCI=m @@ -3864,6 +3907,7 @@ CONFIG_PCIE_CADENCE_HOST=y CONFIG_PCIE_DPC=y # CONFIG_PCIE_DW_PLAT_HOST is not set CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y # CONFIG_PCIE_MOBIVEIL is not set # CONFIG_PCI_ENDPOINT is not set # CONFIG_PCI_ENDPOINT_TEST is not set @@ -3915,6 +3959,7 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHY_CADENCE_DPHY is not set CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set # CONFIG_PHY_INTEL_EMMC is not set @@ -3934,6 +3979,7 @@ CONFIG_PID_NS=y # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CEDARFORK=m # CONFIG_PINCTRL_EQUILIBRIUM is not set +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL is not set # CONFIG_PINCTRL_MCP23S08 is not set @@ -3987,6 +4033,7 @@ CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y CONFIG_PM_TRACE=y +# CONFIG_PMU_SYSFS is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y CONFIG_PNFS_BLOCK=m @@ -4086,6 +4133,7 @@ CONFIG_PROC_VMCORE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_PROFILING=y CONFIG_PROVE_LOCKING=y +# CONFIG_PROVE_RAW_LOCK_NESTING is not set CONFIG_PROVE_RCU=y CONFIG_PSAMPLE=m CONFIG_PSERIES_CPUIDLE=y @@ -4109,11 +4157,13 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK=y CONFIG_PVPANIC=m +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m # CONFIG_PWM_PCA9685 is not set @@ -4127,6 +4177,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set # CONFIG_QCS_TURING_404 is not set CONFIG_QEDE=m CONFIG_QEDF=m @@ -4245,7 +4296,9 @@ CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m # CONFIG_REGULATOR_MP8859 is not set +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set # CONFIG_REGULATOR_PFUZE100 is not set @@ -4286,6 +4339,8 @@ CONFIG_REMOTEPROC=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -4511,6 +4566,7 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_SCHED_SMT=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TRACER=y CONFIG_SCOM_DEBUGFS=y # CONFIG_SCR24X is not set @@ -4672,6 +4728,7 @@ CONFIG_SENSORS_APDS990X=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_DME1737=m @@ -4867,9 +4924,12 @@ CONFIG_SERIAL_NONSTANDARD=y CONFIG_SERIAL_OF_PLATFORM=m # CONFIG_SERIAL_PCH_UART is not set # CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set # CONFIG_SERIAL_ST_ASC is not set # CONFIG_SERIAL_TIMBERDALE is not set # CONFIG_SERIAL_UARTLITE is not set @@ -4955,6 +5015,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -5168,7 +5229,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m CONFIG_SND_SOC_PCM3060_SPI=m # CONFIG_SND_SOC_PCM3168A_I2C is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set +CONFIG_SND_SOC_PCM512x_I2C=m # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_RK3328 is not set CONFIG_SND_SOC_RL6231=m @@ -5176,6 +5237,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set CONFIG_SND_SOC_RT5660=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -5184,6 +5246,7 @@ CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set # CONFIG_SND_SOC_SOF_NOCODEC is not set # CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -5207,6 +5270,7 @@ CONFIG_SND_SOC_TAS2770=m CONFIG_SND_SOC_TAS6424=m CONFIG_SND_SOC_TDA7419=m # CONFIG_SND_SOC_TFA9879 is not set +CONFIG_SND_SOC_TLV320ADCX140=m # CONFIG_SND_SOC_TLV320AIC23_I2C is not set # CONFIG_SND_SOC_TLV320AIC23_SPI is not set # CONFIG_SND_SOC_TLV320AIC31XX is not set @@ -5298,6 +5362,7 @@ CONFIG_SPARSEMEM_VMEMMAP=y # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_LPSPI=m # CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_GPIO is not set @@ -5307,6 +5372,7 @@ CONFIG_SPI_FSL_LPSPI=m # CONFIG_SPI_LOOPBACK_TEST is not set # CONFIG_SPI_MEM is not set # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -5490,8 +5556,10 @@ CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=y # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +CONFIG_TEST_LOCKUP=m # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -5552,6 +5620,7 @@ CONFIG_TIGON3=m # CONFIG_TINYDRM_HX8357D is not set # CONFIG_TINYDRM_ILI9225 is not set # CONFIG_TINYDRM_ILI9341 is not set +CONFIG_TINYDRM_ILI9486=m # CONFIG_TINYDRM_MI0283QT is not set # CONFIG_TINYDRM_REPAPER is not set # CONFIG_TINYDRM_ST7586 is not set @@ -5697,6 +5766,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set @@ -5891,6 +5961,7 @@ CONFIG_USB_LEGOTOWER=m CONFIG_USB_M5602=m CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -5949,6 +6020,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m @@ -6080,6 +6152,9 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y CONFIG_VALIDATE_FS_PARSER=y # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m CONFIG_VEML6030=m # CONFIG_VEML6070 is not set CONFIG_VETH=m @@ -6099,8 +6174,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGA_CONSOLE=y # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -6177,7 +6254,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -6198,6 +6275,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -6352,6 +6430,7 @@ CONFIG_XFS_WARN=y # CONFIG_XILINX_DMA is not set # CONFIG_XILINX_EMACLITE is not set CONFIG_XILINX_GMII2RGMII=m +CONFIG_XILINX_LL_TEMAC=m CONFIG_XILINX_PR_DECOUPLER=m # CONFIG_XILINX_SDFEC is not set CONFIG_XILINX_VCU=m @@ -6391,5 +6470,15 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set diff --git a/kernel-ppc64le-fedora.config b/kernel-ppc64le-fedora.config index 8074efba2..ecf65b16c 100644 --- a/kernel-ppc64le-fedora.config +++ b/kernel-ppc64le-fedora.config @@ -64,6 +64,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -151,10 +152,12 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set # CONFIG_AK8975 is not set +CONFIG_AL3010=m # CONFIG_AL3320A is not set # CONFIG_AL_FIC is not set CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -174,6 +177,7 @@ CONFIG_AMIGA_PARTITION=y # CONFIG_APDS9300 is not set CONFIG_APDS9802ALS=m # CONFIG_APDS9960 is not set +CONFIG_APPLE_MFI_FASTCHARGE=m # CONFIG_APPLE_PROPERTIES is not set # CONFIG_APPLICOM is not set CONFIG_AQTION=m @@ -331,6 +335,7 @@ CONFIG_BACKLIGHT_PWM=m # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -470,6 +475,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y # CONFIG_BPF_KPROBE_OVERRIDE is not set CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -705,6 +711,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -728,6 +735,7 @@ CONFIG_CIFS_XATTR=y CONFIG_CLEANCACHE=y # CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLK_RASPBERRYPI is not set # CONFIG_CLK_SIFIVE is not set # CONFIG_CLK_SUNXI_CLOCKS is not set # CONFIG_CLK_SUNXI is not set @@ -771,6 +779,7 @@ CONFIG_COMMON_CLK_SI544=m CONFIG_COMPACTION=y CONFIG_COMPAT_32BIT_TIME=y # CONFIG_COMPAT_BRK is not set +# CONFIG_COMPAT is not set # CONFIG_COMPILE_TEST is not set CONFIG_CONFIGFS_FS=y CONFIG_CONNECTOR=y @@ -833,9 +842,11 @@ CONFIG_CROS_EC_ISHTP=m # CONFIG_CROS_EC_LIGHTBAR is not set CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128=m @@ -1077,6 +1088,7 @@ CONFIG_DM9102=m # CONFIG_DMA_API_DEBUG is not set # CONFIG_DMA_API_DEBUG_SG is not set # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set # CONFIG_DMA_CMA is not set # CONFIG_DMADEVICES_DEBUG is not set @@ -1147,6 +1159,7 @@ CONFIG_DRM_BOCHS=m # CONFIG_DRM_CDNS_DSI is not set CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set # CONFIG_DRM_DUMB_VGA_DAC is not set @@ -1177,7 +1190,10 @@ CONFIG_DRM_NOUVEAU=m # CONFIG_DRM_NOUVEAU_SVM is not set # CONFIG_DRM_NXP_PTN3460 is not set # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set @@ -1189,6 +1205,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_LG_LG4573 is not set # CONFIG_DRM_PANEL_LVDS is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1197,13 +1214,13 @@ CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set # CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set @@ -1211,6 +1228,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set # CONFIG_DRM_PANEL_SIMPLE is not set # CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1218,10 +1236,10 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set +CONFIG_DRM_PARADE_PS8640=m CONFIG_DRM_QXL=m # CONFIG_DRM_R128 is not set CONFIG_DRM_RADEON=m @@ -1232,12 +1250,16 @@ CONFIG_DRM_RADEON_USERPTR=y # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_UDL=m # CONFIG_DRM_VBOXVIDEO is not set CONFIG_DRM_VGEM=m @@ -1397,6 +1419,8 @@ CONFIG_ETHOC=m CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set # CONFIG_EXPOLINE_AUTO is not set CONFIG_EXPOLINE_FULL=y @@ -1430,6 +1454,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y CONFIG_FA_DUMP=y @@ -1554,6 +1579,9 @@ CONFIG_FSI_OCC=m CONFIG_FSI_SBEFIFO=m CONFIG_FSI_SCOM=m # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_MDIO is not set +# CONFIG_FSL_ENETC_VF is not set # CONFIG_FSL_LBC is not set # CONFIG_FSL_PQ_MDIO is not set # CONFIG_FSL_QDMA is not set @@ -1622,6 +1650,7 @@ CONFIG_GFS2_FS=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set # CONFIG_GPIO_74X164 is not set # CONFIG_GPIO_74XX_MMIO is not set @@ -1716,7 +1745,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -1727,6 +1756,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -1748,6 +1778,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -1808,6 +1839,7 @@ CONFIG_HID_ZYDACRON=m CONFIG_HIGH_RES_TIMERS=y # CONFIG_HIPPI is not set CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set CONFIG_HMM_MIRROR=y @@ -1851,6 +1883,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_HISI_V2=y CONFIG_HW_RANDOM_POWERNV=m CONFIG_HW_RANDOM_PSERIES=m CONFIG_HW_RANDOM_TIMERIOMEM=m @@ -1946,6 +1979,7 @@ CONFIG_IBMVETH=m CONFIG_IBMVMC=m CONFIG_IBMVNIC=m CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set # CONFIG_IDE is not set @@ -1968,6 +2002,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2263,6 +2298,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -2699,6 +2735,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m # CONFIG_MAG3110 is not set CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX is not set @@ -2762,8 +2799,10 @@ CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_I2C=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m CONFIG_MD_MULTIPATH=m CONFIG_MD_RAID0=m @@ -2844,6 +2883,7 @@ CONFIG_MFD_CORE=m # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_DLN2 is not set # CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -2916,6 +2956,7 @@ CONFIG_MFD_WL1273_CORE=m # CONFIG_MFD_WM8994 is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m # CONFIG_MICREL_KS8995MA is not set CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m @@ -2947,6 +2988,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -2978,6 +3020,7 @@ CONFIG_MMC_CB710=m CONFIG_MMC_CQHCI=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_DW_BLUEFIELD is not set +CONFIG_MMC_HSQ=m CONFIG_MMC=m # CONFIG_MMC_MTK is not set CONFIG_MMC_REALTEK_PCI=m @@ -3843,6 +3886,7 @@ CONFIG_PCIE_CADENCE_HOST=y CONFIG_PCIE_DPC=y # CONFIG_PCIE_DW_PLAT_HOST is not set CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y # CONFIG_PCIE_MOBIVEIL is not set # CONFIG_PCI_ENDPOINT is not set # CONFIG_PCI_ENDPOINT_TEST is not set @@ -3894,6 +3938,7 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHY_CADENCE_DPHY is not set CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set # CONFIG_PHY_INTEL_EMMC is not set @@ -3913,6 +3958,7 @@ CONFIG_PID_NS=y # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CEDARFORK=m # CONFIG_PINCTRL_EQUILIBRIUM is not set +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL is not set # CONFIG_PINCTRL_MCP23S08 is not set @@ -3966,6 +4012,7 @@ CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y CONFIG_PM_TRACE=y +# CONFIG_PMU_SYSFS is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y CONFIG_PNFS_BLOCK=m @@ -4065,6 +4112,7 @@ CONFIG_PROC_VMCORE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_PROFILING=y # CONFIG_PROVE_LOCKING is not set +# CONFIG_PROVE_RAW_LOCK_NESTING is not set CONFIG_PSAMPLE=m CONFIG_PSERIES_CPUIDLE=y CONFIG_PSERIES_ENERGY=m @@ -4087,11 +4135,13 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK=y CONFIG_PVPANIC=m +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m # CONFIG_PWM_PCA9685 is not set @@ -4105,6 +4155,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set # CONFIG_QCS_TURING_404 is not set CONFIG_QEDE=m CONFIG_QEDF=m @@ -4223,7 +4274,9 @@ CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m # CONFIG_REGULATOR_MP8859 is not set +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set # CONFIG_REGULATOR_PFUZE100 is not set @@ -4264,6 +4317,8 @@ CONFIG_REMOTEPROC=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -4489,6 +4544,7 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_SCHED_SMT=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TRACER=y CONFIG_SCOM_DEBUGFS=y # CONFIG_SCR24X is not set @@ -4650,6 +4706,7 @@ CONFIG_SENSORS_APDS990X=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_DME1737=m @@ -4845,9 +4902,12 @@ CONFIG_SERIAL_NONSTANDARD=y CONFIG_SERIAL_OF_PLATFORM=m # CONFIG_SERIAL_PCH_UART is not set # CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set # CONFIG_SERIAL_ST_ASC is not set # CONFIG_SERIAL_TIMBERDALE is not set # CONFIG_SERIAL_UARTLITE is not set @@ -4933,6 +4993,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -5145,7 +5206,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m CONFIG_SND_SOC_PCM3060_SPI=m # CONFIG_SND_SOC_PCM3168A_I2C is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set +CONFIG_SND_SOC_PCM512x_I2C=m # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_RK3328 is not set CONFIG_SND_SOC_RL6231=m @@ -5153,6 +5214,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set CONFIG_SND_SOC_RT5660=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -5161,6 +5223,7 @@ CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set # CONFIG_SND_SOC_SOF_NOCODEC is not set # CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -5184,6 +5247,7 @@ CONFIG_SND_SOC_TAS2770=m CONFIG_SND_SOC_TAS6424=m CONFIG_SND_SOC_TDA7419=m # CONFIG_SND_SOC_TFA9879 is not set +CONFIG_SND_SOC_TLV320ADCX140=m # CONFIG_SND_SOC_TLV320AIC23_I2C is not set # CONFIG_SND_SOC_TLV320AIC23_SPI is not set # CONFIG_SND_SOC_TLV320AIC31XX is not set @@ -5275,6 +5339,7 @@ CONFIG_SPARSEMEM_VMEMMAP=y # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_LPSPI=m # CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_GPIO is not set @@ -5284,6 +5349,7 @@ CONFIG_SPI_FSL_LPSPI=m # CONFIG_SPI_LOOPBACK_TEST is not set # CONFIG_SPI_MEM is not set # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -5467,8 +5533,10 @@ CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +# CONFIG_TEST_LOCKUP is not set # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -5529,6 +5597,7 @@ CONFIG_TIGON3=m # CONFIG_TINYDRM_HX8357D is not set # CONFIG_TINYDRM_ILI9225 is not set # CONFIG_TINYDRM_ILI9341 is not set +CONFIG_TINYDRM_ILI9486=m # CONFIG_TINYDRM_MI0283QT is not set # CONFIG_TINYDRM_REPAPER is not set # CONFIG_TINYDRM_ST7586 is not set @@ -5674,6 +5743,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set @@ -5868,6 +5938,7 @@ CONFIG_USB_LEGOTOWER=m CONFIG_USB_M5602=m CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -5926,6 +5997,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m @@ -6057,6 +6129,9 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y CONFIG_VALIDATE_FS_PARSER=y # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m CONFIG_VEML6030=m # CONFIG_VEML6070 is not set CONFIG_VETH=m @@ -6076,8 +6151,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGA_CONSOLE=y # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -6154,7 +6231,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -6175,6 +6252,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -6328,6 +6406,7 @@ CONFIG_XFS_QUOTA=y # CONFIG_XILINX_DMA is not set # CONFIG_XILINX_EMACLITE is not set CONFIG_XILINX_GMII2RGMII=m +CONFIG_XILINX_LL_TEMAC=m CONFIG_XILINX_PR_DECOUPLER=m # CONFIG_XILINX_SDFEC is not set CONFIG_XILINX_VCU=m @@ -6367,5 +6446,15 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set diff --git a/kernel-s390x-debug-fedora.config b/kernel-s390x-debug-fedora.config index 0847ad850..8001ff78d 100644 --- a/kernel-s390x-debug-fedora.config +++ b/kernel-s390x-debug-fedora.config @@ -1,5 +1,6 @@ # s390 # CONFIG_60XX_WDT is not set +CONFIG_64BIT=y CONFIG_6LOWPAN_DEBUGFS=y CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m @@ -64,6 +65,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -151,10 +153,12 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set # CONFIG_AK8975 is not set +CONFIG_AL3010=m # CONFIG_AL3320A is not set # CONFIG_AL_FIC is not set CONFIG_ALIM1535_WDT=m # CONFIG_ALIM7101_WDT is not set +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -177,6 +181,7 @@ CONFIG_APPLDATA_BASE=y CONFIG_APPLDATA_MEM=m CONFIG_APPLDATA_NET_SUM=m CONFIG_APPLDATA_OS=m +CONFIG_APPLE_MFI_FASTCHARGE=m # CONFIG_APPLE_PROPERTIES is not set # CONFIG_APPLICOM is not set CONFIG_AQTION=m @@ -335,6 +340,7 @@ CONFIG_BACKLIGHT_LP855X=m # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -474,6 +480,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y CONFIG_BPF_KPROBE_OVERRIDE=y CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -711,6 +718,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -735,6 +743,7 @@ CONFIG_CIFS_XATTR=y CONFIG_CLEANCACHE=y # CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLK_RASPBERRYPI is not set # CONFIG_CLK_SIFIVE is not set # CONFIG_CLK_SUNXI_CLOCKS is not set # CONFIG_CLK_SUNXI is not set @@ -839,9 +848,11 @@ CONFIG_CROS_EC_ISHTP=m # CONFIG_CROS_EC_LIGHTBAR is not set CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128=m @@ -1013,7 +1024,7 @@ CONFIG_DEBUG_INFO=y CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y -CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000 +CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=4096 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KOBJECT is not set @@ -1091,6 +1102,7 @@ CONFIG_DM9102=m # CONFIG_DMA_API_DEBUG_SG is not set CONFIG_DMA_API_DEBUG=y # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set # CONFIG_DMA_CMA is not set # CONFIG_DMADEVICES_DEBUG is not set @@ -1162,6 +1174,7 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m # CONFIG_DRM_CDNS_DSI is not set # CONFIG_DRM_CIRRUS_QEMU is not set # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set # CONFIG_DRM_DUMB_VGA_DAC is not set @@ -1192,7 +1205,10 @@ CONFIG_DRM_NOUVEAU_BACKLIGHT=y # CONFIG_DRM_NOUVEAU_SVM is not set # CONFIG_DRM_NXP_PTN3460 is not set # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set @@ -1204,6 +1220,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_LG_LG4573 is not set # CONFIG_DRM_PANEL_LVDS is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1212,13 +1229,13 @@ CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set # CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set @@ -1226,6 +1243,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set # CONFIG_DRM_PANEL_SIMPLE is not set # CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1233,10 +1251,10 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set +CONFIG_DRM_PARADE_PS8640=m # CONFIG_DRM_QXL is not set # CONFIG_DRM_R128 is not set # CONFIG_DRM_RADEON is not set @@ -1247,12 +1265,16 @@ CONFIG_DRM_RADEON_USERPTR=y # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_UDL=m # CONFIG_DRM_VBOXVIDEO is not set CONFIG_DRM_VGEM=m @@ -1412,6 +1434,8 @@ CONFIG_ETHERNET=y CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set CONFIG_EXPOLINE_AUTO=y # CONFIG_EXPOLINE_FULL is not set @@ -1445,6 +1469,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y CONFIG_FAIL_FUNCTION=y @@ -1570,6 +1595,9 @@ CONFIG_FSI_MASTER_HUB=m # CONFIG_FSI_SBEFIFO is not set CONFIG_FSI_SCOM=m # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_MDIO is not set +# CONFIG_FSL_ENETC_VF is not set # CONFIG_FSL_PQ_MDIO is not set # CONFIG_FSL_QDMA is not set CONFIG_FS_MBCACHE=y @@ -1636,6 +1664,7 @@ CONFIG_GFS2_FS=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set # CONFIG_GPIO_74X164 is not set # CONFIG_GPIO_ADNP is not set @@ -1726,7 +1755,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -1737,6 +1766,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=m CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -1759,6 +1789,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=m CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -1818,6 +1849,7 @@ CONFIG_HID_ZYDACRON=m CONFIG_HIGH_RES_TIMERS=y # CONFIG_HIPPI is not set CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set CONFIG_HMC_DRV=m CONFIG_HOLTEK_FF=y @@ -1852,6 +1884,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=m CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_HISI_V2=y CONFIG_HW_RANDOM_S390=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=y @@ -1941,6 +1974,7 @@ CONFIG_I82092=m # CONFIG_IAQCORE is not set CONFIG_IBM_PARTITION=y CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set # CONFIG_IDE is not set @@ -1963,6 +1997,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2256,6 +2291,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -2690,6 +2726,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m # CONFIG_MAG3110 is not set CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX is not set @@ -2756,8 +2793,10 @@ CONFIG_MDIO_DEVICE=y # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_I2C=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m CONFIG_MD_MULTIPATH=m CONFIG_MD_RAID0=m @@ -2838,6 +2877,7 @@ CONFIG_MFD_CORE=m # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_DLN2 is not set # CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -2910,6 +2950,7 @@ CONFIG_MFD_SM501_GPIO=y # CONFIG_MFD_WM8994 is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m # CONFIG_MICREL_KS8995MA is not set CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m @@ -2941,6 +2982,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -2972,6 +3014,7 @@ CONFIG_MMC_CB710=m CONFIG_MMC_CQHCI=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_DW_BLUEFIELD is not set +CONFIG_MMC_HSQ=m # CONFIG_MMC is not set # CONFIG_MMC_MTK is not set CONFIG_MMC_REALTEK_PCI=m @@ -3676,7 +3719,7 @@ CONFIG_NLS_MAC_TURKISH=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NOA1305 is not set -CONFIG_NODES_SHIFT=4 +CONFIG_NODES_SHIFT=1 # CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ_IDLE=y CONFIG_NO_HZ=y @@ -3827,6 +3870,7 @@ CONFIG_PCIE_CADENCE_HOST=y CONFIG_PCIE_DPC=y # CONFIG_PCIE_DW_PLAT_HOST is not set CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y # CONFIG_PCIE_MOBIVEIL is not set # CONFIG_PCI_ENDPOINT is not set # CONFIG_PCI_ENDPOINT_TEST is not set @@ -3880,6 +3924,7 @@ CONFIG_PFAULT=y # CONFIG_PHY_CADENCE_DPHY is not set CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set # CONFIG_PHY_INTEL_EMMC is not set @@ -3899,6 +3944,7 @@ CONFIG_PID_NS=y # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CEDARFORK=m # CONFIG_PINCTRL_EQUILIBRIUM is not set +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL is not set # CONFIG_PINCTRL_MCP23S08 is not set @@ -4015,6 +4061,7 @@ CONFIG_PROC_VMCORE=y CONFIG_PROFILING=y # CONFIG_PROTECTED_VIRTUALIZATION_GUEST is not set CONFIG_PROVE_LOCKING=y +# CONFIG_PROVE_RAW_LOCK_NESTING is not set CONFIG_PROVE_RCU=y CONFIG_PSAMPLE=m # CONFIG_PSI_DEFAULT_DISABLED is not set @@ -4036,11 +4083,13 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK=y CONFIG_PVPANIC=m +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m # CONFIG_PWM is not set @@ -4054,6 +4103,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set # CONFIG_QCS_TURING_404 is not set CONFIG_QDIO=m CONFIG_QEDE=m @@ -4064,6 +4114,8 @@ CONFIG_QED_SRIOV=y CONFIG_QETH_L2=m CONFIG_QETH_L3=m CONFIG_QETH=m +CONFIG_QETH_OSN=y +CONFIG_QETH_OSX=y # CONFIG_QFMT_V1 is not set CONFIG_QFMT_V2=y CONFIG_QLA3XXX=m @@ -4176,7 +4228,9 @@ CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m # CONFIG_REGULATOR_MP8859 is not set +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set # CONFIG_REGULATOR_PFUZE100 is not set @@ -4218,6 +4272,8 @@ CONFIG_REMOTEPROC=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y # CONFIG_RFKILL is not set +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -4450,6 +4506,7 @@ CONFIG_SCHED_MC=y CONFIG_SCHED_OMIT_FRAME_POINTER=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TOPOLOGY=y CONFIG_SCHED_TRACER=y CONFIG_SCLP_CONSOLE=y @@ -4614,6 +4671,7 @@ CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m # CONFIG_SENSORS_BH1770 is not set CONFIG_SENSORS_DME1737=m @@ -4806,9 +4864,12 @@ CONFIG_SERIAL_JSM=m # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_SERIAL_PCH_UART is not set # CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set # CONFIG_SERIAL_ST_ASC is not set # CONFIG_SERIAL_TIMBERDALE is not set # CONFIG_SERIAL_UARTLITE is not set @@ -4895,6 +4956,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -5107,7 +5169,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m CONFIG_SND_SOC_PCM3060_SPI=m # CONFIG_SND_SOC_PCM3168A_I2C is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set +CONFIG_SND_SOC_PCM512x_I2C=m # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_RK3328 is not set CONFIG_SND_SOC_RL6231=m @@ -5115,6 +5177,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set CONFIG_SND_SOC_RT5660=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -5123,6 +5186,7 @@ CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set # CONFIG_SND_SOC_SOF_NOCODEC is not set # CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -5146,6 +5210,7 @@ CONFIG_SND_SOC_TAS2770=m CONFIG_SND_SOC_TAS6424=m CONFIG_SND_SOC_TDA7419=m # CONFIG_SND_SOC_TFA9879 is not set +CONFIG_SND_SOC_TLV320ADCX140=m # CONFIG_SND_SOC_TLV320AIC23_I2C is not set # CONFIG_SND_SOC_TLV320AIC23_SPI is not set # CONFIG_SND_SOC_TLV320AIC31XX is not set @@ -5234,6 +5299,7 @@ CONFIG_SPARSEMEM_MANUAL=y # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_LPSPI=m # CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_GPIO is not set @@ -5243,6 +5309,7 @@ CONFIG_SPI_FSL_LPSPI=m # CONFIG_SPI_LOOPBACK_TEST is not set # CONFIG_SPI_MEM is not set # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -5423,8 +5490,10 @@ CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=y # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +CONFIG_TEST_LOCKUP=m # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -5485,6 +5554,7 @@ CONFIG_TIGON3=m # CONFIG_TINYDRM_HX8357D is not set # CONFIG_TINYDRM_ILI9225 is not set # CONFIG_TINYDRM_ILI9341 is not set +CONFIG_TINYDRM_ILI9486=m # CONFIG_TINYDRM_MI0283QT is not set # CONFIG_TINYDRM_REPAPER is not set # CONFIG_TINYDRM_ST7586 is not set @@ -5636,6 +5706,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set @@ -5828,6 +5899,7 @@ CONFIG_USB_LEGOTOWER=m CONFIG_USB_M5602=m CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -5883,6 +5955,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m @@ -6014,6 +6087,9 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y CONFIG_VALIDATE_FS_PARSER=y # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m CONFIG_VEML6030=m # CONFIG_VEML6070 is not set CONFIG_VETH=m @@ -6035,8 +6111,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGA_CONSOLE=y # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -6113,7 +6191,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -6134,6 +6212,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -6290,6 +6369,7 @@ CONFIG_XFS_WARN=y # CONFIG_XILINX_AXI_EMAC is not set # CONFIG_XILINX_DMA is not set CONFIG_XILINX_GMII2RGMII=m +CONFIG_XILINX_LL_TEMAC=m CONFIG_XILINX_PR_DECOUPLER=m # CONFIG_XILINX_SDFEC is not set CONFIG_XILINX_VCU=m @@ -6328,5 +6408,15 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set diff --git a/kernel-s390x-fedora.config b/kernel-s390x-fedora.config index a6b43f2e9..5a4d45ade 100644 --- a/kernel-s390x-fedora.config +++ b/kernel-s390x-fedora.config @@ -1,5 +1,6 @@ # s390 # CONFIG_60XX_WDT is not set +CONFIG_64BIT=y CONFIG_6LOWPAN_DEBUGFS=y CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m @@ -64,6 +65,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -151,10 +153,12 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set # CONFIG_AK8975 is not set +CONFIG_AL3010=m # CONFIG_AL3320A is not set # CONFIG_AL_FIC is not set CONFIG_ALIM1535_WDT=m # CONFIG_ALIM7101_WDT is not set +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -177,6 +181,7 @@ CONFIG_APPLDATA_BASE=y CONFIG_APPLDATA_MEM=m CONFIG_APPLDATA_NET_SUM=m CONFIG_APPLDATA_OS=m +CONFIG_APPLE_MFI_FASTCHARGE=m # CONFIG_APPLE_PROPERTIES is not set # CONFIG_APPLICOM is not set CONFIG_AQTION=m @@ -334,6 +339,7 @@ CONFIG_BACKLIGHT_LP855X=m # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -473,6 +479,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y # CONFIG_BPF_KPROBE_OVERRIDE is not set CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -710,6 +717,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -734,6 +742,7 @@ CONFIG_CIFS_XATTR=y CONFIG_CLEANCACHE=y # CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLK_RASPBERRYPI is not set # CONFIG_CLK_SIFIVE is not set # CONFIG_CLK_SUNXI_CLOCKS is not set # CONFIG_CLK_SUNXI is not set @@ -838,9 +847,11 @@ CONFIG_CROS_EC_ISHTP=m # CONFIG_CROS_EC_LIGHTBAR is not set CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128=m @@ -1083,6 +1094,7 @@ CONFIG_DM9102=m # CONFIG_DMA_API_DEBUG is not set # CONFIG_DMA_API_DEBUG_SG is not set # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set # CONFIG_DMA_CMA is not set # CONFIG_DMADEVICES_DEBUG is not set @@ -1153,6 +1165,7 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m # CONFIG_DRM_CDNS_DSI is not set # CONFIG_DRM_CIRRUS_QEMU is not set # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set # CONFIG_DRM_DUMB_VGA_DAC is not set @@ -1183,7 +1196,10 @@ CONFIG_DRM_NOUVEAU_BACKLIGHT=y # CONFIG_DRM_NOUVEAU_SVM is not set # CONFIG_DRM_NXP_PTN3460 is not set # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set @@ -1195,6 +1211,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_LG_LG4573 is not set # CONFIG_DRM_PANEL_LVDS is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1203,13 +1220,13 @@ CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set # CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set @@ -1217,6 +1234,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set # CONFIG_DRM_PANEL_SIMPLE is not set # CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1224,10 +1242,10 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set +CONFIG_DRM_PARADE_PS8640=m # CONFIG_DRM_QXL is not set # CONFIG_DRM_R128 is not set # CONFIG_DRM_RADEON is not set @@ -1238,12 +1256,16 @@ CONFIG_DRM_RADEON_USERPTR=y # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_UDL=m # CONFIG_DRM_VBOXVIDEO is not set CONFIG_DRM_VGEM=m @@ -1403,6 +1425,8 @@ CONFIG_ETHERNET=y CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set CONFIG_EXPOLINE_AUTO=y # CONFIG_EXPOLINE_FULL is not set @@ -1436,6 +1460,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y # CONFIG_FAIL_FUTEX is not set @@ -1553,6 +1578,9 @@ CONFIG_FSI_MASTER_HUB=m # CONFIG_FSI_SBEFIFO is not set CONFIG_FSI_SCOM=m # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_MDIO is not set +# CONFIG_FSL_ENETC_VF is not set # CONFIG_FSL_PQ_MDIO is not set # CONFIG_FSL_QDMA is not set CONFIG_FS_MBCACHE=y @@ -1619,6 +1647,7 @@ CONFIG_GFS2_FS=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set # CONFIG_GPIO_74X164 is not set # CONFIG_GPIO_ADNP is not set @@ -1709,7 +1738,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -1720,6 +1749,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=m CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -1742,6 +1772,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=m CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -1801,6 +1832,7 @@ CONFIG_HID_ZYDACRON=m CONFIG_HIGH_RES_TIMERS=y # CONFIG_HIPPI is not set CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set CONFIG_HMC_DRV=m CONFIG_HOLTEK_FF=y @@ -1835,6 +1867,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=m CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_HISI_V2=y CONFIG_HW_RANDOM_S390=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=y @@ -1924,6 +1957,7 @@ CONFIG_I82092=m # CONFIG_IAQCORE is not set CONFIG_IBM_PARTITION=y CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set # CONFIG_IDE is not set @@ -1946,6 +1980,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2239,6 +2274,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -2671,6 +2707,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m # CONFIG_MAG3110 is not set CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX is not set @@ -2736,8 +2773,10 @@ CONFIG_MDIO_DEVICE=y # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_I2C=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m CONFIG_MD_MULTIPATH=m CONFIG_MD_RAID0=m @@ -2818,6 +2857,7 @@ CONFIG_MFD_CORE=m # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_DLN2 is not set # CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -2890,6 +2930,7 @@ CONFIG_MFD_SM501_GPIO=y # CONFIG_MFD_WM8994 is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m # CONFIG_MICREL_KS8995MA is not set CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m @@ -2921,6 +2962,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -2952,6 +2994,7 @@ CONFIG_MMC_CB710=m CONFIG_MMC_CQHCI=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_DW_BLUEFIELD is not set +CONFIG_MMC_HSQ=m # CONFIG_MMC is not set # CONFIG_MMC_MTK is not set CONFIG_MMC_REALTEK_PCI=m @@ -3655,7 +3698,7 @@ CONFIG_NLS_MAC_TURKISH=m CONFIG_NLS_UTF8=m CONFIG_NLS=y # CONFIG_NOA1305 is not set -CONFIG_NODES_SHIFT=4 +CONFIG_NODES_SHIFT=1 # CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ_IDLE=y CONFIG_NO_HZ=y @@ -3806,6 +3849,7 @@ CONFIG_PCIE_CADENCE_HOST=y CONFIG_PCIE_DPC=y # CONFIG_PCIE_DW_PLAT_HOST is not set CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y # CONFIG_PCIE_MOBIVEIL is not set # CONFIG_PCI_ENDPOINT is not set # CONFIG_PCI_ENDPOINT_TEST is not set @@ -3859,6 +3903,7 @@ CONFIG_PFAULT=y # CONFIG_PHY_CADENCE_DPHY is not set CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set # CONFIG_PHY_INTEL_EMMC is not set @@ -3878,6 +3923,7 @@ CONFIG_PID_NS=y # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CEDARFORK=m # CONFIG_PINCTRL_EQUILIBRIUM is not set +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL is not set # CONFIG_PINCTRL_MCP23S08 is not set @@ -3994,6 +4040,7 @@ CONFIG_PROC_VMCORE=y CONFIG_PROFILING=y # CONFIG_PROTECTED_VIRTUALIZATION_GUEST is not set # CONFIG_PROVE_LOCKING is not set +# CONFIG_PROVE_RAW_LOCK_NESTING is not set CONFIG_PSAMPLE=m # CONFIG_PSI_DEFAULT_DISABLED is not set CONFIG_PSI=y @@ -4014,11 +4061,13 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK=y CONFIG_PVPANIC=m +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m # CONFIG_PWM is not set @@ -4032,6 +4081,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set # CONFIG_QCS_TURING_404 is not set CONFIG_QDIO=m CONFIG_QEDE=m @@ -4042,6 +4092,8 @@ CONFIG_QED_SRIOV=y CONFIG_QETH_L2=m CONFIG_QETH_L3=m CONFIG_QETH=m +CONFIG_QETH_OSN=y +CONFIG_QETH_OSX=y # CONFIG_QFMT_V1 is not set CONFIG_QFMT_V2=y CONFIG_QLA3XXX=m @@ -4154,7 +4206,9 @@ CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m # CONFIG_REGULATOR_MP8859 is not set +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set # CONFIG_REGULATOR_PFUZE100 is not set @@ -4196,6 +4250,8 @@ CONFIG_REMOTEPROC=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y # CONFIG_RFKILL is not set +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -4428,6 +4484,7 @@ CONFIG_SCHED_MC=y CONFIG_SCHED_OMIT_FRAME_POINTER=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TOPOLOGY=y CONFIG_SCHED_TRACER=y CONFIG_SCLP_CONSOLE=y @@ -4592,6 +4649,7 @@ CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m # CONFIG_SENSORS_BH1770 is not set CONFIG_SENSORS_DME1737=m @@ -4784,9 +4842,12 @@ CONFIG_SERIAL_JSM=m # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_SERIAL_PCH_UART is not set # CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set # CONFIG_SERIAL_ST_ASC is not set # CONFIG_SERIAL_TIMBERDALE is not set # CONFIG_SERIAL_UARTLITE is not set @@ -4873,6 +4934,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -5084,7 +5146,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m CONFIG_SND_SOC_PCM3060_SPI=m # CONFIG_SND_SOC_PCM3168A_I2C is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set +CONFIG_SND_SOC_PCM512x_I2C=m # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_RK3328 is not set CONFIG_SND_SOC_RL6231=m @@ -5092,6 +5154,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set CONFIG_SND_SOC_RT5660=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -5100,6 +5163,7 @@ CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set CONFIG_SND_SOC_SOF_ACPI=m # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set # CONFIG_SND_SOC_SOF_NOCODEC is not set # CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set # CONFIG_SND_SOC_SOF_OF is not set @@ -5123,6 +5187,7 @@ CONFIG_SND_SOC_TAS2770=m CONFIG_SND_SOC_TAS6424=m CONFIG_SND_SOC_TDA7419=m # CONFIG_SND_SOC_TFA9879 is not set +CONFIG_SND_SOC_TLV320ADCX140=m # CONFIG_SND_SOC_TLV320AIC23_I2C is not set # CONFIG_SND_SOC_TLV320AIC23_SPI is not set # CONFIG_SND_SOC_TLV320AIC31XX is not set @@ -5211,6 +5276,7 @@ CONFIG_SPARSEMEM_MANUAL=y # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_LPSPI=m # CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_GPIO is not set @@ -5220,6 +5286,7 @@ CONFIG_SPI_FSL_LPSPI=m # CONFIG_SPI_LOOPBACK_TEST is not set # CONFIG_SPI_MEM is not set # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -5400,8 +5467,10 @@ CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +# CONFIG_TEST_LOCKUP is not set # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -5462,6 +5531,7 @@ CONFIG_TIGON3=m # CONFIG_TINYDRM_HX8357D is not set # CONFIG_TINYDRM_ILI9225 is not set # CONFIG_TINYDRM_ILI9341 is not set +CONFIG_TINYDRM_ILI9486=m # CONFIG_TINYDRM_MI0283QT is not set # CONFIG_TINYDRM_REPAPER is not set # CONFIG_TINYDRM_ST7586 is not set @@ -5613,6 +5683,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set @@ -5805,6 +5876,7 @@ CONFIG_USB_LEGOTOWER=m CONFIG_USB_M5602=m CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -5860,6 +5932,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m @@ -5991,6 +6064,9 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y CONFIG_VALIDATE_FS_PARSER=y # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m CONFIG_VEML6030=m # CONFIG_VEML6070 is not set CONFIG_VETH=m @@ -6012,8 +6088,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGA_CONSOLE=y # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -6090,7 +6168,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -6111,6 +6189,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -6266,6 +6345,7 @@ CONFIG_XFS_QUOTA=y # CONFIG_XILINX_AXI_EMAC is not set # CONFIG_XILINX_DMA is not set CONFIG_XILINX_GMII2RGMII=m +CONFIG_XILINX_LL_TEMAC=m CONFIG_XILINX_PR_DECOUPLER=m # CONFIG_XILINX_SDFEC is not set CONFIG_XILINX_VCU=m @@ -6304,5 +6384,15 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set diff --git a/kernel-x86_64-debug-fedora.config b/kernel-x86_64-debug-fedora.config index afac3b473..b5736de7c 100644 --- a/kernel-x86_64-debug-fedora.config +++ b/kernel-x86_64-debug-fedora.config @@ -1,5 +1,6 @@ # x86_64 # CONFIG_60XX_WDT is not set +CONFIG_64BIT=y CONFIG_6LOWPAN_DEBUGFS=y CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m @@ -104,6 +105,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -201,11 +203,13 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set CONFIG_AK8975=m +CONFIG_AL3010=m # CONFIG_AL3320A is not set # CONFIG_AL_FIC is not set CONFIG_ALIENWARE_WMI=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -232,6 +236,7 @@ CONFIG_AMILO_RFKILL=m CONFIG_APDS9802ALS=m # CONFIG_APDS9960 is not set CONFIG_APPLE_GMUX=m +CONFIG_APPLE_MFI_FASTCHARGE=m CONFIG_APPLE_PROPERTIES=y # CONFIG_APPLICOM is not set CONFIG_AQTION=m @@ -401,6 +406,7 @@ CONFIG_BACKLIGHT_PWM=m # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -541,6 +547,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y CONFIG_BPF_KPROBE_OVERRIDE=y CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -778,6 +785,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -805,6 +813,7 @@ CONFIG_CIFS_XATTR=y CONFIG_CLEANCACHE=y # CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLK_RASPBERRYPI is not set # CONFIG_CLK_SIFIVE is not set # CONFIG_CLK_SUNXI_CLOCKS is not set # CONFIG_CLK_SUNXI is not set @@ -909,6 +918,7 @@ CONFIG_CRC7=m CONFIG_CRC8=m CONFIG_CRC_CCITT=y CONFIG_CRC_ITU_T=m +CONFIG_CRC_PMIC_OPREGION=y CONFIG_CRC_T10DIF=y CONFIG_CROS_EC_CHARDEV=m CONFIG_CROS_EC_DEBUGFS=m @@ -919,9 +929,11 @@ CONFIG_CROS_EC_LPC=m CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m CONFIG_CROS_EC_SYSFS=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m @@ -1119,7 +1131,7 @@ CONFIG_DEBUG_INFO=y CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y -CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000 +CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=4096 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KOBJECT is not set @@ -1213,6 +1225,7 @@ CONFIG_DM9102=m # CONFIG_DMA_API_DEBUG_SG is not set CONFIG_DMA_API_DEBUG=y # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set CONFIG_DMA_CMA=y # CONFIG_DMADEVICES_DEBUG is not set @@ -1291,6 +1304,7 @@ CONFIG_DRM_BOCHS=m # CONFIG_DRM_CDNS_DSI is not set CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set # CONFIG_DRM_DUMB_VGA_DAC is not set @@ -1332,7 +1346,10 @@ CONFIG_DRM_NOUVEAU=m # CONFIG_DRM_NOUVEAU_SVM is not set # CONFIG_DRM_NXP_PTN3460 is not set # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set @@ -1344,6 +1361,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_LG_LG4573 is not set # CONFIG_DRM_PANEL_LVDS is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1352,13 +1370,13 @@ CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set # CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set @@ -1366,6 +1384,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set # CONFIG_DRM_PANEL_SIMPLE is not set # CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1373,10 +1392,10 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set +CONFIG_DRM_PARADE_PS8640=m CONFIG_DRM_QXL=m # CONFIG_DRM_R128 is not set CONFIG_DRM_RADEON=m @@ -1387,12 +1406,16 @@ CONFIG_DRM_RADEON_USERPTR=y # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_UDL=m CONFIG_DRM_VBOXVIDEO=m CONFIG_DRM_VGEM=m @@ -1496,6 +1519,7 @@ CONFIG_DW_DMAC=m CONFIG_DW_DMAC_PCI=y CONFIG_DW_EDMA=m CONFIG_DW_EDMA_PCIE=m +CONFIG_DWMAC_INTEL=m # CONFIG_DW_WATCHDOG is not set CONFIG_DYNAMIC_DEBUG=y CONFIG_DYNAMIC_FTRACE=y @@ -1588,6 +1612,8 @@ CONFIG_ETHOC=m CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set # CONFIG_EXPOLINE_AUTO is not set CONFIG_EXPOLINE_FULL=y @@ -1624,6 +1650,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y CONFIG_F71808E_WDT=m @@ -1762,6 +1789,9 @@ CONFIG_FSI_MASTER_HUB=m # CONFIG_FSI_SBEFIFO is not set CONFIG_FSI_SCOM=m # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_MDIO is not set +# CONFIG_FSL_ENETC_VF is not set # CONFIG_FSL_PQ_MDIO is not set # CONFIG_FSL_QDMA is not set CONFIG_FS_MBCACHE=y @@ -1832,6 +1862,7 @@ CONFIG_GFS2_FS=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set CONFIG_GPD_POCKET_FAN=m # CONFIG_GPIO_74X164 is not set @@ -1938,7 +1969,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -1949,6 +1980,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -1971,6 +2003,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -2031,6 +2064,7 @@ CONFIG_HID_ZYDACRON=m CONFIG_HIGH_RES_TIMERS=y # CONFIG_HIPPI is not set CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set CONFIG_HMM_MIRROR=y @@ -2079,6 +2113,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_HISI_V2=y CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=y @@ -2194,6 +2229,7 @@ CONFIG_IBM_ASM=m CONFIG_IBMASR=m # CONFIG_IBM_RTL is not set CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set CONFIG_IDEAPAD_LAPTOP=m @@ -2218,6 +2254,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2572,6 +2609,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -3027,6 +3065,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m # CONFIG_MAG3110 is not set CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX_TEST is not set @@ -3090,8 +3129,10 @@ CONFIG_MDIO_DEVICE=y # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_I2C=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m CONFIG_MD_MULTIPATH=m CONFIG_MD_RAID0=m @@ -3176,6 +3217,7 @@ CONFIG_MFD_CROS_EC_DEV=m CONFIG_MFD_INTEL_LPSS_ACPI=y CONFIG_MFD_INTEL_LPSS_PCI=y # CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -3248,6 +3290,7 @@ CONFIG_MFD_WL1273_CORE=m # CONFIG_MFD_WM8994 is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m CONFIG_MIC_COSM=m # CONFIG_MICREL_KS8995MA is not set CONFIG_MICREL_PHY=m @@ -3285,6 +3328,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -3317,6 +3361,7 @@ CONFIG_MMC_CB710=m CONFIG_MMC_CQHCI=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_DW_BLUEFIELD is not set +CONFIG_MMC_HSQ=m CONFIG_MMC=m # CONFIG_MMC_MTK is not set CONFIG_MMC_REALTEK_PCI=m @@ -4217,6 +4262,7 @@ CONFIG_PCIE_CADENCE_HOST=y CONFIG_PCIE_DPC=y # CONFIG_PCIE_DW_PLAT_HOST is not set CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y # CONFIG_PCIE_INTEL_GW is not set # CONFIG_PCIE_MOBIVEIL is not set # CONFIG_PCI_ENDPOINT is not set @@ -4276,6 +4322,7 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHY_CADENCE_DPHY is not set CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set CONFIG_PHY_INTEL_EMMC=m @@ -4304,6 +4351,7 @@ CONFIG_PINCTRL_DENVERTON=m CONFIG_PINCTRL_EQUILIBRIUM=m CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_ICELAKE=m +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8074 is not set CONFIG_PINCTRL_LEWISBURG=m CONFIG_PINCTRL_LYNXPOINT=m @@ -4427,6 +4475,7 @@ CONFIG_PROC_VMCORE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_PROFILING=y CONFIG_PROVE_LOCKING=y +# CONFIG_PROVE_RAW_LOCK_NESTING is not set CONFIG_PROVE_RCU=y CONFIG_PROVIDE_OHCI1394_DMA_INIT=y CONFIG_PSAMPLE=m @@ -4449,16 +4498,19 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m CONFIG_PTP_1588_CLOCK_PCH=m +CONFIG_PTP_1588_CLOCK_VMW=m CONFIG_PTP_1588_CLOCK=y # CONFIG_PUNIT_ATOM_DEBUG is not set CONFIG_PVH=y CONFIG_PVPANIC=m CONFIG_PWM_CRC=y CONFIG_PWM_CROS_EC=m +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m CONFIG_PWM_LPSS=m @@ -4475,6 +4527,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set # CONFIG_QCS_TURING_404 is not set CONFIG_QEDE=m CONFIG_QEDF=m @@ -4596,7 +4649,9 @@ CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m # CONFIG_REGULATOR_MP8859 is not set +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set # CONFIG_REGULATOR_PFUZE100 is not set @@ -4639,6 +4694,8 @@ CONFIG_RETPOLINE=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -4865,6 +4922,7 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_SCHED_SMT=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TRACER=y CONFIG_SCIF_BUS=m CONFIG_SCIF=m @@ -5033,6 +5091,7 @@ CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATK0110=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_CORETEMP=m @@ -5235,9 +5294,12 @@ CONFIG_SERIAL_JSM=m CONFIG_SERIAL_NONSTANDARD=y # CONFIG_SERIAL_PCH_UART is not set # CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set # CONFIG_SERIAL_ST_ASC is not set # CONFIG_SERIAL_TIMBERDALE is not set # CONFIG_SERIAL_UARTLITE is not set @@ -5331,6 +5393,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -5556,6 +5619,7 @@ CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m CONFIG_SND_SOC_INTEL_SKYLAKE=m CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m +CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m CONFIG_SND_SOC_INTEL_SST_ACPI=m CONFIG_SND_SOC_INTEL_SST=m @@ -5589,7 +5653,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m CONFIG_SND_SOC_PCM3060_SPI=m # CONFIG_SND_SOC_PCM3168A_I2C is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set +CONFIG_SND_SOC_PCM512x_I2C=m # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_RK3328 is not set CONFIG_SND_SOC_RL6231=m @@ -5597,6 +5661,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set CONFIG_SND_SOC_RT5660=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -5610,6 +5675,7 @@ CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y # CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set @@ -5644,6 +5710,7 @@ CONFIG_SND_SOC_TAS2770=m CONFIG_SND_SOC_TAS6424=m CONFIG_SND_SOC_TDA7419=m # CONFIG_SND_SOC_TFA9879 is not set +CONFIG_SND_SOC_TLV320ADCX140=m # CONFIG_SND_SOC_TLV320AIC23_I2C is not set # CONFIG_SND_SOC_TLV320AIC23_SPI is not set # CONFIG_SND_SOC_TLV320AIC31XX is not set @@ -5743,6 +5810,7 @@ CONFIG_SPARSEMEM=y # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_LPSPI=m # CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_GPIO is not set @@ -5752,6 +5820,7 @@ CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_MASTER=y # CONFIG_SPI_MEM is not set # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -5835,6 +5904,7 @@ CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SURFACE_3_BUTTON=m +CONFIG_SURFACE_3_POWER_OPREGION=m CONFIG_SURFACE3_WMI=m CONFIG_SURFACE_PRO3_BUTTON=m CONFIG_SUSPEND=y @@ -5938,8 +6008,10 @@ CONFIG_TEST_KSTRTOX=y CONFIG_TEST_LIST_SORT=y # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +CONFIG_TEST_LOCKUP=m # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -6007,6 +6079,7 @@ CONFIG_TIME_NS=y # CONFIG_TINYDRM_HX8357D is not set # CONFIG_TINYDRM_ILI9225 is not set # CONFIG_TINYDRM_ILI9341 is not set +CONFIG_TINYDRM_ILI9486=m # CONFIG_TINYDRM_MI0283QT is not set # CONFIG_TINYDRM_REPAPER is not set # CONFIG_TINYDRM_ST7586 is not set @@ -6148,6 +6221,7 @@ CONFIG_TYPEC_DP_ALTMODE=m CONFIG_TYPEC_FUSB302=m CONFIG_TYPEC_HD3SS3220=m CONFIG_TYPEC=m +CONFIG_TYPEC_MUX_INTEL_PMC=m CONFIG_TYPEC_MUX_PI3USB30532=m CONFIG_TYPEC_NVIDIA_ALTMODE=m # CONFIG_TYPEC_RT1711H is not set @@ -6157,6 +6231,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set @@ -6353,6 +6428,7 @@ CONFIG_USB_LEGOTOWER=m CONFIG_USB_M5602=m CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -6408,6 +6484,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLES_INTEL_XHCI=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m @@ -6544,6 +6621,9 @@ CONFIG_VBOXGUEST=m CONFIG_VBOXSF_FS=m # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m CONFIG_VEML6030=m # CONFIG_VEML6070 is not set CONFIG_VETH=m @@ -6566,8 +6646,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGA_CONSOLE=y CONFIG_VGA_SWITCHEROO=y # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -6649,7 +6731,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -6670,6 +6752,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -6826,6 +6909,7 @@ CONFIG_X86_GENERIC=y CONFIG_X86_INTEL_LPSS=y CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y # CONFIG_X86_INTEL_MID is not set +CONFIG_X86_INTEL_MPX=y CONFIG_X86_INTEL_PSTATE=y # CONFIG_X86_INTEL_TSX_MODE_AUTO is not set CONFIG_X86_INTEL_TSX_MODE_OFF=y @@ -6953,5 +7037,15 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set diff --git a/kernel-x86_64-fedora.config b/kernel-x86_64-fedora.config index aeab9a13e..a9017635c 100644 --- a/kernel-x86_64-fedora.config +++ b/kernel-x86_64-fedora.config @@ -1,5 +1,6 @@ # x86_64 # CONFIG_60XX_WDT is not set +CONFIG_64BIT=y CONFIG_6LOWPAN_DEBUGFS=y CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m @@ -104,6 +105,7 @@ CONFIG_AD5272=m # CONFIG_AD5758 is not set # CONFIG_AD5761 is not set # CONFIG_AD5764 is not set +CONFIG_AD5770R=m # CONFIG_AD5791 is not set # CONFIG_AD5933 is not set # CONFIG_AD7091R5 is not set @@ -201,11 +203,13 @@ CONFIG_AIX_PARTITION=y # CONFIG_AK09911 is not set # CONFIG_AK8974 is not set CONFIG_AK8975=m +CONFIG_AL3010=m # CONFIG_AL3320A is not set # CONFIG_AL_FIC is not set CONFIG_ALIENWARE_WMI=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +# CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ is not set # CONFIG_ALTERA_FREEZE_BRIDGE is not set # CONFIG_ALTERA_MBOX is not set CONFIG_ALTERA_MSGDMA=m @@ -232,6 +236,7 @@ CONFIG_AMILO_RFKILL=m CONFIG_APDS9802ALS=m # CONFIG_APDS9960 is not set CONFIG_APPLE_GMUX=m +CONFIG_APPLE_MFI_FASTCHARGE=m CONFIG_APPLE_PROPERTIES=y # CONFIG_APPLICOM is not set CONFIG_AQTION=m @@ -400,6 +405,7 @@ CONFIG_BACKLIGHT_PWM=m # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_BALLOON_COMPACTION=y +CONFIG_BAREUDP=m CONFIG_BATMAN_ADV_BATMAN_V=y CONFIG_BATMAN_ADV_BLA=y CONFIG_BATMAN_ADV_DAT=y @@ -540,6 +546,7 @@ CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT=y # CONFIG_BPF_KPROBE_OVERRIDE is not set CONFIG_BPF_LIRC_MODE2=y +CONFIG_BPF_LSM=y CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m @@ -777,6 +784,7 @@ CONFIG_CHELSIO_T4_DCB=y # CONFIG_CHELSIO_T4_FCOE is not set CONFIG_CHELSIO_T4=m CONFIG_CHELSIO_T4VF=m +CONFIG_CHELSIO_TLS_DEVICE=y CONFIG_CHR_DEV_SCH=m CONFIG_CHR_DEV_SG=y CONFIG_CHR_DEV_ST=m @@ -804,6 +812,7 @@ CONFIG_CIFS_XATTR=y CONFIG_CLEANCACHE=y # CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLK_RASPBERRYPI is not set # CONFIG_CLK_SIFIVE is not set # CONFIG_CLK_SUNXI_CLOCKS is not set # CONFIG_CLK_SUNXI is not set @@ -908,6 +917,7 @@ CONFIG_CRC7=m CONFIG_CRC8=m CONFIG_CRC_CCITT=y CONFIG_CRC_ITU_T=m +CONFIG_CRC_PMIC_OPREGION=y CONFIG_CRC_T10DIF=y CONFIG_CROS_EC_CHARDEV=m # CONFIG_CROS_EC_DEBUGFS is not set @@ -918,9 +928,11 @@ CONFIG_CROS_EC_LPC=m CONFIG_CROS_EC_RPMSG=m CONFIG_CROS_EC_SENSORHUB=m CONFIG_CROS_EC_SYSFS=m +CONFIG_CROS_EC_TYPEC=m CONFIG_CROS_KBD_LED_BACKLIGHT=m CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m CONFIG_CRYPTO_842=y CONFIG_CRYPTO_ADIANTUM=m CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m @@ -1205,6 +1217,7 @@ CONFIG_DM9102=m # CONFIG_DMA_API_DEBUG is not set # CONFIG_DMA_API_DEBUG_SG is not set # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set CONFIG_DMA_CMA=y # CONFIG_DMADEVICES_DEBUG is not set @@ -1282,6 +1295,7 @@ CONFIG_DRM_BOCHS=m # CONFIG_DRM_CDNS_DSI is not set CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DP_CEC is not set # CONFIG_DRM_DUMB_VGA_DAC is not set @@ -1323,7 +1337,10 @@ CONFIG_DRM_NOUVEAU=m # CONFIG_DRM_NOUVEAU_SVM is not set # CONFIG_DRM_NXP_PTN3460 is not set # CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set @@ -1335,6 +1352,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m # CONFIG_DRM_PANEL_LG_LG4573 is not set # CONFIG_DRM_PANEL_LVDS is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +CONFIG_DRM_PANEL_NOVATEK_NT35510=m # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m @@ -1343,13 +1361,13 @@ CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set # CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set # CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set -CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m CONFIG_DRM_PANEL_RONBO_RB070D30=m # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set @@ -1357,6 +1375,7 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set # CONFIG_DRM_PANEL_SIMPLE is not set # CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set +CONFIG_DRM_PANEL_SITRONIX_ST7703=m # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set @@ -1364,10 +1383,10 @@ CONFIG_DRM_PANEL_SEIKO_43WVF1G=m # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_XINGBANGDA_XBD599 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set CONFIG_DRM_PANEL=y # CONFIG_DRM_PARADE_PS8622 is not set +CONFIG_DRM_PARADE_PS8640=m CONFIG_DRM_QXL=m # CONFIG_DRM_R128 is not set CONFIG_DRM_RADEON=m @@ -1378,12 +1397,16 @@ CONFIG_DRM_RADEON_USERPTR=y # CONFIG_DRM_SII902X is not set CONFIG_DRM_SII9234=m # CONFIG_DRM_SIL_SII8620 is not set +CONFIG_DRM_SIMPLE_BRIDGE=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TIDSS=m CONFIG_DRM_TI_SN65DSI86=m CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m CONFIG_DRM_TOSHIBA_TC358764=m # CONFIG_DRM_TOSHIBA_TC358767 is not set +CONFIG_DRM_TOSHIBA_TC358768=m CONFIG_DRM_UDL=m CONFIG_DRM_VBOXVIDEO=m CONFIG_DRM_VGEM=m @@ -1487,6 +1510,7 @@ CONFIG_DW_DMAC=m CONFIG_DW_DMAC_PCI=y CONFIG_DW_EDMA=m CONFIG_DW_EDMA_PCIE=m +CONFIG_DWMAC_INTEL=m # CONFIG_DW_WATCHDOG is not set CONFIG_DYNAMIC_DEBUG=y CONFIG_DYNAMIC_FTRACE=y @@ -1579,6 +1603,8 @@ CONFIG_ETHOC=m CONFIG_ETHTOOL_NETLINK=y # CONFIG_EUROTECH_WDT is not set # CONFIG_EVM is not set +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXFAT_FS=m # CONFIG_EXPERT is not set # CONFIG_EXPOLINE_AUTO is not set CONFIG_EXPOLINE_FULL=y @@ -1615,6 +1641,7 @@ CONFIG_F2FS_FS=m CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_SECURITY=y CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y # CONFIG_F2FS_IO_TRACE is not set CONFIG_F2FS_STAT_FS=y CONFIG_F71808E_WDT=m @@ -1745,6 +1772,9 @@ CONFIG_FSI_MASTER_HUB=m # CONFIG_FSI_SBEFIFO is not set CONFIG_FSI_SCOM=m # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_MDIO is not set +# CONFIG_FSL_ENETC_VF is not set # CONFIG_FSL_PQ_MDIO is not set # CONFIG_FSL_QDMA is not set CONFIG_FS_MBCACHE=y @@ -1815,6 +1845,7 @@ CONFIG_GFS2_FS=m # CONFIG_GNSS is not set # CONFIG_GOLDFISH is not set # CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m # CONFIG_GP2AP020A00F is not set CONFIG_GPD_POCKET_FAN=m # CONFIG_GPIO_74X164 is not set @@ -1921,7 +1952,7 @@ CONFIG_HID_CMEDIA=m CONFIG_HID_CORSAIR=m CONFIG_HID_COUGAR=m CONFIG_HID_CP2112=m -# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CREATIVE_SB0540=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_ELAN=m @@ -1932,6 +1963,7 @@ CONFIG_HID_EZKEY=m CONFIG_HID_GEMBIRD=m CONFIG_HID_GENERIC=y CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m # CONFIG_HID_GOOGLE_HAMMER is not set CONFIG_HID_GREENASIA=m CONFIG_HID_GT683R=m @@ -1954,6 +1986,7 @@ CONFIG_HID_MACALLY=m CONFIG_HID_MAGICMOUSE=y CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -2014,6 +2047,7 @@ CONFIG_HID_ZYDACRON=m CONFIG_HIGH_RES_TIMERS=y # CONFIG_HIPPI is not set CONFIG_HIST_TRIGGERS=y +CONFIG_HMC425=m # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set CONFIG_HMM_MIRROR=y @@ -2062,6 +2096,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_HISI_V2=y CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_TPM=y @@ -2177,6 +2212,7 @@ CONFIG_IBM_ASM=m CONFIG_IBMASR=m # CONFIG_IBM_RTL is not set CONFIG_ICE=m +CONFIG_ICP10100=m CONFIG_ICPLUS_PHY=m # CONFIG_ICS932S401 is not set CONFIG_IDEAPAD_LAPTOP=m @@ -2201,6 +2237,7 @@ CONFIG_IEEE802154_MRF24J40=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_IFB=m +CONFIG_IFCVF=m CONFIG_IGB_DCA=y CONFIG_IGB_HWMON=y CONFIG_IGB=m @@ -2555,6 +2592,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_RPL_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SIT_6RD=y @@ -3008,6 +3046,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m # CONFIG_MAG3110 is not set CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ=y # CONFIG_MAILBOX_TEST is not set @@ -3071,8 +3110,10 @@ CONFIG_MDIO_DEVICE=y # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_I2C=m # CONFIG_MDIO_MSCC_MIIM is not set +CONFIG_MDIO_MVUSB=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set +CONFIG_MDIO_XPCS=m CONFIG_MD_LINEAR=m CONFIG_MD_MULTIPATH=m CONFIG_MD_RAID0=m @@ -3157,6 +3198,7 @@ CONFIG_MFD_CROS_EC_DEV=m CONFIG_MFD_INTEL_LPSS_ACPI=y CONFIG_MFD_INTEL_LPSS_PCI=y # CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set +# CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_LM3533 is not set @@ -3229,6 +3271,7 @@ CONFIG_MFD_WL1273_CORE=m # CONFIG_MFD_WM8994 is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set +CONFIG_MHI_BUS=m CONFIG_MIC_COSM=m # CONFIG_MICREL_KS8995MA is not set CONFIG_MICREL_PHY=m @@ -3266,6 +3309,7 @@ CONFIG_MLX5_ESWITCH=y CONFIG_MLX5_INFINIBAND=m CONFIG_MLX5_MPFS=y CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y # CONFIG_MLX5_TLS is not set CONFIG_MLX90614=m CONFIG_MLX90632=m @@ -3298,6 +3342,7 @@ CONFIG_MMC_CB710=m CONFIG_MMC_CQHCI=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_DW_BLUEFIELD is not set +CONFIG_MMC_HSQ=m CONFIG_MMC=m # CONFIG_MMC_MTK is not set CONFIG_MMC_REALTEK_PCI=m @@ -4198,6 +4243,7 @@ CONFIG_PCIE_CADENCE_HOST=y CONFIG_PCIE_DPC=y # CONFIG_PCIE_DW_PLAT_HOST is not set CONFIG_PCIE_ECRC=y +CONFIG_PCIE_EDR=y # CONFIG_PCIE_INTEL_GW is not set # CONFIG_PCIE_MOBIVEIL is not set # CONFIG_PCI_ENDPOINT is not set @@ -4257,6 +4303,7 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHY_CADENCE_DPHY is not set CONFIG_PHY_CADENCE_DP=m CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set CONFIG_PHY_INTEL_EMMC=m @@ -4285,6 +4332,7 @@ CONFIG_PINCTRL_DENVERTON=m CONFIG_PINCTRL_EQUILIBRIUM=m CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_ICELAKE=m +# CONFIG_PINCTRL_IPQ6018 is not set # CONFIG_PINCTRL_IPQ8074 is not set CONFIG_PINCTRL_LEWISBURG=m CONFIG_PINCTRL_LYNXPOINT=m @@ -4408,6 +4456,7 @@ CONFIG_PROC_VMCORE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set CONFIG_PROFILING=y # CONFIG_PROVE_LOCKING is not set +# CONFIG_PROVE_RAW_LOCK_NESTING is not set CONFIG_PROVIDE_OHCI1394_DMA_INIT=y CONFIG_PSAMPLE=m # CONFIG_PSI_DEFAULT_DISABLED is not set @@ -4429,16 +4478,19 @@ CONFIG_PSTORE_RAM=m CONFIG_PSTORE=y # CONFIG_PSTORE_ZSTD_COMPRESS is not set # CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK_IDT82P33=m CONFIG_PTP_1588_CLOCK_IDTCM=m # CONFIG_PTP_1588_CLOCK_INES is not set CONFIG_PTP_1588_CLOCK_KVM=m CONFIG_PTP_1588_CLOCK_PCH=m +CONFIG_PTP_1588_CLOCK_VMW=m CONFIG_PTP_1588_CLOCK=y # CONFIG_PUNIT_ATOM_DEBUG is not set CONFIG_PVH=y CONFIG_PVPANIC=m CONFIG_PWM_CRC=y CONFIG_PWM_CROS_EC=m +# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_FSL_FTM is not set CONFIG_PWM_HIBVT=m CONFIG_PWM_LPSS=m @@ -4455,6 +4507,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set # CONFIG_QCS_TURING_404 is not set CONFIG_QEDE=m CONFIG_QEDF=m @@ -4576,7 +4629,9 @@ CONFIG_REGULATOR_MAX77650=m # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set # CONFIG_REGULATOR_MCP16502 is not set +CONFIG_REGULATOR_MP5416=m # CONFIG_REGULATOR_MP8859 is not set +CONFIG_REGULATOR_MP886X=m # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set # CONFIG_REGULATOR_PFUZE100 is not set @@ -4619,6 +4674,8 @@ CONFIG_RETPOLINE=y CONFIG_RFKILL_GPIO=m CONFIG_RFKILL_INPUT=y CONFIG_RFKILL=m +# CONFIG_RH_DISABLE_DEPRECATED is not set +# CONFIG_RHEL_DIFFERENCES is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set CONFIG_RIONET=m @@ -4845,6 +4902,7 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_SCHED_SMT=y # CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_SCHEDSTATS=y +CONFIG_SCHED_THERMAL_PRESSURE=y CONFIG_SCHED_TRACER=y CONFIG_SCIF_BUS=m CONFIG_SCIF=m @@ -5013,6 +5071,7 @@ CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATK0110=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_CORETEMP=m @@ -5215,9 +5274,12 @@ CONFIG_SERIAL_JSM=m CONFIG_SERIAL_NONSTANDARD=y # CONFIG_SERIAL_PCH_UART is not set # CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_SC16IS7XX_I2C is not set +CONFIG_SERIAL_SC16IS7XX=m +CONFIG_SERIAL_SC16IS7XX_SPI=y # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SPRD is not set # CONFIG_SERIAL_ST_ASC is not set # CONFIG_SERIAL_TIMBERDALE is not set # CONFIG_SERIAL_UARTLITE is not set @@ -5311,6 +5373,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m CONFIG_SND_BCD2000=m +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -5535,6 +5598,7 @@ CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m CONFIG_SND_SOC_INTEL_SKYLAKE=m CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m +CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m CONFIG_SND_SOC_INTEL_SST_ACPI=m CONFIG_SND_SOC_INTEL_SST=m @@ -5568,7 +5632,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m CONFIG_SND_SOC_PCM3060_SPI=m # CONFIG_SND_SOC_PCM3168A_I2C is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set +CONFIG_SND_SOC_PCM512x_I2C=m # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_RK3328 is not set CONFIG_SND_SOC_RL6231=m @@ -5576,6 +5640,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set CONFIG_SND_SOC_RT5660=m +CONFIG_SND_SOC_RT5682_SDW=m # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set @@ -5589,6 +5654,7 @@ CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y # CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y # CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set @@ -5623,6 +5689,7 @@ CONFIG_SND_SOC_TAS2770=m CONFIG_SND_SOC_TAS6424=m CONFIG_SND_SOC_TDA7419=m # CONFIG_SND_SOC_TFA9879 is not set +CONFIG_SND_SOC_TLV320ADCX140=m # CONFIG_SND_SOC_TLV320AIC23_I2C is not set # CONFIG_SND_SOC_TLV320AIC23_SPI is not set # CONFIG_SND_SOC_TLV320AIC31XX is not set @@ -5722,6 +5789,7 @@ CONFIG_SPARSEMEM=y # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_DEBUG is not set # CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSI=m CONFIG_SPI_FSL_LPSPI=m # CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_GPIO is not set @@ -5731,6 +5799,7 @@ CONFIG_SPI_FSL_LPSPI=m CONFIG_SPI_MASTER=y # CONFIG_SPI_MEM is not set # CONFIG_SPI_MTK_QUADSPI is not set +CONFIG_SPI_MUX=m # CONFIG_SPI_MXIC is not set # CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_OC_TINY is not set @@ -5814,6 +5883,7 @@ CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC=m CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SURFACE_3_BUTTON=m +CONFIG_SURFACE_3_POWER_OPREGION=m CONFIG_SURFACE3_WMI=m CONFIG_SURFACE_PRO3_BUTTON=m CONFIG_SUSPEND=y @@ -5917,8 +5987,10 @@ CONFIG_TEST_KSTRTOX=y # CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_LIVEPATCH is not set # CONFIG_TEST_LKM is not set +# CONFIG_TEST_LOCKUP is not set # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_OBJAGG is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_PARMAN is not set @@ -5986,6 +6058,7 @@ CONFIG_TIME_NS=y # CONFIG_TINYDRM_HX8357D is not set # CONFIG_TINYDRM_ILI9225 is not set # CONFIG_TINYDRM_ILI9341 is not set +CONFIG_TINYDRM_ILI9486=m # CONFIG_TINYDRM_MI0283QT is not set # CONFIG_TINYDRM_REPAPER is not set # CONFIG_TINYDRM_ST7586 is not set @@ -6127,6 +6200,7 @@ CONFIG_TYPEC_DP_ALTMODE=m CONFIG_TYPEC_FUSB302=m CONFIG_TYPEC_HD3SS3220=m CONFIG_TYPEC=m +CONFIG_TYPEC_MUX_INTEL_PMC=m CONFIG_TYPEC_MUX_PI3USB30532=m CONFIG_TYPEC_NVIDIA_ALTMODE=m # CONFIG_TYPEC_RT1711H is not set @@ -6136,6 +6210,7 @@ CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_UCSI=m CONFIG_TYPEC_WCOVE=m CONFIG_TYPHOON=m +CONFIG_UACCE=m CONFIG_UAPI_HEADER_TEST=y CONFIG_UBIFS_ATIME_SUPPORT=y # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set @@ -6332,6 +6407,7 @@ CONFIG_USB_LEGOTOWER=m CONFIG_USB_M5602=m CONFIG_USB_MA901=m # CONFIG_USB_MASS_STORAGE is not set +CONFIG_USB_MAX3420_UDC=m # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m @@ -6387,6 +6463,7 @@ CONFIG_USB_PWC=m # CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_RAINSHADOW_CEC=m # CONFIG_USB_RAREMONO is not set +CONFIG_USB_RAW_GADGET=m CONFIG_USB_ROLES_INTEL_XHCI=m CONFIG_USB_ROLE_SWITCH=m CONFIG_USB_RTL8150=m @@ -6523,6 +6600,9 @@ CONFIG_VBOXGUEST=m CONFIG_VBOXSF_FS=m # CONFIG_VCNL4000 is not set CONFIG_VCNL4035=m +CONFIG_VDPA=m +CONFIG_VDPA_MENU=y +CONFIG_VDPA_SIM=m CONFIG_VEML6030=m # CONFIG_VEML6070 is not set CONFIG_VETH=m @@ -6545,8 +6625,10 @@ CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGA_CONSOLE=y CONFIG_VGA_SWITCHEROO=y # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_VHOST_MENU=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=m CONFIG_VHOST_VSOCK=m CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -6628,7 +6710,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_TW686X=m # CONFIG_VIDEO_TW68 is not set CONFIG_VIDEO_USBTV=m -CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_USBVISION is not set CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_XILINX is not set @@ -6649,6 +6731,7 @@ CONFIG_VIRTIO_NET=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PMEM is not set +CONFIG_VIRTIO_VDPA=m CONFIG_VIRTIO_VSOCKETS=m CONFIG_VIRTIO=y CONFIG_VIRTUALIZATION=y @@ -6805,6 +6888,7 @@ CONFIG_X86_GENERIC=y CONFIG_X86_INTEL_LPSS=y CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y # CONFIG_X86_INTEL_MID is not set +CONFIG_X86_INTEL_MPX=y CONFIG_X86_INTEL_PSTATE=y # CONFIG_X86_INTEL_TSX_MODE_AUTO is not set CONFIG_X86_INTEL_TSX_MODE_OFF=y @@ -6931,5 +7015,15 @@ CONFIG_ZRAM=m # CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set CONFIG_ZSWAP=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set # CONFIG_ZX_TDM is not set diff --git a/kernel.spec b/kernel.spec index 677d01402..df39762c3 100644 --- a/kernel.spec +++ b/kernel.spec @@ -80,19 +80,19 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 300 +%global baserelease 200 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching # on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base, # which yields a base_sublevel of 0. -%define base_sublevel 6 +%define base_sublevel 7 ## If this is a released kernel ## %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 19 +%define stable_update 6 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -791,136 +791,87 @@ Source5000: patch-5.%{base_sublevel}-git%{gitrev}.xz %if !%{nopatches} -# Git trees. - -# Standalone patches -# 100 - Generic long running patches - -# 200 - x86 / secureboot - -# bz 1497559 - Make kernel MODSIGN code not error on missing variables -Patch201: 0002-Add-efi_status_to_str-and-rework-efi_status_to_err.patch -Patch202: 0003-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch - -Patch204: efi-secureboot.patch - -Patch206: s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch - -# 300 - ARM patches -Patch300: arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch - -# RHBZ Bug 1576593 - work around while vendor investigates -Patch301: arm-make-highpte-not-expert.patch - -# https://patchwork.kernel.org/patch/10351797/ -Patch302: ACPI-scan-Fix-regression-related-to-X-Gene-UARTs.patch -# rhbz 1574718 -Patch303: ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch - -Patch304: ARM-tegra-usb-no-reset.patch - -# Raspberry Pi -# https://patchwork.kernel.org/cover/11353083/ -Patch310: arm64-pinctrl-bcm2835-Add-support-for-all-BCM2711-GPIOs.patch -# v5 https://patchwork.kernel.org/cover/11429245/ -Patch311: USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch -# https://patchwork.kernel.org/patch/11372935/ -Patch312: bcm2835-irqchip-Quiesce-IRQs-left-enabled-by-bootloader.patch -# https://patchwork.kernel.org/patch/11420129/ -Patch313: ARM-dts-bcm2711-Move-emmc2-into-its-own-bus.patch -# Upstream commit f87391eec2c5 thread: https://www.spinics.net/lists/linux-mmc/msg58036.html -Patch314: arm-bcm2711-mmc-sdhci-iproc-Add-custom-set_power-callback.patch -# Upstream commit 57b76faf1d78 -Patch316: arm-bcm2835-serial-8250_early-support-aux-uart.patch - -# Tegra bits -# https://www.spinics.net/lists/linux-tegra/msg48152.html -Patch320: ARM64-Tegra-fixes.patch -# http://patchwork.ozlabs.org/patch/1230891/ -Patch321: arm64-serial-8250_tegra-Create-Tegra-specific-8250-driver.patch -# http://patchwork.ozlabs.org/patch/1243162/ -Patch324: regulator-pwm-Don-t-warn-on-probe-deferral.patch -# http://patchwork.ozlabs.org/patch/1243112/ -Patch325: backlight-lp855x-Ensure-regulators-are-disabled-on-probe-failure.patch -# http://patchwork.ozlabs.org/patch/1221384/ -Patch327: PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch -# https://patchwork.ozlabs.org/patch/1281134/ -Patch328: arm64-tegra-Fix-ethernet-phy-mode-for-Jetson-Xavier.patch - -# Coral -Patch330: arm64-dts-imx8mq-phanbell-Add-support-for-ethernet.patch - -# Pine64 bits -# 340-345 queued for 5.7 -Patch340: arm64-pinebook-fixes.patch -Patch341: arm64-a64-mbus.patch -# v4 https://patchwork.kernel.org/cover/11420797/ -Patch342: Add-support-for-the-pine64-Pinebook-Pro.patch -# https://patchwork.kernel.org/cover/11405517/ -Patch343: Add-LCD-support-for-Pine64-Pinebook-1080p.patch -# https://lkml.org/lkml/2020/1/15/1320 -Patch344: arm64-pine64-pinetab.patch -# https://www.spinics.net/lists/arm-kernel/msg789135.html -Patch345: arm64-pine64-pinephone.patch -# https://patchwork.kernel.org/cover/11440399/ -Patch346: Add-support-for-PinePhone-LCD-panel.patch -# https://www.spinics.net/lists/devicetree/msg346446.html -Patch347: arm64-Fix-some-GPIO-setup-on-Pinebook-Pro.patch -# https://www.spinics.net/lists/devicetree/msg347052.html -Patch348: usb-fusb302-Convert-to-use-GPIO-descriptors.patch - -# 400 - IBM (ppc/s390x) patches - -# 500 - Temp fixes/CVEs etc -# rhbz 1431375 -Patch501: input-rmi4-remove-the-need-for-artifical-IRQ.patch - -# gcc9 fixes -Patch502: 0001-Drop-that-for-now.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1701096 -# Submitted upstream at https://lkml.org/lkml/2019/4/23/89 -Patch503: KEYS-Make-use-of-platform-keyring-for-module-signature.patch - -# Fixes a boot hang on debug kernels -# https://bugzilla.redhat.com/show_bug.cgi?id=1756655 -Patch504: 0001-mm-kmemleak-skip-late_init-if-not-skip-disable.patch - -# it seems CONFIG_OPTIMIZE_INLINING has been forced now and is causing issues on ARMv7 -# https://lore.kernel.org/patchwork/patch/1132459/ -# https://lkml.org/lkml/2019/8/29/1772 -Patch505: ARM-fix-__get_user_check-in-case-uaccess_-calls-are-not-inlined.patch - -# More DP-MST fixes, pending for 5.7 -Patch507: drm-dp-mst-error-handling-improvements.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1811850 -Patch509: drm-i915-backports.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1816621 -# https://patchwork.ozlabs.org/patch/1260523/ -Patch511: e1000e-bump-up-timeout-to-wait-when-ME-un-configure-ULP-mode.patch - -Patch512: drm-dp_mst-Fix-drm_dp_send_dpcd_write-return-code.patch - -# CVE-2020-12655 rhbz 1832543 1832545 -Patch515: 0001-xfs-add-agf-freeblocks-verify-in-xfs_agf_verify.patch - -# rhbz 1828927 No backlight control on CHT devices, patch posted upstream -Patch516: 0001-pwm-lpss-Fix-get_state-runtime-pm-reference-handling.patch - -# kernel.org bz 206217 -Patch517: RFC-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch - -# CVE-2020-12888 rhbz 1836245 1836244 -Patch518: vfio-pci-block-user-access-to-disabled-device-MMIO.patch - -# rhbz 1789545 -Patch519: vboxguest-fixes.patch +Patch6: 0001-ACPI-APEI-arm64-Ignore-broken-HPE-moonshot-APEI-supp.patch +Patch8: 0001-ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m.patch +Patch9: 0001-aarch64-acpi-scan-Fix-regression-related-to-X-Gene-U.patch +Patch10: 0001-acpi-prefer-booting-with-ACPI-over-DTS.patch +Patch11: 0001-kdump-round-up-the-total-memory-size-to-128M-for-cra.patch +Patch12: 0001-kdump-add-support-for-crashkernel-auto.patch +Patch15: 0001-kdump-fix-a-grammar-issue-in-a-kernel-message.patch +Patch19: 0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch +Patch20: 0001-ahci-thunderx2-Fix-for-errata-that-affects-stop-engi.patch +Patch24: 0001-scsi-smartpqi-add-inspur-advantech-ids.patch +Patch26: 0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch +Patch28: 0001-iommu-arm-smmu-workaround-DMA-mode-issues.patch +Patch29: 0001-arm-aarch64-Drop-the-EXPERT-setting-from-ARM64_FORCE.patch +Patch31: 0001-Add-efi_status_to_str-and-rework-efi_status_to_err.patch +Patch32: 0001-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch +Patch33: 0001-security-lockdown-expose-a-hook-to-lock-the-kernel-d.patch +Patch34: 0001-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch +Patch35: 0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch +Patch36: 0001-s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch +Patch37: 0001-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch +Patch58: 0001-arm-make-CONFIG_HIGHPTE-optional-without-CONFIG_EXPE.patch +Patch59: 0001-ARM-tegra-usb-no-reset.patch +Patch62: 0001-Input-rmi4-remove-the-need-for-artificial-IRQ-in-cas.patch +Patch63: 0001-Drop-that-for-now.patch +Patch64: 0001-KEYS-Make-use-of-platform-keyring-for-module-signatu.patch +Patch65: 0001-mm-kmemleak-skip-late_init-if-not-skip-disable.patch +Patch66: 0001-ARM-fix-__get_user_check-in-case-uaccess_-calls-are-.patch +Patch67: 0001-soc-bcm2835-Sync-xHCI-reset-firmware-property-with-d.patch +Patch68: 0001-firmware-raspberrypi-Introduce-vl805-init-routine.patch +Patch69: 0001-PCI-brcmstb-Wait-for-Raspberry-Pi-s-firmware-when-pr.patch +Patch70: 0001-USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch +Patch75: 0001-e1000e-bump-up-timeout-to-wait-when-ME-un-configure-.patch +Patch76: 0001-perf-cs-etm-Move-defined-of-traceid_list.patch +Patch79: 0001-disp-gv100-expose-capabilities-class.patch +Patch80: 0001-core-memory-remove-redundant-assignments-to-variable.patch +Patch81: 0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch +Patch82: 0001-drm-Use-generic-helper-to-check-_PR3-presence.patch +Patch83: 0001-mmu-Remove-unneeded-semicolon.patch +Patch84: 0001-device-rework-mmio-mapping-code-to-get-rid-of-second.patch +Patch85: 0001-device-detect-if-changing-endianness-failed.patch +Patch86: 0001-device-detect-vGPUs.patch +Patch87: 0001-device-use-regular-PRI-accessors-in-chipset-detectio.patch +Patch89: 0001-disp-nv50-increase-timeout-on-pio-channel-free-polli.patch +Patch90: 0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch +Patch91: 0001-disp-hda-gf119-add-HAL-for-programming-device-entry-.patch +Patch92: 0001-disp-hda-gf119-select-HDA-device-entry-based-on-boun.patch +Patch93: 0001-disp-hda-gv100-NV_PDISP_SF_AUDIO_CNTRL0-register-mov.patch +Patch94: 0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch +Patch95: 0001-kms-nv50-Probe-SOR-and-PIOR-caps-for-DP-interlacing-.patch +Patch96: 0001-kms-gv100-Add-support-for-interlaced-modes.patch +Patch97: 0001-kms-nv50-Move-8BPC-limit-for-MST-into-nv50_mstc_get_.patch +Patch98: 0001-kms-nv50-Share-DP-SST-mode_valid-handling-with-MST.patch +Patch99: 0001-virt-vbox-Fix-VBGL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch +Patch100: 0001-virt-vbox-Fix-guest-capabilities-mask-check.patch +Patch101: 0001-virt-vbox-Rename-guest_caps-struct-members-to-set_gu.patch +Patch102: 0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch +Patch103: 0001-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch +Patch104: 0001-virt-vbox-Add-a-few-new-vmmdev-request-types-to-the-.patch +Patch105: 0001-virt-vbox-Log-unknown-ioctl-requests-as-error.patch # Thinkpad dual fan control -Patch521: 0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch +Patch107: 0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch +# Latest upstream screen driver - https://patchwork.kernel.org/patch/11627069/ +Patch110: 0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch +Patch111: 0002-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch +Patch112: 0003-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch +Patch113: 0004-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch +Patch114: 0005-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch +Patch115: 0006-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch +Patch116: 0007-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch +Patch117: 0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch +Patch118: 0009-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch +Patch119: 0010-drm-panel-st7703-Enter-sleep-after-display-off.patch +Patch120: 0011-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch +Patch121: 0012-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch +Patch122: 0013-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch +# Back port from 5.8 +Patch123: 0001-usb-fusb302-Convert-to-use-GPIO-descriptors.patch +# Tegra194 ACPI PCI quirk - http://patchwork.ozlabs.org/patch/1221384/ +Patch124: 0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch # END OF PATCH DEFINITIONS %endif @@ -2010,7 +1961,6 @@ BuildKernel() { %endif # then drop all but the needed Makefiles/Kconfig files - rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Documentation rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include cp .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build @@ -2839,8 +2789,9 @@ fi %endif %if %{with_tools} +%ifnarch %{cpupowerarchs} %files -n kernel-tools -%ifarch %{cpupowerarchs} +%else %files -n kernel-tools -f cpupower.lang %{_bindir}/cpupower %{_datadir}/bash-completion/completions/cpupower @@ -3017,6 +2968,9 @@ fi # # %changelog +* Mon Jun 29 2020 Justin M. Forbes - 5.7.6-200 +- Linux v5.7.6 rebase + * Wed Jun 17 2020 Justin M. Forbes - 5.6.19-300 - Linux v5.6.19 diff --git a/media-rc-prevent-memory-leak-in-cx23888_ir_probe.patch b/media-rc-prevent-memory-leak-in-cx23888_ir_probe.patch deleted file mode 100644 index 10ec07f22..000000000 --- a/media-rc-prevent-memory-leak-in-cx23888_ir_probe.patch +++ /dev/null @@ -1,103 +0,0 @@ -From patchwork Wed Sep 25 15:02:41 2019 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Navid Emamdoost -X-Patchwork-Id: 1131334 -Return-Path: -Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) - by smtp.lore.kernel.org (Postfix) with ESMTP id D12E6C432C2 - for ; Wed, 25 Sep 2019 15:02:56 +0000 (UTC) -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mail.kernel.org (Postfix) with ESMTP id A3ACD21D7B - for ; Wed, 25 Sep 2019 15:02:56 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=fail reason="signature verification failed" (2048-bit key) - header.d=gmail.com header.i=@gmail.com header.b="arASj5Yv" -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S2438783AbfIYPC4 (ORCPT - ); - Wed, 25 Sep 2019 11:02:56 -0400 -Received: from mail-io1-f66.google.com ([209.85.166.66]:44698 "EHLO - mail-io1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1731142AbfIYPCz (ORCPT - ); - Wed, 25 Sep 2019 11:02:55 -0400 -Received: by mail-io1-f66.google.com with SMTP id j4so14606376iog.11; - Wed, 25 Sep 2019 08:02:53 -0700 (PDT) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=gmail.com; s=20161025; - h=from:to:cc:subject:date:message-id; - bh=MWyh3PNmOklfeVqzYOrNwzDcAH8lax2jMCGmRDG4urM=; - b=arASj5Yv5bqz17U8QZVYbble7TDB5sj0TMbNk56fxz5ejOoHyT3kYbYJ/QtfbbLSs6 - iEjbcUYxhDqPRDkxpycr9uysp4vVx+usX4dONocnmhwJEwUZNwBO9gxatNe8zkYv3cBV - 6/zgf3/mu1ElXkjkjabewFHnWgFLNY2bEKtd9Wx3P6FGJyuwNg5dgB8SDQb/2DSr4X9q - aUgMqjBas1yw+cOjn/+KzpYS5k6gjQTDGNc4k+SZec43+S+O208YvxdUJ1ivWceNMa90 - RFPA3kk2XYQIgbJVbmqVTOzfX1l/qDVCb/GHdWaEq3GUolGoF7RGnD3ntqNF7uyElR4g - 1cfA== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20161025; - h=x-gm-message-state:from:to:cc:subject:date:message-id; - bh=MWyh3PNmOklfeVqzYOrNwzDcAH8lax2jMCGmRDG4urM=; - b=a11vAjMQ8OwRtbrsNLlkXz9P6ewInEp9Y3Yp+tDjNcUdkcFEfckW79Eoc5EIFPd58E - KdJncVKoKTHG4PNxbHcjBXFY82d8wYP+gzkfv4Fx5zKfi9ZRj03gupr1tq8kAizI6+QM - fQUaDU5Z+kETTNPQx4V9W9WsMituZTsmC3yIjhtyaY9qnvDFpjeIcFi8ityCJ59nqaBs - xDkYx9NCUK/ZkRujeIznZ3kaCDvgTxG/PM02POWE8/CEnkaS4oVwMqIJ1WJqRO4cW5Rd - ak9LLUKankinb6T5dd1BPeVmOq4MJJnB8OrnMrENhtYgLgCDELF9090hqfpBkv4FW4zN - vGOQ== -X-Gm-Message-State: APjAAAULnVDgP2mQfcWBZXj8JYWYlmhlw/fk0WqZRMbvjRR4s+BO+yLW - YtHDvZSJqP12YLMYI6zTrm0= -X-Google-Smtp-Source: - APXvYqwPBH16FuEXUH7rOy3JWTXRjXFzwF9Spfa1QHh9p2MfWd+kBFJthLybBlVk8lVb6Ym4UWB2NA== -X-Received: by 2002:a5d:8ad4:: with SMTP id e20mr2109019iot.203.1569423773435; - Wed, 25 Sep 2019 08:02:53 -0700 (PDT) -Received: from cs-dulles.cs.umn.edu (cs-dulles.cs.umn.edu. [128.101.35.54]) - by smtp.googlemail.com with ESMTPSA id - 2sm206447ilw.50.2019.09.25.08.02.52 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Wed, 25 Sep 2019 08:02:52 -0700 (PDT) -From: Navid Emamdoost -Cc: emamd001@umn.edu, smccaman@umn.edu, kjlu@umn.edu, - Navid Emamdoost , - Mauro Carvalho Chehab , - Kate Stewart , - Thomas Gleixner , - Allison Randal , - Greg Kroah-Hartman , - Sean Young , linux-media@vger.kernel.org, - linux-kernel@vger.kernel.org -Subject: [PATCH] media: rc: prevent memory leak in cx23888_ir_probe -Date: Wed, 25 Sep 2019 10:02:41 -0500 -Message-Id: <20190925150244.13644-1-navid.emamdoost@gmail.com> -X-Mailer: git-send-email 2.17.1 -To: unlisted-recipients:; (no To-header on input) -Sender: linux-kernel-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-kernel@vger.kernel.org - -In cx23888_ir_probe if kfifo_alloc fails the allocated memory for state -should be released. - -Signed-off-by: Navid Emamdoost ---- - drivers/media/pci/cx23885/cx23888-ir.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/drivers/media/pci/cx23885/cx23888-ir.c b/drivers/media/pci/cx23885/cx23888-ir.c -index e880afe37f15..90e7c32c54bb 100644 ---- a/drivers/media/pci/cx23885/cx23888-ir.c -+++ b/drivers/media/pci/cx23885/cx23888-ir.c -@@ -1167,8 +1167,11 @@ int cx23888_ir_probe(struct cx23885_dev *dev) - return -ENOMEM; - - spin_lock_init(&state->rx_kfifo_lock); -- if (kfifo_alloc(&state->rx_kfifo, CX23888_IR_RX_KFIFO_SIZE, GFP_KERNEL)) -+ if (kfifo_alloc(&state->rx_kfifo, CX23888_IR_RX_KFIFO_SIZE, -+ GFP_KERNEL)) { -+ kfree(state); - return -ENOMEM; -+ } - - state->dev = dev; - sd = &state->sd; diff --git a/mwifiex-fix-possible-heap-overflow-in-mwifiex_process_country_ie.patch b/mwifiex-fix-possible-heap-overflow-in-mwifiex_process_country_ie.patch deleted file mode 100644 index c006a9b2c..000000000 --- a/mwifiex-fix-possible-heap-overflow-in-mwifiex_process_country_ie.patch +++ /dev/null @@ -1,129 +0,0 @@ -From patchwork Thu Nov 21 16:04:38 2019 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ganapathi Bhat -X-Patchwork-Id: 11256477 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: -Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org - [172.30.200.123]) - by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AAABF138C - for ; - Thu, 21 Nov 2019 16:04:48 +0000 (UTC) -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mail.kernel.org (Postfix) with ESMTP id 8950220637 - for ; - Thu, 21 Nov 2019 16:04:48 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=marvell.com header.i=@marvell.com - header.b="nkGygBtm" -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1727141AbfKUQEs (ORCPT - ); - Thu, 21 Nov 2019 11:04:48 -0500 -Received: from mx0b-0016f401.pphosted.com ([67.231.156.173]:6582 "EHLO - mx0b-0016f401.pphosted.com" rhost-flags-OK-OK-OK-OK) - by vger.kernel.org with ESMTP id S1726980AbfKUQEr (ORCPT - ); - Thu, 21 Nov 2019 11:04:47 -0500 -Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) - by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id - xALFu718003199; - Thu, 21 Nov 2019 08:04:44 -0800 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; - h=from : to : cc : - subject : date : message-id : mime-version : content-type; s=pfpt0818; - bh=o/oIGGHPmwt5MFTKPl2GcISKabBWhPBOdPXPhlV+8H8=; - b=nkGygBtmdc1LxIp0VzpsKssm8mQFI+syng1Rek/N5Fx3Vz4o2KAlRceJkhXNdV7WpjTG - XDtRj/LiYd+OAIqSLM6J2VNtOKOhaNSDydtTUnIi4imHPzYoAdESDQW5aFV8JKZqOfYx - 0oQTjw6AhdjJCsngL+bImzmnJoZsc2gUu3BAic/kW+6Uj0JCgQwoUFBH9rNaO+Q33BY+ - dZy9MdKD905LxSBE7A5xWx5GEgrqRcvfxSOu2K78FQhsJ20suhvWSobxpYE0LIrajl6s - oQGuDbTsdOO/8v7D9Xn7zObUH6qZ08AMxDZNaBLqiKpjFY/RA7LbR2eulwEnhjCLDQfK uA== -Received: from sc-exch03.marvell.com ([199.233.58.183]) - by mx0b-0016f401.pphosted.com with ESMTP id 2wd090yntp-1 - (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); - Thu, 21 Nov 2019 08:04:44 -0800 -Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH03.marvell.com - (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Thu, 21 Nov - 2019 08:04:43 -0800 -Received: from maili.marvell.com (10.93.176.43) by SC-EXCH01.marvell.com - (10.93.176.81) with Microsoft SMTP Server id 15.0.1367.3 via Frontend - Transport; Thu, 21 Nov 2019 08:04:43 -0800 -Received: from testmailhost.marvell.com (testmailhost.marvell.com - [10.31.130.105]) - by maili.marvell.com (Postfix) with ESMTP id 898743F703F; - Thu, 21 Nov 2019 08:04:40 -0800 (PST) -From: Ganapathi Bhat -To: -CC: Cathy Luo , Zhiyuan Yang , - James Cao , - Rakesh Parmar , - Brian Norris , - Mohammad Tausif Siddiqui , - huangwen , - Ganapathi Bhat -Subject: [PATCH] mwifiex: fix possible heap overflow in - mwifiex_process_country_ie() -Date: Thu, 21 Nov 2019 21:34:38 +0530 -Message-ID: <1574352278-7592-1-git-send-email-gbhat@marvell.com> -X-Mailer: git-send-email 1.9.1 -MIME-Version: 1.0 -X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 - definitions=2019-11-21_03:2019-11-21,2019-11-21 signatures=0 -Sender: linux-wireless-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless@vger.kernel.org - -mwifiex_process_country_ie() function parse elements of bss -descriptor in beacon packet. When processing WLAN_EID_COUNTRY -element, there is no upper limit check for country_ie_len before -calling memcpy. The destination buffer domain_info->triplet is an -array of length MWIFIEX_MAX_TRIPLET_802_11D(83). The remote -attacker can build a fake AP with the same ssid as real AP, and -send malicous beacon packet with long WLAN_EID_COUNTRY elemen -(country_ie_len > 83). Attacker can force STA connect to fake AP -on a different channel. When the victim STA connects to fake AP, -will trigger the heap buffer overflow. Fix this by checking for -length and if found invalid, don not connect to the AP. - -This fix addresses CVE-2019-14895. - -Reported-by: huangwen -Signed-off-by: Ganapathi Bhat ---- - drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c b/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c -index 74e5056..6dd835f 100644 ---- a/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c -+++ b/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c -@@ -229,6 +229,14 @@ static int mwifiex_process_country_ie(struct mwifiex_private *priv, - "11D: skip setting domain info in FW\n"); - return 0; - } -+ -+ if (country_ie_len > -+ (IEEE80211_COUNTRY_STRING_LEN + MWIFIEX_MAX_TRIPLET_802_11D)) { -+ mwifiex_dbg(priv->adapter, ERROR, -+ "11D: country_ie_len overflow!, deauth AP\n"); -+ return -EINVAL; -+ } -+ - memcpy(priv->adapter->country_code, &country_ie[2], 2); - - domain_info->country_code[0] = country_ie[2]; -@@ -272,8 +280,9 @@ int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss, - priv->scan_block = false; - - if (bss) { -- if (adapter->region_code == 0x00) -- mwifiex_process_country_ie(priv, bss); -+ if (adapter->region_code == 0x00 && -+ mwifiex_process_country_ie(priv, bss)) -+ return -EINVAL; - - /* Allocate and fill new bss descriptor */ - bss_desc = kzalloc(sizeof(struct mwifiex_bssdescriptor), diff --git a/net-netlabel-cope-with-NULL-catmap.patch b/net-netlabel-cope-with-NULL-catmap.patch deleted file mode 100644 index 06a915121..000000000 --- a/net-netlabel-cope-with-NULL-catmap.patch +++ /dev/null @@ -1,95 +0,0 @@ -From MAILER-DAEMON Tue May 12 19:31:23 2020 -From: Paolo Abeni -To: netdev@vger.kernel.org -Cc: "David S. Miller" , Jakub Kicinski , linux-security-module@vger.kernel.org, Paul Moore , ppandit@redhat.com, Matthew Sheets -Subject: [PATCH net] netlabel: cope with NULL catmap -Date: Tue, 12 May 2020 14:43:14 +0200 -Message-Id: <07d99ae197bfdb2964931201db67b6cd0b38db5b.1589276729.git.pabeni@redhat.com> -Sender: owner-linux-security-module@vger.kernel.org -List-ID: -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 7bit - -The cipso and calipso code can set the MLS_CAT attribute on -successful parsing, even if the corresponding catmap has -not been allocated, as per current configuration and external -input. - -Later, selinux code tries to access the catmap if the MLS_CAT flag -is present via netlbl_catmap_getlong(). That may cause null ptr -dereference while processing incoming network traffic. - -Address the issue setting the MLS_CAT flag only if the catmap is -really allocated. Additionally let netlbl_catmap_getlong() cope -with NULL catmap. - -Fixes: ceba1832b1b2 ("calipso: Set the calipso socket label to match the secattr.") -Fixes: 4b8feff251da ("netlabel: fix the horribly broken catmap functions") -Reported-by: Matthew Sheets -Signed-off-by: Paolo Abeni ---- - net/ipv4/cipso_ipv4.c | 6 ++++-- - net/ipv6/calipso.c | 3 ++- - net/netlabel/netlabel_kapi.c | 6 ++++++ - 3 files changed, 12 insertions(+), 3 deletions(-) - -diff --git a/net/ipv4/cipso_ipv4.c b/net/ipv4/cipso_ipv4.c -index 0bd10a1f477f..a23094b050f8 100644 ---- a/net/ipv4/cipso_ipv4.c -+++ b/net/ipv4/cipso_ipv4.c -@@ -1258,7 +1258,8 @@ static int cipso_v4_parsetag_rbm(const struct cipso_v4_doi *doi_def, - return ret_val; - } - -- secattr->flags |= NETLBL_SECATTR_MLS_CAT; -+ if (secattr->attr.mls.cat) -+ secattr->flags |= NETLBL_SECATTR_MLS_CAT; - } - - return 0; -@@ -1439,7 +1440,8 @@ static int cipso_v4_parsetag_rng(const struct cipso_v4_doi *doi_def, - return ret_val; - } - -- secattr->flags |= NETLBL_SECATTR_MLS_CAT; -+ if (secattr->attr.mls.cat) -+ secattr->flags |= NETLBL_SECATTR_MLS_CAT; - } - - return 0; -diff --git a/net/ipv6/calipso.c b/net/ipv6/calipso.c -index 221c81f85cbf..8d3f66c310db 100644 ---- a/net/ipv6/calipso.c -+++ b/net/ipv6/calipso.c -@@ -1047,7 +1047,8 @@ static int calipso_opt_getattr(const unsigned char *calipso, - goto getattr_return; - } - -- secattr->flags |= NETLBL_SECATTR_MLS_CAT; -+ if (secattr->attr.mls.cat) -+ secattr->flags |= NETLBL_SECATTR_MLS_CAT; - } - - secattr->type = NETLBL_NLTYPE_CALIPSO; -diff --git a/net/netlabel/netlabel_kapi.c b/net/netlabel/netlabel_kapi.c -index 409a3ae47ce2..5e1239cef000 100644 ---- a/net/netlabel/netlabel_kapi.c -+++ b/net/netlabel/netlabel_kapi.c -@@ -734,6 +734,12 @@ int netlbl_catmap_getlong(struct netlbl_lsm_catmap *catmap, - if ((off & (BITS_PER_LONG - 1)) != 0) - return -EINVAL; - -+ /* a null catmap is equivalent to an empty one */ -+ if (!catmap) { -+ *offset = (u32)-1; -+ return 0; -+ } -+ - if (off < catmap->startbit) { - off = catmap->startbit; - *offset = off; --- -2.21.3 - - diff --git a/nouveau-add-missing-MODULE_FIRMWARE.patch b/nouveau-add-missing-MODULE_FIRMWARE.patch deleted file mode 100644 index 1195b95d3..000000000 --- a/nouveau-add-missing-MODULE_FIRMWARE.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 92f673a12d14b5393138d2b1cfeb41d72b47362d Mon Sep 17 00:00:00 2001 -From: Ben Skeggs -Date: Thu, 16 Apr 2020 15:26:01 +1000 -Subject: [PATCH] drm/nouveau/sec2/gv100-: add missing MODULE_FIRMWARE() - -ASB was failing to load on Turing GPUs when firmware is being loaded -from initramfs, leaving the GPU in an odd state and causing suspend/ -resume to fail. - -Add missing MODULE_FIRMWARE() lines for initramfs generators. - -Signed-off-by: Ben Skeggs -Cc: # 5.6 ---- - drivers/gpu/drm/nouveau/nvkm/engine/sec2/gp108.c | 3 +++ - drivers/gpu/drm/nouveau/nvkm/engine/sec2/tu102.c | 16 ++++++++++++++++ - 2 files changed, 19 insertions(+) - -diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sec2/gp108.c b/drivers/gpu/drm/nouveau/nvkm/engine/sec2/gp108.c -index 232a9d7c51e5d..e770c9497871b 100644 ---- a/drivers/gpu/drm/nouveau/nvkm/engine/sec2/gp108.c -+++ b/drivers/gpu/drm/nouveau/nvkm/engine/sec2/gp108.c -@@ -25,6 +25,9 @@ - MODULE_FIRMWARE("nvidia/gp108/sec2/desc.bin"); - MODULE_FIRMWARE("nvidia/gp108/sec2/image.bin"); - MODULE_FIRMWARE("nvidia/gp108/sec2/sig.bin"); -+MODULE_FIRMWARE("nvidia/gv100/sec2/desc.bin"); -+MODULE_FIRMWARE("nvidia/gv100/sec2/image.bin"); -+MODULE_FIRMWARE("nvidia/gv100/sec2/sig.bin"); - - static const struct nvkm_sec2_fwif - gp108_sec2_fwif[] = { -diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sec2/tu102.c b/drivers/gpu/drm/nouveau/nvkm/engine/sec2/tu102.c -index b6ebd95c9ba1e..a8295653ceab1 100644 ---- a/drivers/gpu/drm/nouveau/nvkm/engine/sec2/tu102.c -+++ b/drivers/gpu/drm/nouveau/nvkm/engine/sec2/tu102.c -@@ -56,6 +56,22 @@ tu102_sec2_nofw(struct nvkm_sec2 *sec2, int ver, - return 0; - } - -+MODULE_FIRMWARE("nvidia/tu102/sec2/desc.bin"); -+MODULE_FIRMWARE("nvidia/tu102/sec2/image.bin"); -+MODULE_FIRMWARE("nvidia/tu102/sec2/sig.bin"); -+MODULE_FIRMWARE("nvidia/tu104/sec2/desc.bin"); -+MODULE_FIRMWARE("nvidia/tu104/sec2/image.bin"); -+MODULE_FIRMWARE("nvidia/tu104/sec2/sig.bin"); -+MODULE_FIRMWARE("nvidia/tu106/sec2/desc.bin"); -+MODULE_FIRMWARE("nvidia/tu106/sec2/image.bin"); -+MODULE_FIRMWARE("nvidia/tu106/sec2/sig.bin"); -+MODULE_FIRMWARE("nvidia/tu116/sec2/desc.bin"); -+MODULE_FIRMWARE("nvidia/tu116/sec2/image.bin"); -+MODULE_FIRMWARE("nvidia/tu116/sec2/sig.bin"); -+MODULE_FIRMWARE("nvidia/tu117/sec2/desc.bin"); -+MODULE_FIRMWARE("nvidia/tu117/sec2/image.bin"); -+MODULE_FIRMWARE("nvidia/tu117/sec2/sig.bin"); -+ - static const struct nvkm_sec2_fwif - tu102_sec2_fwif[] = { - { 0, gp102_sec2_load, &tu102_sec2, &gp102_sec2_acr_1 }, diff --git a/regulator-pwm-Don-t-warn-on-probe-deferral.patch b/regulator-pwm-Don-t-warn-on-probe-deferral.patch deleted file mode 100644 index cebfae9de..000000000 --- a/regulator-pwm-Don-t-warn-on-probe-deferral.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 0cd71b9a43ad80f4d9a8bfde6ec6db8daf447029 Mon Sep 17 00:00:00 2001 -From: Jon Hunter -Date: Mon, 2 Mar 2020 14:14:28 +0000 -Subject: regulator: pwm: Don't warn on probe deferral - -Deferred probe is an expected return value for devm_pwm_get(). Given -that the driver deals with it properly, rather than warn on probe -deferral, only output a message on probe deferral if debug level -prints are enabled. - -Signed-off-by: Jon Hunter -Link: https://lore.kernel.org/r/20200302141428.14119-1-jonathanh@nvidia.com -Signed-off-by: Mark Brown ---- - drivers/regulator/pwm-regulator.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/drivers/regulator/pwm-regulator.c b/drivers/regulator/pwm-regulator.c -index e74e11101fc1..638329bd0745 100644 ---- a/drivers/regulator/pwm-regulator.c -+++ b/drivers/regulator/pwm-regulator.c -@@ -354,7 +354,11 @@ static int pwm_regulator_probe(struct platform_device *pdev) - drvdata->pwm = devm_pwm_get(&pdev->dev, NULL); - if (IS_ERR(drvdata->pwm)) { - ret = PTR_ERR(drvdata->pwm); -- dev_err(&pdev->dev, "Failed to get PWM: %d\n", ret); -+ if (ret == -EPROBE_DEFER) -+ dev_dbg(&pdev->dev, -+ "Failed to get PWM, deferring probe\n"); -+ else -+ dev_err(&pdev->dev, "Failed to get PWM: %d\n", ret); - return ret; - } - --- -cgit 1.2-0.3.lf.el7 diff --git a/scripts/create_headers_tarball.sh b/scripts/create_headers_tarball.sh index 9a59f03a5..f9c3cb9c5 100755 --- a/scripts/create_headers_tarball.sh +++ b/scripts/create_headers_tarball.sh @@ -40,7 +40,7 @@ fi # ARCH_LIST below has the default list of supported architectures # (the architectures names may be different from rpm, you list here the # names of arch/ directories in the kernel sources) -ARCH_LIST="arm arm64 powerpc s390 x86" +ARCH_LIST="arm arm64 powerpc riscv s390 x86" headers_dir=$(mktemp -d) trap 'rm -rf "$headers_dir"' SIGHUP SIGINT SIGTERM EXIT diff --git a/sources b/sources index 067ac998e..7f56bdb0f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (linux-5.6.tar.xz) = 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 -SHA512 (patch-5.6.19.xz) = f967f9ffc12249db757bd38fd890ac69d327f23bcb767ffa0c178aa7e541bb4a10715664d703315ac3b96ed35909046350f97752c2a4691526ad55a9f03f2c24 +SHA512 (linux-5.7.tar.xz) = 45bde01593f6147c8c169b9e46b4b56eee998142552ae0ff82f1dd21b1fd54f3b32f6283f6bd77ea717d374672167849e468c157f235d2f12f7d7816e4623bf6 +SHA512 (patch-5.7.6.xz) = 9805544822c083a7a2806c25fec94b6f784071ec69ad3c852c39576a1a2ab7dc15c71b59d9e25abc6ac6cadfed8418f6a5871ea6e5c9b025c34c5cc9aa74862e diff --git a/usb-fusb302-Convert-to-use-GPIO-descriptors.patch b/usb-fusb302-Convert-to-use-GPIO-descriptors.patch deleted file mode 100644 index 8ba00ea69..000000000 --- a/usb-fusb302-Convert-to-use-GPIO-descriptors.patch +++ /dev/null @@ -1,155 +0,0 @@ -From 619bb30cc0fe1754f8dfa0fa4ea94fd937857fbd Mon Sep 17 00:00:00 2001 -From: Linus Walleij -Date: Mon, 20 Apr 2020 09:55:38 +0100 -Subject: [PATCH] usb: fusb302: Convert to use GPIO descriptors - -This converts the FUSB302 driver to use GPIO descriptors. -The conversion to descriptors per se is pretty straight-forward. - -In the process I discovered that: - -1. The driver uses a completely undocumented device tree binding - for the interrupt GPIO line, "fcs,int_n". Ooops. - -2. The undocumented binding, presumably since it has not seen - review, is just "fcs,int_n", lacking the compulsory "-gpios" - suffix and also something that is not a good name because - the "_n" implies the line is inverted which is something we - handle with flags in the device tree. Ooops. - -3. Possibly the driver should not be requesting the line as a - GPIO and request the corresponding interrupt line by open - coding, the GPIO chip is very likely doubleing as an IRQ - controller and can probably provide an interrupt directly - for this line with interrupts-extended = <&gpio0 ...>; - -4. Possibly the IRQ should just be tagged on the I2C client node - in the device tree like apparently ACPI does, as it overrides - this IRQ with client->irq if that exists. - -But now it is too late to do much about that and as I can see -this is used like this in the Pinebook which is a shipping product -so let'a just contain the mess and move on. - -The property currently appears in: -arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts - -Create a quirk in the GPIO OF library to allow this property -specifically to be specified without the "-gpios" suffix, we have -other such bindings already. - -Signed-off-by: Linus Walleij ---- - drivers/gpio/gpiolib-of.c | 21 +++++++++++++++++++++ - drivers/usb/typec/tcpm/fusb302.c | 32 +++++++++----------------------- - 2 files changed, 30 insertions(+), 23 deletions(-) - -diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c -index ccc449df3792..20c2c428168e 100644 ---- a/drivers/gpio/gpiolib-of.c -+++ b/drivers/gpio/gpiolib-of.c -@@ -460,6 +460,24 @@ static struct gpio_desc *of_find_arizona_gpio(struct device *dev, - return of_get_named_gpiod_flags(dev->of_node, con_id, 0, of_flags); - } - -+static struct gpio_desc *of_find_usb_gpio(struct device *dev, -+ const char *con_id, -+ enum of_gpio_flags *of_flags) -+{ -+ /* -+ * Currently this USB quirk is only for the Fairchild FUSB302 host which is using -+ * an undocumented DT GPIO line named "fcs,int_n" without the compulsory "-gpios" -+ * suffix. -+ */ -+ if (!IS_ENABLED(CONFIG_TYPEC_FUSB302)) -+ return ERR_PTR(-ENOENT); -+ -+ if (!con_id || strcmp(con_id, "fcs,int_n")) -+ return ERR_PTR(-ENOENT); -+ -+ return of_get_named_gpiod_flags(dev->of_node, con_id, 0, of_flags); -+} -+ - struct gpio_desc *of_find_gpio(struct device *dev, const char *con_id, - unsigned int idx, unsigned long *flags) - { -@@ -504,6 +522,9 @@ struct gpio_desc *of_find_gpio(struct device *dev, const char *con_id, - if (PTR_ERR(desc) == -ENOENT) - desc = of_find_arizona_gpio(dev, con_id, &of_flags); - -+ if (PTR_ERR(desc) == -ENOENT) -+ desc = of_find_usb_gpio(dev, con_id, &of_flags); -+ - if (IS_ERR(desc)) - return desc; - -diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c -index b498960ff72b..b28facece43c 100644 ---- a/drivers/usb/typec/tcpm/fusb302.c -+++ b/drivers/usb/typec/tcpm/fusb302.c -@@ -9,14 +9,13 @@ - #include - #include - #include --#include -+#include - #include - #include - #include - #include - #include - #include --#include - #include - #include - #include -@@ -83,7 +82,7 @@ struct fusb302_chip { - struct work_struct irq_work; - bool irq_suspended; - bool irq_while_suspended; -- int gpio_int_n; -+ struct gpio_desc *gpio_int_n; - int gpio_int_n_irq; - struct extcon_dev *extcon; - -@@ -1618,30 +1617,17 @@ static void fusb302_irq_work(struct work_struct *work) - - static int init_gpio(struct fusb302_chip *chip) - { -- struct device_node *node; -+ struct device *dev = chip->dev; - int ret = 0; - -- node = chip->dev->of_node; -- chip->gpio_int_n = of_get_named_gpio(node, "fcs,int_n", 0); -- if (!gpio_is_valid(chip->gpio_int_n)) { -- ret = chip->gpio_int_n; -- dev_err(chip->dev, "cannot get named GPIO Int_N, ret=%d", ret); -- return ret; -- } -- ret = devm_gpio_request(chip->dev, chip->gpio_int_n, "fcs,int_n"); -- if (ret < 0) { -- dev_err(chip->dev, "cannot request GPIO Int_N, ret=%d", ret); -- return ret; -- } -- ret = gpio_direction_input(chip->gpio_int_n); -- if (ret < 0) { -- dev_err(chip->dev, -- "cannot set GPIO Int_N to input, ret=%d", ret); -- return ret; -+ chip->gpio_int_n = devm_gpiod_get(dev, "fcs,int_n", GPIOD_IN); -+ if (IS_ERR(chip->gpio_int_n)) { -+ dev_err(dev, "failed to request gpio_int_n\n"); -+ return PTR_ERR(chip->gpio_int_n); - } -- ret = gpio_to_irq(chip->gpio_int_n); -+ ret = gpiod_to_irq(chip->gpio_int_n); - if (ret < 0) { -- dev_err(chip->dev, -+ dev_err(dev, - "cannot request IRQ for GPIO Int_N, ret=%d", ret); - return ret; - } --- -2.26.1 - diff --git a/vboxguest-fixes.patch b/vboxguest-fixes.patch deleted file mode 100644 index 90c95b374..000000000 --- a/vboxguest-fixes.patch +++ /dev/null @@ -1,843 +0,0 @@ -From ba5ea5d9d5d2ade5156cf2bc452ff6d1f5c4db37 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 19 May 2020 12:21:30 +0200 -Subject: [PATCH 1/8] virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG - req numbers to match upstream - -Until this commit the mainline kernel version (this version) of the -vboxguest module contained a bug where it defined -VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG using -_IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead of -_IO(V, ...) as the out of tree VirtualBox upstream version does. - -Since the VirtualBox userspace bits are always built against VirtualBox -upstream's headers, this means that so far the mainline kernel version -of the vboxguest module has been failing these 2 ioctls with -ENOTTY. -I guess that VBGL_IOCTL_VMMDEV_REQUEST_BIG is never used causing us to -not hit that one and sofar the vboxguest driver has failed to actually -log any log messages passed it through VBGL_IOCTL_LOG. - -This commit changes the VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG -defines to match the out of tree VirtualBox upstream vboxguest version, -while keeping compatibility with the old wrong request defines so as -to not break the kernel ABI in case someone has been using the old -request defines. - -Fixes: f6ddd094f579 ("virt: Add vboxguest driver for Virtual Box Guest integration UAPI") -Cc: stable@vger.kernel.org -Signed-off-by: Hans de Goede ---- - drivers/virt/vboxguest/vboxguest_core.c | 4 +++- - drivers/virt/vboxguest/vboxguest_core.h | 15 +++++++++++++++ - drivers/virt/vboxguest/vboxguest_linux.c | 3 ++- - include/uapi/linux/vboxguest.h | 4 ++-- - 4 files changed, 22 insertions(+), 4 deletions(-) - -diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c -index b690a8a4bf9e..8fab04e76c14 100644 ---- a/drivers/virt/vboxguest/vboxguest_core.c -+++ b/drivers/virt/vboxguest/vboxguest_core.c -@@ -1520,7 +1520,8 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) - - /* For VMMDEV_REQUEST hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT */ - if (req_no_size == VBG_IOCTL_VMMDEV_REQUEST(0) || -- req == VBG_IOCTL_VMMDEV_REQUEST_BIG) -+ req == VBG_IOCTL_VMMDEV_REQUEST_BIG || -+ req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT) - return vbg_ioctl_vmmrequest(gdev, session, data); - - if (hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT) -@@ -1558,6 +1559,7 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) - case VBG_IOCTL_HGCM_CALL(0): - return vbg_ioctl_hgcm_call(gdev, session, f32bit, data); - case VBG_IOCTL_LOG(0): -+ case VBG_IOCTL_LOG_ALT(0): - return vbg_ioctl_log(data); - } - -diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h -index 4188c12b839f..77c3a9c8255d 100644 ---- a/drivers/virt/vboxguest/vboxguest_core.h -+++ b/drivers/virt/vboxguest/vboxguest_core.h -@@ -15,6 +15,21 @@ - #include - #include "vmmdev.h" - -+/* -+ * The mainline kernel version (this version) of the vboxguest module -+ * contained a bug where it defined VBGL_IOCTL_VMMDEV_REQUEST_BIG and -+ * VBGL_IOCTL_LOG using _IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead -+ * of _IO(V, ...) as the out of tree VirtualBox upstream version does. -+ * -+ * These _ALT definitions keep compatibility with the wrong defines the -+ * mainline kernel version used for a while. -+ * Note the VirtualBox userspace bits have always been built against -+ * VirtualBox upstream's headers, so this is likely not necessary. But -+ * we must never break our ABI so we keep these around to be 100% sure. -+ */ -+#define VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0) -+#define VBG_IOCTL_LOG_ALT(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s) -+ - struct vbg_session; - - /** VBox guest memory balloon. */ -diff --git a/drivers/virt/vboxguest/vboxguest_linux.c b/drivers/virt/vboxguest/vboxguest_linux.c -index 6e8c0f1c1056..32c2c52f7e84 100644 ---- a/drivers/virt/vboxguest/vboxguest_linux.c -+++ b/drivers/virt/vboxguest/vboxguest_linux.c -@@ -131,7 +131,8 @@ static long vbg_misc_device_ioctl(struct file *filp, unsigned int req, - * the need for a bounce-buffer and another copy later on. - */ - is_vmmdev_req = (req & ~IOCSIZE_MASK) == VBG_IOCTL_VMMDEV_REQUEST(0) || -- req == VBG_IOCTL_VMMDEV_REQUEST_BIG; -+ req == VBG_IOCTL_VMMDEV_REQUEST_BIG || -+ req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT; - - if (is_vmmdev_req) - buf = vbg_req_alloc(size, VBG_IOCTL_HDR_TYPE_DEFAULT, -diff --git a/include/uapi/linux/vboxguest.h b/include/uapi/linux/vboxguest.h -index 9cec58a6a5ea..f79d7abe27db 100644 ---- a/include/uapi/linux/vboxguest.h -+++ b/include/uapi/linux/vboxguest.h -@@ -103,7 +103,7 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_driver_version_info, 24 + 20); - - - /* IOCTL to perform a VMM Device request larger then 1KB. */ --#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0) -+#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IO('V', 3) - - - /** VBG_IOCTL_HGCM_CONNECT data structure. */ -@@ -198,7 +198,7 @@ struct vbg_ioctl_log { - } u; - }; - --#define VBG_IOCTL_LOG(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s) -+#define VBG_IOCTL_LOG(s) _IO('V', 9) - - - /** VBG_IOCTL_WAIT_FOR_EVENTS data structure. */ --- -2.26.2 - -From 14dc3b46e666343c55e5b253ed3dd4c57b13e778 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 19 May 2020 13:23:06 +0200 -Subject: [PATCH 2/8] virt: vbox: Fix guest capabilities mask check - -Check the passed in capabilities against VMMDEV_GUEST_CAPABILITIES_MASK -instead of against VMMDEV_EVENT_VALID_EVENT_MASK. -This tightens the allowed mask from 0x7ff to 0x7. - -Fixes: 0ba002bc4393 ("virt: Add vboxguest driver for Virtual Box Guest integration") -Cc: stable@vger.kernel.org -Signed-off-by: Hans de Goede ---- - drivers/virt/vboxguest/vboxguest_core.c | 2 +- - drivers/virt/vboxguest/vmmdev.h | 2 ++ - 2 files changed, 3 insertions(+), 1 deletion(-) - -diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c -index 8fab04e76c14..18ebd7a6af98 100644 ---- a/drivers/virt/vboxguest/vboxguest_core.c -+++ b/drivers/virt/vboxguest/vboxguest_core.c -@@ -1444,7 +1444,7 @@ static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev, - or_mask = caps->u.in.or_mask; - not_mask = caps->u.in.not_mask; - -- if ((or_mask | not_mask) & ~VMMDEV_EVENT_VALID_EVENT_MASK) -+ if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK) - return -EINVAL; - - ret = vbg_set_session_capabilities(gdev, session, or_mask, not_mask, -diff --git a/drivers/virt/vboxguest/vmmdev.h b/drivers/virt/vboxguest/vmmdev.h -index 6337b8d75d96..21f408120e3f 100644 ---- a/drivers/virt/vboxguest/vmmdev.h -+++ b/drivers/virt/vboxguest/vmmdev.h -@@ -206,6 +206,8 @@ VMMDEV_ASSERT_SIZE(vmmdev_mask, 24 + 8); - * not. - */ - #define VMMDEV_GUEST_SUPPORTS_GRAPHICS BIT(2) -+/* The mask of valid capabilities, for sanity checking. */ -+#define VMMDEV_GUEST_CAPABILITIES_MASK 0x00000007U - - /** struct vmmdev_hypervisorinfo - Hypervisor info structure. */ - struct vmmdev_hypervisorinfo { --- -2.26.2 - -From 172353a61c23015611a341c2f3f4888d866a560b Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 19 May 2020 14:33:13 +0200 -Subject: [PATCH 3/8] virt: vbox: Rename guest_caps struct members to - set_guest_caps - -Rename guest_caps[_tracker] struct members to set_guest_caps[_tracker] -this is a preparation patch for adding support for the -VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl. - -Signed-off-by: Hans de Goede ---- - drivers/virt/vboxguest/vboxguest_core.c | 20 ++++++++++---------- - drivers/virt/vboxguest/vboxguest_core.h | 9 +++++---- - 2 files changed, 15 insertions(+), 14 deletions(-) - -diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c -index 18ebd7a6af98..aee5eff229f2 100644 ---- a/drivers/virt/vboxguest/vboxguest_core.c -+++ b/drivers/virt/vboxguest/vboxguest_core.c -@@ -699,17 +699,17 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, - mutex_lock(&gdev->session_mutex); - - /* Apply the changes to the session mask. */ -- previous = session->guest_caps; -- session->guest_caps |= or_mask; -- session->guest_caps &= ~not_mask; -+ previous = session->set_guest_caps; -+ session->set_guest_caps |= or_mask; -+ session->set_guest_caps &= ~not_mask; - - /* If anything actually changed, update the global usage counters. */ -- changed = previous ^ session->guest_caps; -+ changed = previous ^ session->set_guest_caps; - if (!changed) - goto out; - -- vbg_track_bit_usage(&gdev->guest_caps_tracker, changed, previous); -- or_mask = gdev->guest_caps_tracker.mask; -+ vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, previous); -+ or_mask = gdev->set_guest_caps_tracker.mask; - - if (gdev->guest_caps_host == or_mask || !req) - goto out; -@@ -726,9 +726,9 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, - if (session_termination) - goto out; - -- vbg_track_bit_usage(&gdev->guest_caps_tracker, changed, -- session->guest_caps); -- session->guest_caps = previous; -+ vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, -+ session->set_guest_caps); -+ session->set_guest_caps = previous; - } - - out: -@@ -1452,7 +1452,7 @@ static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev, - if (ret) - return ret; - -- caps->u.out.session_caps = session->guest_caps; -+ caps->u.out.session_caps = session->set_guest_caps; - caps->u.out.global_caps = gdev->guest_caps_host; - - return 0; -diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h -index 77c3a9c8255d..dc745a033164 100644 ---- a/drivers/virt/vboxguest/vboxguest_core.h -+++ b/drivers/virt/vboxguest/vboxguest_core.h -@@ -118,11 +118,12 @@ struct vbg_dev { - u32 event_filter_host; - - /** -- * Usage counters for guest capabilities. Indexed by capability bit -+ * Usage counters for guest capabilities requested through -+ * vbg_set_session_capabilities(). Indexed by capability bit - * number, one count per session using a capability. - * Protected by session_mutex. - */ -- struct vbg_bit_usage_tracker guest_caps_tracker; -+ struct vbg_bit_usage_tracker set_guest_caps_tracker; - /** - * The guest capabilities last reported to the host (or UINT32_MAX). - * Protected by session_mutex. -@@ -164,11 +165,11 @@ struct vbg_session { - */ - u32 event_filter; - /** -- * Guest capabilities for this session. -+ * Guest capabilities set through vbg_set_session_capabilities(). - * A capability claimed by any guest session will be reported to the - * host. Protected by vbg_gdev.session_mutex. - */ -- u32 guest_caps; -+ u32 set_guest_caps; - /** VMMDEV_REQUESTOR_* flags */ - u32 requestor; - /** Set on CANCEL_ALL_WAITEVENTS, protected by vbg_devevent_spinlock. */ --- -2.26.2 - -From c5cf459d4d98a7993f5e00d5d2b826c55bbce562 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 19 May 2020 15:30:29 +0200 -Subject: [PATCH 4/8] virt: vbox: Add vbg_set_host_capabilities() helper - function - -Add vbg_set_host_capabilities() helper function, this is a preparation -patch for adding support for the VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl. - -Signed-off-by: Hans de Goede ---- - drivers/virt/vboxguest/vboxguest_core.c | 79 ++++++++++++++----------- - 1 file changed, 46 insertions(+), 33 deletions(-) - -diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c -index aee5eff229f2..15b3cb618c6e 100644 ---- a/drivers/virt/vboxguest/vboxguest_core.c -+++ b/drivers/virt/vboxguest/vboxguest_core.c -@@ -661,6 +661,48 @@ static int vbg_reset_host_capabilities(struct vbg_dev *gdev) - return vbg_status_code_to_errno(rc); - } - -+/** -+ * Set guest capabilities on the host. -+ * Must be called with gdev->session_mutex hold. -+ * Return: 0 or negative errno value. -+ * @gdev: The Guest extension device. -+ * @session: The session. -+ * @session_termination: Set if we're called by the session cleanup code. -+ */ -+static int vbg_set_host_capabilities(struct vbg_dev *gdev, -+ struct vbg_session *session, -+ bool session_termination) -+{ -+ struct vmmdev_mask *req; -+ u32 caps; -+ int rc; -+ -+ WARN_ON(!mutex_is_locked(&gdev->session_mutex)); -+ -+ caps = gdev->set_guest_caps_tracker.mask; -+ -+ if (gdev->guest_caps_host == caps) -+ return 0; -+ -+ /* On termination the requestor is the kernel, as we're cleaning up. */ -+ req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES, -+ session_termination ? VBG_KERNEL_REQUEST : -+ session->requestor); -+ if (!req) { -+ gdev->guest_caps_host = U32_MAX; -+ return -ENOMEM; -+ } -+ -+ req->or_mask = caps; -+ req->not_mask = ~caps; -+ rc = vbg_req_perform(gdev, req); -+ vbg_req_free(req, sizeof(*req)); -+ -+ gdev->guest_caps_host = (rc >= 0) ? caps : U32_MAX; -+ -+ return vbg_status_code_to_errno(rc); -+} -+ - /** - * Sets the guest capabilities for a session. Takes the session spinlock. - * Return: 0 or negative errno value. -@@ -678,23 +720,8 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, - u32 or_mask, u32 not_mask, - bool session_termination) - { -- struct vmmdev_mask *req; - u32 changed, previous; -- int rc, ret = 0; -- -- /* -- * Allocate a request buffer before taking the spinlock, when -- * the session is being terminated the requestor is the kernel, -- * as we're cleaning up. -- */ -- req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES, -- session_termination ? VBG_KERNEL_REQUEST : -- session->requestor); -- if (!req) { -- if (!session_termination) -- return -ENOMEM; -- /* Ignore allocation failure, we must do session cleanup. */ -- } -+ int ret = 0; - - mutex_lock(&gdev->session_mutex); - -@@ -709,23 +736,10 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, - goto out; - - vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, previous); -- or_mask = gdev->set_guest_caps_tracker.mask; -- -- if (gdev->guest_caps_host == or_mask || !req) -- goto out; -- -- gdev->guest_caps_host = or_mask; -- req->or_mask = or_mask; -- req->not_mask = ~or_mask; -- rc = vbg_req_perform(gdev, req); -- if (rc < 0) { -- ret = vbg_status_code_to_errno(rc); -- -- /* Failed, roll back (unless it's session termination time). */ -- gdev->guest_caps_host = U32_MAX; -- if (session_termination) -- goto out; - -+ ret = vbg_set_host_capabilities(gdev, session, session_termination); -+ /* Roll back on failure, unless it's session termination time. */ -+ if (ret < 0 && !session_termination) { - vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, - session->set_guest_caps); - session->set_guest_caps = previous; -@@ -733,7 +747,6 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, - - out: - mutex_unlock(&gdev->session_mutex); -- vbg_req_free(req, sizeof(*req)); - - return ret; - } --- -2.26.2 - -From 2f33e58bcc8c69f938629dc57c8ad631724f02f0 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 19 May 2020 18:04:30 +0200 -Subject: [PATCH 5/8] virt: vbox: Add support for the new - VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl - -Add support for the new VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl, this -is necessary for automatic resizing of the guest resolution to match the -VM-window size to work with the new VMSVGA virtual GPU which is now the -new default in VirtualBox. - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545 -Signed-off-by: Hans de Goede ---- - drivers/virt/vboxguest/vboxguest_core.c | 163 +++++++++++++++++++++++- - drivers/virt/vboxguest/vboxguest_core.h | 14 ++ - include/uapi/linux/vboxguest.h | 24 ++++ - 3 files changed, 200 insertions(+), 1 deletion(-) - -diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c -index 15b3cb618c6e..4f1addaa3f6f 100644 ---- a/drivers/virt/vboxguest/vboxguest_core.c -+++ b/drivers/virt/vboxguest/vboxguest_core.c -@@ -679,7 +679,7 @@ static int vbg_set_host_capabilities(struct vbg_dev *gdev, - - WARN_ON(!mutex_is_locked(&gdev->session_mutex)); - -- caps = gdev->set_guest_caps_tracker.mask; -+ caps = gdev->acquired_guest_caps | gdev->set_guest_caps_tracker.mask; - - if (gdev->guest_caps_host == caps) - return 0; -@@ -703,6 +703,113 @@ static int vbg_set_host_capabilities(struct vbg_dev *gdev, - return vbg_status_code_to_errno(rc); - } - -+/** -+ * Acquire (get exclusive access) guest capabilities for a session. -+ * Takes the session mutex. -+ * Return: 0 or negative errno value. -+ * @gdev: The Guest extension device. -+ * @session: The session. -+ * @flags: Flags (VBGL_IOC_AGC_FLAGS_XXX). -+ * @or_mask: The capabilities to add. -+ * @not_mask: The capabilities to remove. -+ * @session_termination: Set if we're called by the session cleanup code. -+ * This tweaks the error handling so we perform -+ * proper session cleanup even if the host -+ * misbehaves. -+ */ -+static int vbg_acquire_session_capabilities(struct vbg_dev *gdev, -+ struct vbg_session *session, -+ u32 or_mask, u32 not_mask, -+ u32 flags, bool session_termination) -+{ -+ unsigned long irqflags; -+ bool wakeup = false; -+ int ret = 0; -+ -+ mutex_lock(&gdev->session_mutex); -+ -+ if (gdev->set_guest_caps_tracker.mask & or_mask) { -+ vbg_err("%s error: cannot acquire caps which are currently set\n", -+ __func__); -+ ret = -EINVAL; -+ goto out; -+ } -+ -+ /* -+ * Mark any caps in the or_mask as now being in acquire-mode. Note -+ * once caps are in acquire_mode they always stay in this mode. -+ * This impacts event handling, so we take the event-lock. -+ */ -+ spin_lock_irqsave(&gdev->event_spinlock, irqflags); -+ gdev->acquire_mode_guest_caps |= or_mask; -+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); -+ -+ /* If we only have to switch the caps to acquire mode, we're done. */ -+ if (flags & VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE) -+ goto out; -+ -+ not_mask &= ~or_mask; /* or_mask takes priority over not_mask */ -+ not_mask &= session->acquired_guest_caps; -+ or_mask &= ~session->acquired_guest_caps; -+ -+ if (or_mask == 0 && not_mask == 0) -+ goto out; -+ -+ if (gdev->acquired_guest_caps & or_mask) { -+ ret = -EBUSY; -+ goto out; -+ } -+ -+ gdev->acquired_guest_caps |= or_mask; -+ gdev->acquired_guest_caps &= ~not_mask; -+ /* session->acquired_guest_caps impacts event handling, take the lock */ -+ spin_lock_irqsave(&gdev->event_spinlock, irqflags); -+ session->acquired_guest_caps |= or_mask; -+ session->acquired_guest_caps &= ~not_mask; -+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); -+ -+ ret = vbg_set_host_capabilities(gdev, session, session_termination); -+ /* Roll back on failure, unless it's session termination time. */ -+ if (ret < 0 && !session_termination) { -+ gdev->acquired_guest_caps &= ~or_mask; -+ gdev->acquired_guest_caps |= not_mask; -+ spin_lock_irqsave(&gdev->event_spinlock, irqflags); -+ session->acquired_guest_caps &= ~or_mask; -+ session->acquired_guest_caps |= not_mask; -+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); -+ } -+ -+ /* -+ * If we added a capability, check if that means some other thread in -+ * our session should be unblocked because there are events pending -+ * (the result of vbg_get_allowed_event_mask_for_session() may change). -+ * -+ * HACK ALERT! When the seamless support capability is added we generate -+ * a seamless change event so that the ring-3 client can sync with -+ * the seamless state. -+ */ -+ if (ret == 0 && or_mask != 0) { -+ spin_lock_irqsave(&gdev->event_spinlock, irqflags); -+ -+ if (or_mask & VMMDEV_GUEST_SUPPORTS_SEAMLESS) -+ gdev->pending_events |= -+ VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST; -+ -+ if (gdev->pending_events) -+ wakeup = true; -+ -+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); -+ -+ if (wakeup) -+ wake_up(&gdev->event_wq); -+ } -+ -+out: -+ mutex_unlock(&gdev->session_mutex); -+ -+ return ret; -+} -+ - /** - * Sets the guest capabilities for a session. Takes the session spinlock. - * Return: 0 or negative errno value. -@@ -725,6 +832,13 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, - - mutex_lock(&gdev->session_mutex); - -+ if (gdev->acquire_mode_guest_caps & or_mask) { -+ vbg_err("%s error: cannot set caps which are in acquire_mode\n", -+ __func__); -+ ret = -EBUSY; -+ goto out; -+ } -+ - /* Apply the changes to the session mask. */ - previous = session->set_guest_caps; - session->set_guest_caps |= or_mask; -@@ -962,6 +1076,7 @@ void vbg_core_close_session(struct vbg_session *session) - struct vbg_dev *gdev = session->gdev; - int i, rc; - -+ vbg_acquire_session_capabilities(gdev, session, 0, U32_MAX, 0, true); - vbg_set_session_capabilities(gdev, session, 0, U32_MAX, true); - vbg_set_session_event_filter(gdev, session, 0, U32_MAX, true); - -@@ -1019,6 +1134,25 @@ static int vbg_ioctl_driver_version_info( - return 0; - } - -+/* Must be called with the event_lock held */ -+static u32 vbg_get_allowed_event_mask_for_session(struct vbg_dev *gdev, -+ struct vbg_session *session) -+{ -+ u32 acquire_mode_caps = gdev->acquire_mode_guest_caps; -+ u32 session_acquired_caps = session->acquired_guest_caps; -+ u32 allowed_events = VMMDEV_EVENT_VALID_EVENT_MASK; -+ -+ if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS) && -+ !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS)) -+ allowed_events &= ~VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST; -+ -+ if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS) && -+ !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS)) -+ allowed_events &= ~VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST; -+ -+ return allowed_events; -+} -+ - static bool vbg_wait_event_cond(struct vbg_dev *gdev, - struct vbg_session *session, - u32 event_mask) -@@ -1030,6 +1164,7 @@ static bool vbg_wait_event_cond(struct vbg_dev *gdev, - spin_lock_irqsave(&gdev->event_spinlock, flags); - - events = gdev->pending_events & event_mask; -+ events &= vbg_get_allowed_event_mask_for_session(gdev, session); - wakeup = events || session->cancel_waiters; - - spin_unlock_irqrestore(&gdev->event_spinlock, flags); -@@ -1044,6 +1179,7 @@ static u32 vbg_consume_events_locked(struct vbg_dev *gdev, - { - u32 events = gdev->pending_events & event_mask; - -+ events &= vbg_get_allowed_event_mask_for_session(gdev, session); - gdev->pending_events &= ~events; - return events; - } -@@ -1445,6 +1581,29 @@ static int vbg_ioctl_change_filter_mask(struct vbg_dev *gdev, - false); - } - -+static int vbg_ioctl_acquire_guest_capabilities(struct vbg_dev *gdev, -+ struct vbg_session *session, -+ struct vbg_ioctl_acquire_guest_caps *caps) -+{ -+ u32 flags, or_mask, not_mask; -+ -+ if (vbg_ioctl_chk(&caps->hdr, sizeof(caps->u.in), 0)) -+ return -EINVAL; -+ -+ flags = caps->u.in.flags; -+ or_mask = caps->u.in.or_mask; -+ not_mask = caps->u.in.not_mask; -+ -+ if (flags & ~VBGL_IOC_AGC_FLAGS_VALID_MASK) -+ return -EINVAL; -+ -+ if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK) -+ return -EINVAL; -+ -+ return vbg_acquire_session_capabilities(gdev, session, or_mask, -+ not_mask, flags, false); -+} -+ - static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev, - struct vbg_session *session, struct vbg_ioctl_set_guest_caps *caps) - { -@@ -1554,6 +1713,8 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) - return vbg_ioctl_interrupt_all_wait_events(gdev, session, data); - case VBG_IOCTL_CHANGE_FILTER_MASK: - return vbg_ioctl_change_filter_mask(gdev, session, data); -+ case VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: -+ return vbg_ioctl_acquire_guest_capabilities(gdev, session, data); - case VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: - return vbg_ioctl_change_guest_capabilities(gdev, session, data); - case VBG_IOCTL_CHECK_BALLOON: -diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h -index dc745a033164..ab4bf64e2cec 100644 ---- a/drivers/virt/vboxguest/vboxguest_core.h -+++ b/drivers/virt/vboxguest/vboxguest_core.h -@@ -117,6 +117,15 @@ struct vbg_dev { - */ - u32 event_filter_host; - -+ /** -+ * Guest capabilities which have been switched to acquire_mode. -+ */ -+ u32 acquire_mode_guest_caps; -+ /** -+ * Guest capabilities acquired by vbg_acquire_session_capabilities(). -+ * Only one session can acquire a capability at a time. -+ */ -+ u32 acquired_guest_caps; - /** - * Usage counters for guest capabilities requested through - * vbg_set_session_capabilities(). Indexed by capability bit -@@ -164,6 +173,11 @@ struct vbg_session { - * host filter. Protected by vbg_gdev.session_mutex. - */ - u32 event_filter; -+ /** -+ * Guest capabilities acquired by vbg_acquire_session_capabilities(). -+ * Only one session can acquire a capability at a time. -+ */ -+ u32 acquired_guest_caps; - /** - * Guest capabilities set through vbg_set_session_capabilities(). - * A capability claimed by any guest session will be reported to the -diff --git a/include/uapi/linux/vboxguest.h b/include/uapi/linux/vboxguest.h -index f79d7abe27db..15125f6ec60d 100644 ---- a/include/uapi/linux/vboxguest.h -+++ b/include/uapi/linux/vboxguest.h -@@ -257,6 +257,30 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_change_filter, 24 + 8); - _IOWR('V', 12, struct vbg_ioctl_change_filter) - - -+/** VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES data structure. */ -+struct vbg_ioctl_acquire_guest_caps { -+ /** The header. */ -+ struct vbg_ioctl_hdr hdr; -+ union { -+ struct { -+ /** Flags (VBGL_IOC_AGC_FLAGS_XXX). */ -+ __u32 flags; -+ /** Capabilities to set (VMMDEV_GUEST_SUPPORTS_XXX). */ -+ __u32 or_mask; -+ /** Capabilities to drop (VMMDEV_GUEST_SUPPORTS_XXX). */ -+ __u32 not_mask; -+ } in; -+ } u; -+}; -+VMMDEV_ASSERT_SIZE(vbg_ioctl_acquire_guest_caps, 24 + 12); -+ -+#define VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE 0x00000001 -+#define VBGL_IOC_AGC_FLAGS_VALID_MASK 0x00000001 -+ -+#define VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES \ -+ _IOWR('V', 13, struct vbg_ioctl_acquire_guest_caps) -+ -+ - /** VBG_IOCTL_CHANGE_GUEST_CAPABILITIES data structure. */ - struct vbg_ioctl_set_guest_caps { - /** The header. */ --- -2.26.2 - -From d34852680360e52c39ea901fbc3778d28f229852 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 19 May 2020 11:05:40 +0200 -Subject: [PATCH 6/8] virt: vbox: Add a few new vmmdev request types to the - userspace whitelist - -Upstream VirtualBox has defined and is using a few new request types for -vmmdev requests passed through /dev/vboxguest to the hypervisor. - -Add the defines for these to vbox_vmmdev_types.h and add add them to the -whitelists of vmmdev requests which userspace is allowed to make. - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545 -Signed-off-by: Hans de Goede ---- - drivers/virt/vboxguest/vboxguest_core.c | 2 ++ - include/uapi/linux/vbox_vmmdev_types.h | 3 +++ - 2 files changed, 5 insertions(+) - -diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c -index 4f1addaa3f6f..ffd76b949276 100644 ---- a/drivers/virt/vboxguest/vboxguest_core.c -+++ b/drivers/virt/vboxguest/vboxguest_core.c -@@ -1299,7 +1299,9 @@ static int vbg_req_allowed(struct vbg_dev *gdev, struct vbg_session *session, - case VMMDEVREQ_VIDEO_ACCEL_ENABLE: - case VMMDEVREQ_VIDEO_ACCEL_FLUSH: - case VMMDEVREQ_VIDEO_SET_VISIBLE_REGION: -+ case VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS: - case VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX: -+ case VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI: - case VMMDEVREQ_GET_SEAMLESS_CHANGE_REQ: - case VMMDEVREQ_GET_VRDPCHANGE_REQ: - case VMMDEVREQ_LOG_STRING: -diff --git a/include/uapi/linux/vbox_vmmdev_types.h b/include/uapi/linux/vbox_vmmdev_types.h -index c27289fd619a..f8a8d6b3c521 100644 ---- a/include/uapi/linux/vbox_vmmdev_types.h -+++ b/include/uapi/linux/vbox_vmmdev_types.h -@@ -63,6 +63,7 @@ enum vmmdev_request_type { - VMMDEVREQ_SET_GUEST_CAPABILITIES = 56, - VMMDEVREQ_VIDEMODE_SUPPORTED2 = 57, /* since version 3.2.0 */ - VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX = 80, /* since version 4.2.4 */ -+ VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI = 81, - VMMDEVREQ_HGCM_CONNECT = 60, - VMMDEVREQ_HGCM_DISCONNECT = 61, - VMMDEVREQ_HGCM_CALL32 = 62, -@@ -92,6 +93,8 @@ enum vmmdev_request_type { - VMMDEVREQ_WRITE_COREDUMP = 218, - VMMDEVREQ_GUEST_HEARTBEAT = 219, - VMMDEVREQ_HEARTBEAT_CONFIGURE = 220, -+ VMMDEVREQ_NT_BUG_CHECK = 221, -+ VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS = 222, - /* Ensure the enum is a 32 bit data-type */ - VMMDEVREQ_SIZEHACK = 0x7fffffff - }; --- -2.26.2 - -From 92887e49b5f83dd802f3486143a9b619c7b56947 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 19 May 2020 11:24:43 +0200 -Subject: [PATCH 7/8] virt: vbox: Log unknown ioctl requests as error - -Every now and then upstream adds new ioctls without notifying us, -log unknown ioctl requests as an error to catch these. - -Signed-off-by: Hans de Goede ---- - drivers/virt/vboxguest/vboxguest_core.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c -index ffd76b949276..e0e343d0ba93 100644 ---- a/drivers/virt/vboxguest/vboxguest_core.c -+++ b/drivers/virt/vboxguest/vboxguest_core.c -@@ -1739,7 +1739,7 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) - return vbg_ioctl_log(data); - } - -- vbg_debug("VGDrvCommonIoCtl: Unknown req %#08x\n", req); -+ vbg_err("Userspace made an unknown ioctl req %#08x\n", req); - return -ENOTTY; - } - --- -2.26.2 - -From 10a3a8c4a13e608d24db0a4ed4a284470025346d Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 19 May 2020 18:08:07 +0200 -Subject: [PATCH 8/8] virt: vbox: Fix some comments which talk about the - "session spinlock" - -The session lock is a mutex, not a spinlock, fix the comments to match. - -Signed-off-by: Hans de Goede ---- - drivers/virt/vboxguest/vboxguest_core.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c -index e0e343d0ba93..d99c19551d04 100644 ---- a/drivers/virt/vboxguest/vboxguest_core.c -+++ b/drivers/virt/vboxguest/vboxguest_core.c -@@ -559,7 +559,7 @@ static int vbg_reset_host_event_filter(struct vbg_dev *gdev, - * Changes the event filter mask for the given session. - * - * This is called in response to VBG_IOCTL_CHANGE_FILTER_MASK as well as to -- * do session cleanup. Takes the session spinlock. -+ * do session cleanup. Takes the session mutex. - * - * Return: 0 or negative errno value. - * @gdev: The Guest extension device. -@@ -811,7 +811,7 @@ static int vbg_acquire_session_capabilities(struct vbg_dev *gdev, - } - - /** -- * Sets the guest capabilities for a session. Takes the session spinlock. -+ * Sets the guest capabilities for a session. Takes the session mutex. - * Return: 0 or negative errno value. - * @gdev: The Guest extension device. - * @session: The session. --- -2.26.2 - diff --git a/vfio-pci-block-user-access-to-disabled-device-MMIO.patch b/vfio-pci-block-user-access-to-disabled-device-MMIO.patch deleted file mode 100644 index f289b448f..000000000 --- a/vfio-pci-block-user-access-to-disabled-device-MMIO.patch +++ /dev/null @@ -1,857 +0,0 @@ -From MAILER-DAEMON Wed May 20 15:47:40 2020 -Subject: [PATCH v2 1/3] vfio/type1: Support faulting PFNMAP vmas -From: Alex Williamson -To: kvm@vger.kernel.org -Cc: linux-kernel@vger.kernel.org, cohuck@redhat.com, jgg@ziepe.ca -Date: Tue, 05 May 2020 15:54:44 -0600 -Message-ID: <158871568480.15589.17339878308143043906.stgit@gimli.home> -In-Reply-To: <158871401328.15589.17598154478222071285.stgit@gimli.home> -References: <158871401328.15589.17598154478222071285.stgit@gimli.home> -Sender: kvm-owner@vger.kernel.org -List-ID: -X-Mailing-List: kvm@vger.kernel.org -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 7bit - -With conversion to follow_pfn(), DMA mapping a PFNMAP range depends on -the range being faulted into the vma. Add support to manually provide -that, in the same way as done on KVM with hva_to_pfn_remapped(). - -Signed-off-by: Alex Williamson -Reviewed-by: Peter Xu ---- - drivers/vfio/vfio_iommu_type1.c | 36 +++++++++++++++++++++++++++++++++--- - 1 file changed, 33 insertions(+), 3 deletions(-) - -diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c -index cc1d64765ce7..4a4cb7cd86b2 100644 ---- a/drivers/vfio/vfio_iommu_type1.c -+++ b/drivers/vfio/vfio_iommu_type1.c -@@ -317,6 +317,32 @@ static int put_pfn(unsigned long pfn, int prot) - return 0; - } - -+static int follow_fault_pfn(struct vm_area_struct *vma, struct mm_struct *mm, -+ unsigned long vaddr, unsigned long *pfn, -+ bool write_fault) -+{ -+ int ret; -+ -+ ret = follow_pfn(vma, vaddr, pfn); -+ if (ret) { -+ bool unlocked = false; -+ -+ ret = fixup_user_fault(NULL, mm, vaddr, -+ FAULT_FLAG_REMOTE | -+ (write_fault ? FAULT_FLAG_WRITE : 0), -+ &unlocked); -+ if (unlocked) -+ return -EAGAIN; -+ -+ if (ret) -+ return ret; -+ -+ ret = follow_pfn(vma, vaddr, pfn); -+ } -+ -+ return ret; -+} -+ - static int vaddr_get_pfn(struct mm_struct *mm, unsigned long vaddr, - int prot, unsigned long *pfn) - { -@@ -339,12 +365,16 @@ static int vaddr_get_pfn(struct mm_struct *mm, unsigned long vaddr, - - vaddr = untagged_addr(vaddr); - -+retry: - vma = find_vma_intersection(mm, vaddr, vaddr + 1); - - if (vma && vma->vm_flags & VM_PFNMAP) { -- if (!follow_pfn(vma, vaddr, pfn) && -- is_invalid_reserved_pfn(*pfn)) -- ret = 0; -+ ret = follow_fault_pfn(vma, mm, vaddr, pfn, prot & IOMMU_WRITE); -+ if (ret == -EAGAIN) -+ goto retry; -+ -+ if (!ret && !is_invalid_reserved_pfn(*pfn)) -+ ret = -EFAULT; - } - done: - up_read(&mm->mmap_sem); - - -From MAILER-DAEMON Wed May 20 15:47:40 2020 -Subject: [PATCH v2 2/3] vfio-pci: Fault mmaps to enable vma tracking -From: Alex Williamson -To: kvm@vger.kernel.org -Cc: linux-kernel@vger.kernel.org, cohuck@redhat.com, jgg@ziepe.ca -Date: Tue, 05 May 2020 15:54:53 -0600 -Message-ID: <158871569380.15589.16950418949340311053.stgit@gimli.home> -In-Reply-To: <158871401328.15589.17598154478222071285.stgit@gimli.home> -References: <158871401328.15589.17598154478222071285.stgit@gimli.home> -Sender: kvm-owner@vger.kernel.org -List-ID: -X-Mailing-List: kvm@vger.kernel.org -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 7bit - -Rather than calling remap_pfn_range() when a region is mmap'd, setup -a vm_ops handler to support dynamic faulting of the range on access. -This allows us to manage a list of vmas actively mapping the area that -we can later use to invalidate those mappings. The open callback -invalidates the vma range so that all tracking is inserted in the -fault handler and removed in the close handler. - -Signed-off-by: Alex Williamson -Reviewed-by: Peter Xu ---- - drivers/vfio/pci/vfio_pci.c | 76 ++++++++++++++++++++++++++++++++++- - drivers/vfio/pci/vfio_pci_private.h | 7 +++ - 2 files changed, 81 insertions(+), 2 deletions(-) - -diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c -index 6c6b37b5c04e..66a545a01f8f 100644 ---- a/drivers/vfio/pci/vfio_pci.c -+++ b/drivers/vfio/pci/vfio_pci.c -@@ -1299,6 +1299,70 @@ static ssize_t vfio_pci_write(void *device_data, const char __user *buf, - return vfio_pci_rw(device_data, (char __user *)buf, count, ppos, true); - } - -+static int vfio_pci_add_vma(struct vfio_pci_device *vdev, -+ struct vm_area_struct *vma) -+{ -+ struct vfio_pci_mmap_vma *mmap_vma; -+ -+ mmap_vma = kmalloc(sizeof(*mmap_vma), GFP_KERNEL); -+ if (!mmap_vma) -+ return -ENOMEM; -+ -+ mmap_vma->vma = vma; -+ -+ mutex_lock(&vdev->vma_lock); -+ list_add(&mmap_vma->vma_next, &vdev->vma_list); -+ mutex_unlock(&vdev->vma_lock); -+ -+ return 0; -+} -+ -+/* -+ * Zap mmaps on open so that we can fault them in on access and therefore -+ * our vma_list only tracks mappings accessed since last zap. -+ */ -+static void vfio_pci_mmap_open(struct vm_area_struct *vma) -+{ -+ zap_vma_ptes(vma, vma->vm_start, vma->vm_end - vma->vm_start); -+} -+ -+static void vfio_pci_mmap_close(struct vm_area_struct *vma) -+{ -+ struct vfio_pci_device *vdev = vma->vm_private_data; -+ struct vfio_pci_mmap_vma *mmap_vma; -+ -+ mutex_lock(&vdev->vma_lock); -+ list_for_each_entry(mmap_vma, &vdev->vma_list, vma_next) { -+ if (mmap_vma->vma == vma) { -+ list_del(&mmap_vma->vma_next); -+ kfree(mmap_vma); -+ break; -+ } -+ } -+ mutex_unlock(&vdev->vma_lock); -+} -+ -+static vm_fault_t vfio_pci_mmap_fault(struct vm_fault *vmf) -+{ -+ struct vm_area_struct *vma = vmf->vma; -+ struct vfio_pci_device *vdev = vma->vm_private_data; -+ -+ if (vfio_pci_add_vma(vdev, vma)) -+ return VM_FAULT_OOM; -+ -+ if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, -+ vma->vm_end - vma->vm_start, vma->vm_page_prot)) -+ return VM_FAULT_SIGBUS; -+ -+ return VM_FAULT_NOPAGE; -+} -+ -+static const struct vm_operations_struct vfio_pci_mmap_ops = { -+ .open = vfio_pci_mmap_open, -+ .close = vfio_pci_mmap_close, -+ .fault = vfio_pci_mmap_fault, -+}; -+ - static int vfio_pci_mmap(void *device_data, struct vm_area_struct *vma) - { - struct vfio_pci_device *vdev = device_data; -@@ -1357,8 +1421,14 @@ static int vfio_pci_mmap(void *device_data, struct vm_area_struct *vma) - vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); - vma->vm_pgoff = (pci_resource_start(pdev, index) >> PAGE_SHIFT) + pgoff; - -- return remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, -- req_len, vma->vm_page_prot); -+ /* -+ * See remap_pfn_range(), called from vfio_pci_fault() but we can't -+ * change vm_flags within the fault handler. Set them now. -+ */ -+ vma->vm_flags |= VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP; -+ vma->vm_ops = &vfio_pci_mmap_ops; -+ -+ return 0; - } - - static void vfio_pci_request(void *device_data, unsigned int count) -@@ -1608,6 +1678,8 @@ static int vfio_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) - spin_lock_init(&vdev->irqlock); - mutex_init(&vdev->ioeventfds_lock); - INIT_LIST_HEAD(&vdev->ioeventfds_list); -+ mutex_init(&vdev->vma_lock); -+ INIT_LIST_HEAD(&vdev->vma_list); - - ret = vfio_add_group_dev(&pdev->dev, &vfio_pci_ops, vdev); - if (ret) { -diff --git a/drivers/vfio/pci/vfio_pci_private.h b/drivers/vfio/pci/vfio_pci_private.h -index 36ec69081ecd..9b25f9f6ce1d 100644 ---- a/drivers/vfio/pci/vfio_pci_private.h -+++ b/drivers/vfio/pci/vfio_pci_private.h -@@ -92,6 +92,11 @@ struct vfio_pci_vf_token { - struct mutex lock; - }; - -+struct vfio_pci_mmap_vma { -+ struct vm_area_struct *vma; -+ struct list_head vma_next; -+}; -+ - struct vfio_pci_device { - struct pci_dev *pdev; - void __iomem *barmap[PCI_STD_NUM_BARS]; -@@ -132,6 +137,8 @@ struct vfio_pci_device { - struct list_head dummy_resources_list; - struct mutex ioeventfds_lock; - struct list_head ioeventfds_list; -+ struct mutex vma_lock; -+ struct list_head vma_list; - }; - - #define is_intx(vdev) (vdev->irq_type == VFIO_PCI_INTX_IRQ_INDEX) - - -From MAILER-DAEMON Wed May 20 15:47:40 2020 -Subject: [PATCH v2 3/3] vfio-pci: Invalidate mmaps and block MMIO access on disabled memory -From: Alex Williamson -To: kvm@vger.kernel.org -Cc: linux-kernel@vger.kernel.org, cohuck@redhat.com, jgg@ziepe.ca -Date: Tue, 05 May 2020 15:55:02 -0600 -Message-ID: <158871570274.15589.10563806532874116326.stgit@gimli.home> -In-Reply-To: <158871401328.15589.17598154478222071285.stgit@gimli.home> -References: <158871401328.15589.17598154478222071285.stgit@gimli.home> -Sender: kvm-owner@vger.kernel.org -List-ID: -X-Mailing-List: kvm@vger.kernel.org -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 7bit - -Accessing the disabled memory space of a PCI device would typically -result in a master abort response on conventional PCI, or an -unsupported request on PCI express. The user would generally see -these as a -1 response for the read return data and the write would be -silently discarded, possibly with an uncorrected, non-fatal AER error -triggered on the host. Some systems however take it upon themselves -to bring down the entire system when they see something that might -indicate a loss of data, such as this discarded write to a disabled -memory space. - -To avoid this, we want to try to block the user from accessing memory -spaces while they're disabled. We start with a semaphore around the -memory enable bit, where writers modify the memory enable state and -must be serialized, while readers make use of the memory region and -can access in parallel. Writers include both direct manipulation via -the command register, as well as any reset path where the internal -mechanics of the reset may both explicitly and implicitly disable -memory access, and manipulation of the MSI-X configuration, where the -MSI-X vector table resides in MMIO space of the device. Readers -include the read and write file ops to access the vfio device fd -offsets as well as memory mapped access. In the latter case, we make -use of our new vma list support to zap, or invalidate, those memory -mappings in order to force them to be faulted back in on access. - -Our semaphore usage will stall user access to MMIO spaces across -internal operations like reset, but the user might experience new -behavior when trying to access the MMIO space while disabled via the -PCI command register. Access via read or write while disabled will -return -EIO and access via memory maps will result in a SIGBUS. This -is expected to be compatible with known use cases and potentially -provides better error handling capabilities than present in the -hardware, while avoiding the more readily accessible and severe -platform error responses that might otherwise occur. - -Signed-off-by: Alex Williamson ---- - drivers/vfio/pci/vfio_pci.c | 263 +++++++++++++++++++++++++++++++---- - drivers/vfio/pci/vfio_pci_config.c | 36 ++++- - drivers/vfio/pci/vfio_pci_intrs.c | 18 ++ - drivers/vfio/pci/vfio_pci_private.h | 5 + - drivers/vfio/pci/vfio_pci_rdwr.c | 12 ++ - 5 files changed, 300 insertions(+), 34 deletions(-) - -diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c -index 66a545a01f8f..49ae9faa6099 100644 ---- a/drivers/vfio/pci/vfio_pci.c -+++ b/drivers/vfio/pci/vfio_pci.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - #include "vfio_pci_private.h" - -@@ -184,6 +185,7 @@ static void vfio_pci_probe_mmaps(struct vfio_pci_device *vdev) - - static void vfio_pci_try_bus_reset(struct vfio_pci_device *vdev); - static void vfio_pci_disable(struct vfio_pci_device *vdev); -+static int vfio_pci_try_zap_and_vma_lock_cb(struct pci_dev *pdev, void *data); - - /* - * INTx masking requires the ability to disable INTx signaling via PCI_COMMAND -@@ -736,6 +738,12 @@ int vfio_pci_register_dev_region(struct vfio_pci_device *vdev, - return 0; - } - -+struct vfio_devices { -+ struct vfio_device **devices; -+ int cur_index; -+ int max_index; -+}; -+ - static long vfio_pci_ioctl(void *device_data, - unsigned int cmd, unsigned long arg) - { -@@ -984,8 +992,16 @@ static long vfio_pci_ioctl(void *device_data, - return ret; - - } else if (cmd == VFIO_DEVICE_RESET) { -- return vdev->reset_works ? -- pci_try_reset_function(vdev->pdev) : -EINVAL; -+ int ret; -+ -+ if (!vdev->reset_works) -+ return -EINVAL; -+ -+ vfio_pci_zap_and_down_write_memory_lock(vdev); -+ ret = pci_try_reset_function(vdev->pdev); -+ up_write(&vdev->memory_lock); -+ -+ return ret; - - } else if (cmd == VFIO_DEVICE_GET_PCI_HOT_RESET_INFO) { - struct vfio_pci_hot_reset_info hdr; -@@ -1065,8 +1081,9 @@ static long vfio_pci_ioctl(void *device_data, - int32_t *group_fds; - struct vfio_pci_group_entry *groups; - struct vfio_pci_group_info info; -+ struct vfio_devices devs = { .cur_index = 0 }; - bool slot = false; -- int i, count = 0, ret = 0; -+ int i, group_idx, mem_idx = 0, count = 0, ret = 0; - - minsz = offsetofend(struct vfio_pci_hot_reset, count); - -@@ -1118,9 +1135,9 @@ static long vfio_pci_ioctl(void *device_data, - * user interface and store the group and iommu ID. This - * ensures the group is held across the reset. - */ -- for (i = 0; i < hdr.count; i++) { -+ for (group_idx = 0; group_idx < hdr.count; group_idx++) { - struct vfio_group *group; -- struct fd f = fdget(group_fds[i]); -+ struct fd f = fdget(group_fds[group_idx]); - if (!f.file) { - ret = -EBADF; - break; -@@ -1133,8 +1150,9 @@ static long vfio_pci_ioctl(void *device_data, - break; - } - -- groups[i].group = group; -- groups[i].id = vfio_external_user_iommu_id(group); -+ groups[group_idx].group = group; -+ groups[group_idx].id = -+ vfio_external_user_iommu_id(group); - } - - kfree(group_fds); -@@ -1153,13 +1171,63 @@ static long vfio_pci_ioctl(void *device_data, - ret = vfio_pci_for_each_slot_or_bus(vdev->pdev, - vfio_pci_validate_devs, - &info, slot); -- if (!ret) -- /* User has access, do the reset */ -- ret = pci_reset_bus(vdev->pdev); -+ if (ret) -+ goto hot_reset_release; -+ -+ devs.max_index = count; -+ devs.devices = kcalloc(count, sizeof(struct vfio_device *), -+ GFP_KERNEL); -+ if (!devs.devices) { -+ ret = -ENOMEM; -+ goto hot_reset_release; -+ } -+ -+ /* -+ * We need to get memory_lock for each device, but devices -+ * can share mmap_sem, therefore we need to zap and hold -+ * the vma_lock for each device, and only then get each -+ * memory_lock. -+ */ -+ ret = vfio_pci_for_each_slot_or_bus(vdev->pdev, -+ vfio_pci_try_zap_and_vma_lock_cb, -+ &devs, slot); -+ if (ret) -+ goto hot_reset_release; -+ -+ for (; mem_idx < devs.cur_index; mem_idx++) { -+ struct vfio_pci_device *tmp; -+ -+ tmp = vfio_device_data(devs.devices[mem_idx]); -+ -+ ret = down_write_trylock(&tmp->memory_lock); -+ if (!ret) { -+ ret = -EBUSY; -+ goto hot_reset_release; -+ } -+ mutex_unlock(&tmp->vma_lock); -+ } -+ -+ /* User has access, do the reset */ -+ ret = pci_reset_bus(vdev->pdev); - - hot_reset_release: -- for (i--; i >= 0; i--) -- vfio_group_put_external_user(groups[i].group); -+ for (i = 0; i < devs.cur_index; i++) { -+ struct vfio_device *device; -+ struct vfio_pci_device *tmp; -+ -+ device = devs.devices[i]; -+ tmp = vfio_device_data(device); -+ -+ if (i < mem_idx) -+ up_write(&tmp->memory_lock); -+ else -+ mutex_unlock(&tmp->vma_lock); -+ vfio_device_put(device); -+ } -+ kfree(devs.devices); -+ -+ for (group_idx--; group_idx >= 0; group_idx--) -+ vfio_group_put_external_user(groups[group_idx].group); - - kfree(groups); - return ret; -@@ -1299,8 +1367,107 @@ static ssize_t vfio_pci_write(void *device_data, const char __user *buf, - return vfio_pci_rw(device_data, (char __user *)buf, count, ppos, true); - } - --static int vfio_pci_add_vma(struct vfio_pci_device *vdev, -- struct vm_area_struct *vma) -+/* Return 1 on zap and vma_lock acquired, 0 on contention (only with @try) */ -+static int vfio_pci_zap_and_vma_lock(struct vfio_pci_device *vdev, bool try) -+{ -+ struct vfio_pci_mmap_vma *mmap_vma, *tmp; -+ -+ /* -+ * Lock ordering: -+ * vma_lock is nested under mmap_sem for vm_ops callback paths. -+ * The memory_lock semaphore is used by both code paths calling -+ * into this function to zap vmas and the vm_ops.fault callback -+ * to protect the memory enable state of the device. -+ * -+ * When zapping vmas we need to maintain the mmap_sem => vma_lock -+ * ordering, which requires using vma_lock to walk vma_list to -+ * acquire an mm, then dropping vma_lock to get the mmap_sem and -+ * reacquiring vma_lock. This logic is derived from similar -+ * requirements in uverbs_user_mmap_disassociate(). -+ * -+ * mmap_sem must always be the top-level lock when it is taken. -+ * Therefore we can only hold the memory_lock write lock when -+ * vma_list is empty, as we'd need to take mmap_sem to clear -+ * entries. vma_list can only be guaranteed empty when holding -+ * vma_lock, thus memory_lock is nested under vma_lock. -+ * -+ * This enables the vm_ops.fault callback to acquire vma_lock, -+ * followed by memory_lock read lock, while already holding -+ * mmap_sem without risk of deadlock. -+ */ -+ while (1) { -+ struct mm_struct *mm = NULL; -+ -+ if (try) { -+ if (!mutex_trylock(&vdev->vma_lock)) -+ return 0; -+ } else { -+ mutex_lock(&vdev->vma_lock); -+ } -+ while (!list_empty(&vdev->vma_list)) { -+ mmap_vma = list_first_entry(&vdev->vma_list, -+ struct vfio_pci_mmap_vma, -+ vma_next); -+ mm = mmap_vma->vma->vm_mm; -+ if (mmget_not_zero(mm)) -+ break; -+ -+ list_del(&mmap_vma->vma_next); -+ kfree(mmap_vma); -+ mm = NULL; -+ } -+ if (!mm) -+ return 1; -+ mutex_unlock(&vdev->vma_lock); -+ -+ if (try) { -+ if (!down_read_trylock(&mm->mmap_sem)) { -+ mmput(mm); -+ return 0; -+ } -+ } else { -+ down_read(&mm->mmap_sem); -+ } -+ if (mmget_still_valid(mm)) { -+ if (try) { -+ if (!mutex_trylock(&vdev->vma_lock)) { -+ up_read(&mm->mmap_sem); -+ mmput(mm); -+ return 0; -+ } -+ } else { -+ mutex_lock(&vdev->vma_lock); -+ } -+ list_for_each_entry_safe(mmap_vma, tmp, -+ &vdev->vma_list, vma_next) { -+ struct vm_area_struct *vma = mmap_vma->vma; -+ -+ if (vma->vm_mm != mm) -+ continue; -+ -+ list_del(&mmap_vma->vma_next); -+ kfree(mmap_vma); -+ -+ zap_vma_ptes(vma, vma->vm_start, -+ vma->vm_end - vma->vm_start); -+ } -+ mutex_unlock(&vdev->vma_lock); -+ } -+ up_read(&mm->mmap_sem); -+ mmput(mm); -+ } -+} -+ -+void vfio_pci_zap_and_down_write_memory_lock(struct vfio_pci_device *vdev) -+{ -+ vfio_pci_zap_and_vma_lock(vdev, false); -+ down_write(&vdev->memory_lock); -+ mutex_unlock(&vdev->vma_lock); -+} -+ -+/* Caller holds vma_lock */ -+static int __vfio_pci_add_vma(struct vfio_pci_device *vdev, -+ struct vm_area_struct *vma) - { - struct vfio_pci_mmap_vma *mmap_vma; - -@@ -1309,10 +1476,7 @@ static int vfio_pci_add_vma(struct vfio_pci_device *vdev, - return -ENOMEM; - - mmap_vma->vma = vma; -- -- mutex_lock(&vdev->vma_lock); - list_add(&mmap_vma->vma_next, &vdev->vma_list); -- mutex_unlock(&vdev->vma_lock); - - return 0; - } -@@ -1346,15 +1510,32 @@ static vm_fault_t vfio_pci_mmap_fault(struct vm_fault *vmf) - { - struct vm_area_struct *vma = vmf->vma; - struct vfio_pci_device *vdev = vma->vm_private_data; -+ vm_fault_t ret = VM_FAULT_NOPAGE; - -- if (vfio_pci_add_vma(vdev, vma)) -- return VM_FAULT_OOM; -+ mutex_lock(&vdev->vma_lock); -+ down_read(&vdev->memory_lock); -+ -+ if (!__vfio_pci_memory_enabled(vdev)) { -+ ret = VM_FAULT_SIGBUS; -+ mutex_unlock(&vdev->vma_lock); -+ goto up_out; -+ } -+ -+ if (__vfio_pci_add_vma(vdev, vma)) { -+ ret = VM_FAULT_OOM; -+ mutex_unlock(&vdev->vma_lock); -+ goto up_out; -+ } -+ -+ mutex_unlock(&vdev->vma_lock); - - if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, - vma->vm_end - vma->vm_start, vma->vm_page_prot)) -- return VM_FAULT_SIGBUS; -+ ret = VM_FAULT_SIGBUS; - -- return VM_FAULT_NOPAGE; -+up_out: -+ up_read(&vdev->memory_lock); -+ return ret; - } - - static const struct vm_operations_struct vfio_pci_mmap_ops = { -@@ -1680,6 +1861,7 @@ static int vfio_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) - INIT_LIST_HEAD(&vdev->ioeventfds_list); - mutex_init(&vdev->vma_lock); - INIT_LIST_HEAD(&vdev->vma_list); -+ init_rwsem(&vdev->memory_lock); - - ret = vfio_add_group_dev(&pdev->dev, &vfio_pci_ops, vdev); - if (ret) { -@@ -1933,12 +2115,6 @@ static void vfio_pci_reflck_put(struct vfio_pci_reflck *reflck) - kref_put_mutex(&reflck->kref, vfio_pci_reflck_release, &reflck_lock); - } - --struct vfio_devices { -- struct vfio_device **devices; -- int cur_index; -- int max_index; --}; -- - static int vfio_pci_get_unused_devs(struct pci_dev *pdev, void *data) - { - struct vfio_devices *devs = data; -@@ -1969,6 +2145,39 @@ static int vfio_pci_get_unused_devs(struct pci_dev *pdev, void *data) - return 0; - } - -+static int vfio_pci_try_zap_and_vma_lock_cb(struct pci_dev *pdev, void *data) -+{ -+ struct vfio_devices *devs = data; -+ struct vfio_device *device; -+ struct vfio_pci_device *vdev; -+ -+ if (devs->cur_index == devs->max_index) -+ return -ENOSPC; -+ -+ device = vfio_device_get_from_dev(&pdev->dev); -+ if (!device) -+ return -EINVAL; -+ -+ if (pci_dev_driver(pdev) != &vfio_pci_driver) { -+ vfio_device_put(device); -+ return -EBUSY; -+ } -+ -+ vdev = vfio_device_data(device); -+ -+ /* -+ * Locking multiple devices is prone to deadlock, runaway and -+ * unwind if we hit contention. -+ */ -+ if (!vfio_pci_zap_and_vma_lock(vdev, true)) { -+ vfio_device_put(device); -+ return -EBUSY; -+ } -+ -+ devs->devices[devs->cur_index++] = device; -+ return 0; -+} -+ - /* - * If a bus or slot reset is available for the provided device and: - * - All of the devices affected by that bus or slot reset are unused -diff --git a/drivers/vfio/pci/vfio_pci_config.c b/drivers/vfio/pci/vfio_pci_config.c -index 90c0b80f8acf..3dcddbd572e6 100644 ---- a/drivers/vfio/pci/vfio_pci_config.c -+++ b/drivers/vfio/pci/vfio_pci_config.c -@@ -395,6 +395,14 @@ static inline void p_setd(struct perm_bits *p, int off, u32 virt, u32 write) - *(__le32 *)(&p->write[off]) = cpu_to_le32(write); - } - -+/* Caller should hold memory_lock semaphore */ -+bool __vfio_pci_memory_enabled(struct vfio_pci_device *vdev) -+{ -+ u16 cmd = le16_to_cpu(*(__le16 *)&vdev->vconfig[PCI_COMMAND]); -+ -+ return cmd & PCI_COMMAND_MEMORY; -+} -+ - /* - * Restore the *real* BARs after we detect a FLR or backdoor reset. - * (backdoor = some device specific technique that we didn't catch) -@@ -556,13 +564,18 @@ static int vfio_basic_config_write(struct vfio_pci_device *vdev, int pos, - - new_cmd = le32_to_cpu(val); - -+ phys_io = !!(phys_cmd & PCI_COMMAND_IO); -+ virt_io = !!(le16_to_cpu(*virt_cmd) & PCI_COMMAND_IO); -+ new_io = !!(new_cmd & PCI_COMMAND_IO); -+ - phys_mem = !!(phys_cmd & PCI_COMMAND_MEMORY); - virt_mem = !!(le16_to_cpu(*virt_cmd) & PCI_COMMAND_MEMORY); - new_mem = !!(new_cmd & PCI_COMMAND_MEMORY); - -- phys_io = !!(phys_cmd & PCI_COMMAND_IO); -- virt_io = !!(le16_to_cpu(*virt_cmd) & PCI_COMMAND_IO); -- new_io = !!(new_cmd & PCI_COMMAND_IO); -+ if (!new_mem) -+ vfio_pci_zap_and_down_write_memory_lock(vdev); -+ else -+ down_write(&vdev->memory_lock); - - /* - * If the user is writing mem/io enable (new_mem/io) and we -@@ -579,8 +592,11 @@ static int vfio_basic_config_write(struct vfio_pci_device *vdev, int pos, - } - - count = vfio_default_config_write(vdev, pos, count, perm, offset, val); -- if (count < 0) -+ if (count < 0) { -+ if (offset == PCI_COMMAND) -+ up_write(&vdev->memory_lock); - return count; -+ } - - /* - * Save current memory/io enable bits in vconfig to allow for -@@ -591,6 +607,8 @@ static int vfio_basic_config_write(struct vfio_pci_device *vdev, int pos, - - *virt_cmd &= cpu_to_le16(~mask); - *virt_cmd |= cpu_to_le16(new_cmd & mask); -+ -+ up_write(&vdev->memory_lock); - } - - /* Emulate INTx disable */ -@@ -828,8 +846,11 @@ static int vfio_exp_config_write(struct vfio_pci_device *vdev, int pos, - pos - offset + PCI_EXP_DEVCAP, - &cap); - -- if (!ret && (cap & PCI_EXP_DEVCAP_FLR)) -+ if (!ret && (cap & PCI_EXP_DEVCAP_FLR)) { -+ vfio_pci_zap_and_down_write_memory_lock(vdev); - pci_try_reset_function(vdev->pdev); -+ up_write(&vdev->memory_lock); -+ } - } - - /* -@@ -907,8 +928,11 @@ static int vfio_af_config_write(struct vfio_pci_device *vdev, int pos, - pos - offset + PCI_AF_CAP, - &cap); - -- if (!ret && (cap & PCI_AF_CAP_FLR) && (cap & PCI_AF_CAP_TP)) -+ if (!ret && (cap & PCI_AF_CAP_FLR) && (cap & PCI_AF_CAP_TP)) { -+ vfio_pci_zap_and_down_write_memory_lock(vdev); - pci_try_reset_function(vdev->pdev); -+ up_write(&vdev->memory_lock); -+ } - } - - return count; -diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c -index 2056f3f85f59..54102a7eb9d3 100644 ---- a/drivers/vfio/pci/vfio_pci_intrs.c -+++ b/drivers/vfio/pci/vfio_pci_intrs.c -@@ -626,6 +626,8 @@ int vfio_pci_set_irqs_ioctl(struct vfio_pci_device *vdev, uint32_t flags, - int (*func)(struct vfio_pci_device *vdev, unsigned index, - unsigned start, unsigned count, uint32_t flags, - void *data) = NULL; -+ int ret; -+ u16 cmd; - - switch (index) { - case VFIO_PCI_INTX_IRQ_INDEX: -@@ -673,5 +675,19 @@ int vfio_pci_set_irqs_ioctl(struct vfio_pci_device *vdev, uint32_t flags, - if (!func) - return -ENOTTY; - -- return func(vdev, index, start, count, flags, data); -+ if (index == VFIO_PCI_MSIX_IRQ_INDEX) { -+ down_write(&vdev->memory_lock); -+ pci_read_config_word(vdev->pdev, PCI_COMMAND, &cmd); -+ pci_write_config_word(vdev->pdev, PCI_COMMAND, -+ cmd | PCI_COMMAND_MEMORY); -+ } -+ -+ ret = func(vdev, index, start, count, flags, data); -+ -+ if (index == VFIO_PCI_MSIX_IRQ_INDEX) { -+ pci_write_config_word(vdev->pdev, PCI_COMMAND, cmd); -+ up_write(&vdev->memory_lock); -+ } -+ -+ return ret; - } -diff --git a/drivers/vfio/pci/vfio_pci_private.h b/drivers/vfio/pci/vfio_pci_private.h -index 9b25f9f6ce1d..c4f25f1e80d7 100644 ---- a/drivers/vfio/pci/vfio_pci_private.h -+++ b/drivers/vfio/pci/vfio_pci_private.h -@@ -139,6 +139,7 @@ struct vfio_pci_device { - struct list_head ioeventfds_list; - struct mutex vma_lock; - struct list_head vma_list; -+ struct rw_semaphore memory_lock; - }; - - #define is_intx(vdev) (vdev->irq_type == VFIO_PCI_INTX_IRQ_INDEX) -@@ -181,6 +182,10 @@ extern int vfio_pci_register_dev_region(struct vfio_pci_device *vdev, - extern int vfio_pci_set_power_state(struct vfio_pci_device *vdev, - pci_power_t state); - -+extern bool __vfio_pci_memory_enabled(struct vfio_pci_device *vdev); -+extern void vfio_pci_zap_and_down_write_memory_lock(struct vfio_pci_device -+ *vdev); -+ - #ifdef CONFIG_VFIO_PCI_IGD - extern int vfio_pci_igd_init(struct vfio_pci_device *vdev); - #else -diff --git a/drivers/vfio/pci/vfio_pci_rdwr.c b/drivers/vfio/pci/vfio_pci_rdwr.c -index a87992892a9f..f58c45308682 100644 ---- a/drivers/vfio/pci/vfio_pci_rdwr.c -+++ b/drivers/vfio/pci/vfio_pci_rdwr.c -@@ -162,6 +162,7 @@ ssize_t vfio_pci_bar_rw(struct vfio_pci_device *vdev, char __user *buf, - size_t x_start = 0, x_end = 0; - resource_size_t end; - void __iomem *io; -+ struct resource *res = &vdev->pdev->resource[bar]; - ssize_t done; - - if (pci_resource_start(pdev, bar)) -@@ -200,8 +201,19 @@ ssize_t vfio_pci_bar_rw(struct vfio_pci_device *vdev, char __user *buf, - x_end = vdev->msix_offset + vdev->msix_size; - } - -+ if (res->flags & IORESOURCE_MEM) { -+ down_read(&vdev->memory_lock); -+ if (!__vfio_pci_memory_enabled(vdev)) { -+ up_read(&vdev->memory_lock); -+ return -EIO; -+ } -+ } -+ - done = do_io_rw(io, buf, pos, count, x_start, x_end, iswrite); - -+ if (res->flags & IORESOURCE_MEM) -+ up_read(&vdev->memory_lock); -+ - if (done >= 0) - *ppos += done; - - - From 16c99f32c690abd22b734aa20cee4bcce1157b30 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 29 Jun 2020 09:42:05 -0500 Subject: [PATCH 072/191] Bump for build due to test week build Signed-off-by: Justin M. Forbes --- kernel.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index df39762c3..5438bc47f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -80,7 +80,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 200 +%global baserelease 201 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching From 0a70f564a052c491b12770d1218a2d8dd8b71924 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 29 Jun 2020 09:53:54 -0500 Subject: [PATCH 073/191] Add patches from stabilization Signed-off-by: Justin M. Forbes --- ...quirks-for-Tegra194-host-controllers.patch | 209 ++++++++++++++ ...dings-vendor-prefixes-Add-Xingbangda.patch | 33 +++ ...b302-Convert-to-use-GPIO-descriptors.patch | 162 +++++++++++ ...l-Convert-rocktech-jh057n00900-to-ya.patch | 120 ++++++++ ...l-Add-compatible-for-Xingbangda-XBD5.patch | 37 +++ ...ch-jh057n00900-Rename-the-driver-to-.patch | 91 ++++++ ...-Rename-functions-from-jh057n-prefix.patch | 265 ++++++++++++++++++ ...-Prepare-for-supporting-multiple-pan.patch | 129 +++++++++ ...-Move-code-specific-to-jh057n-closer.patch | 84 ++++++ ...-Move-generic-part-of-init-sequence-.patch | 84 ++++++ ...03-Add-support-for-Xingbangda-XBD599.patch | 251 +++++++++++++++++ ...st7703-Enter-sleep-after-display-off.patch | 41 +++ ...-Assert-reset-prior-to-powering-down.patch | 29 ++ ...-a64-pinephone-Enable-LCD-support-on.patch | 112 ++++++++ ...-a64-pinephone-Add-touchscreen-suppo.patch | 47 ++++ 15 files changed, 1694 insertions(+) create mode 100644 0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch create mode 100644 0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch create mode 100644 0001-usb-fusb302-Convert-to-use-GPIO-descriptors.patch create mode 100644 0002-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch create mode 100644 0003-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch create mode 100644 0004-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch create mode 100644 0005-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch create mode 100644 0006-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch create mode 100644 0007-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch create mode 100644 0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch create mode 100644 0009-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch create mode 100644 0010-drm-panel-st7703-Enter-sleep-after-display-off.patch create mode 100644 0011-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch create mode 100644 0012-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch create mode 100644 0013-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch diff --git a/0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch b/0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch new file mode 100644 index 000000000..6fc81f845 --- /dev/null +++ b/0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch @@ -0,0 +1,209 @@ +From 92c547f35f4852908f40c2861d9b9d10e0c5099b Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Sun, 28 Jun 2020 16:48:50 +0100 +Subject: [PATCH] PCI: Add MCFG quirks for Tegra194 host controllers + +The PCIe controller in Tegra194 SoC is not completely ECAM-compliant. +With the current hardware design limitations in place, ECAM can be enabled +only for one controller (C5 controller to be precise) with bus numbers +starting from 160 instead of 0. A different approach is taken to avoid this +abnormal way of enabling ECAM for just one controller but to enable +configuration space access for all the other controllers. In this approach, +ops are added through MCFG quirk mechanism which access the configuration +spaces by dynamically programming iATU (internal AddressTranslation Unit) +to generate respective configuration accesses just like the way it is +done in DesignWare core sub-system. + +Signed-off-by: Vidya Sagar +Reported-by: kbuild test robot +Signed-off-by: Peter Robinson +--- +V3: +* Removed MCFG address hardcoding in pci_mcfg.c file +* Started using 'dbi_base' for accessing root port's own config space +* and using 'config_base' for accessing config space of downstream hierarchy + +V2: +* Fixed build issues reported by kbuild test bot +--- + drivers/acpi/pci_mcfg.c | 7 ++ + drivers/pci/controller/dwc/Makefile | 2 +- + drivers/pci/controller/dwc/pcie-tegra194.c | 102 +++++++++++++++++++++ + include/linux/pci-ecam.h | 1 + + 4 files changed, 111 insertions(+), 1 deletion(-) + +diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c +index 6b347d9920cc2..7071814081736 100644 +--- a/drivers/acpi/pci_mcfg.c ++++ b/drivers/acpi/pci_mcfg.c +@@ -116,6 +116,13 @@ static struct mcfg_fixup mcfg_quirks[] = { + THUNDER_ECAM_QUIRK(2, 12), + THUNDER_ECAM_QUIRK(2, 13), + ++ { "NVIDIA", "TEGRA194", 1, 0, MCFG_BUS_ANY, &tegra194_pcie_ops}, ++ { "NVIDIA", "TEGRA194", 1, 1, MCFG_BUS_ANY, &tegra194_pcie_ops}, ++ { "NVIDIA", "TEGRA194", 1, 2, MCFG_BUS_ANY, &tegra194_pcie_ops}, ++ { "NVIDIA", "TEGRA194", 1, 3, MCFG_BUS_ANY, &tegra194_pcie_ops}, ++ { "NVIDIA", "TEGRA194", 1, 4, MCFG_BUS_ANY, &tegra194_pcie_ops}, ++ { "NVIDIA", "TEGRA194", 1, 5, MCFG_BUS_ANY, &tegra194_pcie_ops}, ++ + #define XGENE_V1_ECAM_MCFG(rev, seg) \ + {"APM ", "XGENE ", rev, seg, MCFG_BUS_ANY, \ + &xgene_v1_pcie_ecam_ops } +diff --git a/drivers/pci/controller/dwc/Makefile b/drivers/pci/controller/dwc/Makefile +index 8a637cfcf6e99..76a6c52b8500e 100644 +--- a/drivers/pci/controller/dwc/Makefile ++++ b/drivers/pci/controller/dwc/Makefile +@@ -17,7 +17,6 @@ obj-$(CONFIG_PCIE_INTEL_GW) += pcie-intel-gw.o + obj-$(CONFIG_PCIE_KIRIN) += pcie-kirin.o + obj-$(CONFIG_PCIE_HISI_STB) += pcie-histb.o + obj-$(CONFIG_PCI_MESON) += pci-meson.o +-obj-$(CONFIG_PCIE_TEGRA194) += pcie-tegra194.o + obj-$(CONFIG_PCIE_UNIPHIER) += pcie-uniphier.o + + # The following drivers are for devices that use the generic ACPI +@@ -33,4 +32,5 @@ obj-$(CONFIG_PCIE_UNIPHIER) += pcie-uniphier.o + ifdef CONFIG_PCI + obj-$(CONFIG_ARM64) += pcie-al.o + obj-$(CONFIG_ARM64) += pcie-hisi.o ++obj-$(CONFIG_ARM64) += pcie-tegra194.o + endif +diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c +index ae30a2fd3716a..571b39c5cac63 100644 +--- a/drivers/pci/controller/dwc/pcie-tegra194.c ++++ b/drivers/pci/controller/dwc/pcie-tegra194.c +@@ -22,6 +22,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -324,6 +326,103 @@ struct tegra_pcie_dw_of_data { + enum dw_pcie_device_mode mode; + }; + ++#if defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS) ++struct tegra194_pcie_acpi { ++ void __iomem *config_base; ++ void __iomem *iatu_base; ++ void __iomem *dbi_base; ++}; ++ ++static int tegra194_acpi_init(struct pci_config_window *cfg) ++{ ++ struct device *dev = cfg->parent; ++ struct tegra194_pcie_acpi *pcie; ++ ++ pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); ++ if (!pcie) ++ return -ENOMEM; ++ ++ pcie->config_base = cfg->win; ++ pcie->iatu_base = cfg->win + SZ_256K; ++ pcie->dbi_base = cfg->win + SZ_512K; ++ cfg->priv = pcie; ++ ++ return 0; ++} ++ ++static inline void atu_reg_write(struct tegra194_pcie_acpi *pcie, int index, ++ u32 val, u32 reg) ++{ ++ u32 offset = PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index); ++ ++ writel(val, pcie->iatu_base + offset + reg); ++} ++ ++static void program_outbound_atu(struct tegra194_pcie_acpi *pcie, int index, ++ int type, u64 cpu_addr, u64 pci_addr, u64 size) ++{ ++ atu_reg_write(pcie, index, lower_32_bits(cpu_addr), ++ PCIE_ATU_LOWER_BASE); ++ atu_reg_write(pcie, index, upper_32_bits(cpu_addr), ++ PCIE_ATU_UPPER_BASE); ++ atu_reg_write(pcie, index, lower_32_bits(pci_addr), ++ PCIE_ATU_LOWER_TARGET); ++ atu_reg_write(pcie, index, lower_32_bits(cpu_addr + size - 1), ++ PCIE_ATU_LIMIT); ++ atu_reg_write(pcie, index, upper_32_bits(pci_addr), ++ PCIE_ATU_UPPER_TARGET); ++ atu_reg_write(pcie, index, type, PCIE_ATU_CR1); ++ atu_reg_write(pcie, index, PCIE_ATU_ENABLE, PCIE_ATU_CR2); ++} ++ ++static void __iomem *tegra194_map_bus(struct pci_bus *bus, ++ unsigned int devfn, int where) ++{ ++ struct pci_config_window *cfg = bus->sysdata; ++ struct tegra194_pcie_acpi *pcie = cfg->priv; ++ u32 busdev; ++ int type; ++ ++ if (bus->number < cfg->busr.start || bus->number > cfg->busr.end) ++ return NULL; ++ ++ if (bus->number == cfg->busr.start) { ++ if (PCI_SLOT(devfn) == 0) ++ return pcie->dbi_base + where; ++ else ++ return NULL; ++ } ++ ++ busdev = PCIE_ATU_BUS(bus->number) | PCIE_ATU_DEV(PCI_SLOT(devfn)) | ++ PCIE_ATU_FUNC(PCI_FUNC(devfn)); ++ ++ if (bus->parent->number == cfg->busr.start) { ++ if (PCI_SLOT(devfn) == 0) ++ type = PCIE_ATU_TYPE_CFG0; ++ else ++ return NULL; ++ } else { ++ type = PCIE_ATU_TYPE_CFG1; ++ } ++ ++ program_outbound_atu(pcie, PCIE_ATU_REGION_INDEX0, type, ++ cfg->res.start, busdev, SZ_256K); ++ return (void __iomem *)(pcie->config_base + where); ++} ++ ++struct pci_ecam_ops tegra194_pcie_ops = { ++ .bus_shift = 20, ++ .init = tegra194_acpi_init, ++ .pci_ops = { ++ .map_bus = tegra194_map_bus, ++ .read = pci_generic_config_read, ++ .write = pci_generic_config_write, ++ } ++}; ++#endif /* defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS) */ ++ ++#ifdef CONFIG_PCIE_TEGRA194 ++ + static inline struct tegra_pcie_dw *to_tegra_pcie(struct dw_pcie *pci) + { + return container_of(pci, struct tegra_pcie_dw, pci); +@@ -2406,3 +2505,6 @@ MODULE_DEVICE_TABLE(of, tegra_pcie_dw_of_match); + MODULE_AUTHOR("Vidya Sagar "); + MODULE_DESCRIPTION("NVIDIA PCIe host controller driver"); + MODULE_LICENSE("GPL v2"); ++ ++#endif /* CONFIG_PCIE_TEGRA194 */ ++ +diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h +index a73164c85e78b..6156140dcbb65 100644 +--- a/include/linux/pci-ecam.h ++++ b/include/linux/pci-ecam.h +@@ -57,6 +57,7 @@ extern struct pci_ecam_ops pci_thunder_ecam_ops; /* Cavium ThunderX 1.x */ + extern struct pci_ecam_ops xgene_v1_pcie_ecam_ops; /* APM X-Gene PCIe v1 */ + extern struct pci_ecam_ops xgene_v2_pcie_ecam_ops; /* APM X-Gene PCIe v2.x */ + extern struct pci_ecam_ops al_pcie_ops; /* Amazon Annapurna Labs PCIe */ ++extern struct pci_ecam_ops tegra194_pcie_ops; /* Tegra194 PCIe */ + #endif + + #ifdef CONFIG_PCI_HOST_COMMON +-- +2.26.2 + diff --git a/0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch b/0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch new file mode 100644 index 000000000..eef72a211 --- /dev/null +++ b/0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch @@ -0,0 +1,33 @@ +From 025eb2eb927d2c3020882ea0ed3af28d65321763 Mon Sep 17 00:00:00 2001 +From: Icenowy Zheng +Date: Fri, 26 Jun 2020 02:55:49 +0200 +Subject: [PATCH 01/13] dt-bindings: vendor-prefixes: Add Xingbangda + +Shenzhen Xingbangda Display Technology Co., Ltd is a company which +produces LCD modules. It supplies the LCD panels for the PinePhone. + +Add the vendor prefix of it. + +Signed-off-by: Icenowy Zheng +Signed-off-by: Ondrej Jirman +Acked-by: Rob Herring +--- + Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml +index d3891386d6710..a558ef87ee5b0 100644 +--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml ++++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml +@@ -1121,6 +1121,8 @@ patternProperties: + description: Xiaomi Technology Co., Ltd. + "^xillybus,.*": + description: Xillybus Ltd. ++ "^xingbangda,.*": ++ description: Shenzhen Xingbangda Display Technology Co., Ltd + "^xinpeng,.*": + description: Shenzhen Xinpeng Technology Co., Ltd + "^xlnx,.*": +-- +2.26.2 + diff --git a/0001-usb-fusb302-Convert-to-use-GPIO-descriptors.patch b/0001-usb-fusb302-Convert-to-use-GPIO-descriptors.patch new file mode 100644 index 000000000..40732340c --- /dev/null +++ b/0001-usb-fusb302-Convert-to-use-GPIO-descriptors.patch @@ -0,0 +1,162 @@ +From 2c36867719d93db8d7f365310587578ab980762c Mon Sep 17 00:00:00 2001 +From: Linus Walleij +Date: Wed, 15 Apr 2020 21:24:48 +0200 +Subject: [PATCH] usb: fusb302: Convert to use GPIO descriptors + +This converts the FUSB302 driver to use GPIO descriptors. +The conversion to descriptors per se is pretty straight-forward. + +In the process I discovered that: + +1. The driver uses a completely undocumented device tree binding + for the interrupt GPIO line, "fcs,int_n". Ooops. + +2. The undocumented binding, presumably since it has not seen + review, is just "fcs,int_n", lacking the compulsory "-gpios" + suffix and also something that is not a good name because + the "_n" implies the line is inverted which is something we + handle with flags in the device tree. Ooops. + +3. Possibly the driver should not be requesting the line as a + GPIO and request the corresponding interrupt line by open + coding, the GPIO chip is very likely doubleing as an IRQ + controller and can probably provide an interrupt directly + for this line with interrupts-extended = <&gpio0 ...>; + +4. Possibly the IRQ should just be tagged on the I2C client node + in the device tree like apparently ACPI does, as it overrides + this IRQ with client->irq if that exists. + +But now it is too late to do much about that and as I can see +this is used like this in the Pinebook which is a shipping product +so let'a just contain the mess and move on. + +The property currently appears in: +arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts + +Create a quirk in the GPIO OF library to allow this property +specifically to be specified without the "-gpios" suffix, we have +other such bindings already. + +Cc: Tobias Schramm +Cc: Heikki Krogerus +Cc: Yueyao Zhu +Cc: Guenter Roeck +Cc: devicetree@vger.kernel.org +Signed-off-by: Linus Walleij +Link: https://lore.kernel.org/r/20200415192448.305257-1-linus.walleij@linaro.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpio/gpiolib-of.c | 21 +++++++++++++++++++++ + drivers/usb/typec/tcpm/fusb302.c | 32 +++++++++----------------------- + 2 files changed, 30 insertions(+), 23 deletions(-) + +diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c +index ccc449df3792a..20c2c428168e4 100644 +--- a/drivers/gpio/gpiolib-of.c ++++ b/drivers/gpio/gpiolib-of.c +@@ -460,6 +460,24 @@ static struct gpio_desc *of_find_arizona_gpio(struct device *dev, + return of_get_named_gpiod_flags(dev->of_node, con_id, 0, of_flags); + } + ++static struct gpio_desc *of_find_usb_gpio(struct device *dev, ++ const char *con_id, ++ enum of_gpio_flags *of_flags) ++{ ++ /* ++ * Currently this USB quirk is only for the Fairchild FUSB302 host which is using ++ * an undocumented DT GPIO line named "fcs,int_n" without the compulsory "-gpios" ++ * suffix. ++ */ ++ if (!IS_ENABLED(CONFIG_TYPEC_FUSB302)) ++ return ERR_PTR(-ENOENT); ++ ++ if (!con_id || strcmp(con_id, "fcs,int_n")) ++ return ERR_PTR(-ENOENT); ++ ++ return of_get_named_gpiod_flags(dev->of_node, con_id, 0, of_flags); ++} ++ + struct gpio_desc *of_find_gpio(struct device *dev, const char *con_id, + unsigned int idx, unsigned long *flags) + { +@@ -504,6 +522,9 @@ struct gpio_desc *of_find_gpio(struct device *dev, const char *con_id, + if (PTR_ERR(desc) == -ENOENT) + desc = of_find_arizona_gpio(dev, con_id, &of_flags); + ++ if (PTR_ERR(desc) == -ENOENT) ++ desc = of_find_usb_gpio(dev, con_id, &of_flags); ++ + if (IS_ERR(desc)) + return desc; + +diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c +index b498960ff72b5..b28facece43c4 100644 +--- a/drivers/usb/typec/tcpm/fusb302.c ++++ b/drivers/usb/typec/tcpm/fusb302.c +@@ -9,14 +9,13 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include + #include + #include + #include +-#include + #include + #include + #include +@@ -83,7 +82,7 @@ struct fusb302_chip { + struct work_struct irq_work; + bool irq_suspended; + bool irq_while_suspended; +- int gpio_int_n; ++ struct gpio_desc *gpio_int_n; + int gpio_int_n_irq; + struct extcon_dev *extcon; + +@@ -1618,30 +1617,17 @@ static void fusb302_irq_work(struct work_struct *work) + + static int init_gpio(struct fusb302_chip *chip) + { +- struct device_node *node; ++ struct device *dev = chip->dev; + int ret = 0; + +- node = chip->dev->of_node; +- chip->gpio_int_n = of_get_named_gpio(node, "fcs,int_n", 0); +- if (!gpio_is_valid(chip->gpio_int_n)) { +- ret = chip->gpio_int_n; +- dev_err(chip->dev, "cannot get named GPIO Int_N, ret=%d", ret); +- return ret; +- } +- ret = devm_gpio_request(chip->dev, chip->gpio_int_n, "fcs,int_n"); +- if (ret < 0) { +- dev_err(chip->dev, "cannot request GPIO Int_N, ret=%d", ret); +- return ret; +- } +- ret = gpio_direction_input(chip->gpio_int_n); +- if (ret < 0) { +- dev_err(chip->dev, +- "cannot set GPIO Int_N to input, ret=%d", ret); +- return ret; ++ chip->gpio_int_n = devm_gpiod_get(dev, "fcs,int_n", GPIOD_IN); ++ if (IS_ERR(chip->gpio_int_n)) { ++ dev_err(dev, "failed to request gpio_int_n\n"); ++ return PTR_ERR(chip->gpio_int_n); + } +- ret = gpio_to_irq(chip->gpio_int_n); ++ ret = gpiod_to_irq(chip->gpio_int_n); + if (ret < 0) { +- dev_err(chip->dev, ++ dev_err(dev, + "cannot request IRQ for GPIO Int_N, ret=%d", ret); + return ret; + } +-- +2.26.2 + diff --git a/0002-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch b/0002-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch new file mode 100644 index 000000000..0d05e02e0 --- /dev/null +++ b/0002-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch @@ -0,0 +1,120 @@ +From 789d3f52a1cf675ba68c3578fe2b259bc44caba2 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 26 Jun 2020 02:55:50 +0200 +Subject: [PATCH 02/13] dt-bindings: panel: Convert rocktech, jh057n00900 to + yaml + +Convert Rocktech MIPI DSI panel driver from txt to yaml bindings. + +Signed-off-by: Ondrej Jirman +--- + .../display/panel/rocktech,jh057n00900.txt | 23 ------- + .../display/panel/rocktech,jh057n00900.yaml | 66 +++++++++++++++++++ + 2 files changed, 66 insertions(+), 23 deletions(-) + delete mode 100644 Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt + create mode 100644 Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml + +diff --git a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt +deleted file mode 100644 +index a372c5d846956..0000000000000 +--- a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt ++++ /dev/null +@@ -1,23 +0,0 @@ +-Rocktech jh057n00900 5.5" 720x1440 TFT LCD panel +- +-Required properties: +-- compatible: should be "rocktech,jh057n00900" +-- reg: DSI virtual channel of the peripheral +-- reset-gpios: panel reset gpio +-- backlight: phandle of the backlight device attached to the panel +-- vcc-supply: phandle of the regulator that provides the vcc supply voltage. +-- iovcc-supply: phandle of the regulator that provides the iovcc supply +- voltage. +- +-Example: +- +- &mipi_dsi { +- panel@0 { +- compatible = "rocktech,jh057n00900"; +- reg = <0>; +- backlight = <&backlight>; +- reset-gpios = <&gpio3 13 GPIO_ACTIVE_LOW>; +- vcc-supply = <®_2v8_p>; +- iovcc-supply = <®_1v8_p>; +- }; +- }; +diff --git a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml +new file mode 100644 +index 0000000000000..f97c48550741c +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml +@@ -0,0 +1,66 @@ ++# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause) ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/panel/rocktech,jh057n00900.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Rocktech JH057N00900 5.5" 720x1440 TFT LCD panel ++ ++maintainers: ++ - Ondrej Jirman ++ ++description: | ++ Rocktech JH057N00900 is a 720x1440 TFT LCD panel ++ connected using a MIPI-DSI video interface. ++ ++allOf: ++ - $ref: panel-common.yaml# ++ ++properties: ++ compatible: ++ const: rocktech,jh057n00900 ++ ++ reg: ++ maxItems: 1 ++ description: DSI virtual channel ++ ++ vcc-supply: ++ description: Panel power supply ++ ++ vccio-supply: ++ description: I/O voltage supply ++ ++ reset-gpios: ++ description: GPIO used for the reset pin ++ maxItems: 1 ++ ++ backlight: ++ description: Backlight used by the panel ++ $ref: "/schemas/types.yaml#/definitions/phandle" ++ ++required: ++ - compatible ++ - reg ++ - vcc-supply ++ - vccio-supply ++ - reset-gpios ++ ++additionalProperties: false ++ ++examples: ++ - | ++ #include ++ ++ dsi { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ panel@0 { ++ compatible = "rocktech,jh057n00900"; ++ reg = <0>; ++ vcc-supply = <®_2v8_p>; ++ iovcc-supply = <®_1v8_p>; ++ reset-gpios = <&gpio3 13 GPIO_ACTIVE_LOW>; ++ backlight = <&backlight>; ++ }; ++ }; ++... +-- +2.26.2 + diff --git a/0003-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch b/0003-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch new file mode 100644 index 000000000..a7099de05 --- /dev/null +++ b/0003-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch @@ -0,0 +1,37 @@ +From 12146093602e0dedb7ee431224fc4a58d40697f8 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 26 Jun 2020 02:55:51 +0200 +Subject: [PATCH 03/13] dt-bindings: panel: Add compatible for Xingbangda + XBD599 panel + +Xingbangda XBD599 is a 5.99" 720x1440 MIPI-DSI LCD panel. It is based on +Sitronix ST7703 LCD controller just like rocktech,jh057n00900. It is +used in PinePhone. + +Add a compatible for it. + +Signed-off-by: Ondrej Jirman +--- + .../bindings/display/panel/rocktech,jh057n00900.yaml | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml +index f97c48550741c..4d43a1b36d7c7 100644 +--- a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml ++++ b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml +@@ -18,7 +18,11 @@ allOf: + + properties: + compatible: +- const: rocktech,jh057n00900 ++ enum: ++ # Rocktech JH057N00900 5.5" 720x1440 TFT LCD panel ++ - rocktech,jh057n00900 ++ # Xingbangda XBD599 5.99" 720x1440 TFT LCD panel ++ - xingbangda,xbd599 + + reg: + maxItems: 1 +-- +2.26.2 + diff --git a/0004-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch b/0004-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch new file mode 100644 index 000000000..c4c947641 --- /dev/null +++ b/0004-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch @@ -0,0 +1,91 @@ +From e82044df3332199c63904d86b4b1ad0963a6f8e0 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 26 Jun 2020 02:55:52 +0200 +Subject: [PATCH 04/13] drm/panel: rocktech-jh057n00900: Rename the driver to + st7703 + +This rename is done so that the driver matches the name of the +display controller and in preparation for adding support for more +panels to the driver. + +This is just a basic file rename, with no code changes. + +Signed-off-by: Ondrej Jirman +--- + drivers/gpu/drm/panel/Kconfig | 26 +++++++++---------- + drivers/gpu/drm/panel/Makefile | 2 +- + ...-jh057n00900.c => panel-sitronix-st7703.c} | 0 + 3 files changed, 14 insertions(+), 14 deletions(-) + rename drivers/gpu/drm/panel/{panel-rocktech-jh057n00900.c => panel-sitronix-st7703.c} (100%) + +diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig +index a1723c1b5fbf8..7cf1f160fdd51 100644 +--- a/drivers/gpu/drm/panel/Kconfig ++++ b/drivers/gpu/drm/panel/Kconfig +@@ -262,19 +262,6 @@ config DRM_PANEL_RAYDIUM_RM68200 + Say Y here if you want to enable support for Raydium RM68200 + 720x1280 DSI video mode panel. + +-config DRM_PANEL_ROCKTECH_JH057N00900 +- tristate "Rocktech JH057N00900 MIPI touchscreen panel" +- depends on OF +- depends on DRM_MIPI_DSI +- depends on BACKLIGHT_CLASS_DEVICE +- help +- Say Y here if you want to enable support for Rocktech JH057N00900 +- MIPI DSI panel as e.g. used in the Librem 5 devkit. It has a +- resolution of 720x1440 pixels, a built in backlight and touch +- controller. +- Touch input support is provided by the goodix driver and needs to be +- selected separately. +- + config DRM_PANEL_RONBO_RB070D30 + tristate "Ronbo Electronics RB070D30 panel" + depends on OF +@@ -374,6 +361,19 @@ config DRM_PANEL_SITRONIX_ST7701 + ST7701 controller for 480X864 LCD panels with MIPI/RGB/SPI + system interfaces. + ++config DRM_PANEL_SITRONIX_ST7703 ++ tristate "Sitronix ST7703 based MIPI touchscreen panels" ++ depends on OF ++ depends on DRM_MIPI_DSI ++ depends on BACKLIGHT_CLASS_DEVICE ++ help ++ Say Y here if you want to enable support for Sitronix ST7703 based ++ panels, souch as Rocktech JH057N00900 MIPI DSI panel as e.g. used in ++ the Librem 5 devkit. It has a resolution of 720x1440 pixels, a built ++ in backlight and touch controller. ++ Touch input support is provided by the goodix driver and needs to be ++ selected separately. ++ + config DRM_PANEL_SITRONIX_ST7789V + tristate "Sitronix ST7789V panel" + depends on OF && SPI +diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile +index 96a883cd66305..0519fdf0710d5 100644 +--- a/drivers/gpu/drm/panel/Makefile ++++ b/drivers/gpu/drm/panel/Makefile +@@ -25,7 +25,6 @@ obj-$(CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00) += panel-panasonic-vvx10f034n00.o + obj-$(CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN) += panel-raspberrypi-touchscreen.o + obj-$(CONFIG_DRM_PANEL_RAYDIUM_RM67191) += panel-raydium-rm67191.o + obj-$(CONFIG_DRM_PANEL_RAYDIUM_RM68200) += panel-raydium-rm68200.o +-obj-$(CONFIG_DRM_PANEL_ROCKTECH_JH057N00900) += panel-rocktech-jh057n00900.o + obj-$(CONFIG_DRM_PANEL_RONBO_RB070D30) += panel-ronbo-rb070d30.o + obj-$(CONFIG_DRM_PANEL_SAMSUNG_LD9040) += panel-samsung-ld9040.o + obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6D16D0) += panel-samsung-s6d16d0.o +@@ -39,6 +38,7 @@ obj-$(CONFIG_DRM_PANEL_SHARP_LQ101R1SX01) += panel-sharp-lq101r1sx01.o + obj-$(CONFIG_DRM_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o + obj-$(CONFIG_DRM_PANEL_SHARP_LS043T1LE01) += panel-sharp-ls043t1le01.o + obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7701) += panel-sitronix-st7701.o ++obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7703) += panel-sitronix-st7703.o + obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7789V) += panel-sitronix-st7789v.o + obj-$(CONFIG_DRM_PANEL_SONY_ACX424AKP) += panel-sony-acx424akp.o + obj-$(CONFIG_DRM_PANEL_SONY_ACX565AKM) += panel-sony-acx565akm.o +diff --git a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c +similarity index 100% +rename from drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c +rename to drivers/gpu/drm/panel/panel-sitronix-st7703.c +-- +2.26.2 + diff --git a/0005-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch b/0005-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch new file mode 100644 index 000000000..5432e1bba --- /dev/null +++ b/0005-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch @@ -0,0 +1,265 @@ +From 6fad8493b27ade51f37d88acc7ce6fd7dbc9da69 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 26 Jun 2020 02:55:53 +0200 +Subject: [PATCH 05/13] drm/panel: st7703: Rename functions from jh057n prefix + to st7703 + +This is done so that code that's not specific to a particular +jh057n panel is named after the controller. Functions specific +to the panel are kept named after the panel. + +Signed-off-by: Ondrej Jirman +--- + drivers/gpu/drm/panel/panel-sitronix-st7703.c | 90 ++++++++++--------- + 1 file changed, 46 insertions(+), 44 deletions(-) + +diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c +index 38ff742bc1209..511af659f273b 100644 +--- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c ++++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c +@@ -1,6 +1,8 @@ + // SPDX-License-Identifier: GPL-2.0 + /* +- * Rockteck jh057n00900 5.5" MIPI-DSI panel driver ++ * Driver for panels based on Sitronix ST7703 controller, souch as: ++ * ++ * - Rocktech jh057n00900 5.5" MIPI-DSI panel + * + * Copyright (C) Purism SPC 2019 + */ +@@ -21,7 +23,7 @@ + #include + #include + +-#define DRV_NAME "panel-rocktech-jh057n00900" ++#define DRV_NAME "panel-sitronix-st7703" + + /* Manufacturer specific Commands send via DSI */ + #define ST7703_CMD_ALL_PIXEL_OFF 0x22 +@@ -45,7 +47,7 @@ + #define ST7703_CMD_SETGIP1 0xE9 + #define ST7703_CMD_SETGIP2 0xEA + +-struct jh057n { ++struct st7703 { + struct device *dev; + struct drm_panel panel; + struct gpio_desc *reset_gpio; +@@ -56,9 +58,9 @@ struct jh057n { + struct dentry *debugfs; + }; + +-static inline struct jh057n *panel_to_jh057n(struct drm_panel *panel) ++static inline struct st7703 *panel_to_st7703(struct drm_panel *panel) + { +- return container_of(panel, struct jh057n, panel); ++ return container_of(panel, struct st7703, panel); + } + + #define dsi_generic_write_seq(dsi, seq...) do { \ +@@ -69,7 +71,7 @@ static inline struct jh057n *panel_to_jh057n(struct drm_panel *panel) + return ret; \ + } while (0) + +-static int jh057n_init_sequence(struct jh057n *ctx) ++static int jh057n_init_sequence(struct st7703 *ctx) + { + struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); + struct device *dev = ctx->dev; +@@ -141,9 +143,9 @@ static int jh057n_init_sequence(struct jh057n *ctx) + return 0; + } + +-static int jh057n_enable(struct drm_panel *panel) ++static int st7703_enable(struct drm_panel *panel) + { +- struct jh057n *ctx = panel_to_jh057n(panel); ++ struct st7703 *ctx = panel_to_st7703(panel); + int ret; + + ret = jh057n_init_sequence(ctx); +@@ -156,17 +158,17 @@ static int jh057n_enable(struct drm_panel *panel) + return 0; + } + +-static int jh057n_disable(struct drm_panel *panel) ++static int st7703_disable(struct drm_panel *panel) + { +- struct jh057n *ctx = panel_to_jh057n(panel); ++ struct st7703 *ctx = panel_to_st7703(panel); + struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); + + return mipi_dsi_dcs_set_display_off(dsi); + } + +-static int jh057n_unprepare(struct drm_panel *panel) ++static int st7703_unprepare(struct drm_panel *panel) + { +- struct jh057n *ctx = panel_to_jh057n(panel); ++ struct st7703 *ctx = panel_to_st7703(panel); + + if (!ctx->prepared) + return 0; +@@ -178,9 +180,9 @@ static int jh057n_unprepare(struct drm_panel *panel) + return 0; + } + +-static int jh057n_prepare(struct drm_panel *panel) ++static int st7703_prepare(struct drm_panel *panel) + { +- struct jh057n *ctx = panel_to_jh057n(panel); ++ struct st7703 *ctx = panel_to_st7703(panel); + int ret; + + if (ctx->prepared) +@@ -230,10 +232,10 @@ static const struct drm_display_mode default_mode = { + .height_mm = 130, + }; + +-static int jh057n_get_modes(struct drm_panel *panel, ++static int st7703_get_modes(struct drm_panel *panel, + struct drm_connector *connector) + { +- struct jh057n *ctx = panel_to_jh057n(panel); ++ struct st7703 *ctx = panel_to_st7703(panel); + struct drm_display_mode *mode; + + mode = drm_mode_duplicate(connector->dev, &default_mode); +@@ -254,17 +256,17 @@ static int jh057n_get_modes(struct drm_panel *panel, + return 1; + } + +-static const struct drm_panel_funcs jh057n_drm_funcs = { +- .disable = jh057n_disable, +- .unprepare = jh057n_unprepare, +- .prepare = jh057n_prepare, +- .enable = jh057n_enable, +- .get_modes = jh057n_get_modes, ++static const struct drm_panel_funcs st7703_drm_funcs = { ++ .disable = st7703_disable, ++ .unprepare = st7703_unprepare, ++ .prepare = st7703_prepare, ++ .enable = st7703_enable, ++ .get_modes = st7703_get_modes, + }; + + static int allpixelson_set(void *data, u64 val) + { +- struct jh057n *ctx = data; ++ struct st7703 *ctx = data; + struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); + + DRM_DEV_DEBUG_DRIVER(ctx->dev, "Setting all pixels on\n"); +@@ -282,7 +284,7 @@ static int allpixelson_set(void *data, u64 val) + DEFINE_SIMPLE_ATTRIBUTE(allpixelson_fops, NULL, + allpixelson_set, "%llu\n"); + +-static void jh057n_debugfs_init(struct jh057n *ctx) ++static void st7703_debugfs_init(struct st7703 *ctx) + { + ctx->debugfs = debugfs_create_dir(DRV_NAME, NULL); + +@@ -290,16 +292,16 @@ static void jh057n_debugfs_init(struct jh057n *ctx) + &allpixelson_fops); + } + +-static void jh057n_debugfs_remove(struct jh057n *ctx) ++static void st7703_debugfs_remove(struct st7703 *ctx) + { + debugfs_remove_recursive(ctx->debugfs); + ctx->debugfs = NULL; + } + +-static int jh057n_probe(struct mipi_dsi_device *dsi) ++static int st7703_probe(struct mipi_dsi_device *dsi) + { + struct device *dev = &dsi->dev; +- struct jh057n *ctx; ++ struct st7703 *ctx; + int ret; + + ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); +@@ -340,7 +342,7 @@ static int jh057n_probe(struct mipi_dsi_device *dsi) + return ret; + } + +- drm_panel_init(&ctx->panel, dev, &jh057n_drm_funcs, ++ drm_panel_init(&ctx->panel, dev, &st7703_drm_funcs, + DRM_MODE_CONNECTOR_DSI); + + ret = drm_panel_of_backlight(&ctx->panel); +@@ -363,13 +365,13 @@ static int jh057n_probe(struct mipi_dsi_device *dsi) + default_mode.vrefresh, + mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes); + +- jh057n_debugfs_init(ctx); ++ st7703_debugfs_init(ctx); + return 0; + } + +-static void jh057n_shutdown(struct mipi_dsi_device *dsi) ++static void st7703_shutdown(struct mipi_dsi_device *dsi) + { +- struct jh057n *ctx = mipi_dsi_get_drvdata(dsi); ++ struct st7703 *ctx = mipi_dsi_get_drvdata(dsi); + int ret; + + ret = drm_panel_unprepare(&ctx->panel); +@@ -383,12 +385,12 @@ static void jh057n_shutdown(struct mipi_dsi_device *dsi) + ret); + } + +-static int jh057n_remove(struct mipi_dsi_device *dsi) ++static int st7703_remove(struct mipi_dsi_device *dsi) + { +- struct jh057n *ctx = mipi_dsi_get_drvdata(dsi); ++ struct st7703 *ctx = mipi_dsi_get_drvdata(dsi); + int ret; + +- jh057n_shutdown(dsi); ++ st7703_shutdown(dsi); + + ret = mipi_dsi_detach(dsi); + if (ret < 0) +@@ -397,28 +399,28 @@ static int jh057n_remove(struct mipi_dsi_device *dsi) + + drm_panel_remove(&ctx->panel); + +- jh057n_debugfs_remove(ctx); ++ st7703_debugfs_remove(ctx); + + return 0; + } + +-static const struct of_device_id jh057n_of_match[] = { ++static const struct of_device_id st7703_of_match[] = { + { .compatible = "rocktech,jh057n00900" }, + { /* sentinel */ } + }; +-MODULE_DEVICE_TABLE(of, jh057n_of_match); ++MODULE_DEVICE_TABLE(of, st7703_of_match); + +-static struct mipi_dsi_driver jh057n_driver = { +- .probe = jh057n_probe, +- .remove = jh057n_remove, +- .shutdown = jh057n_shutdown, ++static struct mipi_dsi_driver st7703_driver = { ++ .probe = st7703_probe, ++ .remove = st7703_remove, ++ .shutdown = st7703_shutdown, + .driver = { + .name = DRV_NAME, +- .of_match_table = jh057n_of_match, ++ .of_match_table = st7703_of_match, + }, + }; +-module_mipi_dsi_driver(jh057n_driver); ++module_mipi_dsi_driver(st7703_driver); + + MODULE_AUTHOR("Guido Günther "); +-MODULE_DESCRIPTION("DRM driver for Rocktech JH057N00900 MIPI DSI panel"); ++MODULE_DESCRIPTION("DRM driver for Sitronix ST7703 based MIPI DSI panels"); + MODULE_LICENSE("GPL v2"); +-- +2.26.2 + diff --git a/0006-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch b/0006-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch new file mode 100644 index 000000000..8436ea3cb --- /dev/null +++ b/0006-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch @@ -0,0 +1,129 @@ +From 19802e031428f7cf967259fdf8794a971164a44a Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 26 Jun 2020 02:55:54 +0200 +Subject: [PATCH 06/13] drm/panel: st7703: Prepare for supporting multiple + panels + +Parametrize the driver so that it can support more panels based +on st7703 controller. + +Signed-off-by: Ondrej Jirman +--- + drivers/gpu/drm/panel/panel-sitronix-st7703.c | 43 +++++++++++++------ + 1 file changed, 31 insertions(+), 12 deletions(-) + +diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c +index 511af659f273b..08cbc316266c1 100644 +--- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c ++++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + #include + + #include