Linux 6.1.143
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.1.143 kernel.
All users of the 6.1 kernel series must upgrade.
The updated 6.1.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.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
------------
Documentation/devicetree/bindings/serial/8250.yaml | 2 Makefile | 2 arch/arm/include/asm/ptrace.h | 5 arch/arm64/mm/mmu.c | 3 arch/s390/kernel/entry.S | 2 arch/um/drivers/ubd_user.c | 2 arch/um/include/asm/asm-prototypes.h | 5 arch/um/kernel/trap.c | 129 +++- arch/x86/tools/insn_decoder_test.c | 5 arch/x86/um/asm/checksum.h | 3 drivers/dma/xilinx/xilinx_dma.c | 2 drivers/firmware/arm_scmi/driver.c | 44 + drivers/firmware/arm_scmi/protocols.h | 6 drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 17 drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 6 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 2 drivers/gpu/drm/amd/amdkfd/kfd_events.c | 1 drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_v9.c | 2 drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c | 3 drivers/gpu/drm/bridge/cdns-dsi.c | 32 drivers/gpu/drm/bridge/ti-sn65dsi86.c | 109 ++- drivers/gpu/drm/etnaviv/etnaviv_sched.c | 5 drivers/gpu/drm/msm/msm_gpu_devfreq.c | 1 drivers/gpu/drm/tegra/dc.c | 17 drivers/gpu/drm/tegra/hub.c | 4 drivers/gpu/drm/tegra/hub.h | 3 drivers/gpu/drm/udl/udl_drv.c | 2 drivers/hid/hid-lenovo.c | 11 drivers/hid/wacom_sys.c | 6 drivers/hv/channel_mgmt.c | 15 drivers/hv/connection.c | 134 +--- drivers/hv/hv.c | 36 - drivers/hv/hv_common.c | 231 +++++++ drivers/hv/hyperv_vmbus.h | 7 drivers/hv/vmbus_drv.c | 206 ------ drivers/hwmon/pmbus/max34440.c | 48 + drivers/hwtracing/coresight/coresight-core.c | 3 drivers/hwtracing/coresight/coresight-priv.h | 2 drivers/i2c/busses/i2c-robotfuzz-osif.c | 6 drivers/i2c/busses/i2c-tiny-usb.c | 6 drivers/iio/adc/ad_sigma_delta.c | 4 drivers/iio/pressure/zpa2326.c | 2 drivers/leds/led-class-multicolor.c | 3 drivers/mailbox/mailbox.c | 2 drivers/md/bcache/super.c | 7 drivers/md/dm-raid.c | 2 drivers/md/md-bitmap.c | 2 drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h | 1 drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c | 212 +++--- drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h | 6 drivers/media/usb/uvc/uvc_ctrl.c | 40 - drivers/mfd/max14577.c | 1 drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c | 26 drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 644 ++------------------ drivers/net/ethernet/freescale/enetc/enetc_hw.h | 2 drivers/nvme/host/ioctl.c | 15 drivers/pci/controller/pcie-apple.c | 7 drivers/s390/crypto/pkey_api.c | 2 drivers/scsi/megaraid/megaraid_sas_base.c | 6 drivers/staging/rtl8723bs/core/rtw_security.c | 44 - drivers/tty/serial/imx.c | 17 drivers/tty/serial/uartlite.c | 25 drivers/tty/vt/vt.c | 12 drivers/uio/uio_hv_generic.c | 10 drivers/usb/class/cdc-wdm.c | 23 drivers/usb/common/usb-conn-gpio.c | 25 drivers/usb/core/usb.c | 14 drivers/usb/dwc2/gadget.c | 6 drivers/usb/gadget/function/f_tcm.c | 4 drivers/usb/typec/altmodes/displayport.c | 4 drivers/usb/typec/mux.c | 4 drivers/video/console/dummycon.c | 24 drivers/video/console/mdacon.c | 21 drivers/video/console/newport_con.c | 12 drivers/video/console/sticon.c | 14 drivers/video/console/vgacon.c | 34 - drivers/video/fbdev/core/fbcon.c | 40 - drivers/video/fbdev/core/fbmem.c | 18 drivers/video/fbdev/hyperv_fb.c | 8 fs/btrfs/disk-io.c | 3 fs/btrfs/inode.c | 81 +- fs/btrfs/volumes.c | 6 fs/ceph/file.c | 2 fs/f2fs/super.c | 30 fs/jfs/jfs_dmap.c | 41 - fs/namespace.c | 8 fs/nfs/inode.c | 2 fs/nfs/nfs4proc.c | 17 fs/omfs/file.c | 12 fs/omfs/omfs_fs.h | 2 fs/overlayfs/util.c | 4 fs/smb/client/cifsglob.h | 1 fs/smb/client/cifspdu.h | 6 fs/smb/client/cifssmb.c | 1 fs/smb/client/misc.c | 8 fs/smb/client/sess.c | 1 fs/smb/server/smb2pdu.c | 62 - include/asm-generic/mshyperv.h | 2 include/linux/console.h | 13 include/linux/hyperv.h | 2 include/linux/ipv6.h | 1 include/uapi/linux/vm_sockets.h | 4 io_uring/kbuf.c | 2 lib/Kconfig.debug | 9 lib/Makefile | 2 lib/longest_symbol_kunit.c | 82 ++ net/atm/clip.c | 11 net/atm/resources.c | 3 net/bluetooth/l2cap_core.c | 9 net/core/selftests.c | 5 net/ipv6/ip6_output.c | 9 net/mac80211/util.c | 2 net/unix/af_unix.c | 58 - net/unix/garbage.c | 24 rust/macros/module.rs | 1 sound/pci/hda/hda_bind.c | 2 sound/pci/hda/hda_intel.c | 3 sound/pci/hda/patch_realtek.c | 1 sound/soc/amd/yc/acp6x-mach.c | 7 sound/soc/codecs/wcd9335.c | 62 - sound/usb/quirks.c | 2 sound/usb/stream.c | 2 tools/lib/bpf/btf_dump.c | 3 123 files changed, 1594 insertions(+), 1482 deletions(-)
Al Viro (1):
attach_recursive_mnt(): do not lock the covering tree when sliding something under it
Alexis Czezar Torreno (1):
hwmon: (pmbus/max34440) Fix support for max34451
Andy Shevchenko (1):
usb: Add checks for snprintf() calls in usb_alloc_dev()
Aradhya Bhatia (5):
drm/bridge: cdns-dsi: Fix the clock variable for mode_valid() drm/bridge: cdns-dsi: Fix phy de-init and flag it so drm/bridge: cdns-dsi: Fix connecting to next bridge drm/bridge: cdns-dsi: Check return value when getting default PHY config drm/bridge: cdns-dsi: Wait for Clk and Data Lanes to be ready
Benjamin Berg (1):
um: use proper care when taking mmap lock during segfault
Brett A C Sheffield (Librecast) (1):
Revert "ipv6: save dontfrag in cork"
Cezary Rojewski (1):
ALSA: hda: Ignore unsol events for cards being shut down
Chance Yang (1):
usb: common: usb-conn-gpio: use a unique name for usb connector device
Chao Yu (1):
f2fs: don't over-report free space or inodes in statvfs
Chen Ni (1):
fbdev: hyperv_fb: Convert comma to semicolon
Chen Yu (1):
scsi: megaraid_sas: Fix invalid node index
Chen Yufeng (1):
usb: potential integer overflow in usbg_make_tpg()
Cristian Marussi (1):
firmware: arm_scmi: Add a common helper to check if a message is supported
Dave Kleikamp (1):
fs/jfs: consolidate sanity checking in dbMount
Dev Jain (1):
arm64: Restrict pagetable teardown to avoid false warning
Dmitry Kandybka (1):
ceph: fix possible integer overflow in ceph_zero_objects()
Eric Dumazet (1):
atm: clip: prevent NULL deref in clip_push()
FUJITA Tomonori (1):
rust: module: place cleanup_module() in .exit.text section
Fabio Estevam (1):
serial: imx: Restore original RXTL for console to fix data loss
Fedor Pchelkin (1):
s390/pkey: Prevent overflow in size calculation for memdup_user()
Filipe Manana (1):
btrfs: fix a race between renames and directory logging
Frank Min (1):
drm/amdgpu: Add kicker device detection
Frédéric Danis (1):
Bluetooth: L2CAP: Fix L2CAP MTU negotiation
Geert Uytterhoeven (1):
ARM: 9354/1: ptrace: Use bitfield helpers
Greg Kroah-Hartman (1):
Linux 6.1.143
Guilherme G. Piccoli (1):
drivers: hv, hyperv_fb: Untangle and refactor Hyper-V panic notifiers
Gustavo A. R. Silva (1):
fs: omfs: Use flexible-array member in struct omfs_extent
Han Young (1):
NFSv4: Always set NLINK even if the server doesn't support it
Hector Martin (1):
PCI: apple: Fix missing OF node reference in apple_pcie_setup_port
Heiko Carstens (1):
s390/entry: Fix last breaking event handling in case of stack corruption
Heinz Mauelshagen (1):
dm-raid: fix variable in journal device check
Iusico Maxim (1):
HID: lenovo: Restrict F7/9/11 mode to compact keyboards only
Jakub Kicinski (2):
net: selftests: fix TCP packet checksum
eth: bnxt: fix one of the W=1 warnings about fortified memcpy()
Jakub Lewalski (1):
tty: serial: uartlite: register uart driver in init
James Clark (1):
coresight: Only check bottom two claim bits
Janne Grunau (1):
PCI: apple: Set only available ports up
Jason Wang (1):
media: imx-jpeg: Remove unnecessary memset() after dma_alloc_coherent()
Jay Cornwall (1):
drm/amdkfd: Fix race in GWS queue scheduling
Jayesh Choudhary (1):
drm/bridge: ti-sn65dsi86: Add HPD for DisplayPort connector type
Jens Axboe (1):
nvme: always punt polled uring_cmd end_io work to task_work
Jiri Slaby (SUSE) (5):
vgacon: switch vgacon_scrolldelta() and vgacon_restore_screen()
vgacon: remove unneeded forward declarations
tty: vt: make init parameter of consw::con_init() a bool
tty: vt: sanitize arguments of consw::con_clear()
tty: vt: make consw::con_switch() return a bool
John Olender (1):
drm/amdgpu: amdgpu_vram_mgr_new(): Clamp lpfn to total vram
Jonathan Cameron (1):
iio: pressure: zpa2326: Use aligned_s64 for the timestamp
Joonas Lahtinen (1):
Revert "drm/i915/gem: Allow EXEC_CAPTURE on recoverable contexts on DG1"
Jos Wang (1):
usb: typec: displayport: Receive DP Status Update NAK request exit dp altmode
Kameron Carr (1):
Drivers: hv: Change hv_free_hyperv_page() to take void * argument
Kees Cook (1):
ovl: Check for NULL d_inode() in ovl_dentry_upper()
Krzysztof Kozlowski (3):
mfd: max14577: Fix wakeup source leaks on device unbind
ASoC: codecs: wcd9335: Handle nicer probe deferral and simplify with dev_err_probe()
ASoC: codecs: wcd9335: Fix missing free of regulator supplies
Kuniyuki Iwashima (4):
af_unix: Don't call skb_get() for OOB skb.
af_unix: Don't leave consecutive consumed OOB skbs.
af_unix: Don't set -ECONNRESET for consumed OOB skb.
atm: Release atm_dev_mutex after removing procfs in atm_dev_deregister().
Lachlan Hodges (1):
wifi: mac80211: fix beacon interval calculation overflow
Linggang Zeng (1):
bcache: fix NULL pointer in cache_set_flush()
Long Li (3):
Drivers: hv: move panic report code from vmbus to hv early init code
Drivers: hv: Allocate interrupt and monitor pages aligned to system page boundary
uio_hv_generic: Align ring size to system page
Mario Limonciello (1):
ALSA: usb-audio: Add a quirk for Lenovo Thinkpad Thunderbolt 3 dock
Mark Harmstone (1):
btrfs: update superblock's device bytes_used when dropping chunk
Maíra Canal (1):
drm/etnaviv: Protect the scheduler's pending list with its lock
Michael Chan (2):
bnxt_en: Fix W=1 warning in bnxt_dcb.c from fortify memcpy()
bnxt_en: Fix W=stringop-overflow warning in bnxt_dcb.c
Michael Grzeschik (2):
usb: dwc2: also exit clock_gating when stopping udc while suspended
usb: typec: mux: do not return on EOPNOTSUPP in {mux, switch}_set
Michael Kelley (1):
Drivers: hv: vmbus: Remove second mapping of VMBus monitor pages
Ming Qian (5):
media: imx-jpeg: Add a timeout mechanism for each frame
media: imx-jpeg: Support to assign slot for encoder/decoder
media: imx-jpeg: Move mxc_jpeg_free_slot_data() ahead
media: imx-jpeg: Reset slot data pointers when freed
media: imx-jpeg: Cleanup after an allocation error
Murad Masimov (1):
fbdev: Fix do_register_framebuffer to prevent null-ptr-deref in fb_videomode_to_var
Namjae Jeon (3):
ksmbd: allow a filename to contain special characters on SMB3.1.1 posix extension
ksmbd: Use unsafe_memcpy() for ntlm_negotiate
ksmbd: remove unsafe_memcpy use in session setup
Nathan Chancellor (2):
staging: rtl8723bs: Avoid memset() in aes_cipher() and aes_decipher() x86/tools: Drop duplicate unlikely() definition in insn_decoder_test.c
Olga Kornievskaia (1):
NFSv4.2: fix listxattr to return selinux security label
Oliver Schramm (1):
ASoC: amd: yc: Add DMI quirk for Lenovo IdeaPad Slim 5 15
Pali Rohár (2):
cifs: Correctly set SMB1 SessionKey field in Session Setup Request
cifs: Fix cifs_query_path_info() for Windows NT servers
Pavel Begunkov (1):
io_uring/kbuf: account ring io_buffer_list memory
Peng Fan (2):
mailbox: Not protect module_put with spin_lock_irqsave
ASoC: codec: wcd9335: Convert to GPIO descriptors
Purva Yeshi (1):
iio: adc: ad_sigma_delta: Fix use of uninitialized status_pos
Qasim Ijaz (3):
HID: wacom: fix memory leak on kobject creation failure
HID: wacom: fix memory leak on sysfs attribute creation failure
HID: wacom: fix kobject reference count leak
Qiu-ji Chen (1):
drm/tegra: Fix a possible null pointer dereference
Qu Wenruo (1):
btrfs: handle csum tree error with rescue=ibadroots correctly
Ricardo Ribalda (1):
media: uvcvideo: Rollback non processed entities on error
Rick Edgecombe (1):
Drivers: hv: vmbus: Leak pages if set_memory_encrypted() fails
Robert Hodaszi (1):
usb: cdc-wdm: avoid setting WDM_READ for ZLP-s
Salvatore Bonaccorso (1):
ALSA: hda/realtek: Fix built-in mic on ASUS VivoBook X507UAR
Sami Tolvanen (1):
um: Add cmpxchg8b_emu and checksum functions to asm-prototypes.h
Saurabh Sengar (2):
Drivers: hv: vmbus: Add utility function for querying ring size
uio_hv_generic: Query the ringbuffer size for device
Scott Mayhew (1):
NFSv4: xattr handlers should check for absent nfs filehandles
Sergio González Collado (1):
Kunit to check the longest symbol length
Sibi Sankar (1):
firmware: arm_scmi: Ensure that the message-id supports fastchannel
Simon Horman (1):
net: enetc: Correct endianness handling in _enetc_rd_reg64
Stefano Garzarella (1):
vsock/uapi: fix linux/vm_sockets.h userspace compilation errors
Stephan Gerhold (1):
drm/msm/gpu: Fix crash when throttling GPU immediately during boot
Sven Schwermer (1):
leds: multicolor: Fix intensity setting while SW blinking
Thierry Reding (1):
drm/tegra: Assign plane type before registration
Thomas Gessler (1):
dmaengine: xilinx_dma: Set dma_device directions
Thomas Zimmermann (2):
dummycon: Trigger redraw when switching consoles with deferred takeover drm/udl: Unregister device before cleaning up on disconnect
Tiwei Bie (1):
um: ubd: Add missing error check in start_io_thread()
Vasiliy Kovalev (1):
jfs: validate AG parameters in dbMount() to prevent crashes
Vijendar Mukunda (1):
ALSA: hda: Add new pci id for AMD GPU display HD audio controller
Ville Syrjälä (1):
drm/i915/gem: Allow EXEC_CAPTURE on recoverable contexts on DG1
Wentao Liang (1):
drm/amd/display: Add null pointer check for get_first_active_display()
Wolfram Sang (3):
i2c: tiny-usb: disable zero-length read messages
i2c: robotfuzz-osif: disable zero-length read messages drm/bridge: ti-sn65dsi86: make use of debugfs_init callback
Yao Zi (1):
dt-bindings: serial: 8250: Make clocks and clock-frequency exclusive
Yifan Zhang (1):
amd/amdkfd: fix a kfd_process ref leak
Youngjun Lee (1):
ALSA: usb-audio: Fix out-of-bounds read in snd_usb_get_audioformat_uac3()
Yu Kuai (1):
md/md-bitmap: fix dm-raid max_write_behind setting
Yuan Chen (1):
libbpf: Fix null pointer dereference in btf_dump__free on allocation failure
Zhang Zekun (1):
PCI: apple: Use helper function for_each_child_of_node_scoped()
Greg Kroah-Hartman
maintainerDocumentation/devicetree/bindings/serial/8250.yaml +1 -1
@@ -44,7 +44,7 @@ allOf: - ns16550 - ns16550a then: - anyOf: + oneOf: - required: [ clock-frequency ] - required: [ clocks ]
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 1 -SUBLEVEL = 142 +SUBLEVEL = 143 EXTRAVERSION = NAME = Curry Ramen
arch/arm/include/asm/ptrace.h +3 -2
@@ -10,6 +10,7 @@#include <uapi/asm/ptrace.h> #ifndef __ASSEMBLY__ +#include <linux/bitfield.h> #include <linux/types.h> struct pt_regs {
@@ -35,8 +36,8 @@ struct svc_pt_regs {#ifndef CONFIG_CPU_V7M #define isa_mode (regs) \ - ((((regs)->ARM_cpsr & PSR_J_BIT) >> (__ffs(PSR_J_BIT) - 1)) | \ - (((regs)->ARM_cpsr & PSR_T_BIT) >> (__ffs(PSR_T_BIT)))) + (FIELD_GET(PSR_J_BIT, (regs)->ARM_cpsr) << 1 | \ + FIELD_GET(PSR_T_BIT, (regs)->ARM_cpsr))#else #define isa_mode (regs) 1/* Thumb */ #endif
arch/arm64/mm/mmu.c +2 -1
@@ -1503,7 +1503,8 @@ int pud_free_pmd_page(pud_t *pudp, unsigned long addr) next = addr; end = addr +PUD_SIZE ;do { -pmd_free_pte_page (pmdp, next); +if (pmd_present (READ_ONCE (*pmdp))) +pmd_free_pte_page (pmdp, next); }while (pmdp++, next +=PMD_SIZE , next != end);pud_clear (pudp);
arch/s390/kernel/entry.S +1 -1
@@ -690,7 +690,7 @@ ENTRY(stack_overflow) stmg %r0,%r7,__PT_R0(%r11) stmg %r8,%r9,__PT_PSW(%r11) mvc __PT_R8(64,%r11),0(%r14) - stg %r10,__PT_ORIG_GPR2(%r11) # store last break to orig_gpr2 + mvc __PT_ORIG_GPR2(8,%r11),__LC_PGM_LAST_BREAK xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) lgr %r2,%r11 # pass pointer to pt_regs jg kernel_stack_overflow
arch/um/drivers/ubd_user.c +1 -1
@@ -41,7 +41,7 @@ int start_io_thread(unsigned long sp, int *fd_out) *fd_out = fds[1 ]; err =os_set_fd_block (*fd_out,0 ); - err =os_set_fd_block (kernel_fd,0 ); + err |=os_set_fd_block (kernel_fd,0 );if (err) {printk ("start_io_thread - failed to set nonblocking I/O.\n" ); goto out_close;
arch/um/include/asm/asm-prototypes.h +5 -0
@@ -1 +1,6 @@#include <asm-generic/asm-prototypes.h> +#include <asm/checksum.h> + +#ifdef CONFIG_UML_X86 +extern void cmpxchg8b_emu (void ); +#endif
arch/um/kernel/trap.c +117 -12
144 lines not on this page · raw message
arch/x86/tools/insn_decoder_test.c +2 -3
@@ -10,8 +10,7 @@#include <assert.h> #include <unistd.h> #include <stdarg.h> - -#define unlikely (cond) (cond) +#include <linux/kallsyms.h> #include <asm/insn.h> #include <inat.c>
@@ -106,7 +105,7 @@ static void parse_args(int argc, char **argv) } } -#define BUFSIZE 256 +#define BUFSIZE (256 + KSYM_NAME_LEN)int main (int argc,char **argv) {
arch/x86/um/asm/checksum.h +3 -0
@@ -20,6 +20,9 @@*/ extern __wsum csum_partial (const void *buff,int len,__wsum sum); +/* Do not call this directly. Declared for export type visibility. */ +extern __visible __wsum csum_partial_copy_generic(const void *src, void *dst, int len); +/** * csum_fold - Fold and invert a 32bit checksum. * sum: 32bit unfolded sum
drivers/dma/xilinx/xilinx_dma.c +2 -0
@@ -2859,6 +2859,8 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,return -EINVAL ; } + xdev->common.directions |= chan->direction; +/* Request the interrupt */ chan->irq =of_irq_get (node, chan->tdest);if (chan->irq <0 )
drivers/firmware/arm_scmi/driver.c +44 -0
68 lines not on this page · raw message
drivers/firmware/arm_scmi/protocols.h +6 -0
@@ -29,6 +29,8 @@#define PROTOCOL_REV_MAJOR (x) ((u16)(FIELD_GET(PROTOCOL_REV_MAJOR_MASK, (x))))#define PROTOCOL_REV_MINOR (x) ((u16)(FIELD_GET(PROTOCOL_REV_MINOR_MASK, (x)))) +#define MSG_SUPPORTS_FASTCHANNEL (x) ((x) & BIT(0)) +enum scmi_common_cmd {PROTOCOL_VERSION =0x0 ,PROTOCOL_ATTRIBUTES =0x1 ,
@@ -243,6 +245,8 @@ struct scmi_fc_info {* provided in @ops. * @iter_response_run: A common helper to trigger the run of a previously * initialized iterator. +* @protocol_msg_check: A common helper to check is a specific protocol message +* is supported. * @fastchannel_init: A common helper used to initialize FC descriptors by * gathering FC descriptions from the SCMI platform server. * @fastchannel_db_ring: A common helper to ring a FC doorbell.
@@ -255,6 +259,8 @@ struct scmi_proto_helpers_ops { unsigned int max_resources, u8 msg_id, size_t tx_size, void *priv);int (*iter_response_run)(void *iter); +int (*protocol_msg_check)(const struct scmi_protocol_handle *ph, +u32 message_id,u32 *attributes); void (*fastchannel_init)(const struct scmi_protocol_handle *ph, u8 describe_id, u32 message_id, u32 valid_size, u32 domain,
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c +17 -0
@@ -28,6 +28,10 @@#include "amdgpu.h" #include "amdgpu_ucode.h" +static const struct kicker_device kicker_device_list[] = { + {0x744B ,0x00 }, +}; +static void amdgpu_ucode_print_common_hdr (const struct common_firmware_header *hdr) {DRM_DEBUG ("size_bytes: %u\n" ,le32_to_cpu (hdr->size_bytes));
@@ -1059,6 +1063,19 @@ int amdgpu_ucode_init_bo(struct amdgpu_device *adev)return 0 ; } +bool amdgpu_is_kicker_fw (struct amdgpu_device *adev) +{ +int i; + +for (i =0 ; i <ARRAY_SIZE (kicker_device_list); i++) { +if (adev->pdev->device == kicker_device_list[i].device && + adev->pdev->revision == kicker_device_list[i].revision) +return true; + } + +return false; +} +void amdgpu_ucode_ip_version_decode (struct amdgpu_device *adev,int block_type,char *ucode_prefix,int len) {int maj, min, rev;
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h +6 -0
@@ -535,6 +535,11 @@ struct amdgpu_firmware {uint64_t fw_buf_mc; }; +struct kicker_device { +unsigned short device; +u8 revision; +}; +void amdgpu_ucode_print_mc_hdr (const struct common_firmware_header *hdr);void amdgpu_ucode_print_smc_hdr (const struct common_firmware_header *hdr);void amdgpu_ucode_print_gfx_hdr (const struct common_firmware_header *hdr);
@@ -561,5 +566,6 @@ amdgpu_ucode_get_load_type(struct amdgpu_device *adev, int load_type);const char *amdgpu_ucode_name (enum AMDGPU_UCODE_ID ucode_id);void amdgpu_ucode_ip_version_decode (struct amdgpu_device *adev,int block_type,char *ucode_prefix,int len); +bool amdgpu_is_kicker_fw (struct amdgpu_device *adev);#endif
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c +1 -1
@@ -396,7 +396,7 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,int r; lpfn = (u64 )place->lpfn <<PAGE_SHIFT ; -if (!lpfn) +if (!lpfn || lpfn > man->size) lpfn = man->size; fpfn = (u64 )place->fpfn <<PAGE_SHIFT ;
drivers/gpu/drm/amd/amdkfd/kfd_events.c +1 -0
@@ -1340,6 +1340,7 @@ void kfd_signal_poison_consumed_event(struct kfd_dev *dev, u32 pasid) user_gpu_id =kfd_process_get_user_gpu_id (p, dev->id);if (unlikely (user_gpu_id == -EINVAL )) {WARN_ONCE (1 ,"Could not get user_gpu_id from dev->id:%x\n" , dev->id); +kfd_unref_process (p);return ; }
drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_v9.c +1 -1
@@ -201,7 +201,7 @@ static int pm_map_queues_v9(struct packet_manager *pm, uint32_t *buffer, packet->bitfields2.engine_sel = engine_sel__mes_map_queues__compute_vi; - packet->bitfields2.gws_control_queue = q->gws ?1 :0 ; + packet->bitfields2.gws_control_queue = q->properties.is_gws ?1 :0 ; packet->bitfields2.extended_engine_sel = extended_engine_sel__mes_map_queues__legacy_engine_sel; packet->bitfields2.queue_type =
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c +3 -0
@@ -368,6 +368,9 @@ enum mod_hdcp_status mod_hdcp_hdcp1_enable_encryption(struct mod_hdcp *hdcp)struct mod_hdcp_display *display =get_first_active_display (hdcp);enum mod_hdcp_status status =MOD_HDCP_STATUS_SUCCESS ; +if (!display) +return MOD_HDCP_STATUS_DISPLAY_NOT_FOUND ; +mutex_lock (&psp->hdcp_context.mutex); hdcp_cmd = (struct ta_hdcp_shared_memory *)psp->hdcp_context.context.mem_context.shared_buf;memset (hdcp_cmd,0 ,sizeof (struct ta_hdcp_shared_memory ));
drivers/gpu/drm/bridge/cdns-dsi.c +26 -6
@@ -609,15 +609,18 @@ static int cdns_dsi_check_conf(struct cdns_dsi *dsi,struct phy_configure_opts_mipi_dphy *phy_cfg = &output->phy_opts.mipi_dphy;unsigned long dsi_hss_hsa_hse_hbp;unsigned int nlanes = output->dev->lanes; +int mode_clock = (mode_valid_check ? mode->clock : mode->crtc_clock);int ret; ret =cdns_dsi_mode2cfg (dsi, mode, dsi_cfg, mode_valid_check);if (ret)return ret; -phy_mipi_dphy_get_default_config (mode->crtc_clock *1000 , -mipi_dsi_pixel_format_to_bpp (output->dev->format), - nlanes, phy_cfg); + ret =phy_mipi_dphy_get_default_config (mode_clock *1000 , +mipi_dsi_pixel_format_to_bpp (output->dev->format), + nlanes, phy_cfg); +if (ret) +return ret; ret =cdns_dsi_adjust_phy_config (dsi, dsi_cfg, phy_cfg, mode, mode_valid_check);if (ret)
@@ -717,6 +720,11 @@ static void cdns_dsi_bridge_post_disable(struct drm_bridge *bridge)struct cdns_dsi_input *input =bridge_to_cdns_dsi_input (bridge);struct cdns_dsi *dsi =input_to_dsi (input); + dsi->phy_initialized = false; + dsi->link_initialized = false; +phy_power_off (dsi->dphy); +phy_exit (dsi->dphy); +pm_runtime_put (dsi->base.dev); }
@@ -798,7 +806,7 @@ static void cdns_dsi_bridge_enable(struct drm_bridge *bridge)struct phy_configure_opts_mipi_dphy *phy_cfg = &output->phy_opts.mipi_dphy;unsigned long tx_byte_period;struct cdns_dsi_cfg dsi_cfg; -u32 tmp, reg_wakeup, div; +u32 tmp, reg_wakeup, div, status;int nlanes;if (WARN_ON (pm_runtime_get_sync (dsi->base.dev) <0 ))
@@ -812,6 +820,19 @@ static void cdns_dsi_bridge_enable(struct drm_bridge *bridge)cdns_dsi_hs_init (dsi);cdns_dsi_init_link (dsi); +/* +* Now that the DSI Link and DSI Phy are initialized, +* wait for the CLK and Data Lanes to be ready. +*/ + tmp =CLK_LANE_RDY ; +for (int i =0 ; i < nlanes; i++) + tmp |=DATA_LANE_RDY (i); + +if (readl_poll_timeout (dsi->regs +MCTL_MAIN_STS , status, + (tmp == (status & tmp)),100 ,500000 )) +dev_err (dsi->base.dev, +"Timed Out: DSI-DPhy Clock and Data Lanes not ready.\n" ); +writel (HBP_LEN (dsi_cfg.hbp) |HSA_LEN (dsi_cfg.hsa), dsi->regs +VID_HSIZE1 ); writel(HFP_LEN(dsi_cfg.hfp) | HACT_LEN(dsi_cfg.hact),
@@ -986,7 +1007,7 @@ static int cdns_dsi_attach(struct mipi_dsi_host *host, bridge =drm_panel_bridge_add_typed (panel,DRM_MODE_CONNECTOR_DSI ); }else { - bridge =of_drm_find_bridge (dev->dev.of_node); + bridge =of_drm_find_bridge (np);if (!bridge) bridge =ERR_PTR (-EINVAL ); }
@@ -1186,7 +1207,6 @@ static int __maybe_unused cdns_dsi_suspend(struct device *dev)clk_disable_unprepare (dsi->dsi_sys_clk);clk_disable_unprepare (dsi->dsi_p_clk);reset_control_assert (dsi->dsi_p_rst); - dsi->link_initialized = false;return 0 ; }
drivers/gpu/drm/bridge/ti-sn65dsi86.c +70 -39
155 lines not on this page · raw message
drivers/gpu/drm/etnaviv/etnaviv_sched.c +4 -1
@@ -34,6 +34,7 @@ static enum drm_gpu_sched_stat etnaviv_sched_timedout_job(struct drm_sched_job *sched_job) {struct etnaviv_gem_submit *submit =to_etnaviv_submit (sched_job); +struct drm_gpu_scheduler *sched = sched_job->sched;struct etnaviv_gpu *gpu = submit->gpu;u32 dma_addr;int change;
@@ -75,7 +76,9 @@ static enum drm_gpu_sched_stat etnaviv_sched_timedout_job(struct drm_sched_jobreturn DRM_GPU_SCHED_STAT_NOMINAL ; out_no_timeout: -list_add (&sched_job->list, &sched_job->sched->pending_list); +spin_lock (&sched->job_list_lock); +list_add (&sched_job->list, &sched->pending_list); +spin_unlock (&sched->job_list_lock);return DRM_GPU_SCHED_STAT_NOMINAL ; }
drivers/gpu/drm/msm/msm_gpu_devfreq.c +1 -0
@@ -147,6 +147,7 @@ void msm_devfreq_init(struct msm_gpu *gpu)return ;mutex_init (&df->lock); + df->suspended = true; ret =dev_pm_qos_add_request (&gpu->pdev->dev, &df->boost_freq,DEV_PM_QOS_MIN_FREQUENCY ,0 );
drivers/gpu/drm/tegra/dc.c +12 -5
@@ -1319,10 +1319,16 @@ static struct drm_plane *tegra_dc_add_shared_planes(struct drm_device *drm,if (wgrp->dc == dc->pipe) {for (j =0 ; j < wgrp->num_windows; j++) {unsigned int index = wgrp->windows[j]; +enum drm_plane_type type; + +if (primary) + type =DRM_PLANE_TYPE_OVERLAY ; +else + type =DRM_PLANE_TYPE_PRIMARY ; plane =tegra_shared_plane_create (drm, dc, wgrp->index, - index); + index, type);if (IS_ERR (plane))return plane;
@@ -1330,10 +1336,8 @@ static struct drm_plane *tegra_dc_add_shared_planes(struct drm_device *drm,* Choose the first shared plane owned by this * head as the primary plane. */ -if (!primary) { - plane->type =DRM_PLANE_TYPE_PRIMARY ; +if (!primary) primary = plane; - } } } }
@@ -1387,7 +1391,10 @@ static void tegra_crtc_reset(struct drm_crtc *crtc)if (crtc->state)tegra_crtc_atomic_destroy_state (crtc, crtc->state); -__drm_atomic_helper_crtc_reset (crtc, &state->base); +if (state) +__drm_atomic_helper_crtc_reset (crtc, &state->base); +else +__drm_atomic_helper_crtc_reset (crtc,NULL ); } static struct drm_crtc_state *
drivers/gpu/drm/tegra/hub.c +2 -2
@@ -756,9 +756,9 @@ static const struct drm_plane_helper_funcs tegra_shared_plane_helper_funcs = {struct drm_plane *tegra_shared_plane_create (struct drm_device *drm,struct tegra_dc *dc,unsigned int wgrp, -unsigned int index) +unsigned int index, +enum drm_plane_type type) { -enum drm_plane_type type =DRM_PLANE_TYPE_OVERLAY ;struct tegra_drm *tegra = drm->dev_private;struct tegra_display_hub *hub = tegra->hub;struct tegra_shared_plane *plane;
drivers/gpu/drm/tegra/hub.h +2 -1
@@ -80,7 +80,8 @@ void tegra_display_hub_cleanup(struct tegra_display_hub *hub);struct drm_plane *tegra_shared_plane_create (struct drm_device *drm,struct tegra_dc *dc,unsigned int wgrp, -unsigned int index); +unsigned int index, +enum drm_plane_type type);int tegra_display_hub_atomic_check (struct drm_device *drm,struct drm_atomic_state *state);
drivers/gpu/drm/udl/udl_drv.c +1 -1
@@ -126,9 +126,9 @@ static void udl_usb_disconnect(struct usb_interface *interface) {struct drm_device *dev =usb_get_intfdata (interface); +drm_dev_unplug (dev);drm_kms_helper_poll_fini (dev);udl_drop_usb (dev); -drm_dev_unplug (dev); }/*
drivers/hid/hid-lenovo.c +7 -4
@@ -529,11 +529,14 @@ static void lenovo_features_set_cptkbd(struct hid_device *hdev)/* * Tell the keyboard a driver understands it, and turn F7, F9, F11 into -* regular keys +* regular keys (Compact only) */ - ret =lenovo_send_cmd_cptkbd (hdev,0x01 ,0x03 ); -if (ret) -hid_warn (hdev,"Failed to switch F7/9/11 mode: %d\n" , ret); +if (hdev->product ==USB_DEVICE_ID_LENOVO_CUSBKBD || + hdev->product ==USB_DEVICE_ID_LENOVO_CBTKBD ) { + ret =lenovo_send_cmd_cptkbd (hdev,0x01 ,0x03 ); +if (ret) +hid_warn (hdev,"Failed to switch F7/9/11 mode: %d\n" , ret); + }/* Switch middle button to native mode */ ret =lenovo_send_cmd_cptkbd (hdev,0x09 ,0x01 );
drivers/hid/wacom_sys.c +5 -1
@@ -2012,14 +2012,18 @@ static int wacom_initialize_remotes(struct wacom *wacom) remote->remote_dir =kobject_create_and_add ("wacom_remote" , &wacom->hdev->dev.kobj); -if (!remote->remote_dir) +if (!remote->remote_dir) { +kfifo_free (&remote->remote_fifo);return -ENOMEM ; + } error =sysfs_create_files (remote->remote_dir, remote_unpair_attrs);if (error) {hid_err (wacom->hdev,"cannot create sysfs group err: %d\n" , error); +kfifo_free (&remote->remote_fifo); +kobject_put (remote->remote_dir);return error; }
drivers/hv/channel_mgmt.c +12 -3
@@ -120,7 +120,9 @@ const struct vmbus_device vmbus_devs[] = { },/* File copy */ - { .dev_type = HV_FCOPY, +/* fcopy always uses 16KB ring buffer size and is working well for last many years */ + { .pref_ring_size = 0x4000, + .dev_type =HV_FCOPY ,HV_FCOPY_GUID , .perf_device = false, .allowed_in_isolated = false,
@@ -140,12 +142,19 @@ const struct vmbus_device vmbus_devs[] = { .allowed_in_isolated = false, }, -/* Unknown GUID */ - { .dev_type = HV_UNKNOWN, +/* +* Unknown GUID +* 64 KB ring buffer + 4 KB header should be sufficient size for any Hyper-V device apart +* from HV_NIC and HV_SCSI. This case avoid the fallback for unknown devices to allocate +* much bigger (2 MB) of ring size. +*/ + { .pref_ring_size = 0x11000, + .dev_type = HV_UNKNOWN, .perf_device = false, .allowed_in_isolated = false, }, }; +EXPORT_SYMBOL_GPL (vmbus_devs); static const struct { guid_t guid;
drivers/hv/connection.c +51 -83
179 lines not on this page · raw message
drivers/hv/hv.c +0 -36
@@ -38,42 +38,6 @@ int hv_init(void)return 0 ; } -/* -* Functions for allocating and freeing memory with size and -* alignment HV_HYP_PAGE_SIZE. These functions are needed because -* the guest page size may not be the same as the Hyper-V page -* size. We depend upon kmalloc() aligning power-of-two size -* allocations to the allocation size boundary, so that the -* allocated memory appears to Hyper-V as a page of the size -* it expects. -*/ - -void *hv_alloc_hyperv_page (void ) -{ -BUILD_BUG_ON (PAGE_SIZE <HV_HYP_PAGE_SIZE ); - -if (PAGE_SIZE ==HV_HYP_PAGE_SIZE ) -return (void *)__get_free_page (GFP_KERNEL ); -else -return kmalloc (HV_HYP_PAGE_SIZE ,GFP_KERNEL ); -} - -void *hv_alloc_hyperv_zeroed_page (void ) -{ -if (PAGE_SIZE ==HV_HYP_PAGE_SIZE ) -return (void *)__get_free_page (GFP_KERNEL | __GFP_ZERO); -else -return kzalloc (HV_HYP_PAGE_SIZE ,GFP_KERNEL ); -} - -void hv_free_hyperv_page (unsigned long addr) -{ -if (PAGE_SIZE ==HV_HYP_PAGE_SIZE ) -free_page (addr); -else -kfree ((void *)addr); -} -/* * hv_post_message - Post a message using the hypervisor message IPC. *
drivers/hv/hv_common.c +231 -0
269 lines not on this page · raw message
drivers/hv/hyperv_vmbus.h +5 -2
@@ -241,8 +241,6 @@ struct vmbus_connection {* is child->parent notification */ struct hv_monitor_page *monitor_pages[2 ]; -void *monitor_pages_original[2 ]; -phys_addr_t monitor_pages_pa[2 ];struct list_head chn_msg_list;spinlock_t channelmsg_lock;
@@ -414,6 +412,11 @@ static inline bool hv_is_perf_channel(struct vmbus_channel *channel)return vmbus_devs[channel->device_id].perf_device; } +static inline size_t hv_dev_ring_size (struct vmbus_channel *channel) +{ +return vmbus_devs[channel->device_id].pref_ring_size; +} +static inline bool hv_is_allocated_cpu (unsigned int cpu) {struct vmbus_channel *channel, *sc;
drivers/hv/vmbus_drv.c +15 -191
266 lines not on this page · raw message
drivers/hwmon/pmbus/max34440.c +44 -4
110 lines not on this page · raw message
drivers/hwtracing/coresight/coresight-core.c +2 -1
@@ -189,7 +189,8 @@ static int coresight_find_link_outport(struct coresight_device *csdev,static inline u32 coresight_read_claim_tags (struct coresight_device *csdev) { -return csdev_access_relaxed_read32 (&csdev->access,CORESIGHT_CLAIMCLR ); +return FIELD_GET (CORESIGHT_CLAIM_MASK , +csdev_access_relaxed_read32 (&csdev->access,CORESIGHT_CLAIMCLR )); }static inline bool coresight_is_claimed_self_hosted (struct coresight_device *csdev)
drivers/hwtracing/coresight/coresight-priv.h +2 -0
@@ -8,6 +8,7 @@#include <linux/amba/bus.h> #include <linux/bitops.h> +#include <linux/bitfield.h> #include <linux/io.h> #include <linux/coresight.h> #include <linux/pm_runtime.h>
@@ -32,6 +33,7 @@* Coresight device CLAIM protocol. * See PSCI - ARM DEN 0022D, Section: 6.8.1 Debug and Trace save and restore. */ +#define CORESIGHT_CLAIM_MASK GENMASK(1, 0)#define CORESIGHT_CLAIM_SELF_HOSTED BIT(1)#define TIMEOUT_US 100
drivers/i2c/busses/i2c-robotfuzz-osif.c +6 -0
@@ -111,6 +111,11 @@ static u32 osif_func(struct i2c_adapter *adapter)return I2C_FUNC_I2C |I2C_FUNC_SMBUS_EMUL ; } +/* prevent invalid 0-length usb_control_msg */ +static const struct i2c_adapter_quirks osif_quirks = { + .flags =I2C_AQ_NO_ZERO_LEN_READ , +}; +static const struct i2c_algorithm osif_algorithm = { .master_xfer = osif_xfer, .functionality = osif_func,
@@ -143,6 +148,7 @@ static int osif_probe(struct usb_interface *interface, priv->adapter.owner =THIS_MODULE ; priv->adapter.class =I2C_CLASS_HWMON ; + priv->adapter.quirks = &osif_quirks; priv->adapter.algo = &osif_algorithm; priv->adapter.algo_data = priv; snprintf(priv->adapter.name, sizeof(priv->adapter.name),
drivers/i2c/busses/i2c-tiny-usb.c +6 -0
@@ -140,6 +140,11 @@ static u32 usb_func(struct i2c_adapter *adapter)return ret; } +/* prevent invalid 0-length usb_control_msg */ +static const struct i2c_adapter_quirks usb_quirks = { + .flags =I2C_AQ_NO_ZERO_LEN_READ , +}; +/* This is the actual algorithm we define */ static const struct i2c_algorithm usb_algorithm = { .master_xfer = usb_xfer,
@@ -244,6 +249,7 @@ static int i2c_tiny_usb_probe(struct usb_interface *interface,/* setup i2c adapter description */ dev->adapter.owner =THIS_MODULE ; dev->adapter.class =I2C_CLASS_HWMON ; + dev->adapter.quirks = &usb_quirks; dev->adapter.algo = &usb_algorithm; dev->adapter.algo_data = dev; snprintf(dev->adapter.name, sizeof(dev->adapter.name),
drivers/iio/adc/ad_sigma_delta.c +4 -0
@@ -476,6 +476,10 @@ static irqreturn_t ad_sd_trigger_handler(int irq, void *p)* byte set to zero. */ ad_sd_read_reg_raw (sigma_delta, data_reg, transfer_size, &data[1 ]);break ; + +default : +dev_err_ratelimited (&indio_dev->dev,"Unsupported reg_size: %u\n" , reg_size); + goto irq_handled; }/*
drivers/iio/pressure/zpa2326.c +1 -1
@@ -582,7 +582,7 @@ static int zpa2326_fill_sample_buffer(struct iio_dev *indio_dev,struct {u32 pressure;u16 temperature; -u64 timestamp; +aligned_s64 timestamp; } sample;int err;
drivers/leds/led-class-multicolor.c +2 -1
@@ -61,7 +61,8 @@ static ssize_t multi_intensity_store(struct device *dev,for (i =0 ; i < mcled_cdev->num_colors; i++) mcled_cdev->subled_info[i].intensity = intensity_value[i]; -led_set_brightness (led_cdev, led_cdev->brightness); +if (!test_bit (LED_BLINK_SW , &led_cdev->work_flags)) +led_set_brightness (led_cdev, led_cdev->brightness); ret = size; err_out:mutex_unlock (&led_cdev->led_access);
drivers/mailbox/mailbox.c +1 -1
@@ -459,8 +459,8 @@ void mbox_free_channel(struct mbox_chan *chan)if (chan->txdone_method ==TXDONE_BY_ACK ) chan->txdone_method =TXDONE_BY_POLL ; -module_put (chan->mbox->dev->driver->owner);spin_unlock_irqrestore (&chan->lock, flags); +module_put (chan->mbox->dev->driver->owner); }EXPORT_SYMBOL_GPL (mbox_free_channel);
drivers/md/bcache/super.c +6 -1
@@ -1741,7 +1741,12 @@ static void cache_set_flush(struct closure *cl)mutex_unlock (&b->write_lock); } -if (ca->alloc_thread) +/* +* If the register_cache_set() call to bch_cache_set_alloc() failed, +* ca has not been assigned a value and return error. +* So we need check ca is not NULL during bch_cache_set_unregister(). +*/ +if (ca && ca->alloc_thread)kthread_stop (ca->alloc_thread);if (c->journal.cur) {
drivers/md/dm-raid.c +1 -1
@@ -2381,7 +2381,7 @@ static int super_init_validation(struct raid_set *rs, struct md_rdev *rdev)*/ sb_retrieve_failed_devices (sb, failed_devices);rdev_for_each (r, mddev) { -if (test_bit (Journal, &rdev->flags) || +if (test_bit (Journal, &r->flags) || !r->sb_page)continue ; sb2 =page_address (r->sb_page);
drivers/md/md-bitmap.c +1 -1
@@ -546,7 +546,7 @@ static int md_bitmap_new_disk_sb(struct bitmap *bitmap)* is a good choice? We choose COUNTER_MAX / 2 arbitrarily. */ write_behind = bitmap->mddev->bitmap_info.max_write_behind; -if (write_behind >COUNTER_MAX ) +if (write_behind >COUNTER_MAX /2 ) write_behind =COUNTER_MAX /2 ; sb->write_behind =cpu_to_le32 (write_behind); bitmap->mddev->bitmap_info.max_write_behind = write_behind;
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h +0 -1
@@ -58,7 +58,6 @@#define CAST_OFBSIZE_LO CAST_STATUS18#define CAST_OFBSIZE_HI CAST_STATUS19 -#define MXC_MAX_SLOTS 1/* TODO use all 4 slots*/ /* JPEG-Decoder Wrapper Slot Registers 0..3 */ #define SLOT_BASE 0x10000#define SLOT_STATUS 0x0
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c +127 -85
361 lines not on this page · raw message
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h +4 -2
@@ -92,14 +92,16 @@ struct mxc_jpeg_ctx {struct mxc_jpeg_q_data cap_q;struct v4l2_fh fh;enum mxc_jpeg_enc_state enc_state; -unsigned int slot; +int slot;unsigned int source_change;bool header_parsed;struct v4l2_ctrl_handler ctrl_handler;u8 jpeg_quality; +struct delayed_work task_timer; };struct mxc_jpeg_slot_data { +int slot;bool used;struct mxc_jpeg_desc *desc;// enc/dec descriptor struct mxc_jpeg_desc *cfg_desc;// configuration descriptor
@@ -122,7 +124,7 @@ struct mxc_jpeg_dev {struct v4l2_device v4l2_dev;struct v4l2_m2m_dev *m2m_dev;struct video_device *dec_vdev; -struct mxc_jpeg_slot_data slot_data[MXC_MAX_SLOTS ]; +struct mxc_jpeg_slot_data slot_data;int num_domains;struct device **pd_dev;struct device_link **pd_link;
drivers/media/usb/uvc/uvc_ctrl.c +26 -14
@@ -1752,7 +1752,7 @@ static int uvc_ctrl_commit_entity(struct uvc_device *dev,unsigned int processed_ctrls =0 ;struct uvc_control *ctrl;unsigned int i; -int ret; +int ret =0 ;if (entity ==NULL )return 0 ;
@@ -1781,8 +1781,6 @@ static int uvc_ctrl_commit_entity(struct uvc_device *dev, dev->intfnum, ctrl->info.selector,uvc_ctrl_data (ctrl,UVC_CTRL_DATA_CURRENT ), ctrl->info.size); - else - ret =0 ;if (!ret) processed_ctrls++;
@@ -1794,17 +1792,24 @@ static int uvc_ctrl_commit_entity(struct uvc_device *dev, ctrl->dirty =0 ; -if (ret <0 ) { +if (!rollback && handle && !ret && + ctrl->info.flags &UVC_CTRL_FLAG_ASYNCHRONOUS ) +uvc_ctrl_set_handle (handle, ctrl, handle); + +if (ret <0 && !rollback) {if (err_ctrl) *err_ctrl = ctrl; -return ret; +/* +* If we fail to set a control, we need to rollback +* the next ones. +*/ + rollback =1 ; } - -if (!rollback && handle && - ctrl->info.flags &UVC_CTRL_FLAG_ASYNCHRONOUS ) -uvc_ctrl_set_handle (handle, ctrl, handle); } +if (ret) +return ret; +return processed_ctrls; }
@@ -1835,7 +1840,8 @@ int __uvc_ctrl_commit(struct uvc_fh *handle, int rollback,struct uvc_video_chain *chain = handle->chain;struct uvc_control *err_ctrl;struct uvc_entity *entity; -int ret =0 ; +int ret_out =0 ; +int ret;/* Find the control. */ list_for_each_entry (entity, &chain->entities, chain) {
@@ -1846,17 +1852,23 @@ int __uvc_ctrl_commit(struct uvc_fh *handle, int rollback, ctrls->error_idx =uvc_ctrl_find_ctrl_idx (entity, ctrls, err_ctrl); - goto done; +/* +* When we fail to commit an entity, we need to +* restore the UVC_CTRL_DATA_BACKUP for all the +* controls in the other entities, otherwise our cache +* and the hardware will be out of sync. +*/ + rollback =1 ; + + ret_out = ret; }else if (ret >0 && !rollback) {uvc_ctrl_send_events (handle, entity, ctrls->controls, ctrls->count); } } - ret =0 ; -done:mutex_unlock (&chain->ctrl_mutex); -return ret; +return ret_out; } int uvc_ctrl_get(struct uvc_video_chain *chain,
drivers/mfd/max14577.c +1 -0
@@ -467,6 +467,7 @@ static void max14577_i2c_remove(struct i2c_client *i2c) {struct max14577 *max14577 =i2c_get_clientdata (i2c); +device_init_wakeup (max14577->dev, false);mfd_remove_devices (max14577->dev);regmap_del_irq_chip (max14577->irq, max14577->irq_data);if (max14577->dev_type ==MAXIM_DEVICE_TYPE_MAX77836 )
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c +17 -9
@@ -98,7 +98,6 @@ static int bnxt_hwrm_queue_cos2bw_cfg(struct bnxt *bp, struct ieee_ets *ets, {struct hwrm_queue_cos2bw_cfg_input *req;struct bnxt_cos2bw_cfg cos2bw; -void *data;int rc, i; rc =hwrm_req_init (bp, req,HWRM_QUEUE_COS2BW_CFG );
@@ -129,11 +128,15 @@ static int bnxt_hwrm_queue_cos2bw_cfg(struct bnxt *bp, struct ieee_ets *ets,cpu_to_le32 ((ets->tc_tx_bw[i] *100 ) |BW_VALUE_UNIT_PERCENT1_100 ); } - data = &req->unused_0 + qidx * (sizeof (cos2bw) -4 ); -memcpy (data, &cos2bw.queue_id,sizeof (cos2bw) -4 );if (qidx ==0 ) { req->queue_id0 = cos2bw.queue_id; - req->unused_0 =0 ; + req->queue_id0_min_bw = cos2bw.min_bw; + req->queue_id0_max_bw = cos2bw.max_bw; + req->queue_id0_tsa_assign = cos2bw.tsa; + req->queue_id0_pri_lvl = cos2bw.pri_lvl; + req->queue_id0_bw_weight = cos2bw.bw_weight; + }else { +memcpy (&req->cfg[i -1 ], &cos2bw.cfg,sizeof (cos2bw.cfg)); } }return hwrm_req_send (bp, req);
@@ -144,7 +147,6 @@ static int bnxt_hwrm_queue_cos2bw_qcfg(struct bnxt *bp, struct ieee_ets *ets)struct hwrm_queue_cos2bw_qcfg_output *resp;struct hwrm_queue_cos2bw_qcfg_input *req;struct bnxt_cos2bw_cfg cos2bw; -void *data;int rc, i; rc =hwrm_req_init (bp, req,HWRM_QUEUE_COS2BW_QCFG );
@@ -158,13 +160,19 @@ static int bnxt_hwrm_queue_cos2bw_qcfg(struct bnxt *bp, struct ieee_ets *ets)return rc; } - data = &resp->queue_id0 + offsetof(struct bnxt_cos2bw_cfg , queue_id); -for (i =0 ; i < bp->max_tc; i++, data +=sizeof (cos2bw.cfg)) { +for (i =0 ; i < bp->max_tc; i++) {int tc; -memcpy (&cos2bw.cfg, data,sizeof (cos2bw.cfg)); -if (i ==0 ) +if (i ==0 ) { cos2bw.queue_id = resp->queue_id0; + cos2bw.min_bw = resp->queue_id0_min_bw; + cos2bw.max_bw = resp->queue_id0_max_bw; + cos2bw.tsa = resp->queue_id0_tsa_assign; + cos2bw.pri_lvl = resp->queue_id0_pri_lvl; + cos2bw.bw_weight = resp->queue_id0_bw_weight; + }else { +memcpy (&cos2bw.cfg, &resp->cfg[i -1 ],sizeof (cos2bw.cfg)); + } tc =bnxt_queue_to_tc (bp, cos2bw.queue_id);if (tc <0 )
drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h +84 -560
652 lines not on this page · raw message
drivers/net/ethernet/freescale/enetc/enetc_hw.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/scsi/megaraid/megaraid_sas_base.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/core/rtw_security.c +14 -30
44 lines not on this page · raw message
drivers/usb/typec/altmodes/displayport.c +4 -0
Lines of this file are not shown. View the raw message.
fs/btrfs/inode.c +64 -17
81 lines not on this page · raw message
fs/jfs/jfs_dmap.c +13 -28
41 lines not on this page · raw message
fs/smb/server/smb2pdu.c +30 -32
62 lines not on this page · raw message
lib/longest_symbol_kunit.c new file +82 -0
82 lines not on this page · raw message
net/unix/af_unix.c +28 -30
58 lines not on this page · raw message
sound/soc/codecs/wcd9335.c +20 -42
62 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.