mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 13:46:49 +00:00
Merge pull request #6664 from HiassofT/le11-kernel-5.15.48
linux (RPi): update to 5.15.50-4ee9d0f
This commit is contained in:
commit
6e3afa3836
@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="274d0c8ac0ec0850193618dce55c005832f918ea"
|
||||
PKG_SHA256="e823e1ecf1a7a338ac70e5b8fe288a344f898d6361e9f6c99b708ac8b8ee4314"
|
||||
PKG_VERSION="329af8a59d91ea023ce3e2566e2ccd4ec0624438"
|
||||
PKG_SHA256="2182460b3e74befd99520678267bd72f7836e1bdbb4df390707c4d76435d0cd0"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://www.broadcom.com"
|
||||
PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
|
@ -22,8 +22,8 @@ case "${LINUX}" in
|
||||
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
|
||||
;;
|
||||
raspberrypi)
|
||||
PKG_VERSION="6b945e6f05d5cb0a299dbbb9bdd285aff330a204" # 5.15.45
|
||||
PKG_SHA256="84ef98930fbfc7843dfb8715609b948a599746d015c5a42bf0c95a0c531a6909"
|
||||
PKG_VERSION="4ee9d0f86680c63bb99da598d8d7f4e62b004e96" # 5.15.50
|
||||
PKG_SHA256="41dfe0bfb59f1fbb4cb174569ce2eecdd0b91f0b7c662f70a03b2e13746d46e6"
|
||||
PKG_URL="https://github.com/raspberrypi/linux/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
|
||||
;;
|
||||
|
@ -1,60 +0,0 @@
|
||||
From 00c2be0300d88d8c095921018306817650fe271b Mon Sep 17 00:00:00 2001
|
||||
From: Dom Cobley <popcornmix@gmail.com>
|
||||
Date: Wed, 1 Jun 2022 15:43:51 +0100
|
||||
Subject: [PATCH] drm/vc4_hdmi: Allow hotplug detect to be forced
|
||||
|
||||
See: https://forum.libreelec.tv/thread/24783-tv-avr-turns-back-on-right-after-turning-them-off
|
||||
|
||||
While the kernel provides a :D flag for assuming device is connected,
|
||||
it doesn't stop this function from being called and generating a cec_phys_addr_invalidate
|
||||
message when hotplug is deasserted.
|
||||
|
||||
That message provokes a flurry of CEC messages which for many users results in the TV
|
||||
switching back on again and it's very hard to get it to stay switched off.
|
||||
|
||||
It seems to only occur with an AVR and TV connected but has been observed across a
|
||||
number of manufacturers.
|
||||
|
||||
The issue started with https://github.com/raspberrypi/linux/pull/4371
|
||||
and this provides an optional way of getting back the old behaviour
|
||||
|
||||
Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
---
|
||||
drivers/gpu/drm/vc4/vc4_hdmi.c | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
index 5d37cd0741b6f..793dc56746ee6 100644
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -40,6 +40,8 @@
|
||||
#include <linux/component.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/i2c.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/moduleparam.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_gpio.h>
|
||||
#include <linux/of_platform.h>
|
||||
@@ -113,6 +115,10 @@
|
||||
|
||||
#define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000)
|
||||
|
||||
+/* bit field to force hotplug detection. bit0 = HDMI0 */
|
||||
+static int force_hotplug = 0;
|
||||
+module_param(force_hotplug, int, 0644);
|
||||
+
|
||||
static const char * const output_format_str[] = {
|
||||
[VC4_HDMI_OUTPUT_RGB] = "RGB",
|
||||
[VC4_HDMI_OUTPUT_YUV420] = "YUV 4:2:0",
|
||||
@@ -248,7 +254,9 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force)
|
||||
|
||||
WARN_ON(pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev));
|
||||
|
||||
- if (vc4_hdmi->hpd_gpio) {
|
||||
+ if (force_hotplug & BIT(vc4_hdmi->encoder.base.type - VC4_ENCODER_TYPE_HDMI0))
|
||||
+ connected = true;
|
||||
+ else if (vc4_hdmi->hpd_gpio) {
|
||||
if (gpiod_get_value_cansleep(vc4_hdmi->hpd_gpio))
|
||||
connected = true;
|
||||
} else {
|
@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="bcm2835-bootloader"
|
||||
PKG_VERSION="274d0c8ac0ec0850193618dce55c005832f918ea"
|
||||
PKG_SHA256="24d60e6ac978b9a25dfe80064837b39282ba3987f2c66fa4a8cc2222efb31736"
|
||||
PKG_VERSION="329af8a59d91ea023ce3e2566e2ccd4ec0624438"
|
||||
PKG_SHA256="a940fcd856cf81268896dcd0d798ce908a30051f8e45f7470152658843fb6935"
|
||||
PKG_ARCH="arm aarch64"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://www.broadcom.com"
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.15.45 Kernel Configuration
|
||||
# Linux/arm 5.15.49 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="gcc (Debian 10.2.1-6) 10.2.1 20210110"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@ -2023,7 +2023,7 @@ CONFIG_DEVMEM=y
|
||||
# CONFIG_TCG_TPM is not set
|
||||
# CONFIG_XILLYBUS is not set
|
||||
# CONFIG_XILLYUSB is not set
|
||||
# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
|
||||
CONFIG_RANDOM_TRUST_BOOTLOADER=y
|
||||
# end of Character devices
|
||||
|
||||
#
|
||||
@ -5029,7 +5029,22 @@ CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
|
||||
# CONFIG_QNX4FS_FS is not set
|
||||
# CONFIG_QNX6FS_FS is not set
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
# CONFIG_PSTORE is not set
|
||||
CONFIG_PSTORE=y
|
||||
CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
|
||||
CONFIG_PSTORE_DEFLATE_COMPRESS=y
|
||||
# CONFIG_PSTORE_LZO_COMPRESS is not set
|
||||
# CONFIG_PSTORE_LZ4_COMPRESS is not set
|
||||
# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
|
||||
# CONFIG_PSTORE_842_COMPRESS is not set
|
||||
# CONFIG_PSTORE_ZSTD_COMPRESS is not set
|
||||
CONFIG_PSTORE_COMPRESS=y
|
||||
CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
|
||||
CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
|
||||
CONFIG_PSTORE_CONSOLE=y
|
||||
# CONFIG_PSTORE_PMSG is not set
|
||||
# CONFIG_PSTORE_FTRACE is not set
|
||||
CONFIG_PSTORE_RAM=y
|
||||
# CONFIG_PSTORE_BLK is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_EROFS_FS is not set
|
||||
@ -5296,7 +5311,7 @@ CONFIG_CRYPTO_DES=y
|
||||
#
|
||||
# Compression
|
||||
#
|
||||
# CONFIG_CRYPTO_DEFLATE is not set
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
CONFIG_CRYPTO_LZO=m
|
||||
# CONFIG_CRYPTO_842 is not set
|
||||
# CONFIG_CRYPTO_LZ4 is not set
|
||||
@ -5362,7 +5377,7 @@ CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
|
||||
# Crypto library routines
|
||||
#
|
||||
CONFIG_CRYPTO_LIB_AES=y
|
||||
CONFIG_CRYPTO_LIB_ARC4=y
|
||||
CONFIG_CRYPTO_LIB_ARC4=m
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
|
||||
CONFIG_CRYPTO_LIB_CHACHA=m
|
||||
@ -5376,6 +5391,7 @@ CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
|
||||
CONFIG_CRYPTO_LIB_SHA256=y
|
||||
# end of Crypto library routines
|
||||
|
||||
CONFIG_LIB_MEMNEQ=y
|
||||
CONFIG_CRC_CCITT=m
|
||||
CONFIG_CRC16=y
|
||||
# CONFIG_CRC_T10DIF is not set
|
||||
@ -5394,7 +5410,7 @@ CONFIG_LIBCRC32C=m
|
||||
CONFIG_XXHASH=y
|
||||
# CONFIG_RANDOM32_SELFTEST is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=m
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_LZO_COMPRESS=m
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_LZ4_DECOMPRESS=y
|
||||
@ -5409,6 +5425,9 @@ CONFIG_XZ_DEC=y
|
||||
# CONFIG_XZ_DEC_SPARC is not set
|
||||
# CONFIG_XZ_DEC_TEST is not set
|
||||
CONFIG_GENERIC_ALLOCATOR=y
|
||||
CONFIG_REED_SOLOMON=y
|
||||
CONFIG_REED_SOLOMON_ENC8=y
|
||||
CONFIG_REED_SOLOMON_DEC8=y
|
||||
CONFIG_ASSOCIATIVE_ARRAY=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT_MAP=y
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.15.45 Kernel Configuration
|
||||
# Linux/arm 5.15.49 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="gcc (Debian 10.2.1-6) 10.2.1 20210110"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@ -2153,7 +2153,7 @@ CONFIG_DEVMEM=y
|
||||
# CONFIG_TCG_TPM is not set
|
||||
# CONFIG_XILLYBUS is not set
|
||||
# CONFIG_XILLYUSB is not set
|
||||
# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
|
||||
CONFIG_RANDOM_TRUST_BOOTLOADER=y
|
||||
# end of Character devices
|
||||
|
||||
#
|
||||
@ -5176,7 +5176,22 @@ CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
|
||||
# CONFIG_QNX4FS_FS is not set
|
||||
# CONFIG_QNX6FS_FS is not set
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
# CONFIG_PSTORE is not set
|
||||
CONFIG_PSTORE=y
|
||||
CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
|
||||
CONFIG_PSTORE_DEFLATE_COMPRESS=y
|
||||
# CONFIG_PSTORE_LZO_COMPRESS is not set
|
||||
# CONFIG_PSTORE_LZ4_COMPRESS is not set
|
||||
# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
|
||||
# CONFIG_PSTORE_842_COMPRESS is not set
|
||||
# CONFIG_PSTORE_ZSTD_COMPRESS is not set
|
||||
CONFIG_PSTORE_COMPRESS=y
|
||||
CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
|
||||
CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
|
||||
CONFIG_PSTORE_CONSOLE=y
|
||||
# CONFIG_PSTORE_PMSG is not set
|
||||
# CONFIG_PSTORE_FTRACE is not set
|
||||
CONFIG_PSTORE_RAM=y
|
||||
# CONFIG_PSTORE_BLK is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_EROFS_FS is not set
|
||||
@ -5445,7 +5460,7 @@ CONFIG_CRYPTO_DES=y
|
||||
#
|
||||
# Compression
|
||||
#
|
||||
# CONFIG_CRYPTO_DEFLATE is not set
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
CONFIG_CRYPTO_LZO=m
|
||||
# CONFIG_CRYPTO_842 is not set
|
||||
# CONFIG_CRYPTO_LZ4 is not set
|
||||
@ -5512,7 +5527,7 @@ CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
|
||||
# Crypto library routines
|
||||
#
|
||||
CONFIG_CRYPTO_LIB_AES=y
|
||||
CONFIG_CRYPTO_LIB_ARC4=y
|
||||
CONFIG_CRYPTO_LIB_ARC4=m
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
|
||||
CONFIG_CRYPTO_LIB_CHACHA=m
|
||||
@ -5527,6 +5542,7 @@ CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
|
||||
CONFIG_CRYPTO_LIB_SHA256=y
|
||||
# end of Crypto library routines
|
||||
|
||||
CONFIG_LIB_MEMNEQ=y
|
||||
CONFIG_CRC_CCITT=m
|
||||
CONFIG_CRC16=y
|
||||
# CONFIG_CRC_T10DIF is not set
|
||||
@ -5545,7 +5561,7 @@ CONFIG_LIBCRC32C=m
|
||||
CONFIG_XXHASH=y
|
||||
# CONFIG_RANDOM32_SELFTEST is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=m
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_LZO_COMPRESS=m
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_LZ4_DECOMPRESS=y
|
||||
@ -5560,6 +5576,9 @@ CONFIG_XZ_DEC=y
|
||||
# CONFIG_XZ_DEC_SPARC is not set
|
||||
# CONFIG_XZ_DEC_TEST is not set
|
||||
CONFIG_GENERIC_ALLOCATOR=y
|
||||
CONFIG_REED_SOLOMON=y
|
||||
CONFIG_REED_SOLOMON_ENC8=y
|
||||
CONFIG_REED_SOLOMON_DEC8=y
|
||||
CONFIG_ASSOCIATIVE_ARRAY=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT_MAP=y
|
||||
|
@ -7,7 +7,6 @@ arm_64bit=1
|
||||
kernel=kernel.img
|
||||
display_auto_detect=1
|
||||
dtoverlay=vc4-kms-v3d,cma-512
|
||||
dtoverlay=rpivid-v4l2
|
||||
dtoverlay=
|
||||
disable_overscan=1
|
||||
disable_fw_kms_setup=1
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 5.15.45 Kernel Configuration
|
||||
# Linux/arm64 5.15.49 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="gcc (Debian 10.2.1-6) 10.2.1 20210110"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@ -1521,6 +1521,7 @@ CONFIG_SYSFB=y
|
||||
# EFI (Extensible Firmware Interface) Support
|
||||
#
|
||||
CONFIG_EFI_ESRT=y
|
||||
# CONFIG_EFI_VARS_PSTORE is not set
|
||||
CONFIG_EFI_PARAMS_FROM_FDT=y
|
||||
CONFIG_EFI_RUNTIME_WRAPPERS=y
|
||||
CONFIG_EFI_GENERIC_STUB=y
|
||||
@ -2628,8 +2629,8 @@ CONFIG_DEVPORT=y
|
||||
# CONFIG_TCG_TPM is not set
|
||||
# CONFIG_XILLYBUS is not set
|
||||
# CONFIG_XILLYUSB is not set
|
||||
# CONFIG_RANDOM_TRUST_CPU is not set
|
||||
# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
|
||||
CONFIG_RANDOM_TRUST_CPU=y
|
||||
CONFIG_RANDOM_TRUST_BOOTLOADER=y
|
||||
# end of Character devices
|
||||
|
||||
#
|
||||
@ -3776,6 +3777,7 @@ CONFIG_VIDEO_CX25840=m
|
||||
#
|
||||
# Camera sensor devices
|
||||
#
|
||||
# CONFIG_VIDEO_ARDUCAM_64MP is not set
|
||||
# CONFIG_VIDEO_ARDUCAM_PIVARIETY is not set
|
||||
# CONFIG_VIDEO_HI556 is not set
|
||||
# CONFIG_VIDEO_IMX208 is not set
|
||||
@ -5870,7 +5872,22 @@ CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
|
||||
# CONFIG_QNX4FS_FS is not set
|
||||
# CONFIG_QNX6FS_FS is not set
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
# CONFIG_PSTORE is not set
|
||||
CONFIG_PSTORE=y
|
||||
CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
|
||||
CONFIG_PSTORE_DEFLATE_COMPRESS=y
|
||||
# CONFIG_PSTORE_LZO_COMPRESS is not set
|
||||
# CONFIG_PSTORE_LZ4_COMPRESS is not set
|
||||
# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
|
||||
# CONFIG_PSTORE_842_COMPRESS is not set
|
||||
# CONFIG_PSTORE_ZSTD_COMPRESS is not set
|
||||
CONFIG_PSTORE_COMPRESS=y
|
||||
CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
|
||||
CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
|
||||
CONFIG_PSTORE_CONSOLE=y
|
||||
# CONFIG_PSTORE_PMSG is not set
|
||||
# CONFIG_PSTORE_FTRACE is not set
|
||||
CONFIG_PSTORE_RAM=y
|
||||
# CONFIG_PSTORE_BLK is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_EROFS_FS is not set
|
||||
@ -6140,7 +6157,7 @@ CONFIG_CRYPTO_DES=y
|
||||
#
|
||||
# Compression
|
||||
#
|
||||
# CONFIG_CRYPTO_DEFLATE is not set
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
CONFIG_CRYPTO_LZO=m
|
||||
# CONFIG_CRYPTO_842 is not set
|
||||
# CONFIG_CRYPTO_LZ4 is not set
|
||||
@ -6211,7 +6228,7 @@ CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
|
||||
# Crypto library routines
|
||||
#
|
||||
CONFIG_CRYPTO_LIB_AES=y
|
||||
CONFIG_CRYPTO_LIB_ARC4=y
|
||||
CONFIG_CRYPTO_LIB_ARC4=m
|
||||
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
|
||||
CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
|
||||
@ -6226,6 +6243,7 @@ CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
|
||||
CONFIG_CRYPTO_LIB_SHA256=y
|
||||
# end of Crypto library routines
|
||||
|
||||
CONFIG_LIB_MEMNEQ=y
|
||||
CONFIG_CRC_CCITT=m
|
||||
CONFIG_CRC16=y
|
||||
# CONFIG_CRC_T10DIF is not set
|
||||
@ -6245,7 +6263,7 @@ CONFIG_XXHASH=y
|
||||
CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
|
||||
# CONFIG_RANDOM32_SELFTEST is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=m
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_LZO_COMPRESS=m
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_LZ4_DECOMPRESS=y
|
||||
@ -6260,6 +6278,9 @@ CONFIG_XZ_DEC=y
|
||||
# CONFIG_XZ_DEC_SPARC is not set
|
||||
# CONFIG_XZ_DEC_TEST is not set
|
||||
CONFIG_GENERIC_ALLOCATOR=y
|
||||
CONFIG_REED_SOLOMON=y
|
||||
CONFIG_REED_SOLOMON_ENC8=y
|
||||
CONFIG_REED_SOLOMON_DEC8=y
|
||||
CONFIG_ASSOCIATIVE_ARRAY=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT_MAP=y
|
||||
|
Loading…
x
Reference in New Issue
Block a user