diff --git a/packages/compress/zlib/package.mk b/packages/compress/zlib/package.mk index d14c7c015c..bec38dc271 100644 --- a/packages/compress/zlib/package.mk +++ b/packages/compress/zlib/package.mk @@ -8,7 +8,7 @@ PKG_ARCH="any" PKG_LICENSE="OSS" PKG_SITE="http://www.zlib.net" PKG_URL="http://zlib.net/$PKG_NAME-$PKG_VERSION.tar.xz" -PKG_DEPENDS_HOST="" +PKG_DEPENDS_HOST="cmake:host" PKG_DEPENDS_TARGET="toolchain" PKG_SECTION="compress" PKG_SHORTDESC="zlib: A general purpose (ZIP) data compression library" diff --git a/packages/devel/elfutils/package.mk b/packages/devel/elfutils/package.mk index 9d77e5058c..1f387ccb61 100644 --- a/packages/devel/elfutils/package.mk +++ b/packages/devel/elfutils/package.mk @@ -8,6 +8,7 @@ PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="https://sourceware.org/elfutils/" PKG_URL="https://sourceware.org/elfutils/ftp/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_DEPENDS_HOST="make:host zlib:host" PKG_DEPENDS_TARGET="toolchain zlib" PKG_SECTION="devel" PKG_SHORTDESC="elfutils: collection of utilities to handle ELF objects" @@ -21,6 +22,16 @@ PKG_CONFIGURE_OPTS_TARGET="utrace_cv_cc_biarch=false \ --without-bzlib \ --without-lzma" +PKG_CONFIGURE_OPTS_HOST="utrace_cv_cc_biarch=false \ + --disable-nls \ + --with-zlib \ + --without-bzlib \ + --without-lzma" + +makeinstall_host() { + make DESTDIR="$INSTALL" -C libelf install +} + make_target() { make V=1 -C libelf libelf.a make V=1 -C libebl libebl.a diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 88e24184ef..d164c69ed4 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -46,8 +46,8 @@ case "$LINUX" in PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz" ;; *) - PKG_VERSION="4.17.14" - PKG_SHA256="c846038df44ee74dd910d19b346044a100f62a5b933eec2264d17008758cbaaf" + PKG_VERSION="4.18.3" + PKG_SHA256="81ed3ccef8eb43cba3d2451a963d0bbaf5392af98435d42caee82d019a8443d4" PKG_URL="https://www.kernel.org/pub/linux/kernel/v4.x/$PKG_NAME-$PKG_VERSION.tar.xz" PKG_PATCH_DIRS="default" ;; @@ -67,7 +67,7 @@ if [ "$PKG_BUILD_PERF" != "no" ] && grep -q ^CONFIG_PERF_EVENTS= $PKG_KERNEL_CFG fi if [ "$TARGET_ARCH" = "x86_64" ]; then - PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET intel-ucode:host kernel-firmware" + PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET intel-ucode:host kernel-firmware elfutils:host" fi if [ "$BUILD_ANDROID_BOOTIMG" = "yes" ]; then diff --git a/packages/linux/patches/default/linux-900-fix-libelf-detection.patch b/packages/linux/patches/default/linux-900-fix-libelf-detection.patch new file mode 100644 index 0000000000..9d581f8ca0 --- /dev/null +++ b/packages/linux/patches/default/linux-900-fix-libelf-detection.patch @@ -0,0 +1,16 @@ +diff --git a/Makefile b/Makefile +index c9132594860b..9551c8bc5e91 100644 +--- a/Makefile ++++ b/Makefile +@@ -933,7 +933,7 @@ export mod_sign_cmd + + ifdef CONFIG_STACK_VALIDATION + has_libelf := $(call try-run,\ +- echo "int main() {}" | $(HOSTCC) -xc -o /dev/null -lelf -,1,0) ++ echo "int main() {}" | $(HOSTCC) $(HOSTCFLAGS) -xc -o /dev/null $(HOSTLDFLAGS) -lelf -,1,0) + ifeq ($(has_libelf),1) + objtool_target := tools/objtool FORCE + else +-- +2.11.0 + diff --git a/packages/linux/patches/default/linux-999-Revert-drm_i915_edp-Allow-alternate-fixed-mode-for-eDP-if-available.patch b/packages/linux/patches/default/linux-999-Revert-drm_i915_edp-Allow-alternate-fixed-mode-for-eDP-if-available.patch deleted file mode 100644 index 83ac849027..0000000000 --- a/packages/linux/patches/default/linux-999-Revert-drm_i915_edp-Allow-alternate-fixed-mode-for-eDP-if-available.patch +++ /dev/null @@ -1,242 +0,0 @@ -From 997fbfe5508bc7d29fdf0a7a103f3864d4db380a Mon Sep 17 00:00:00 2001 -Message-Id: <997fbfe5508bc7d29fdf0a7a103f3864d4db380a.1528140572.git.jan.steffens@gmail.com> -In-Reply-To: -References: -From: Jani Nikula -Date: Wed, 16 May 2018 11:01:10 +0300 -Subject: [PATCH 2/2] Revert "drm/i915/edp: Allow alternate fixed mode for eDP - if available." - -This reverts commit dc911f5bd8aacfcf8aabd5c26c88e04c837a938e. - -Per the report, no matter what display mode you select with xrandr, the -i915 driver will always select the alternate fixed mode. For the -reporter this means that the display will always run at 40Hz which is -quite annoying. This may be due to the mode comparison. - -But there are some other potential issues. The choice of alt_fixed_mode -seems dubious. It's the first non-preferred mode, but there are no -guarantees that the only difference would be refresh rate. Similarly, -there may be more than one preferred mode in the probed modes list, and -the commit changes the preferred mode selection to choose the last one -on the list instead of the first. - -(Note that the probed modes list is the raw, unfiltered, unsorted list -of modes from drm_add_edid_modes(), not the pretty result after a -drm_helper_probe_single_connector_modes() call.) - -Finally, we already have eerily similar code in place to find the -downclock mode for DRRS that seems like could be reused here. - -Back to the drawing board. - -Note: This is a hand-crafted revert due to conflicts. If it fails to -backport, please just try reverting the original commit directly. - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105469 -Reported-by: Rune Petersen -Reported-by: Mark Spencer -Fixes: dc911f5bd8aa ("drm/i915/edp: Allow alternate fixed mode for eDP if available.") -Cc: Clint Taylor -Cc: David Weinehall -Cc: Rodrigo Vivi -Cc: Paulo Zanoni -Cc: Jani Nikula -Cc: Chris Wilson -Cc: Jim Bride -Cc: Jani Nikula -Cc: Joonas Lahtinen -Cc: intel-gfx@lists.freedesktop.org -Cc: # v4.14+ -Signed-off-by: Jani Nikula -Reviewed-by: Dhinakaran Pandiyan -Link: https://patchwork.freedesktop.org/patch/msgid/20180516080110.22770-1-jani.nikula@intel.com ---- - drivers/gpu/drm/i915/intel_dp.c | 38 ++++-------------------------- - drivers/gpu/drm/i915/intel_drv.h | 2 -- - drivers/gpu/drm/i915/intel_dsi.c | 2 +- - drivers/gpu/drm/i915/intel_dvo.c | 2 +- - drivers/gpu/drm/i915/intel_lvds.c | 3 +-- - drivers/gpu/drm/i915/intel_panel.c | 6 ----- - 6 files changed, 8 insertions(+), 45 deletions(-) - -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index b7b4cfdeb974..48cb8df5ae97 100644 ---- a/drivers/gpu/drm/i915/intel_dp.c -+++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -1671,23 +1671,6 @@ static int intel_dp_compute_bpp(struct intel_dp *intel_dp, - return bpp; - } - --static bool intel_edp_compare_alt_mode(struct drm_display_mode *m1, -- struct drm_display_mode *m2) --{ -- bool bres = false; -- -- if (m1 && m2) -- bres = (m1->hdisplay == m2->hdisplay && -- m1->hsync_start == m2->hsync_start && -- m1->hsync_end == m2->hsync_end && -- m1->htotal == m2->htotal && -- m1->vdisplay == m2->vdisplay && -- m1->vsync_start == m2->vsync_start && -- m1->vsync_end == m2->vsync_end && -- m1->vtotal == m2->vtotal); -- return bres; --} -- - bool - intel_dp_compute_config(struct intel_encoder *encoder, - struct intel_crtc_state *pipe_config, -@@ -1734,16 +1717,8 @@ intel_dp_compute_config(struct intel_encoder *encoder, - pipe_config->has_audio = intel_conn_state->force_audio == HDMI_AUDIO_ON; - - if (intel_dp_is_edp(intel_dp) && intel_connector->panel.fixed_mode) { -- struct drm_display_mode *panel_mode = -- intel_connector->panel.alt_fixed_mode; -- struct drm_display_mode *req_mode = &pipe_config->base.mode; -- -- if (!intel_edp_compare_alt_mode(req_mode, panel_mode)) -- panel_mode = intel_connector->panel.fixed_mode; -- -- drm_mode_debug_printmodeline(panel_mode); -- -- intel_fixed_panel_mode(panel_mode, adjusted_mode); -+ intel_fixed_panel_mode(intel_connector->panel.fixed_mode, -+ adjusted_mode); - - if (INTEL_GEN(dev_priv) >= 9) { - int ret; -@@ -6121,7 +6096,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, - struct drm_i915_private *dev_priv = to_i915(dev); - struct drm_connector *connector = &intel_connector->base; - struct drm_display_mode *fixed_mode = NULL; -- struct drm_display_mode *alt_fixed_mode = NULL; - struct drm_display_mode *downclock_mode = NULL; - bool has_dpcd; - struct drm_display_mode *scan; -@@ -6176,14 +6150,13 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, - } - intel_connector->edid = edid; - -- /* prefer fixed mode from EDID if available, save an alt mode also */ -+ /* prefer fixed mode from EDID if available */ - list_for_each_entry(scan, &connector->probed_modes, head) { - if ((scan->type & DRM_MODE_TYPE_PREFERRED)) { - fixed_mode = drm_mode_duplicate(dev, scan); - downclock_mode = intel_dp_drrs_init( - intel_connector, fixed_mode); -- } else if (!alt_fixed_mode) { -- alt_fixed_mode = drm_mode_duplicate(dev, scan); -+ break; - } - } - -@@ -6220,8 +6193,7 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, - pipe_name(pipe)); - } - -- intel_panel_init(&intel_connector->panel, fixed_mode, alt_fixed_mode, -- downclock_mode); -+ intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode); - intel_connector->panel.backlight.power = intel_edp_backlight_power; - intel_panel_setup_backlight(connector, pipe); - -diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h -index a80fbad9be0f..7f3e83f17adb 100644 ---- a/drivers/gpu/drm/i915/intel_drv.h -+++ b/drivers/gpu/drm/i915/intel_drv.h -@@ -269,7 +269,6 @@ struct intel_encoder { - - struct intel_panel { - struct drm_display_mode *fixed_mode; -- struct drm_display_mode *alt_fixed_mode; - struct drm_display_mode *downclock_mode; - - /* backlight */ -@@ -1820,7 +1819,6 @@ void intel_overlay_reset(struct drm_i915_private *dev_priv); - /* intel_panel.c */ - int intel_panel_init(struct intel_panel *panel, - struct drm_display_mode *fixed_mode, -- struct drm_display_mode *alt_fixed_mode, - struct drm_display_mode *downclock_mode); - void intel_panel_fini(struct intel_panel *panel); - void intel_fixed_panel_mode(const struct drm_display_mode *fixed_mode, -diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c -index 51a1d6868b1e..cf39ca90d887 100644 ---- a/drivers/gpu/drm/i915/intel_dsi.c -+++ b/drivers/gpu/drm/i915/intel_dsi.c -@@ -1846,7 +1846,7 @@ void intel_dsi_init(struct drm_i915_private *dev_priv) - connector->display_info.width_mm = fixed_mode->width_mm; - connector->display_info.height_mm = fixed_mode->height_mm; - -- intel_panel_init(&intel_connector->panel, fixed_mode, NULL, NULL); -+ intel_panel_init(&intel_connector->panel, fixed_mode, NULL); - intel_panel_setup_backlight(connector, INVALID_PIPE); - - intel_dsi_add_properties(intel_connector); -diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c -index eb0c559b2715..a70d767313aa 100644 ---- a/drivers/gpu/drm/i915/intel_dvo.c -+++ b/drivers/gpu/drm/i915/intel_dvo.c -@@ -536,7 +536,7 @@ void intel_dvo_init(struct drm_i915_private *dev_priv) - */ - intel_panel_init(&intel_connector->panel, - intel_dvo_get_current_mode(intel_encoder), -- NULL, NULL); -+ NULL); - intel_dvo->panel_wants_dither = true; - } - -diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c -index e125d16a1aa7..d278f24ba6ae 100644 ---- a/drivers/gpu/drm/i915/intel_lvds.c -+++ b/drivers/gpu/drm/i915/intel_lvds.c -@@ -1175,8 +1175,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv) - out: - mutex_unlock(&dev->mode_config.mutex); - -- intel_panel_init(&intel_connector->panel, fixed_mode, NULL, -- downclock_mode); -+ intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode); - intel_panel_setup_backlight(connector, INVALID_PIPE); - - lvds_encoder->is_dual_link = compute_is_dual_link_lvds(lvds_encoder); -diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c -index 41d00b1603e3..b443278e569c 100644 ---- a/drivers/gpu/drm/i915/intel_panel.c -+++ b/drivers/gpu/drm/i915/intel_panel.c -@@ -1928,30 +1928,24 @@ intel_panel_init_backlight_funcs(struct intel_panel *panel) - - int intel_panel_init(struct intel_panel *panel, - struct drm_display_mode *fixed_mode, -- struct drm_display_mode *alt_fixed_mode, - struct drm_display_mode *downclock_mode) - { - intel_panel_init_backlight_funcs(panel); - - panel->fixed_mode = fixed_mode; -- panel->alt_fixed_mode = alt_fixed_mode; - panel->downclock_mode = downclock_mode; - - return 0; - } - - void intel_panel_fini(struct intel_panel *panel) - { - struct intel_connector *intel_connector = - container_of(panel, struct intel_connector, panel); - - if (panel->fixed_mode) - drm_mode_destroy(intel_connector->base.dev, panel->fixed_mode); - -- if (panel->alt_fixed_mode) -- drm_mode_destroy(intel_connector->base.dev, -- panel->alt_fixed_mode); -- - if (panel->downclock_mode) - drm_mode_destroy(intel_connector->base.dev, - panel->downclock_mode); --- -2.17.1 - diff --git a/packages/linux/patches/default/linux-999-backport-4.18-nuvoton-cir-fix.patch b/packages/linux/patches/default/linux-999-backport-4.18-nuvoton-cir-fix.patch deleted file mode 100644 index 2f6b940b10..0000000000 --- a/packages/linux/patches/default/linux-999-backport-4.18-nuvoton-cir-fix.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 70c30b1ea706affcb117e3cd3065690abca5ba69 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20Winiarski?= -Date: Mon, 21 May 2018 10:38:01 -0400 -Subject: [PATCH] media: rc: nuvoton: Tweak the interrupt enabling dance -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It appears that we need to enable CIR device before attempting to touch -some of the registers. Previously, this was not a big issue, since we -were rarely seeing nvt_close() getting called. - -Unfortunately, since commit cb84343fced1 ("media: lirc: do not call close() -or open() on unregistered devices") the initial open() during probe from -rc_setup_rx_device() is no longer successful, which means that userspace -clients will actually end up calling nvt_open()/nvt_close(). Since -nvt_open() is broken, the device doesn't seem to work as expected. - -Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199597 - -Signed-off-by: MichaƂ Winiarski -Cc: Jarod Wilson -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/rc/nuvoton-cir.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/drivers/media/rc/nuvoton-cir.c b/drivers/media/rc/nuvoton-cir.c -index 5e1d866a61a5..ce8949b6549d 100644 ---- a/drivers/media/rc/nuvoton-cir.c -+++ b/drivers/media/rc/nuvoton-cir.c -@@ -922,6 +922,9 @@ static int nvt_open(struct rc_dev *dev) - struct nvt_dev *nvt = dev->priv; - unsigned long flags; - -+ /* enable the CIR logical device */ -+ nvt_enable_logical_dev(nvt, LOGICAL_DEV_CIR); -+ - spin_lock_irqsave(&nvt->lock, flags); - - /* set function enable flags */ -@@ -937,9 +940,6 @@ static int nvt_open(struct rc_dev *dev) - - spin_unlock_irqrestore(&nvt->lock, flags); - -- /* enable the CIR logical device */ -- nvt_enable_logical_dev(nvt, LOGICAL_DEV_CIR); -- - return 0; - } - --- -2.11.0 - diff --git a/packages/linux/patches/default/linux-999-improve-ir-timeout-handling.patch b/packages/linux/patches/default/linux-999-improve-ir-timeout-handling.patch deleted file mode 100644 index f50138ada9..0000000000 --- a/packages/linux/patches/default/linux-999-improve-ir-timeout-handling.patch +++ /dev/null @@ -1,1051 +0,0 @@ -From 53b3bcf17209cd9b01d8b31c21eee8f0f30cf4dc Mon Sep 17 00:00:00 2001 -From: Sean Young -Date: Fri, 23 Mar 2018 16:47:37 -0400 -Subject: [PATCH 01/12] media: rc: set timeout to smallest value required by - enabled protocols - -The longer the IR timeout, the longer the rc device waits until delivering -the trailing space. So, by reducing this timeout, we reduce the delay for -the last scancode to be delivered. - -Note that the lirc daemon disables all protocols, in which case we revert -back to the default value. - -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/rc/ir-imon-decoder.c | 1 + - drivers/media/rc/ir-jvc-decoder.c | 1 + - drivers/media/rc/ir-mce_kbd-decoder.c | 1 + - drivers/media/rc/ir-nec-decoder.c | 1 + - drivers/media/rc/ir-rc5-decoder.c | 1 + - drivers/media/rc/ir-rc6-decoder.c | 1 + - drivers/media/rc/ir-sanyo-decoder.c | 1 + - drivers/media/rc/ir-sharp-decoder.c | 1 + - drivers/media/rc/ir-sony-decoder.c | 1 + - drivers/media/rc/ir-xmp-decoder.c | 1 + - drivers/media/rc/rc-core-priv.h | 1 + - drivers/media/rc/rc-ir-raw.c | 31 ++++++++++++++++++++++++++++++- - drivers/media/rc/rc-main.c | 12 ++++++------ - 13 files changed, 47 insertions(+), 7 deletions(-) - -diff --git a/drivers/media/rc/ir-imon-decoder.c b/drivers/media/rc/ir-imon-decoder.c -index a1ff06a..52ea3b2 100644 ---- a/drivers/media/rc/ir-imon-decoder.c -+++ b/drivers/media/rc/ir-imon-decoder.c -@@ -170,6 +170,7 @@ static struct ir_raw_handler imon_handler = { - .decode = ir_imon_decode, - .encode = ir_imon_encode, - .carrier = 38000, -+ .min_timeout = IMON_UNIT * IMON_BITS * 2, - }; - - static int __init ir_imon_decode_init(void) -diff --git a/drivers/media/rc/ir-jvc-decoder.c b/drivers/media/rc/ir-jvc-decoder.c -index 8cb68ae..5706cfe 100644 ---- a/drivers/media/rc/ir-jvc-decoder.c -+++ b/drivers/media/rc/ir-jvc-decoder.c -@@ -213,6 +213,7 @@ static struct ir_raw_handler jvc_handler = { - .decode = ir_jvc_decode, - .encode = ir_jvc_encode, - .carrier = 38000, -+ .min_timeout = JVC_TRAILER_SPACE, - }; - - static int __init ir_jvc_decode_init(void) -diff --git a/drivers/media/rc/ir-mce_kbd-decoder.c b/drivers/media/rc/ir-mce_kbd-decoder.c -index d94f1c1..03d0f7e 100644 ---- a/drivers/media/rc/ir-mce_kbd-decoder.c -+++ b/drivers/media/rc/ir-mce_kbd-decoder.c -@@ -479,6 +479,7 @@ static struct ir_raw_handler mce_kbd_handler = { - .raw_register = ir_mce_kbd_register, - .raw_unregister = ir_mce_kbd_unregister, - .carrier = 36000, -+ .min_timeout = MCIR2_MAX_LEN + MCIR2_UNIT / 2, - }; - - static int __init ir_mce_kbd_decode_init(void) -diff --git a/drivers/media/rc/ir-nec-decoder.c b/drivers/media/rc/ir-nec-decoder.c -index 21647b8..6a8973a 100644 ---- a/drivers/media/rc/ir-nec-decoder.c -+++ b/drivers/media/rc/ir-nec-decoder.c -@@ -253,6 +253,7 @@ static struct ir_raw_handler nec_handler = { - .decode = ir_nec_decode, - .encode = ir_nec_encode, - .carrier = 38000, -+ .min_timeout = NEC_TRAILER_SPACE, - }; - - static int __init ir_nec_decode_init(void) -diff --git a/drivers/media/rc/ir-rc5-decoder.c b/drivers/media/rc/ir-rc5-decoder.c -index 74d3b85..cbfaadb 100644 ---- a/drivers/media/rc/ir-rc5-decoder.c -+++ b/drivers/media/rc/ir-rc5-decoder.c -@@ -274,6 +274,7 @@ static struct ir_raw_handler rc5_handler = { - .decode = ir_rc5_decode, - .encode = ir_rc5_encode, - .carrier = 36000, -+ .min_timeout = RC5_TRAILER, - }; - - static int __init ir_rc5_decode_init(void) -diff --git a/drivers/media/rc/ir-rc6-decoder.c b/drivers/media/rc/ir-rc6-decoder.c -index 8314da3..66e0710 100644 ---- a/drivers/media/rc/ir-rc6-decoder.c -+++ b/drivers/media/rc/ir-rc6-decoder.c -@@ -394,6 +394,7 @@ static struct ir_raw_handler rc6_handler = { - .decode = ir_rc6_decode, - .encode = ir_rc6_encode, - .carrier = 36000, -+ .min_timeout = RC6_SUFFIX_SPACE, - }; - - static int __init ir_rc6_decode_init(void) -diff --git a/drivers/media/rc/ir-sanyo-decoder.c b/drivers/media/rc/ir-sanyo-decoder.c -index 4efe6db..dd6ee1e 100644 ---- a/drivers/media/rc/ir-sanyo-decoder.c -+++ b/drivers/media/rc/ir-sanyo-decoder.c -@@ -210,6 +210,7 @@ static struct ir_raw_handler sanyo_handler = { - .decode = ir_sanyo_decode, - .encode = ir_sanyo_encode, - .carrier = 38000, -+ .min_timeout = SANYO_TRAILER_SPACE, - }; - - static int __init ir_sanyo_decode_init(void) -diff --git a/drivers/media/rc/ir-sharp-decoder.c b/drivers/media/rc/ir-sharp-decoder.c -index 6a38c50..f96e0c9 100644 ---- a/drivers/media/rc/ir-sharp-decoder.c -+++ b/drivers/media/rc/ir-sharp-decoder.c -@@ -226,6 +226,7 @@ static struct ir_raw_handler sharp_handler = { - .decode = ir_sharp_decode, - .encode = ir_sharp_encode, - .carrier = 38000, -+ .min_timeout = SHARP_ECHO_SPACE + SHARP_ECHO_SPACE / 4, - }; - - static int __init ir_sharp_decode_init(void) -diff --git a/drivers/media/rc/ir-sony-decoder.c b/drivers/media/rc/ir-sony-decoder.c -index 6764ec9..5065c08 100644 ---- a/drivers/media/rc/ir-sony-decoder.c -+++ b/drivers/media/rc/ir-sony-decoder.c -@@ -224,6 +224,7 @@ static struct ir_raw_handler sony_handler = { - .decode = ir_sony_decode, - .encode = ir_sony_encode, - .carrier = 40000, -+ .min_timeout = SONY_TRAILER_SPACE, - }; - - static int __init ir_sony_decode_init(void) -diff --git a/drivers/media/rc/ir-xmp-decoder.c b/drivers/media/rc/ir-xmp-decoder.c -index 58b47af..c965f51 100644 ---- a/drivers/media/rc/ir-xmp-decoder.c -+++ b/drivers/media/rc/ir-xmp-decoder.c -@@ -199,6 +199,7 @@ static int ir_xmp_decode(struct rc_dev *dev, struct ir_raw_event ev) - static struct ir_raw_handler xmp_handler = { - .protocols = RC_PROTO_BIT_XMP, - .decode = ir_xmp_decode, -+ .min_timeout = XMP_TRAILER_SPACE, - }; - - static int __init ir_xmp_decode_init(void) -diff --git a/drivers/media/rc/rc-core-priv.h b/drivers/media/rc/rc-core-priv.h -index e0e6a17..f785513 100644 ---- a/drivers/media/rc/rc-core-priv.h -+++ b/drivers/media/rc/rc-core-priv.h -@@ -37,6 +37,7 @@ struct ir_raw_handler { - int (*encode)(enum rc_proto protocol, u32 scancode, - struct ir_raw_event *events, unsigned int max); - u32 carrier; -+ u32 min_timeout; - - /* These two should only be used by the mce kbd decoder */ - int (*raw_register)(struct rc_dev *dev); -diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c -index 374f831..22e44c8 100644 ---- a/drivers/media/rc/rc-ir-raw.c -+++ b/drivers/media/rc/rc-ir-raw.c -@@ -233,7 +233,36 @@ ir_raw_get_allowed_protocols(void) - - static int change_protocol(struct rc_dev *dev, u64 *rc_proto) - { -- /* the caller will update dev->enabled_protocols */ -+ struct ir_raw_handler *handler; -+ u32 timeout = 0; -+ -+ if (!dev->max_timeout) -+ return 0; -+ -+ mutex_lock(&ir_raw_handler_lock); -+ list_for_each_entry(handler, &ir_raw_handler_list, list) { -+ if (handler->protocols & *rc_proto) { -+ if (timeout < handler->min_timeout) -+ timeout = handler->min_timeout; -+ } -+ } -+ mutex_unlock(&ir_raw_handler_lock); -+ -+ if (timeout == 0) -+ timeout = IR_DEFAULT_TIMEOUT; -+ else -+ timeout += MS_TO_NS(10); -+ -+ if (timeout < dev->min_timeout) -+ timeout = dev->min_timeout; -+ else if (timeout > dev->max_timeout) -+ timeout = dev->max_timeout; -+ -+ if (dev->s_timeout) -+ dev->s_timeout(dev, timeout); -+ else -+ dev->timeout = timeout; -+ - return 0; - } - -diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c -index cea7b2d..8cd7a26 100644 ---- a/drivers/media/rc/rc-main.c -+++ b/drivers/media/rc/rc-main.c -@@ -1241,6 +1241,9 @@ static ssize_t store_protocols(struct device *device, - if (rc < 0) - goto out; - -+ if (dev->driver_type == RC_DRIVER_IR_RAW) -+ ir_raw_load_modules(&new_protocols); -+ - rc = dev->change_protocol(dev, &new_protocols); - if (rc < 0) { - dev_dbg(&dev->dev, "Error setting protocols to 0x%llx\n", -@@ -1248,9 +1251,6 @@ static ssize_t store_protocols(struct device *device, - goto out; - } - -- if (dev->driver_type == RC_DRIVER_IR_RAW) -- ir_raw_load_modules(&new_protocols); -- - if (new_protocols != old_protocols) { - *current_protocols = new_protocols; - dev_dbg(&dev->dev, "Protocols changed to 0x%llx\n", -@@ -1735,6 +1735,9 @@ static int rc_prepare_rx_device(struct rc_dev *dev) - if (dev->driver_type == RC_DRIVER_SCANCODE && !dev->change_protocol) - dev->enabled_protocols = dev->allowed_protocols; - -+ if (dev->driver_type == RC_DRIVER_IR_RAW) -+ ir_raw_load_modules(&rc_proto); -+ - if (dev->change_protocol) { - rc = dev->change_protocol(dev, &rc_proto); - if (rc < 0) -@@ -1742,9 +1745,6 @@ static int rc_prepare_rx_device(struct rc_dev *dev) - dev->enabled_protocols = rc_proto; - } - -- if (dev->driver_type == RC_DRIVER_IR_RAW) -- ir_raw_load_modules(&rc_proto); -- - set_bit(EV_KEY, dev->input_dev->evbit); - set_bit(EV_REP, dev->input_dev->evbit); - set_bit(EV_MSC, dev->input_dev->evbit); --- -2.14.1 - - -From 78c7e2b34fd53578770fc9098930ba2fcede0df5 Mon Sep 17 00:00:00 2001 -From: Sean Young -Date: Fri, 23 Mar 2018 16:59:52 -0400 -Subject: [PATCH 02/12] media: rc: add ioctl to get the current timeout - -Since the kernel now modifies the timeout, make it possible to retrieve -the current value. - -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - Documentation/media/uapi/rc/lirc-func.rst | 1 + - Documentation/media/uapi/rc/lirc-set-rec-timeout.rst | 14 +++++++++----- - drivers/media/rc/lirc_dev.c | 7 +++++++ - include/uapi/linux/lirc.h | 6 ++++++ - 4 files changed, 23 insertions(+), 5 deletions(-) - -diff --git a/Documentation/media/uapi/rc/lirc-func.rst b/Documentation/media/uapi/rc/lirc-func.rst -index ddb4620..9656423 100644 ---- a/Documentation/media/uapi/rc/lirc-func.rst -+++ b/Documentation/media/uapi/rc/lirc-func.rst -@@ -17,6 +17,7 @@ LIRC Function Reference - lirc-get-rec-resolution - lirc-set-send-duty-cycle - lirc-get-timeout -+ lirc-get-rec-timeout - lirc-set-rec-timeout - lirc-set-rec-carrier - lirc-set-rec-carrier-range -diff --git a/Documentation/media/uapi/rc/lirc-set-rec-timeout.rst b/Documentation/media/uapi/rc/lirc-set-rec-timeout.rst -index b3e16bb..a833a6a 100644 ---- a/Documentation/media/uapi/rc/lirc-set-rec-timeout.rst -+++ b/Documentation/media/uapi/rc/lirc-set-rec-timeout.rst -@@ -1,19 +1,23 @@ - .. -*- coding: utf-8; mode: rst -*- - - .. _lirc_set_rec_timeout: -+.. _lirc_get_rec_timeout: - --************************** --ioctl LIRC_SET_REC_TIMEOUT --************************** -+*************************************************** -+ioctl LIRC_GET_REC_TIMEOUT and LIRC_SET_REC_TIMEOUT -+*************************************************** - - Name - ==== - --LIRC_SET_REC_TIMEOUT - sets the integer value for IR inactivity timeout. -+LIRC_GET_REC_TIMEOUT/LIRC_SET_REC_TIMEOUT - Get/set the integer value for IR inactivity timeout. - - Synopsis - ======== - -+.. c:function:: int ioctl( int fd, LIRC_GET_REC_TIMEOUT, __u32 *timeout ) -+ :name: LIRC_GET_REC_TIMEOUT -+ - .. c:function:: int ioctl( int fd, LIRC_SET_REC_TIMEOUT, __u32 *timeout ) - :name: LIRC_SET_REC_TIMEOUT - -@@ -30,7 +34,7 @@ Arguments - Description - =========== - --Sets the integer value for IR inactivity timeout. -+Get and set the integer value for IR inactivity timeout. - - If supported by the hardware, setting it to 0 disables all hardware timeouts - and data should be reported as soon as possible. If the exact value -diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c -index 24e9fbb..17f40c8 100644 ---- a/drivers/media/rc/lirc_dev.c -+++ b/drivers/media/rc/lirc_dev.c -@@ -575,6 +575,13 @@ static long ir_lirc_ioctl(struct file *file, unsigned int cmd, - } - break; - -+ case LIRC_GET_REC_TIMEOUT: -+ if (!dev->timeout) -+ ret = -ENOTTY; -+ else -+ val = DIV_ROUND_UP(dev->timeout, 1000); -+ break; -+ - case LIRC_SET_REC_TIMEOUT_REPORTS: - if (!dev->timeout) - ret = -ENOTTY; -diff --git a/include/uapi/linux/lirc.h b/include/uapi/linux/lirc.h -index f189931..6b31958 100644 ---- a/include/uapi/linux/lirc.h -+++ b/include/uapi/linux/lirc.h -@@ -133,6 +133,12 @@ - - #define LIRC_SET_WIDEBAND_RECEIVER _IOW('i', 0x00000023, __u32) - -+/* -+ * Return the recording timeout, which is either set by -+ * the ioctl LIRC_SET_REC_TIMEOUT or by the kernel after setting the protocols. -+ */ -+#define LIRC_GET_REC_TIMEOUT _IOR('i', 0x00000024, __u32) -+ - /* - * struct lirc_scancode - decoded scancode with protocol for use with - * LIRC_MODE_SCANCODE --- -2.14.1 - - -From b4bd3b39310b4f091edb7ce9f3f73e3fe1f7cc5f Mon Sep 17 00:00:00 2001 -From: Sean Young -Date: Sat, 24 Mar 2018 08:02:48 -0400 -Subject: [PATCH 03/12] media: rc: per-protocol repeat period and minimum keyup - timer - -Each IR protocol has its own repeat period. We can minimise the keyup -timer to be the protocol period + IR timeout. This makes keys less -"sticky" and makes IR more reactive and nicer to use. - -This feature was previously attempted in commit d57ea877af38 ("media: rc: -per-protocol repeat period"), but that did not take the IR timeout into -account, and had to be reverted. - -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/cec/cec-core.c | 2 +- - drivers/media/rc/lirc_dev.c | 2 +- - drivers/media/rc/rc-main.c | 56 +++++++++++++++++++++++--------------------- - 3 files changed, 31 insertions(+), 29 deletions(-) - -diff --git a/drivers/media/cec/cec-core.c b/drivers/media/cec/cec-core.c -index b0c87f9..b278ab9 100644 ---- a/drivers/media/cec/cec-core.c -+++ b/drivers/media/cec/cec-core.c -@@ -322,7 +322,7 @@ struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops, - adap->rc->allowed_protocols = RC_PROTO_BIT_CEC; - adap->rc->priv = adap; - adap->rc->map_name = RC_MAP_CEC; -- adap->rc->timeout = MS_TO_NS(100); -+ adap->rc->timeout = MS_TO_NS(550); - #endif - return adap; - } -diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c -index 17f40c8..19660f9 100644 ---- a/drivers/media/rc/lirc_dev.c -+++ b/drivers/media/rc/lirc_dev.c -@@ -583,7 +583,7 @@ static long ir_lirc_ioctl(struct file *file, unsigned int cmd, - break; - - case LIRC_SET_REC_TIMEOUT_REPORTS: -- if (!dev->timeout) -+ if (dev->driver_type != RC_DRIVER_IR_RAW) - ret = -ENOTTY; - else - fh->send_timeout_reports = !!val; -diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c -index 8cd7a26..3b11241 100644 ---- a/drivers/media/rc/rc-main.c -+++ b/drivers/media/rc/rc-main.c -@@ -26,50 +26,50 @@ static const struct { - unsigned int repeat_period; - unsigned int scancode_bits; - } protocols[] = { -- [RC_PROTO_UNKNOWN] = { .name = "unknown", .repeat_period = 250 }, -- [RC_PROTO_OTHER] = { .name = "other", .repeat_period = 250 }, -+ [RC_PROTO_UNKNOWN] = { .name = "unknown", .repeat_period = 125 }, -+ [RC_PROTO_OTHER] = { .name = "other", .repeat_period = 125 }, - [RC_PROTO_RC5] = { .name = "rc-5", -- .scancode_bits = 0x1f7f, .repeat_period = 250 }, -+ .scancode_bits = 0x1f7f, .repeat_period = 114 }, - [RC_PROTO_RC5X_20] = { .name = "rc-5x-20", -- .scancode_bits = 0x1f7f3f, .repeat_period = 250 }, -+ .scancode_bits = 0x1f7f3f, .repeat_period = 114 }, - [RC_PROTO_RC5_SZ] = { .name = "rc-5-sz", -- .scancode_bits = 0x2fff, .repeat_period = 250 }, -+ .scancode_bits = 0x2fff, .repeat_period = 114 }, - [RC_PROTO_JVC] = { .name = "jvc", -- .scancode_bits = 0xffff, .repeat_period = 250 }, -+ .scancode_bits = 0xffff, .repeat_period = 125 }, - [RC_PROTO_SONY12] = { .name = "sony-12", -- .scancode_bits = 0x1f007f, .repeat_period = 250 }, -+ .scancode_bits = 0x1f007f, .repeat_period = 100 }, - [RC_PROTO_SONY15] = { .name = "sony-15", -- .scancode_bits = 0xff007f, .repeat_period = 250 }, -+ .scancode_bits = 0xff007f, .repeat_period = 100 }, - [RC_PROTO_SONY20] = { .name = "sony-20", -- .scancode_bits = 0x1fff7f, .repeat_period = 250 }, -+ .scancode_bits = 0x1fff7f, .repeat_period = 100 }, - [RC_PROTO_NEC] = { .name = "nec", -- .scancode_bits = 0xffff, .repeat_period = 250 }, -+ .scancode_bits = 0xffff, .repeat_period = 110 }, - [RC_PROTO_NECX] = { .name = "nec-x", -- .scancode_bits = 0xffffff, .repeat_period = 250 }, -+ .scancode_bits = 0xffffff, .repeat_period = 110 }, - [RC_PROTO_NEC32] = { .name = "nec-32", -- .scancode_bits = 0xffffffff, .repeat_period = 250 }, -+ .scancode_bits = 0xffffffff, .repeat_period = 110 }, - [RC_PROTO_SANYO] = { .name = "sanyo", -- .scancode_bits = 0x1fffff, .repeat_period = 250 }, -+ .scancode_bits = 0x1fffff, .repeat_period = 125 }, - [RC_PROTO_MCIR2_KBD] = { .name = "mcir2-kbd", -- .scancode_bits = 0xffff, .repeat_period = 250 }, -+ .scancode_bits = 0xffff, .repeat_period = 100 }, - [RC_PROTO_MCIR2_MSE] = { .name = "mcir2-mse", -- .scancode_bits = 0x1fffff, .repeat_period = 250 }, -+ .scancode_bits = 0x1fffff, .repeat_period = 100 }, - [RC_PROTO_RC6_0] = { .name = "rc-6-0", -- .scancode_bits = 0xffff, .repeat_period = 250 }, -+ .scancode_bits = 0xffff, .repeat_period = 114 }, - [RC_PROTO_RC6_6A_20] = { .name = "rc-6-6a-20", -- .scancode_bits = 0xfffff, .repeat_period = 250 }, -+ .scancode_bits = 0xfffff, .repeat_period = 114 }, - [RC_PROTO_RC6_6A_24] = { .name = "rc-6-6a-24", -- .scancode_bits = 0xffffff, .repeat_period = 250 }, -+ .scancode_bits = 0xffffff, .repeat_period = 114 }, - [RC_PROTO_RC6_6A_32] = { .name = "rc-6-6a-32", -- .scancode_bits = 0xffffffff, .repeat_period = 250 }, -+ .scancode_bits = 0xffffffff, .repeat_period = 114 }, - [RC_PROTO_RC6_MCE] = { .name = "rc-6-mce", -- .scancode_bits = 0xffff7fff, .repeat_period = 250 }, -+ .scancode_bits = 0xffff7fff, .repeat_period = 114 }, - [RC_PROTO_SHARP] = { .name = "sharp", -- .scancode_bits = 0x1fff, .repeat_period = 250 }, -- [RC_PROTO_XMP] = { .name = "xmp", .repeat_period = 250 }, -- [RC_PROTO_CEC] = { .name = "cec", .repeat_period = 550 }, -+ .scancode_bits = 0x1fff, .repeat_period = 125 }, -+ [RC_PROTO_XMP] = { .name = "xmp", .repeat_period = 125 }, -+ [RC_PROTO_CEC] = { .name = "cec", .repeat_period = 0 }, - [RC_PROTO_IMON] = { .name = "imon", -- .scancode_bits = 0x7fffffff, .repeat_period = 250 }, -+ .scancode_bits = 0x7fffffff, .repeat_period = 114 }, - }; - - /* Used to keep track of known keymaps */ -@@ -690,7 +690,8 @@ static void ir_timer_repeat(struct timer_list *t) - void rc_repeat(struct rc_dev *dev) - { - unsigned long flags; -- unsigned int timeout = protocols[dev->last_protocol].repeat_period; -+ unsigned int timeout = nsecs_to_jiffies(dev->timeout) + -+ msecs_to_jiffies(protocols[dev->last_protocol].repeat_period); - struct lirc_scancode sc = { - .scancode = dev->last_scancode, .rc_proto = dev->last_protocol, - .keycode = dev->keypressed ? dev->last_keycode : KEY_RESERVED, -@@ -706,7 +707,7 @@ void rc_repeat(struct rc_dev *dev) - input_sync(dev->input_dev); - - if (dev->keypressed) { -- dev->keyup_jiffies = jiffies + msecs_to_jiffies(timeout); -+ dev->keyup_jiffies = jiffies + timeout; - mod_timer(&dev->timer_keyup, dev->keyup_jiffies); - } - -@@ -801,7 +802,7 @@ void rc_keydown(struct rc_dev *dev, enum rc_proto protocol, u32 scancode, - ir_do_keydown(dev, protocol, scancode, keycode, toggle); - - if (dev->keypressed) { -- dev->keyup_jiffies = jiffies + -+ dev->keyup_jiffies = jiffies + nsecs_to_jiffies(dev->timeout) + - msecs_to_jiffies(protocols[protocol].repeat_period); - mod_timer(&dev->timer_keyup, dev->keyup_jiffies); - } -@@ -1647,6 +1648,7 @@ struct rc_dev *rc_allocate_device(enum rc_driver_type type) - dev->input_dev->setkeycode = ir_setkeycode; - input_set_drvdata(dev->input_dev, dev); - -+ dev->timeout = IR_DEFAULT_TIMEOUT; - timer_setup(&dev->timer_keyup, ir_timer_keyup, 0); - timer_setup(&dev->timer_repeat, ir_timer_repeat, 0); - --- -2.14.1 - - -From c2f422fb5bc97a1e0db5f4ca8fe41fdf9a9b7fcd Mon Sep 17 00:00:00 2001 -From: Sean Young -Date: Sat, 7 Apr 2018 17:41:17 -0400 -Subject: [PATCH 04/12] media: rc: mce_kbd protocol encodes two scancodes - -If two keys are pressed, then both keys are encoded in the scancode. This -makes the mce keyboard more responsive. - -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/rc/ir-mce_kbd-decoder.c | 21 ++++++++++++--------- - drivers/media/rc/rc-main.c | 2 +- - 2 files changed, 13 insertions(+), 10 deletions(-) - -diff --git a/drivers/media/rc/ir-mce_kbd-decoder.c b/drivers/media/rc/ir-mce_kbd-decoder.c -index 03d0f7e..002b832 100644 ---- a/drivers/media/rc/ir-mce_kbd-decoder.c -+++ b/drivers/media/rc/ir-mce_kbd-decoder.c -@@ -149,13 +149,14 @@ static enum mce_kbd_mode mce_kbd_mode(struct mce_kbd_dec *data) - static void ir_mce_kbd_process_keyboard_data(struct rc_dev *dev, u32 scancode) - { - struct mce_kbd_dec *data = &dev->raw->mce_kbd; -- u8 keydata = (scancode >> 8) & 0xff; -+ u8 keydata1 = (scancode >> 8) & 0xff; -+ u8 keydata2 = (scancode >> 16) & 0xff; - u8 shiftmask = scancode & 0xff; -- unsigned char keycode, maskcode; -+ unsigned char maskcode; - int i, keystate; - -- dev_dbg(&dev->dev, "keyboard: keydata = 0x%02x, shiftmask = 0x%02x\n", -- keydata, shiftmask); -+ dev_dbg(&dev->dev, "keyboard: keydata2 = 0x%02x, keydata1 = 0x%02x, shiftmask = 0x%02x\n", -+ keydata2, keydata1, shiftmask); - - for (i = 0; i < 7; i++) { - maskcode = kbd_keycodes[MCIR2_MASK_KEYS_START + i]; -@@ -166,10 +167,12 @@ static void ir_mce_kbd_process_keyboard_data(struct rc_dev *dev, u32 scancode) - input_report_key(data->idev, maskcode, keystate); - } - -- if (keydata) { -- keycode = kbd_keycodes[keydata]; -- input_report_key(data->idev, keycode, 1); -- } else { -+ if (keydata1) -+ input_report_key(data->idev, kbd_keycodes[keydata1], 1); -+ if (keydata2) -+ input_report_key(data->idev, kbd_keycodes[keydata2], 1); -+ -+ if (!keydata1 && !keydata2) { - for (i = 0; i < MCIR2_MASK_KEYS_START; i++) - input_report_key(data->idev, kbd_keycodes[i], 0); - } -@@ -321,7 +324,7 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev) - - switch (data->wanted_bits) { - case MCIR2_KEYBOARD_NBITS: -- scancode = data->body & 0xffff; -+ scancode = data->body & 0xffffff; - dev_dbg(&dev->dev, "keyboard data 0x%08x\n", - data->body); - if (scancode) { -diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c -index 3b11241..2e222d9 100644 ---- a/drivers/media/rc/rc-main.c -+++ b/drivers/media/rc/rc-main.c -@@ -51,7 +51,7 @@ static const struct { - [RC_PROTO_SANYO] = { .name = "sanyo", - .scancode_bits = 0x1fffff, .repeat_period = 125 }, - [RC_PROTO_MCIR2_KBD] = { .name = "mcir2-kbd", -- .scancode_bits = 0xffff, .repeat_period = 100 }, -+ .scancode_bits = 0xffffff, .repeat_period = 100 }, - [RC_PROTO_MCIR2_MSE] = { .name = "mcir2-mse", - .scancode_bits = 0x1fffff, .repeat_period = 100 }, - [RC_PROTO_RC6_0] = { .name = "rc-6-0", --- -2.14.1 - - -From 888dab026c977b6f712b70f16ebeb2f6bf6f16db Mon Sep 17 00:00:00 2001 -From: Sean Young -Date: Wed, 11 Apr 2018 11:02:16 -0400 -Subject: [PATCH 05/12] media: rc: mce_kbd decoder: remove superfluous call to - input_sync - -There is nothing to sync in this code path. - -Reported-by: Matthias Reichl -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/rc/ir-mce_kbd-decoder.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/drivers/media/rc/ir-mce_kbd-decoder.c b/drivers/media/rc/ir-mce_kbd-decoder.c -index 002b832..2fc7871 100644 ---- a/drivers/media/rc/ir-mce_kbd-decoder.c -+++ b/drivers/media/rc/ir-mce_kbd-decoder.c -@@ -362,7 +362,6 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev) - dev_dbg(&dev->dev, "failed at state %i (%uus %s)\n", - data->state, TO_US(ev.duration), TO_STR(ev.pulse)); - data->state = STATE_INACTIVE; -- input_sync(data->idev); - return -EINVAL; - } - --- -2.14.1 - - -From 7b83e504b6bd4238468f807c32069d12cc450ef7 Mon Sep 17 00:00:00 2001 -From: Sean Young -Date: Thu, 12 Apr 2018 16:28:39 -0400 -Subject: [PATCH 06/12] media: rc: mce_kbd decoder: fix race condition - -The MCE keyboard sends both key down and key up events. We have a timeout -handler mce_kbd_rx_timeout() in case the keyup event is never received; -however, this may race with new key down events from occurring. - -The race is that key down scancode arrives and key down events are -generated. The timeout handler races this and generates key up events -straight afterwards. Since the keyboard generates scancodes every 100ms, -most likely the keys will be repeated 100ms later, and now we have new -key down events and the user sees duplicate key presses. - -Reported-by: Matthias Reichl -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/rc/ir-mce_kbd-decoder.c | 23 ++++++++++++++++------- - drivers/media/rc/rc-core-priv.h | 2 ++ - 2 files changed, 18 insertions(+), 7 deletions(-) - -diff --git a/drivers/media/rc/ir-mce_kbd-decoder.c b/drivers/media/rc/ir-mce_kbd-decoder.c -index 2fc7871..9574c3d 100644 ---- a/drivers/media/rc/ir-mce_kbd-decoder.c -+++ b/drivers/media/rc/ir-mce_kbd-decoder.c -@@ -119,19 +119,25 @@ static void mce_kbd_rx_timeout(struct timer_list *t) - { - struct ir_raw_event_ctrl *raw = from_timer(raw, t, mce_kbd.rx_timeout); - unsigned char maskcode; -+ unsigned long flags; - int i; - - dev_dbg(&raw->dev->dev, "timer callback clearing all keys\n"); - -- for (i = 0; i < 7; i++) { -- maskcode = kbd_keycodes[MCIR2_MASK_KEYS_START + i]; -- input_report_key(raw->mce_kbd.idev, maskcode, 0); -- } -+ spin_lock_irqsave(&raw->mce_kbd.keylock, flags); - -- for (i = 0; i < MCIR2_MASK_KEYS_START; i++) -- input_report_key(raw->mce_kbd.idev, kbd_keycodes[i], 0); -+ if (time_is_before_eq_jiffies(raw->mce_kbd.rx_timeout.expires)) { -+ for (i = 0; i < 7; i++) { -+ maskcode = kbd_keycodes[MCIR2_MASK_KEYS_START + i]; -+ input_report_key(raw->mce_kbd.idev, maskcode, 0); -+ } - -- input_sync(raw->mce_kbd.idev); -+ for (i = 0; i < MCIR2_MASK_KEYS_START; i++) -+ input_report_key(raw->mce_kbd.idev, kbd_keycodes[i], 0); -+ -+ input_sync(raw->mce_kbd.idev); -+ } -+ spin_unlock_irqrestore(&raw->mce_kbd.keylock, flags); - } - - static enum mce_kbd_mode mce_kbd_mode(struct mce_kbd_dec *data) -@@ -327,6 +333,7 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev) - scancode = data->body & 0xffffff; - dev_dbg(&dev->dev, "keyboard data 0x%08x\n", - data->body); -+ spin_lock(&data->keylock); - if (scancode) { - delay = nsecs_to_jiffies(dev->timeout) + - msecs_to_jiffies(100); -@@ -336,6 +343,7 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev) - } - /* Pass data to keyboard buffer parser */ - ir_mce_kbd_process_keyboard_data(dev, scancode); -+ spin_unlock(&data->keylock); - lsc.rc_proto = RC_PROTO_MCIR2_KBD; - break; - case MCIR2_MOUSE_NBITS: -@@ -400,6 +408,7 @@ static int ir_mce_kbd_register(struct rc_dev *dev) - set_bit(MSC_SCAN, idev->mscbit); - - timer_setup(&mce_kbd->rx_timeout, mce_kbd_rx_timeout, 0); -+ spin_lock_init(&mce_kbd->keylock); - - input_set_drvdata(idev, mce_kbd); - -diff --git a/drivers/media/rc/rc-core-priv.h b/drivers/media/rc/rc-core-priv.h -index f785513..07ba77f 100644 ---- a/drivers/media/rc/rc-core-priv.h -+++ b/drivers/media/rc/rc-core-priv.h -@@ -105,6 +105,8 @@ struct ir_raw_event_ctrl { - } sharp; - struct mce_kbd_dec { - struct input_dev *idev; -+ /* locks key up timer */ -+ spinlock_t keylock; - struct timer_list rx_timeout; - char name[64]; - char phys[64]; --- -2.14.1 - - -From 1a9b9e6b0b83261922f3cd6c2be0499a2a9f9ee9 Mon Sep 17 00:00:00 2001 -From: Sean Young -Date: Wed, 18 Apr 2018 05:36:25 -0400 -Subject: [PATCH 07/12] media: rc: mceusb: IR of length 0 means IR timeout, not - reset - -The last usb packet with IR data will end with 0x80 (MCE_IRDATA_TRAILER). -If we reset the decoder state at this point, IR decoding can fail. - -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/rc/mceusb.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c -index 69ba573..a1c2190 100644 ---- a/drivers/media/rc/mceusb.c -+++ b/drivers/media/rc/mceusb.c -@@ -1182,7 +1182,12 @@ static void mceusb_process_ir_data(struct mceusb_dev *ir, int buf_len) - if (ir->rem) { - ir->parser_state = PARSE_IRDATA; - } else { -- ir_raw_event_reset(ir->rc); -+ init_ir_raw_event(&rawir); -+ rawir.timeout = 1; -+ rawir.duration = ir->rc->timeout; -+ if (ir_raw_event_store_with_filter(ir->rc, -+ &rawir)) -+ event = true; - ir->pulse_tunit = 0; - ir->pulse_count = 0; - } --- -2.14.1 - - -From a137c26c8f9ac1ed406cc0a4a4dad3398fb0c920 Mon Sep 17 00:00:00 2001 -From: Sean Young -Date: Sun, 8 Apr 2018 11:06:49 -0400 -Subject: [PATCH 08/12] media: rc: mceusb: allow the timeout to be configurable - -mceusb devices have a default timeout of 100ms, but this can be changed. - -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/rc/mceusb.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - -diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c -index a1c2190..5c0bf61 100644 ---- a/drivers/media/rc/mceusb.c -+++ b/drivers/media/rc/mceusb.c -@@ -982,6 +982,25 @@ static int mceusb_set_tx_carrier(struct rc_dev *dev, u32 carrier) - return 0; - } - -+static int mceusb_set_timeout(struct rc_dev *dev, unsigned int timeout) -+{ -+ u8 cmdbuf[4] = { MCE_CMD_PORT_IR, MCE_CMD_SETIRTIMEOUT, 0, 0 }; -+ struct mceusb_dev *ir = dev->priv; -+ unsigned int units; -+ -+ units = DIV_ROUND_CLOSEST(timeout, US_TO_NS(MCE_TIME_UNIT)); -+ -+ cmdbuf[2] = units >> 8; -+ cmdbuf[3] = units; -+ -+ mce_async_out(ir, cmdbuf, sizeof(cmdbuf)); -+ -+ /* get receiver timeout value */ -+ mce_async_out(ir, GET_RX_TIMEOUT, sizeof(GET_RX_TIMEOUT)); -+ -+ return 0; -+} -+ - /* - * Select or deselect the 2nd receiver port. - * Second receiver is learning mode, wide-band, short-range receiver. -@@ -1420,7 +1439,10 @@ static struct rc_dev *mceusb_init_rc_dev(struct mceusb_dev *ir) - rc->dev.parent = dev; - rc->priv = ir; - rc->allowed_protocols = RC_PROTO_BIT_ALL_IR_DECODER; -+ rc->min_timeout = US_TO_NS(MCE_TIME_UNIT); - rc->timeout = MS_TO_NS(100); -+ rc->max_timeout = 10 * IR_DEFAULT_TIMEOUT; -+ rc->s_timeout = mceusb_set_timeout; - if (!ir->flags.no_tx) { - rc->s_tx_mask = mceusb_set_tx_mask; - rc->s_tx_carrier = mceusb_set_tx_carrier; --- -2.14.1 - - -From dd8159588ef7ab8cb05cd2730825a2e3406c3dbe Mon Sep 17 00:00:00 2001 -From: Sean Young -Date: Wed, 9 May 2018 06:11:28 -0400 -Subject: [PATCH 09/12] media: mceusb: MCE_CMD_SETIRTIMEOUT cause strange - behaviour on device - -If the IR timeout is set on vid 1784 pid 0011, the device starts -behaving strangely. - -Reported-by: Matthias Reichl -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/rc/mceusb.c | 22 +++++++++++++++++++--- - 1 file changed, 19 insertions(+), 3 deletions(-) - -diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c -index 5c0bf61..1619b74 100644 ---- a/drivers/media/rc/mceusb.c -+++ b/drivers/media/rc/mceusb.c -@@ -181,6 +181,7 @@ enum mceusb_model_type { - MCE_GEN2 = 0, /* Most boards */ - MCE_GEN1, - MCE_GEN3, -+ MCE_GEN3_BROKEN_IRTIMEOUT, - MCE_GEN2_TX_INV, - MCE_GEN2_TX_INV_RX_GOOD, - POLARIS_EVK, -@@ -199,6 +200,7 @@ struct mceusb_model { - u32 mce_gen3:1; - u32 tx_mask_normal:1; - u32 no_tx:1; -+ u32 broken_irtimeout:1; - /* - * 2nd IR receiver (short-range, wideband) for learning mode: - * 0, absent 2nd receiver (rx2) -@@ -242,6 +244,12 @@ static const struct mceusb_model mceusb_model[] = { - .tx_mask_normal = 1, - .rx2 = 2, - }, -+ [MCE_GEN3_BROKEN_IRTIMEOUT] = { -+ .mce_gen3 = 1, -+ .tx_mask_normal = 1, -+ .rx2 = 2, -+ .broken_irtimeout = 1 -+ }, - [POLARIS_EVK] = { - /* - * In fact, the EVK is shipped without -@@ -352,7 +360,7 @@ static const struct usb_device_id mceusb_dev_table[] = { - .driver_info = MCE_GEN2_TX_INV }, - /* Topseed eHome Infrared Transceiver */ - { USB_DEVICE(VENDOR_TOPSEED, 0x0011), -- .driver_info = MCE_GEN3 }, -+ .driver_info = MCE_GEN3_BROKEN_IRTIMEOUT }, - /* Ricavision internal Infrared Transceiver */ - { USB_DEVICE(VENDOR_RICAVISION, 0x0010) }, - /* Itron ione Libra Q-11 */ -@@ -1441,8 +1449,16 @@ static struct rc_dev *mceusb_init_rc_dev(struct mceusb_dev *ir) - rc->allowed_protocols = RC_PROTO_BIT_ALL_IR_DECODER; - rc->min_timeout = US_TO_NS(MCE_TIME_UNIT); - rc->timeout = MS_TO_NS(100); -- rc->max_timeout = 10 * IR_DEFAULT_TIMEOUT; -- rc->s_timeout = mceusb_set_timeout; -+ if (!mceusb_model[ir->model].broken_irtimeout) { -+ rc->s_timeout = mceusb_set_timeout; -+ rc->max_timeout = 10 * IR_DEFAULT_TIMEOUT; -+ } else { -+ /* -+ * If we can't set the timeout using CMD_SETIRTIMEOUT, we can -+ * rely on software timeouts for timeouts < 100ms. -+ */ -+ rc->max_timeout = rc->timeout; -+ } - if (!ir->flags.no_tx) { - rc->s_tx_mask = mceusb_set_tx_mask; - rc->s_tx_carrier = mceusb_set_tx_carrier; --- -2.14.1 - - -From 1391fe65757811bc1e197200a27918141b2fd90b Mon Sep 17 00:00:00 2001 -From: Sean Young -Date: Thu, 10 May 2018 07:37:51 -0400 -Subject: [PATCH 10/12] media: mceusb: filter out bogus timing irdata of - duration 0 - -A mceusb device has been observed producing invalid irdata. Proactively -guard against this. - -Suggested-by: Matthias Reichl -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/rc/mceusb.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c -index 1619b74..1ca4949 100644 ---- a/drivers/media/rc/mceusb.c -+++ b/drivers/media/rc/mceusb.c -@@ -1177,6 +1177,11 @@ static void mceusb_process_ir_data(struct mceusb_dev *ir, int buf_len) - init_ir_raw_event(&rawir); - rawir.pulse = ((ir->buf_in[i] & MCE_PULSE_BIT) != 0); - rawir.duration = (ir->buf_in[i] & MCE_PULSE_MASK); -+ if (unlikely(!rawir.duration)) { -+ dev_warn(ir->dev, "nonsensical irdata %02x with duration 0", -+ ir->buf_in[i]); -+ break; -+ } - if (rawir.pulse) { - ir->pulse_tunit += rawir.duration; - ir->pulse_count++; --- -2.14.1 - - -From 2b7fc5287aba07497933d9cceb3898ebd8001af4 Mon Sep 17 00:00:00 2001 -From: Sean Young -Date: Thu, 10 May 2018 07:49:49 -0400 -Subject: [PATCH 11/12] media: mceusb: add missing break - -Fallthrough is not intended here. - -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/rc/mceusb.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c -index 1ca4949..4c0c800 100644 ---- a/drivers/media/rc/mceusb.c -+++ b/drivers/media/rc/mceusb.c -@@ -572,6 +572,7 @@ static int mceusb_cmd_datasize(u8 cmd, u8 subcmd) - datasize = 1; - break; - } -+ break; - case MCE_CMD_PORT_IR: - switch (subcmd) { - case MCE_CMD_UNKNOWN: --- -2.14.1 - - -From 06ea4ee6cc2d2d6fae27ddb29f31595f2d6a018b Mon Sep 17 00:00:00 2001 -From: Matthias Reichl -Date: Sun, 13 May 2018 07:24:31 -0400 -Subject: [PATCH 12/12] media: rc: ite-cir: lower timeout and extend allowed - timeout range - -The minimum possible timeout of ite-cir is 8 samples, which is -typically about 70us. The driver however changes the FIFO trigger -level from the hardware's default of 1 byte to 17 bytes, so the minimum -usable timeout value is 17 * 8 samples, which is typically about 1.2ms. - -Tests showed that using timeouts down to 1.2ms actually work fine. - -The current default timeout of 200ms is much longer than necessary and -the maximum timeout of 1s seems to have been chosen a bit arbitrarily. - -So change the minimum timeout to the driver's limit of 17 * 8 samples -and bring timeout and maximum timeout in line with the settings -of many other receivers. - -Signed-off-by: Matthias Reichl -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/rc/ite-cir.c | 8 +++++--- - drivers/media/rc/ite-cir.h | 7 ------- - 2 files changed, 5 insertions(+), 10 deletions(-) - -diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c -index 65e104c..de77d22 100644 ---- a/drivers/media/rc/ite-cir.c -+++ b/drivers/media/rc/ite-cir.c -@@ -1561,9 +1561,11 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id - rdev->close = ite_close; - rdev->s_idle = ite_s_idle; - rdev->s_rx_carrier_range = ite_set_rx_carrier_range; -- rdev->min_timeout = ITE_MIN_IDLE_TIMEOUT; -- rdev->max_timeout = ITE_MAX_IDLE_TIMEOUT; -- rdev->timeout = ITE_IDLE_TIMEOUT; -+ /* FIFO threshold is 17 bytes, so 17 * 8 samples minimum */ -+ rdev->min_timeout = 17 * 8 * ITE_BAUDRATE_DIVISOR * -+ itdev->params.sample_period; -+ rdev->timeout = IR_DEFAULT_TIMEOUT; -+ rdev->max_timeout = 10 * IR_DEFAULT_TIMEOUT; - rdev->rx_resolution = ITE_BAUDRATE_DIVISOR * - itdev->params.sample_period; - rdev->tx_resolution = ITE_BAUDRATE_DIVISOR * -diff --git a/drivers/media/rc/ite-cir.h b/drivers/media/rc/ite-cir.h -index 0e8ebc8..9cb24ac 100644 ---- a/drivers/media/rc/ite-cir.h -+++ b/drivers/media/rc/ite-cir.h -@@ -154,13 +154,6 @@ struct ite_dev { - /* default carrier freq for when demodulator is off (Hz) */ - #define ITE_DEFAULT_CARRIER_FREQ 38000 - --/* default idling timeout in ns (0.2 seconds) */ --#define ITE_IDLE_TIMEOUT 200000000UL -- --/* limit timeout values */ --#define ITE_MIN_IDLE_TIMEOUT 100000000UL --#define ITE_MAX_IDLE_TIMEOUT 1000000000UL -- - /* convert bits to us */ - #define ITE_BITS_TO_NS(bits, sample_period) \ - ((u32) ((bits) * ITE_BAUDRATE_DIVISOR * sample_period)) --- -2.14.1 - diff --git a/packages/linux/patches/default/linux-999-revert-dvb-t680ci-commit.patch b/packages/linux/patches/default/linux-999-revert-dvb-t680ci-commit.patch new file mode 100644 index 0000000000..41793d7173 --- /dev/null +++ b/packages/linux/patches/default/linux-999-revert-dvb-t680ci-commit.patch @@ -0,0 +1,60 @@ +From c24b2ad9c085685c2cace7733c22dbc80a95de27 Mon Sep 17 00:00:00 2001 +From: MilhouseVH +Date: Thu, 16 Aug 2018 21:24:14 +0100 +Subject: [PATCH] Revert "media: dvbsky: use just one mutex for serializing + device R/W ops" + +This reverts commit 7d95fb746c4eece67308f1642a666ea1ebdbd2cc. +--- + drivers/media/usb/dvb-usb-v2/dvbsky.c | 16 ++++++++++------ + 1 file changed, 10 insertions(+), 6 deletions(-) + +diff --git a/drivers/media/usb/dvb-usb-v2/dvbsky.c b/drivers/media/usb/dvb-usb-v2/dvbsky.c +index 1aa88d9..e28bd88 100644 +--- a/drivers/media/usb/dvb-usb-v2/dvbsky.c ++++ b/drivers/media/usb/dvb-usb-v2/dvbsky.c +@@ -31,6 +31,7 @@ MODULE_PARM_DESC(disable_rc, "Disable inbuilt IR receiver."); + DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); + + struct dvbsky_state { ++ struct mutex stream_mutex; + u8 ibuf[DVBSKY_BUF_LEN]; + u8 obuf[DVBSKY_BUF_LEN]; + u8 last_lock; +@@ -67,17 +68,18 @@ static int dvbsky_usb_generic_rw(struct dvb_usb_device *d, + + static int dvbsky_stream_ctrl(struct dvb_usb_device *d, u8 onoff) + { ++ struct dvbsky_state *state = d_to_priv(d); + int ret; +- static u8 obuf_pre[3] = { 0x37, 0, 0 }; +- static u8 obuf_post[3] = { 0x36, 3, 0 }; ++ u8 obuf_pre[3] = { 0x37, 0, 0 }; ++ u8 obuf_post[3] = { 0x36, 3, 0 }; + +- mutex_lock(&d->usb_mutex); +- ret = dvb_usbv2_generic_rw_locked(d, obuf_pre, 3, NULL, 0); ++ mutex_lock(&state->stream_mutex); ++ ret = dvbsky_usb_generic_rw(d, obuf_pre, 3, NULL, 0); + if (!ret && onoff) { + msleep(20); +- ret = dvb_usbv2_generic_rw_locked(d, obuf_post, 3, NULL, 0); ++ ret = dvbsky_usb_generic_rw(d, obuf_post, 3, NULL, 0); + } +- mutex_unlock(&d->usb_mutex); ++ mutex_unlock(&state->stream_mutex); + return ret; + } + +@@ -606,6 +608,8 @@ static int dvbsky_init(struct dvb_usb_device *d) + if (ret) + return ret; + */ ++ mutex_init(&state->stream_mutex); ++ + state->last_lock = 0; + + return 0; +-- +2.14.1 + diff --git a/packages/linux/patches/default/linux-999-use-linus-commit-to-fix-ksoftirqd-issues.patch b/packages/linux/patches/default/linux-999-use-linus-commit-to-fix-ksoftirqd-issues.patch deleted file mode 100644 index 947c47620e..0000000000 --- a/packages/linux/patches/default/linux-999-use-linus-commit-to-fix-ksoftirqd-issues.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 5839d34af2063552f83865fd5ebac651688087f9 Mon Sep 17 00:00:00 2001 -From: MilhouseVH -Date: Thu, 1 Feb 2018 09:25:19 +0000 -Subject: [PATCH] Fix issues introduced by ksoftirqd change - ---- - kernel/softirq.c | 12 ++++++++---- - 1 file changed, 8 insertions(+), 4 deletions(-) - -diff --git a/kernel/softirq.c b/kernel/softirq.c -index 4e09821..d6772be 100644 ---- a/kernel/softirq.c -+++ b/kernel/softirq.c -@@ -79,12 +79,16 @@ static void wakeup_softirqd(void) - - /* - * If ksoftirqd is scheduled, we do not want to process pending softirqs -- * right now. Let ksoftirqd handle this at its own rate, to get fairness. -+ * right now. Let ksoftirqd handle this at its own rate, to get fairness, -+ * unless we're doing some of the synchronous softirqs. - */ --static bool ksoftirqd_running(void) -+#define SOFTIRQ_NOW_MASK ((1 << HI_SOFTIRQ) | (1 << TASKLET_SOFTIRQ)) -+static bool ksoftirqd_running(unsigned long pending) - { - struct task_struct *tsk = __this_cpu_read(ksoftirqd); - -+ if (pending & SOFTIRQ_NOW_MASK) -+ return false; - return tsk && (tsk->state == TASK_RUNNING); - } - -@@ -324,7 +328,7 @@ asmlinkage __visible void do_softirq(void) - - pending = local_softirq_pending(); - -- if (pending && !ksoftirqd_running()) -+ if (pending && !ksoftirqd_running(pending)) - do_softirq_own_stack(); - - local_irq_restore(flags); -@@ -351,7 +355,7 @@ void irq_enter(void) - - static inline void invoke_softirq(void) - { -- if (ksoftirqd_running()) -+ if (ksoftirqd_running(local_softirq_pending())) - return; - - if (!force_irqthreads) { --- -2.14.1 - diff --git a/projects/Generic/linux/linux.x86_64.conf b/projects/Generic/linux/linux.x86_64.conf index 0fb99a74f3..8952cd6707 100644 --- a/projects/Generic/linux/linux.x86_64.conf +++ b/projects/Generic/linux/linux.x86_64.conf @@ -1,6 +1,10 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86_64 4.17.7 Kernel Configuration +# Linux/x86_64 4.18.1 Kernel Configuration +# + +# +# Compiler: gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0 # CONFIG_64BIT=y CONFIG_X86_64=y @@ -15,8 +19,6 @@ CONFIG_ARCH_MMAP_RND_BITS_MIN=28 CONFIG_ARCH_MMAP_RND_BITS_MAX=32 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y @@ -42,6 +44,9 @@ CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=70200 +CONFIG_CLANG_VERSION=0 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y @@ -50,7 +55,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # General setup # CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_CROSS_COMPILE="" # CONFIG_COMPILE_TEST is not set CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set @@ -227,6 +231,8 @@ CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_BPF_SYSCALL=y # CONFIG_USERFAULTFD is not set CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_RSEQ=y +# CONFIG_DEBUG_RSEQ is not set # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y # CONFIG_PC104 is not set @@ -250,6 +256,7 @@ CONFIG_SLUB_CPU_PARTIAL=y CONFIG_SYSTEM_DATA_VERIFICATION=y # CONFIG_PROFILING is not set CONFIG_TRACEPOINTS=y +CONFIG_HOTPLUG_SMT=y CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE_NMI_TIMER=y CONFIG_KPROBES=y @@ -275,8 +282,8 @@ CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y CONFIG_HAVE_CLK=y -CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y @@ -294,13 +301,12 @@ CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_SECCOMP_FILTER=y +CONFIG_PLUGIN_HOSTCC="" CONFIG_HAVE_GCC_PLUGINS=y -# CONFIG_GCC_PLUGINS is not set -CONFIG_HAVE_CC_STACKPROTECTOR=y -CONFIG_CC_STACKPROTECTOR_NONE=y -# CONFIG_CC_STACKPROTECTOR_REGULAR is not set -# CONFIG_CC_STACKPROTECTOR_STRONG is not set -# CONFIG_CC_STACKPROTECTOR_AUTO is not set +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_CC_HAS_STACKPROTECTOR_NONE=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y @@ -324,6 +330,7 @@ CONFIG_HAVE_STACK_VALIDATION=y CONFIG_HAVE_RELIABLE_STACKTRACE=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_COMPAT_OLD_SIGACTION=y +CONFIG_COMPAT_32BIT_TIME=y CONFIG_HAVE_ARCH_VMAP_STACK=y # CONFIG_VMAP_STACK is not set CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y @@ -420,6 +427,7 @@ CONFIG_ARCH_USE_QUEUED_RWLOCKS=y CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y +CONFIG_CC_HAS_SANE_STACKPROTECTOR=y CONFIG_FREEZER=y # @@ -472,8 +480,6 @@ CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y CONFIG_GART_IOMMU=y # CONFIG_CALGARY_IOMMU is not set -CONFIG_SWIOTLB=y -CONFIG_IOMMU_HELPER=y # CONFIG_MAXSMP is not set CONFIG_NR_CPUS_RANGE_BEGIN=2 CONFIG_NR_CPUS_RANGE_END=512 @@ -508,8 +514,6 @@ CONFIG_MICROCODE_OLD_INTERFACE=y CONFIG_X86_MSR=y CONFIG_X86_CPUID=y # CONFIG_X86_5LEVEL is not set -CONFIG_ARCH_PHYS_ADDR_T_64BIT=y -CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_X86_DIRECT_GBPAGES=y CONFIG_ARCH_HAS_MEM_ENCRYPT=y # CONFIG_AMD_MEM_ENCRYPT is not set @@ -572,6 +576,7 @@ CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y CONFIG_ARCH_HAS_PKEYS=y # CONFIG_PERCPU_STATS is not set # CONFIG_GUP_BENCHMARK is not set +CONFIG_ARCH_HAS_PTE_SPECIAL=y # CONFIG_X86_PMEM_LEGACY is not set CONFIG_X86_CHECK_BIOS_CORRUPTION=y CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y @@ -748,8 +753,8 @@ CONFIG_MMCONF_FAM10H=y # CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y CONFIG_PCIEAER=y -# CONFIG_PCIE_ECRC is not set # CONFIG_PCIEAER_INJECT is not set +# CONFIG_PCIE_ECRC is not set CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM_DEFAULT=y @@ -759,7 +764,6 @@ CONFIG_PCIEASPM_DEFAULT=y CONFIG_PCIE_PME=y # CONFIG_PCIE_DPC is not set # CONFIG_PCIE_PTM is not set -CONFIG_PCI_BUS_ADDR_T_64BIT=y CONFIG_PCI_MSI=y CONFIG_PCI_MSI_IRQ_DOMAIN=y CONFIG_PCI_QUIRKS=y @@ -772,19 +776,19 @@ CONFIG_PCI_LOCKLESS_CONFIG=y CONFIG_PCI_LABEL=y # CONFIG_HOTPLUG_PCI is not set +# +# PCI controller drivers +# + # # Cadence PCIe controllers support # +# CONFIG_VMD is not set # # DesignWare PCI Core Support # -# CONFIG_PCIE_DW_PLAT is not set - -# -# PCI host controller drivers -# -# CONFIG_VMD is not set +# CONFIG_PCIE_DW_PLAT_HOST is not set # # PCI Endpoint @@ -833,6 +837,7 @@ CONFIG_UNIX=y # CONFIG_TLS is not set # CONFIG_XFRM_USER is not set # CONFIG_NET_KEY is not set +# CONFIG_XDP_SOCKETS is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y @@ -949,7 +954,6 @@ CONFIG_NF_NAT_NEEDED=y CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_SIP=m -# CONFIG_NF_NAT_REDIRECT is not set # CONFIG_NF_TABLES is not set CONFIG_NETFILTER_XTABLES=m @@ -1038,12 +1042,13 @@ CONFIG_NETFILTER_XT_MATCH_STATE=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_CONNTRACK_IPV4=m # CONFIG_NF_SOCKET_IPV4 is not set +# CONFIG_NF_TPROXY_IPV4 is not set # CONFIG_NF_DUP_IPV4 is not set # CONFIG_NF_LOG_ARP is not set # CONFIG_NF_LOG_IPV4 is not set CONFIG_NF_REJECT_IPV4=m CONFIG_NF_NAT_IPV4=m -CONFIG_NF_NAT_MASQUERADE_IPV4=m +CONFIG_NF_NAT_MASQUERADE_IPV4=y CONFIG_IP_NF_IPTABLES=m # CONFIG_IP_NF_MATCH_AH is not set # CONFIG_IP_NF_MATCH_ECN is not set @@ -1069,11 +1074,11 @@ CONFIG_IP_NF_MANGLE=m CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m # CONFIG_NF_SOCKET_IPV6 is not set +# CONFIG_NF_TPROXY_IPV6 is not set # CONFIG_NF_DUP_IPV6 is not set CONFIG_NF_REJECT_IPV6=m # CONFIG_NF_LOG_IPV6 is not set CONFIG_NF_NAT_IPV6=m -# CONFIG_NF_NAT_MASQUERADE_IPV6 is not set CONFIG_IP6_NF_IPTABLES=m # CONFIG_IP6_NF_MATCH_AH is not set # CONFIG_IP6_NF_MATCH_EUI64 is not set @@ -1095,6 +1100,7 @@ CONFIG_IP6_NF_NAT=m # CONFIG_IP6_NF_TARGET_MASQUERADE is not set # CONFIG_IP6_NF_TARGET_NPT is not set # CONFIG_BRIDGE_NF_EBTABLES is not set +# CONFIG_BPFILTER is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_RDS is not set @@ -1284,6 +1290,7 @@ CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y # CONFIG_NET_DEVLINK is not set CONFIG_MAY_USE_DEVLINK=y +CONFIG_FAILOVER=y CONFIG_HAVE_EBPF_JIT=y # @@ -1298,10 +1305,14 @@ CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y # CONFIG_PREVENT_FIRMWARE_BUILD is not set + +# +# Firmware loader +# CONFIG_FW_LOADER=y CONFIG_EXTRA_FIRMWARE="" CONFIG_EXTRA_FIRMWARE_DIR="external-firmware" -# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set +# CONFIG_FW_LOADER_USER_HELPER is not set CONFIG_WANT_DEV_COREDUMP=y # CONFIG_ALLOW_DEV_COREDUMP is not set # CONFIG_DEBUG_DRIVER is not set @@ -1709,7 +1720,6 @@ CONFIG_ATL1E=y CONFIG_ATL1C=y CONFIG_ALX=y # CONFIG_NET_VENDOR_AURORA is not set -# CONFIG_NET_CADENCE is not set CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=y CONFIG_B44_PCI_AUTOSELECT=y @@ -1722,6 +1732,7 @@ CONFIG_TIGON3_HWMON=y # CONFIG_BNX2X is not set # CONFIG_BNXT is not set # CONFIG_NET_VENDOR_BROCADE is not set +# CONFIG_NET_CADENCE is not set CONFIG_NET_VENDOR_CAVIUM=y # CONFIG_THUNDER_NIC_PF is not set # CONFIG_THUNDER_NIC_VF is not set @@ -1746,9 +1757,9 @@ CONFIG_ULI526X=y # CONFIG_NET_VENDOR_DLINK is not set # CONFIG_NET_VENDOR_EMULEX is not set CONFIG_NET_VENDOR_EZCHIP=y -# CONFIG_NET_VENDOR_EXAR is not set # CONFIG_NET_VENDOR_HP is not set # CONFIG_NET_VENDOR_HUAWEI is not set +CONFIG_NET_VENDOR_I825XX=y CONFIG_NET_VENDOR_INTEL=y CONFIG_E100=y CONFIG_E1000=y @@ -1765,7 +1776,7 @@ CONFIG_IXGBE_HWMON=y # CONFIG_I40EVF is not set CONFIG_ICE=y # CONFIG_FM10K is not set -CONFIG_NET_VENDOR_I825XX=y +# CONFIG_NET_VENDOR_EXAR is not set CONFIG_JME=y CONFIG_NET_VENDOR_MARVELL=y # CONFIG_MVMDIO is not set @@ -1776,6 +1787,7 @@ CONFIG_SKY2=y # CONFIG_SKY2_DEBUG is not set # CONFIG_NET_VENDOR_MELLANOX is not set # CONFIG_NET_VENDOR_MICREL is not set +CONFIG_NET_VENDOR_MICROSEMI=y # CONFIG_NET_VENDOR_MYRI is not set # CONFIG_FEALNX is not set # CONFIG_NET_VENDOR_NATSEMI is not set @@ -1794,6 +1806,7 @@ CONFIG_QLA3XXX=y # CONFIG_NETXEN_NIC is not set # CONFIG_QED is not set # CONFIG_NET_VENDOR_QUALCOMM is not set +# CONFIG_NET_VENDOR_RDC is not set CONFIG_NET_VENDOR_REALTEK=y # CONFIG_8139CP is not set CONFIG_8139TOO=y @@ -1803,19 +1816,20 @@ CONFIG_8139TOO=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_R8169=y CONFIG_NET_VENDOR_RENESAS=y -# CONFIG_NET_VENDOR_RDC is not set CONFIG_NET_VENDOR_ROCKER=y # CONFIG_NET_VENDOR_SAMSUNG is not set # CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SOLARFLARE is not set # CONFIG_NET_VENDOR_SILAN is not set CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=y CONFIG_SIS190=y -# CONFIG_NET_VENDOR_SOLARFLARE is not set # CONFIG_NET_VENDOR_SMSC is not set # CONFIG_NET_VENDOR_SOCIONEXT is not set # CONFIG_NET_VENDOR_STMICRO is not set # CONFIG_NET_VENDOR_SUN is not set +CONFIG_NET_VENDOR_SYNOPSYS=y +# CONFIG_DWC_XLGMAC is not set # CONFIG_NET_VENDOR_TEHUTI is not set # CONFIG_NET_VENDOR_TI is not set CONFIG_NET_VENDOR_VIA=y @@ -1823,14 +1837,13 @@ CONFIG_VIA_RHINE=y # CONFIG_VIA_RHINE_MMIO is not set CONFIG_VIA_VELOCITY=y # CONFIG_NET_VENDOR_WIZNET is not set -CONFIG_NET_VENDOR_SYNOPSYS=y -# CONFIG_DWC_XLGMAC is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_NET_SB1000 is not set CONFIG_MDIO_DEVICE=y CONFIG_MDIO_BUS=y # CONFIG_MDIO_BITBANG is not set +# CONFIG_MDIO_MSCC_MIIM is not set # CONFIG_MDIO_THUNDER is not set CONFIG_PHYLIB=y # CONFIG_LED_TRIGGER_PHY is not set @@ -1840,6 +1853,7 @@ CONFIG_PHYLIB=y # CONFIG_AMD_PHY=y # CONFIG_AQUANTIA_PHY is not set +# CONFIG_ASIX_PHY is not set CONFIG_AT803X_PHY=y # CONFIG_BCM7XXX_PHY is not set # CONFIG_BCM87XX_PHY is not set @@ -1849,6 +1863,7 @@ CONFIG_BROADCOM_PHY=y # CONFIG_CORTINA_PHY is not set # CONFIG_DAVICOM_PHY is not set # CONFIG_DP83822_PHY is not set +# CONFIG_DP83TC811_PHY is not set # CONFIG_DP83848_PHY is not set # CONFIG_DP83867_PHY is not set # CONFIG_FIXED_PHY is not set @@ -1860,6 +1875,7 @@ CONFIG_MARVELL_PHY=y # CONFIG_MARVELL_10G_PHY is not set # CONFIG_MICREL_PHY is not set # CONFIG_MICROCHIP_PHY is not set +# CONFIG_MICROCHIP_T1_PHY is not set # CONFIG_MICROSEMI_PHY is not set # CONFIG_NATIONAL_PHY is not set # CONFIG_QSEMI_PHY is not set @@ -1956,6 +1972,7 @@ CONFIG_ATH6KL_USB=m CONFIG_AR5523=m # CONFIG_WIL6210 is not set CONFIG_ATH10K=m +CONFIG_ATH10K_CE=y CONFIG_ATH10K_PCI=m # CONFIG_ATH10K_SDIO is not set CONFIG_ATH10K_USB=m @@ -2118,6 +2135,7 @@ CONFIG_USB_NET_RNDIS_WLAN=m # CONFIG_FUJITSU_ES is not set # CONFIG_THUNDERBOLT_NET is not set # CONFIG_NETDEVSIM is not set +CONFIG_NET_FAILOVER=y # CONFIG_ISDN is not set # CONFIG_NVM is not set @@ -2228,6 +2246,7 @@ CONFIG_TOUCHSCREEN_PROPERTIES=y # CONFIG_TOUCHSCREEN_ATMEL_MXT is not set # CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # CONFIG_TOUCHSCREEN_BU21013 is not set +# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set # CONFIG_TOUCHSCREEN_CY8CTMG110 is not set # CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set # CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set @@ -2556,6 +2575,7 @@ CONFIG_PINCTRL_CHERRYVIEW=y # CONFIG_PINCTRL_LEWISBURG is not set # CONFIG_PINCTRL_SUNRISEPOINT is not set CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_GPIO_ACPI=y CONFIG_GPIOLIB_IRQCHIP=y # CONFIG_DEBUG_GPIO is not set @@ -2964,7 +2984,6 @@ CONFIG_VIDEO_TUNER=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m -CONFIG_VIDEOBUF_DVB=m CONFIG_DVB_CORE=m # CONFIG_DVB_MMAP is not set CONFIG_DVB_NET=y @@ -3087,7 +3106,6 @@ CONFIG_MEDIA_PCI_SUPPORT=y # CONFIG_VIDEO_TW5864 is not set # CONFIG_VIDEO_TW68 is not set # CONFIG_VIDEO_TW686X is not set -# CONFIG_VIDEO_ZORAN is not set # # Media capture/analog TV support @@ -3277,6 +3295,7 @@ CONFIG_MEDIA_TUNER_IT913X=m CONFIG_MEDIA_TUNER_R820T=m CONFIG_MEDIA_TUNER_MXL301RF=m CONFIG_MEDIA_TUNER_QM1D1C0042=m +CONFIG_MEDIA_TUNER_QM1D1B0004=m # # Multistandard (satellite) frontends @@ -3428,6 +3447,7 @@ CONFIG_DVB_SP2=m # # Tools to develop new frontends # +CONFIG_DVB_DUMMY_FE=m # # Graphics support @@ -3445,7 +3465,7 @@ CONFIG_DRM=y CONFIG_DRM_MIPI_DSI=y CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DEBUG_MM is not set -# CONFIG_DRM_DEBUG_MM_SELFTEST is not set +# CONFIG_DRM_DEBUG_SELFTEST is not set CONFIG_DRM_KMS_HELPER=y CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y @@ -3460,6 +3480,7 @@ CONFIG_DRM_SCHED=y # CONFIG_DRM_I2C_CH7006 is not set # CONFIG_DRM_I2C_SIL164 is not set # CONFIG_DRM_I2C_NXP_TDA998X is not set +# CONFIG_DRM_I2C_NXP_TDA9950 is not set CONFIG_DRM_RADEON=y # CONFIG_DRM_RADEON_USERPTR is not set CONFIG_DRM_AMDGPU=y @@ -3477,7 +3498,6 @@ CONFIG_DRM_AMD_ACP=y # Display Engine Configuration # CONFIG_DRM_AMD_DC=y -CONFIG_DRM_AMD_DC_PRE_VEGA=y CONFIG_DRM_AMD_DC_FBC=y CONFIG_DRM_AMD_DC_DCN1_0=y # CONFIG_DEBUG_KERNEL_DC is not set @@ -3503,6 +3523,7 @@ CONFIG_DRM_I915_USERPTR=y # CONFIG_DRM_I915_DEBUG is not set # CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set # CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set +# CONFIG_DRM_I915_DEBUG_GUC is not set # CONFIG_DRM_I915_SELFTEST is not set # CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set # CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set @@ -3600,7 +3621,6 @@ CONFIG_FB_UDL=m # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set -# CONFIG_FB_AUO_K190X is not set # CONFIG_FB_SIMPLE is not set # CONFIG_FB_SM712 is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y @@ -3818,7 +3838,6 @@ CONFIG_SND_SOC_INTEL_SST_ACPI=m CONFIG_SND_SOC_INTEL_SST=m CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m CONFIG_SND_SOC_INTEL_HASWELL=m -CONFIG_SND_SOC_INTEL_BAYTRAIL=m CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=y # CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI is not set CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=y @@ -3828,8 +3847,6 @@ CONFIG_SND_SOC_INTEL_MACH=y # CONFIG_SND_SOC_INTEL_HASWELL_MACH is not set # CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH is not set # CONFIG_SND_SOC_INTEL_BROADWELL_MACH is not set -# CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH is not set -# CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH is not set CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m # CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH is not set CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m @@ -3910,6 +3927,7 @@ CONFIG_SND_SOC_RT5670=m # CONFIG_SND_SOC_SGTL5000 is not set # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set CONFIG_SND_SOC_SPDIF=m +# CONFIG_SND_SOC_SSM2305 is not set # CONFIG_SND_SOC_SSM2602_I2C is not set # CONFIG_SND_SOC_SSM4567 is not set # CONFIG_SND_SOC_STA32X is not set @@ -3928,6 +3946,7 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TLV320AIC3X is not set CONFIG_SND_SOC_TS3A227E=m # CONFIG_SND_SOC_TSCS42XX is not set +# CONFIG_SND_SOC_TSCS454 is not set # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set # CONFIG_SND_SOC_WM8524 is not set @@ -3940,6 +3959,7 @@ CONFIG_SND_SOC_TS3A227E=m # CONFIG_SND_SOC_WM8750 is not set # CONFIG_SND_SOC_WM8753 is not set # CONFIG_SND_SOC_WM8776 is not set +# CONFIG_SND_SOC_WM8782 is not set # CONFIG_SND_SOC_WM8804_I2C is not set # CONFIG_SND_SOC_WM8903 is not set # CONFIG_SND_SOC_WM8960 is not set @@ -3949,6 +3969,7 @@ CONFIG_SND_SOC_TS3A227E=m # CONFIG_SND_SOC_WM8985 is not set # CONFIG_SND_SOC_ZX_AUD96P22 is not set # CONFIG_SND_SOC_MAX9759 is not set +# CONFIG_SND_SOC_MT6351 is not set # CONFIG_SND_SOC_NAU8540 is not set # CONFIG_SND_SOC_NAU8810 is not set CONFIG_SND_SOC_NAU8824=m @@ -4021,6 +4042,7 @@ CONFIG_LOGIG940_FF=y CONFIG_LOGIWHEELS_FF=y # CONFIG_HID_MAGICMOUSE is not set # CONFIG_HID_MAYFLASH is not set +# CONFIG_HID_REDRAGON is not set CONFIG_HID_MICROSOFT=y CONFIG_HID_MONTEREY=y CONFIG_HID_MULTITOUCH=m @@ -4042,6 +4064,7 @@ CONFIG_HID_SAMSUNG=y CONFIG_HID_SONY=y CONFIG_SONY_FF=y # CONFIG_HID_SPEEDLINK is not set +CONFIG_HID_STEAM=m # CONFIG_HID_STEELSERIES is not set CONFIG_HID_SUNPLUS=y CONFIG_HID_RMI=y @@ -4316,6 +4339,7 @@ CONFIG_LEDS_CLASS_FLASH=y # CONFIG_LEDS_AS3645A is not set # CONFIG_LEDS_LM3530 is not set # CONFIG_LEDS_LM3642 is not set +# CONFIG_LEDS_LM3601X is not set # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_GPIO is not set # CONFIG_LEDS_LP3944 is not set @@ -4513,8 +4537,6 @@ CONFIG_VIRTIO_MMIO=y # # CONFIG_HYPERV is not set CONFIG_STAGING=y -# CONFIG_IPX is not set -# CONFIG_NCP_FS is not set # CONFIG_PRISM2_USB is not set # CONFIG_COMEDI is not set CONFIG_RTL8192U=m @@ -4534,13 +4556,13 @@ CONFIG_VT6656=m # # CONFIG_SPEAKUP is not set CONFIG_STAGING_MEDIA=y +# CONFIG_VIDEO_ZORAN is not set # # Android # # CONFIG_LTE_GDM724X is not set # CONFIG_FIREWIRE_SERIAL is not set -# CONFIG_LNET is not set # CONFIG_DGNC is not set # CONFIG_GS_FPGABOOT is not set # CONFIG_CRYPTO_SKEIN is not set @@ -4820,6 +4842,7 @@ CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y # CONFIG_QUOTA is not set CONFIG_AUTOFS4_FS=y +CONFIG_AUTOFS_FS=y CONFIG_FUSE_FS=m # CONFIG_CUSE is not set CONFIG_OVERLAY_FS=m @@ -4845,7 +4868,6 @@ CONFIG_ISO9660_FS=m CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m -CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems @@ -4872,6 +4894,7 @@ CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLBFS is not set +CONFIG_MEMFD_CREATE=y CONFIG_CONFIGFS_FS=y CONFIG_EFIVAR_FS=y CONFIG_MISC_FILESYSTEMS=y @@ -5066,6 +5089,7 @@ CONFIG_HAVE_DEBUG_STACKOVERFLOW=y CONFIG_HAVE_ARCH_KASAN=y # CONFIG_KASAN is not set CONFIG_ARCH_HAS_KCOV=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y # CONFIG_KCOV is not set # CONFIG_DEBUG_SHIRQ is not set @@ -5133,8 +5157,8 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_NOTIFIER_ERROR_INJECTION is not set -# CONFIG_FAULT_INJECTION is not set CONFIG_FUNCTION_ERROR_INJECTION=y +# CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_NOP_TRACER=y @@ -5205,6 +5229,7 @@ CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_PRINTF is not set # CONFIG_TEST_BITMAP is not set # CONFIG_TEST_UUID is not set +# CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_RHASHTABLE is not set # CONFIG_TEST_HASH is not set # CONFIG_TEST_LKM is not set @@ -5320,6 +5345,17 @@ CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CCM=y CONFIG_CRYPTO_GCM=m # CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_AEGIS128 is not set +# CONFIG_CRYPTO_AEGIS128L is not set +# CONFIG_CRYPTO_AEGIS256 is not set +# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set +# CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2 is not set +# CONFIG_CRYPTO_AEGIS256_AESNI_SSE2 is not set +# CONFIG_CRYPTO_MORUS640 is not set +# CONFIG_CRYPTO_MORUS640_SSE2 is not set +# CONFIG_CRYPTO_MORUS1280 is not set +# CONFIG_CRYPTO_MORUS1280_SSE2 is not set +# CONFIG_CRYPTO_MORUS1280_AVX2 is not set CONFIG_CRYPTO_SEQIV=y CONFIG_CRYPTO_ECHAINIV=m @@ -5424,6 +5460,7 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set +# CONFIG_CRYPTO_ZSTD is not set # # Random Number Generation @@ -5512,8 +5549,13 @@ CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y -CONFIG_SGL_ALLOC=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_DMA_DIRECT_OPS=y +CONFIG_SWIOTLB=y +CONFIG_SGL_ALLOC=y +CONFIG_IOMMU_HELPER=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y CONFIG_DQL=y