Linux 6.2.2
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 2 -SUBLEVEL = 1 +SUBLEVEL = 2 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth
arch/arm64/boot/dts/socionext/uniphier-pxs3-ref-gadget0.dts +1 -1
@@ -24,7 +24,7 @@ &usb0 { snps,dis_enblslpm_quirk; snps,dis_u2_susphy_quirk; snps,dis_u3_susphy_quirk; - snps,usb2_gadget_lpm_disable; + snps,usb2-gadget-lpm-disable; phy-names = "usb2-phy", "usb3-phy"; phys = <&usb0_hsphy0>, <&usb0_ssphy0>; };
arch/arm64/boot/dts/socionext/uniphier-pxs3-ref-gadget1.dts +1 -1
@@ -24,7 +24,7 @@ &usb1 { snps,dis_enblslpm_quirk; snps,dis_u2_susphy_quirk; snps,dis_u3_susphy_quirk; - snps,usb2_gadget_lpm_disable; + snps,usb2-gadget-lpm-disable; phy-names = "usb2-phy", "usb3-phy"; phys = <&usb1_hsphy0>, <&usb1_ssphy0>; };
arch/arm64/crypto/sm4-ce-gcm-glue.c +25 -26
113 lines not on this page · raw message
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +3 -0
@@ -10359,6 +10359,7 @@ int amdgpu_dm_process_dmub_aux_transfer_sync( ret = p_notify->aux_reply.length; *operation_result = p_notify->result; out: +reinit_completion (&adev->dm.dmub_aux_transfer_done);mutex_unlock (&adev->dm.dpia_aux_lock);return ret; }
@@ -10386,6 +10387,8 @@ int amdgpu_dm_process_dmub_set_config_sync( *operation_result =SET_CONFIG_UNKNOWN_ERROR ; } +if (!is_cmd_complete) +reinit_completion (&adev->dm.dmub_aux_transfer_done);mutex_unlock (&adev->dm.dpia_aux_lock);return ret; }
drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.c +24 -0
@@ -391,3 +391,27 @@ void dcn314_set_pixels_per_cycle(struct pipe_ctx *pipe_ctx) pipe_ctx->stream_res.stream_enc->funcs->set_input_mode (pipe_ctx->stream_res.stream_enc, pix_per_cycle); } + +void dcn314_hubp_pg_control (struct dce_hwseq *hws,unsigned int hubp_inst,bool power_on) +{ +struct dc_context *ctx = hws->ctx; +union dmub_rb_cmd cmd; + +if (hws->ctx->dc->debug.disable_hubp_power_gate) +return ; + +PERF_TRACE (); + +memset (&cmd,0 ,sizeof (cmd)); + cmd.domain_control.header.type =DMUB_CMD__VBIOS ; + cmd.domain_control.header.sub_type =DMUB_CMD__VBIOS_DOMAIN_CONTROL ; + cmd.domain_control.header.payload_bytes =sizeof (cmd.domain_control.data); + cmd.domain_control.data.inst = hubp_inst; + cmd.domain_control.data.power_gate = !power_on; + +dc_dmub_srv_cmd_queue (ctx->dmub_srv, &cmd); +dc_dmub_srv_cmd_execute (ctx->dmub_srv); +dc_dmub_srv_wait_idle (ctx->dmub_srv); + +PERF_TRACE (); +}
drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.h +2 -0
@@ -41,4 +41,6 @@ unsigned int dcn314_calculate_dccg_k1_k2_values(struct pipe_ctx *pipe_ctx, unsigvoid dcn314_set_pixels_per_cycle (struct pipe_ctx *pipe_ctx); +void dcn314_hubp_pg_control (struct dce_hwseq *hws,unsigned int hubp_inst,bool power_on); +#endif /* __DC_HWSS_DCN314_H__ */
drivers/gpu/drm/amd/display/dc/dcn314/dcn314_init.c +1 -1
@@ -137,7 +137,7 @@ static const struct hwseq_private_funcs dcn314_private_funcs = { .plane_atomic_disable = dcn20_plane_atomic_disable, .plane_atomic_power_down = dcn10_plane_atomic_power_down, .enable_power_gating_plane = dcn314_enable_power_gating_plane, - .hubp_pg_control = dcn31_hubp_pg_control, + .hubp_pg_control = dcn314_hubp_pg_control, .program_all_writeback_pipes_in_tree = dcn30_program_all_writeback_pipes_in_tree, .update_odm = dcn314_update_odm, .dsc_pg_control = dcn314_dsc_pg_control,
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h +25 -0
@@ -457,6 +457,10 @@ enum dmub_cmd_vbios_type {* Query DP alt status on a transmitter. */ DMUB_CMD__VBIOS_TRANSMITTER_QUERY_DP_ALT =26 , +/** +* Controls domain power gating +*/ + DMUB_CMD__VBIOS_DOMAIN_CONTROL = 28, };//==============================================================================
@@ -1204,6 +1208,23 @@ struct dmub_rb_cmd_dig1_transmitter_control {union dmub_cmd_dig1_transmitter_control_data transmitter_control;/**< payload */ }; +/** +* struct dmub_rb_cmd_domain_control_data - Data for DOMAIN power control +*/ +struct dmub_rb_cmd_domain_control_data { +uint8_t inst :6 ;/**< DOMAIN instance to control */ +uint8_t power_gate :1 ;/**< 1=power gate, 0=power up */ +uint8_t reserved[3 ];/**< Reserved for future use */ +}; + +/** +* struct dmub_rb_cmd_domain_control - Controls DOMAIN power gating +*/ +struct dmub_rb_cmd_domain_control { +struct dmub_cmd_header header;/**< header */ +struct dmub_rb_cmd_domain_control_data data;/**< payload */ +}; +/** * DPIA tunnel command parameters. */
@@ -3231,6 +3252,10 @@ union dmub_rb_cmd {* Definition of a DMUB_CMD__VBIOS_DIG1_TRANSMITTER_CONTROL command. */ struct dmub_rb_cmd_dig1_transmitter_control dig1_transmitter_control; +/** +* Definition of a DMUB_CMD__VBIOS_DOMAIN_CONTROL command. +*/ +struct dmub_rb_cmd_domain_control domain_control;/** * Definition of a DMUB_CMD__PSR_SET_VERSION command. */
drivers/net/wireless/realtek/rtw88/usb.c +3 -15
@@ -271,6 +271,7 @@ static int rtw_usb_write_port(struct rtw_dev *rtwdev, u8 qsel, struct sk_buff *sreturn -ENOMEM ;usb_fill_bulk_urb (urb, usbd, pipe, skb->data, skb->len, cb, context); + urb->transfer_flags |=URB_ZERO_PACKET ; ret =usb_submit_urb (urb,GFP_ATOMIC );usb_free_urb (urb);
@@ -413,24 +414,11 @@ static int rtw_usb_write_data_rsvd_page(struct rtw_dev *rtwdev, u8 *buf, u32 size) {const struct rtw_chip_info *chip = rtwdev->chip; -struct rtw_usb *rtwusb;struct rtw_tx_pkt_info pkt_info = {0 }; -u32 len, desclen; - - rtwusb =rtw_get_usb_priv (rtwdev); pkt_info.tx_pkt_size = size; pkt_info.qsel =TX_DESC_QSEL_BEACON ; - - desclen = chip->tx_pkt_desc_sz; - len = desclen + size; -if (len % rtwusb->bulkout_size ==0 ) { - len +=RTW_USB_PACKET_OFFSET_SZ ; - pkt_info.offset = desclen +RTW_USB_PACKET_OFFSET_SZ ; - pkt_info.pkt_offset =1 ; - }else { - pkt_info.offset = desclen; - } + pkt_info.offset = chip->tx_pkt_desc_sz;return rtw_usb_write_data (rtwdev, &pkt_info, buf); }
@@ -471,9 +459,9 @@ static int rtw_usb_tx_write(struct rtw_dev *rtwdev,u8 *pkt_desc;int ep; + pkt_info->qsel =rtw_usb_tx_queue_mapping_to_qsel (skb); pkt_desc =skb_push (skb, chip->tx_pkt_desc_sz);memset (pkt_desc,0 , chip->tx_pkt_desc_sz); - pkt_info->qsel =rtw_usb_tx_queue_mapping_to_qsel (skb); ep =qsel_to_ep (rtwusb, pkt_info->qsel);rtw_tx_fill_tx_desc (pkt_info, skb);rtw_tx_fill_txdesc_checksum (rtwdev, pkt_info, skb->data);
drivers/tty/vt/vc_screen.c +4 -3
@@ -403,10 +403,11 @@ vcs_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)unsigned int this_round, skip =0 ;int size; - ret = -ENXIO ; vc =vcs_vc (inode, &viewed); -if (!vc) - goto unlock_out; +if (!vc) { + ret = -ENXIO ; +break ; + }/* Check whether we are above size each round, * as copy_to_user at the end of this loop
drivers/usb/core/hub.c +2 -3
@@ -2389,9 +2389,8 @@ static int usb_enumerate_device_otg(struct usb_device *udev)* usb_enumerate_device - Read device configs/intfs/otg (usbcore-internal) * @udev: newly addressed device (in ADDRESS state) * -* This is only called by usb_new_device() and usb_authorize_device() -* and FIXME -- all comments that apply to them apply here wrt to -* environment. +* This is only called by usb_new_device() -- all comments that apply there +* apply here wrt to environment. * * If the device is WUSB and not authorized, we don't attempt to read * the string descriptors, as they will be errored out by the device
drivers/usb/core/sysfs.c +0 -5
@@ -869,11 +869,7 @@ read_descriptors(struct file *filp, struct kobject *kobj,size_t srclen, n;int cfgno;void *src; -int retval; - retval =usb_lock_device_interruptible (udev); -if (retval <0 ) -return -EINTR ;/* The binary attribute begins with the device descriptor. * Following that are the raw descriptor entries for all the * configurations (config plus subsidiary descriptors).
@@ -898,7 +894,6 @@ read_descriptors(struct file *filp, struct kobject *kobj, off -= srclen; } } -usb_unlock_device (udev);return count - nleft; }
drivers/usb/dwc3/dwc3-pci.c +4 -0
@@ -47,6 +47,7 @@#define PCI_DEVICE_ID_INTEL_ADLS 0x7ae1#define PCI_DEVICE_ID_INTEL_RPL 0xa70e#define PCI_DEVICE_ID_INTEL_RPLS 0x7a61 +#define PCI_DEVICE_ID_INTEL_MTLM 0x7eb1#define PCI_DEVICE_ID_INTEL_MTLP 0x7ec1#define PCI_DEVICE_ID_INTEL_MTL 0x7e7e#define PCI_DEVICE_ID_INTEL_TGL 0x9a15
@@ -467,6 +468,9 @@ static const struct pci_device_id dwc3_pci_id_table[] = { {PCI_VDEVICE (INTEL ,PCI_DEVICE_ID_INTEL_RPLS ), (kernel_ulong_t) &dwc3_pci_intel_swnode, }, + { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_MTLM), + (kernel_ulong_t) &dwc3_pci_intel_swnode, }, + { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_MTLP), (kernel_ulong_t) &dwc3_pci_intel_swnode, },
drivers/usb/gadget/function/u_serial.c +19 -4
@@ -82,6 +82,9 @@#define WRITE_BUF_SIZE 8192/* TX only */ #define GS_CONSOLE_BUF_SIZE 8192 +/* Prevents race conditions while accessing gser->ioport */ +static DEFINE_SPINLOCK (serial_port_lock); +/* console info */ struct gs_console {struct console console;
@@ -1375,8 +1378,10 @@ void gserial_disconnect(struct gserial *gser)if (!port)return ; +spin_lock_irqsave (&serial_port_lock, flags); +/* tell the TTY glue not to do I/O here any more */ -spin_lock_irqsave (&port->port_lock, flags); +spin_lock (&port->port_lock);gs_console_disconnect (port);
@@ -1391,7 +1396,8 @@ void gserial_disconnect(struct gserial *gser)tty_hangup (port->port.tty); } port->suspended = false; -spin_unlock_irqrestore (&port->port_lock, flags); +spin_unlock (&port->port_lock); +spin_unlock_irqrestore (&serial_port_lock, flags);/* disable endpoints, aborting down any active I/O */ usb_ep_disable (gser->out);
@@ -1425,10 +1431,19 @@ EXPORT_SYMBOL_GPL(gserial_suspend);void gserial_resume (struct gserial *gser) { -struct gs_port *port = gser->ioport; +struct gs_port *port;unsigned long flags; -spin_lock_irqsave (&port->port_lock, flags); +spin_lock_irqsave (&serial_port_lock, flags); + port = gser->ioport; + +if (!port) { +spin_unlock_irqrestore (&serial_port_lock, flags); +return ; + } + +spin_lock (&port->port_lock); +spin_unlock (&serial_port_lock); port->suspended = false;if (!port->start_delayed) {spin_unlock_irqrestore (&port->port_lock, flags);
drivers/usb/serial/option.c +4 -0
@@ -402,6 +402,8 @@ static void option_instat_callback(struct urb *urb);#define LONGCHEER_VENDOR_ID 0x1c9e/* 4G Systems products */ +/* This one was sold as the VW and Skoda "Carstick LTE" */ +#define FOUR_G_SYSTEMS_PRODUCT_CARSTICK_LTE 0x7605/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick * * It seems to contain a Qualcomm QSC6240/6290 chipset */ #define FOUR_G_SYSTEMS_PRODUCT_W14 0x9603
@@ -1976,6 +1978,8 @@ static const struct usb_device_id option_ids[] = { .driver_info = RSVD(2) }, { USB_DEVICE(AIRPLUS_VENDOR_ID, AIRPLUS_PRODUCT_MCD650) }, { USB_DEVICE(TLAYTECH_VENDOR_ID, TLAYTECH_PRODUCT_TEU800) }, + { USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_CARSTICK_LTE), + .driver_info = RSVD(0) }, { USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W14), .driver_info = NCTRL(0) | NCTRL(1) }, { USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W100),
drivers/usb/typec/pd.c +0 -1
@@ -161,7 +161,6 @@ static struct device_type source_fixed_supply_type = {static struct attribute *sink_fixed_supply_attrs[] = { &dev_attr_dual_role_power.attr, - &dev_attr_usb_suspend_supported.attr, &dev_attr_unconstrained_power.attr, &dev_attr_usb_communication_capable.attr, &dev_attr_dual_role_data.attr,
net/core/filter.c +2 -2
@@ -5816,7 +5816,7 @@ static int bpf_ipv4_fib_lookup(struct net *net, struct bpf_fib_lookup *params, neigh =__ipv6_neigh_lookup_noref_stub (dev, dst); } -if (!neigh) +if (!neigh || !(neigh->nud_state &NUD_VALID ))return BPF_FIB_LKUP_RET_NO_NEIGH ;return bpf_fib_set_fwd_params (params, neigh, dev, mtu);
@@ -5931,7 +5931,7 @@ static int bpf_ipv6_fib_lookup(struct net *net, struct bpf_fib_lookup *params,* not needed here. */ neigh =__ipv6_neigh_lookup_noref_stub (dev, dst); -if (!neigh) +if (!neigh || !(neigh->nud_state &NUD_VALID ))return BPF_FIB_LKUP_RET_NO_NEIGH ;return bpf_fib_set_fwd_params (params, neigh, dev, mtu);
scripts/tags.sh +1 -1
@@ -91,7 +91,7 @@ all_compiled_sources() { echo include/generated/autoconf.h find $ignore -name "*.cmd" -exec \ - grep -Poh '(?(?=^source_.* \K).*|(?=^ \K\S).*(?= \\))' {} \+ | + sed -n -E 's/^source_.* (.*)/\1/p; s/^ (\S.*) \\/\1/p' {} \+ | awk '!a[$0]++' } | xargs realpath -esq $([ -z "$KBUILD_ABS_SRCTREE" ] && echo --relative-to=.) | sort -u
sound/pci/hda/hda_cs_dsp_ctl.c +2 -2
@@ -218,10 +218,10 @@ int hda_cs_dsp_write_ctl(struct cs_dsp *dsp, const char *name, int type, cs_ctl =cs_dsp_get_ctl (dsp, name, type, alg); ret =cs_dsp_coeff_write_ctrl (cs_ctl,0 , buf, len);mutex_unlock (&dsp->pwr_lock); -if (ret) +if (ret <0 )return ret; -if (cs_ctl->flags &WMFW_CTL_FLAG_SYS ) +if (ret ==0 || (cs_ctl->flags &WMFW_CTL_FLAG_SYS ))return 0 ; ctl = cs_ctl->priv;
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.2.2 kernel.
All users of the 6.2 kernel series must upgrade.
The updated 6.2.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.2.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 arch/arm64/boot/dts/socionext/uniphier-pxs3-ref-gadget0.dts | 2 arch/arm64/boot/dts/socionext/uniphier-pxs3-ref-gadget1.dts | 2 arch/arm64/crypto/sm4-ce-gcm-glue.c | 51 +++++------- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.c | 24 +++++ drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.h | 2 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_init.c | 2 drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 25 +++++ drivers/net/wireless/realtek/rtw88/usb.c | 18 ---- drivers/tty/vt/vc_screen.c | 7 - drivers/usb/core/hub.c | 5 - drivers/usb/core/sysfs.c | 5 - drivers/usb/dwc3/dwc3-pci.c | 4 drivers/usb/gadget/function/u_serial.c | 23 ++++- drivers/usb/serial/option.c | 4 drivers/usb/typec/pd.c | 1 net/core/filter.c | 4 scripts/tags.sh | 2 sound/pci/hda/hda_cs_dsp_ctl.c | 4 20 files changed, 124 insertions(+), 66 deletions(-)
Alan Stern (1):
USB: core: Don't hold device lock while reading the "descriptors" sysfs file
Carlos Llamas (1):
scripts/tags.sh: fix incompatibility with PCRE2
Florian Zumbiehl (1):
USB: serial: option: add support for VW/Skoda "Carstick LTE"
Greg Kroah-Hartman (1):
Linux 6.2.2
Heikki Krogerus (1):
usb: dwc3: pci: add support for the Intel Meteor Lake-M
Herbert Xu (1):
crypto: arm64/sm4-gcm - Fix possible crash in GCM cryption
Kunihiko Hayashi (1):
arm64: dts: uniphier: Fix property name in PXs3 USB node
Martin KaFai Lau (1):
bpf: bpf_fib_lookup should not return neigh in NUD_FAILED state
Nicholas Kazlauskas (1):
drm/amd/display: Move DCN314 DOMAIN power control to DMCUB
Prashanth K (1):
usb: gadget: u_serial: Add null pointer check in gserial_resume
Saranya Gopal (1):
usb: typec: pd: Remove usb_suspend_supported sysfs from sink PDO
Sascha Hauer (3):
wifi: rtw88: usb: Set qsel correctly
wifi: rtw88: usb: send Zero length packets if necessary
wifi: rtw88: usb: drop now unnecessary URB size check
Stylon Wang (1):
drm/amd/display: Properly reuse completion structure
Thomas Weißschuh (1):
vc_screen: don't clobber return value in vcs_read
Vitaly Rodionov (1):
ALSA: hda: cs35l41: Correct error condition handling