mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
Merge pull request #3218 from MilhouseVH/linux5.0.0
linux (RPi/Generic): update to linux-5.0
This commit is contained in:
@@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="d095b96ac33de9eb4b95539cb3261f35a3c74509"
|
||||
PKG_SHA256="f3d40adebe3dd0cb9a85e4c8b6dec864aedfaa9661e134f447655b2a33097c8c"
|
||||
PKG_VERSION="fd15e0700e45d9b7db83e30696aba299b9f2f31d"
|
||||
PKG_SHA256="6324b4638b7b3f906469a1d2b94902f608436279749f167ade70e68c5c4c79a7"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://www.broadcom.com"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="RTL8188EU"
|
||||
PKG_VERSION="4b0ecca485b9f11f58670b69aa9f90ecad7da02f"
|
||||
PKG_SHA256="cc872aa0991c044d35abfcc81543bad950c6aae487e37d5a09d1cbf8c4cb3058"
|
||||
PKG_VERSION="9a56f32c2a46be5b81f0eedf49ad44ea8f10bfae"
|
||||
PKG_SHA256="c8f225ff85cdc49e4a043773234e42de38aac0d2c9322829dac21c2ba72fed87"
|
||||
PKG_LICENSE="GPL"
|
||||
# realtek: PKG_SITE="http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PFid=48&Level=5&Conn=4&ProdID=274&DownTypeID=3&GetDown=false&Downloads=true"
|
||||
PKG_SITE="https://github.com/lwfinger/rtl8188eu"
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="RTL8192CU"
|
||||
PKG_VERSION="26360110f3a80d91dd0707da096317152b0f379e"
|
||||
PKG_SHA256="eff13b2d8605d1c981f77b15b44142d40bf70a8bf9cf6cd79b8a8204e3987426"
|
||||
PKG_VERSION="d7c7e6aa73fc457cfc5e5272878d111c657ce6dc"
|
||||
PKG_SHA256="3b7a4b198913fa45958c7309e0358c34628d791038a473f6d4e95bcf70b7d56f"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/pvaret/rtl8192cu-fixes"
|
||||
PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz"
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="RTL8192DU"
|
||||
PKG_VERSION="31a276df70c7cdbb534cf29de31cfc2d59c71eb8"
|
||||
PKG_SHA256="9dd97f3fbfc31714d8b2cba4966051371f9c0515cff78da13d6e2c98506ac888"
|
||||
PKG_VERSION="3105cd3179d5e60a7aa675611a3592a45b29bfcb"
|
||||
PKG_SHA256="0a19e86192418d4179def917a9cea3aa0f2f2da7c44a520c085b9d78d9d2c09e"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lwfinger/rtl8192du"
|
||||
PKG_URL="https://github.com/lwfinger/rtl8192du/archive/$PKG_VERSION.tar.gz"
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="RTL8192EU"
|
||||
PKG_VERSION="dcd752459cc93ee89e52331b26c93eb8209dc00b"
|
||||
PKG_SHA256="a8da10546ab7d1faabdc71fcd7793ab979a1b2a8d46854945b5956280aa7c698"
|
||||
PKG_VERSION="b63646fb61fec4895f0fd4aec1a0cb0e8873eaeb"
|
||||
PKG_SHA256="7e24457f371121e1f587ec759b3338bc9b63bd03632840a11076791155c0c93f"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/Mange/rtl8192eu-linux-driver"
|
||||
PKG_URL="https://github.com/Mange/rtl8192eu-linux-driver/archive/$PKG_VERSION.tar.gz"
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="RTL8812AU"
|
||||
PKG_VERSION="61d0cd95afc01eae64da0c446515803910de1a00"
|
||||
PKG_SHA256="8d36737540b1a47e56174ced61194f3b596999609ce8c18ac466dbd42b48bc0b"
|
||||
PKG_VERSION="7c257daf52d0aac298c13135bd3ff5f388edc72b"
|
||||
PKG_SHA256="88eaed2f0b394a36f806f02bd245e7bd181e2aaafc2b7ff4521f4adb2fa6dc29"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/paspro/rtl8812au"
|
||||
PKG_URL="https://github.com/paspro/rtl8812au/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_SITE="https://github.com/MilhouseVH/RTL8812AU"
|
||||
PKG_URL="https://github.com/MilhouseVH/RTL8812AU/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain linux"
|
||||
PKG_NEED_UNPACK="$LINUX_DEPENDS"
|
||||
PKG_LONGDESC="Realtek RTL8812AU Linux 3.x driver"
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="iwlwifi-firmware"
|
||||
PKG_VERSION="bc32183c521559114eb72c0677b850269772addb"
|
||||
PKG_SHA256="deaaac826b7d68d46936b327994312a298f81c446ac5b72dbeee2cbd4cf1b719"
|
||||
PKG_VERSION="7b698fbf706a4294fbb148bef57d42cb729c147b"
|
||||
PKG_SHA256="c0da6400d4a7d06a41fc8d3130da7e23f13c7fab1aeae13d6dbbc7b06ae44cf7"
|
||||
PKG_LICENSE="Free-to-use"
|
||||
PKG_SITE="https://github.com/LibreELEC/iwlwifi-firmware"
|
||||
PKG_URL="https://github.com/LibreELEC/iwlwifi-firmware/archive/$PKG_VERSION.tar.gz"
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="kernel-firmware"
|
||||
PKG_VERSION="28f5f7dc1f077ea37d663f70de4490844db0449d"
|
||||
PKG_SHA256="422efa46f633acede2290ee4b53e07d1e2786e9b26d5cd0a7a5b8991c3763334"
|
||||
PKG_VERSION="b0d9583f9528890dfcb28d338fe70b50371084bf"
|
||||
PKG_SHA256="6ce9bdbe9df28756e8a633c5d6a2c8ced3597e32b75f6897cbc4f576851f611a"
|
||||
PKG_LICENSE="other"
|
||||
PKG_SITE="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/"
|
||||
PKG_URL="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/$PKG_VERSION.tar.gz"
|
||||
|
||||
@@ -30,15 +30,15 @@ case "$LINUX" in
|
||||
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
|
||||
;;
|
||||
raspberrypi)
|
||||
PKG_VERSION="0a7f6900636f7c5a027124fe3388c928f1769c52" # 4.19.23
|
||||
PKG_SHA256="937cbaa16d33260148c405f984a9c44bac0e62c5028249a00b2a3ca01605ba91"
|
||||
PKG_VERSION="709198a03e40bbf035f75772e9162464dc7fc665" # 5.0.2
|
||||
PKG_SHA256="07133de2bf4be2a2926a484ad94bf9ebc72845d0869eae99d266edeb3e83b2c3"
|
||||
PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
|
||||
;;
|
||||
*)
|
||||
PKG_VERSION="4.19.23"
|
||||
PKG_SHA256="2d9b25678aac7f3f109c52e6266fb6ee89cc424b597518a2875874bacb8f130a"
|
||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v4.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_VERSION="5.0.2"
|
||||
PKG_SHA256="43bfea3a6b24b4e5f63190409a199bee8cb93dbea01c52ad7f017078ebdf7c9b"
|
||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v5.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_PATCH_DIRS="default"
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -1,466 +0,0 @@
|
||||
From 4d331d301222dc0585ab8864a842b3e460b1f744 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Valentin <benpicco@googlemail.com>
|
||||
Date: Thu, 4 Oct 2018 02:57:10 +0200
|
||||
Subject: [PATCH] media: rc: add driver for Xbox DVD Movie Playback Kit
|
||||
|
||||
The Xbox DVD Movie Playback Kit is a USB dongle with an IR remote for the
|
||||
Original Xbox.
|
||||
|
||||
Historically it has been supported by the out-of-tree lirc_xbox driver,
|
||||
but this one has fallen out of favour and was just dropped from popular
|
||||
Kodi (formerly XBMC) distributions.
|
||||
|
||||
This driver is heaviely based on the ati_remote driver where all the
|
||||
boilerplate was taken from - I was mostly just removing code.
|
||||
|
||||
Signed-off-by: Benjamin Valentin <benpicco@googlemail.com>
|
||||
Signed-off-by: Sean Young <sean@mess.org>
|
||||
---
|
||||
drivers/media/rc/Kconfig | 12 +
|
||||
drivers/media/rc/Makefile | 1 +
|
||||
drivers/media/rc/keymaps/Makefile | 1 +
|
||||
drivers/media/rc/keymaps/rc-xbox-dvd.c | 63 +++++
|
||||
drivers/media/rc/xbox_remote.c | 306 +++++++++++++++++++++++++
|
||||
include/media/rc-map.h | 1 +
|
||||
6 files changed, 384 insertions(+)
|
||||
create mode 100644 drivers/media/rc/keymaps/rc-xbox-dvd.c
|
||||
create mode 100644 drivers/media/rc/xbox_remote.c
|
||||
|
||||
diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
|
||||
index 1021c08a9ba4..8a216068a35a 100644
|
||||
--- a/drivers/media/rc/Kconfig
|
||||
+++ b/drivers/media/rc/Kconfig
|
||||
@@ -493,6 +493,18 @@ config IR_TANGO
|
||||
The HW decoder supports NEC, RC-5, RC-6 IR protocols.
|
||||
When compiled as a module, look for tango-ir.
|
||||
|
||||
+config RC_XBOX_DVD
|
||||
+ tristate "Xbox DVD Movie Playback Kit"
|
||||
+ depends on RC_CORE
|
||||
+ depends on USB_ARCH_HAS_HCD
|
||||
+ select USB
|
||||
+ help
|
||||
+ Say Y here if you want to use the Xbox DVD Movie Playback Kit.
|
||||
+ These are IR remotes with USB receivers for the Original Xbox (2001).
|
||||
+
|
||||
+ To compile this driver as a module, choose M here: the module will be
|
||||
+ called xbox_remote.
|
||||
+
|
||||
config IR_ZX
|
||||
tristate "ZTE ZX IR remote control"
|
||||
depends on RC_CORE
|
||||
diff --git a/drivers/media/rc/Makefile b/drivers/media/rc/Makefile
|
||||
index e0340d043fe8..92c163816849 100644
|
||||
--- a/drivers/media/rc/Makefile
|
||||
+++ b/drivers/media/rc/Makefile
|
||||
@@ -48,3 +48,4 @@ obj-$(CONFIG_IR_SIR) += sir_ir.o
|
||||
obj-$(CONFIG_IR_MTK) += mtk-cir.o
|
||||
obj-$(CONFIG_IR_ZX) += zx-irdec.o
|
||||
obj-$(CONFIG_IR_TANGO) += tango-ir.o
|
||||
+obj-$(CONFIG_RC_XBOX_DVD) += xbox_remote.o
|
||||
diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile
|
||||
index d6b913a3032d..5b1399af6b3a 100644
|
||||
--- a/drivers/media/rc/keymaps/Makefile
|
||||
+++ b/drivers/media/rc/keymaps/Makefile
|
||||
@@ -116,4 +116,5 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
|
||||
rc-winfast.o \
|
||||
rc-winfast-usbii-deluxe.o \
|
||||
rc-su3000.o \
|
||||
+ rc-xbox-dvd.o \
|
||||
rc-zx-irdec.o
|
||||
diff --git a/drivers/media/rc/keymaps/rc-xbox-dvd.c b/drivers/media/rc/keymaps/rc-xbox-dvd.c
|
||||
new file mode 100644
|
||||
index 000000000000..af387244636b
|
||||
--- /dev/null
|
||||
+++ b/drivers/media/rc/keymaps/rc-xbox-dvd.c
|
||||
@@ -0,0 +1,63 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0+
|
||||
+// Keytable for Xbox DVD remote
|
||||
+// Copyright (c) 2018 by Benjamin Valentin <benpicco@googlemail.com>
|
||||
+
|
||||
+#include <media/rc-map.h>
|
||||
+#include <linux/module.h>
|
||||
+
|
||||
+/* based on lircd.conf.xbox */
|
||||
+static struct rc_map_table xbox_dvd[] = {
|
||||
+ {0xa0b, KEY_OK},
|
||||
+ {0xaa6, KEY_UP},
|
||||
+ {0xaa7, KEY_DOWN},
|
||||
+ {0xaa8, KEY_RIGHT},
|
||||
+ {0xaa9, KEY_LEFT},
|
||||
+ {0xac3, KEY_INFO},
|
||||
+
|
||||
+ {0xac6, KEY_9},
|
||||
+ {0xac7, KEY_8},
|
||||
+ {0xac8, KEY_7},
|
||||
+ {0xac9, KEY_6},
|
||||
+ {0xaca, KEY_5},
|
||||
+ {0xacb, KEY_4},
|
||||
+ {0xacc, KEY_3},
|
||||
+ {0xacd, KEY_2},
|
||||
+ {0xace, KEY_1},
|
||||
+ {0xacf, KEY_0},
|
||||
+
|
||||
+ {0xad5, KEY_ANGLE},
|
||||
+ {0xad8, KEY_BACK},
|
||||
+ {0xadd, KEY_PREVIOUSSONG},
|
||||
+ {0xadf, KEY_NEXTSONG},
|
||||
+ {0xae0, KEY_STOP},
|
||||
+ {0xae2, KEY_REWIND},
|
||||
+ {0xae3, KEY_FASTFORWARD},
|
||||
+ {0xae5, KEY_TITLE},
|
||||
+ {0xae6, KEY_PAUSE},
|
||||
+ {0xaea, KEY_PLAY},
|
||||
+ {0xaf7, KEY_MENU},
|
||||
+};
|
||||
+
|
||||
+static struct rc_map_list xbox_dvd_map = {
|
||||
+ .map = {
|
||||
+ .scan = xbox_dvd,
|
||||
+ .size = ARRAY_SIZE(xbox_dvd),
|
||||
+ .rc_proto = RC_PROTO_UNKNOWN,
|
||||
+ .name = RC_MAP_XBOX_DVD,
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+static int __init init_rc_map(void)
|
||||
+{
|
||||
+ return rc_map_register(&xbox_dvd_map);
|
||||
+}
|
||||
+
|
||||
+static void __exit exit_rc_map(void)
|
||||
+{
|
||||
+ rc_map_unregister(&xbox_dvd_map);
|
||||
+}
|
||||
+
|
||||
+module_init(init_rc_map)
|
||||
+module_exit(exit_rc_map)
|
||||
+
|
||||
+MODULE_LICENSE("GPL");
|
||||
diff --git a/drivers/media/rc/xbox_remote.c b/drivers/media/rc/xbox_remote.c
|
||||
new file mode 100644
|
||||
index 000000000000..07ed9be24a60
|
||||
--- /dev/null
|
||||
+++ b/drivers/media/rc/xbox_remote.c
|
||||
@@ -0,0 +1,306 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0+
|
||||
+// Driver for Xbox DVD Movie Playback Kit
|
||||
+// Copyright (c) 2018 by Benjamin Valentin <benpicco@googlemail.com>
|
||||
+
|
||||
+/*
|
||||
+ * Xbox DVD Movie Playback Kit USB IR dongle support
|
||||
+ *
|
||||
+ * The driver was derived from the ati_remote driver 2.2.1
|
||||
+ * and used information from lirc_xbox.c
|
||||
+ *
|
||||
+ * Copyright (c) 2011, 2012 Anssi Hannula <anssi.hannula@iki.fi>
|
||||
+ * Copyright (c) 2004 Torrey Hoffman <thoffman@arnor.net>
|
||||
+ * Copyright (c) 2002 Vladimir Dergachev
|
||||
+ * Copyright (c) 2003-2004 Paul Miller <pmiller9@users.sourceforge.net>
|
||||
+ */
|
||||
+
|
||||
+#include <linux/slab.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/usb/input.h>
|
||||
+#include <media/rc-core.h>
|
||||
+
|
||||
+/*
|
||||
+ * Module and Version Information
|
||||
+ */
|
||||
+#define DRIVER_VERSION "1.0.0"
|
||||
+#define DRIVER_AUTHOR "Benjamin Valentin <benpicco@googlemail.com>"
|
||||
+#define DRIVER_DESC "Xbox DVD USB Remote Control"
|
||||
+
|
||||
+#define NAME_BUFSIZE 80 /* size of product name, path buffers */
|
||||
+#define DATA_BUFSIZE 8 /* size of URB data buffers */
|
||||
+
|
||||
+/*
|
||||
+ * USB vendor ids for XBOX DVD Dongles
|
||||
+ */
|
||||
+#define VENDOR_GAMESTER 0x040b
|
||||
+#define VENDOR_MICROSOFT 0x045e
|
||||
+
|
||||
+static const struct usb_device_id xbox_remote_table[] = {
|
||||
+ /* Gamester Xbox DVD Movie Playback Kit IR */
|
||||
+ {
|
||||
+ USB_DEVICE(VENDOR_GAMESTER, 0x6521),
|
||||
+ },
|
||||
+ /* Microsoft Xbox DVD Movie Playback Kit IR */
|
||||
+ {
|
||||
+ USB_DEVICE(VENDOR_MICROSOFT, 0x0284),
|
||||
+ },
|
||||
+ {} /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+MODULE_DEVICE_TABLE(usb, xbox_remote_table);
|
||||
+
|
||||
+struct xbox_remote {
|
||||
+ struct rc_dev *rdev;
|
||||
+ struct usb_device *udev;
|
||||
+ struct usb_interface *interface;
|
||||
+
|
||||
+ struct urb *irq_urb;
|
||||
+ unsigned char inbuf[DATA_BUFSIZE] __aligned(sizeof(u16));
|
||||
+
|
||||
+ char rc_name[NAME_BUFSIZE];
|
||||
+ char rc_phys[NAME_BUFSIZE];
|
||||
+};
|
||||
+
|
||||
+static int xbox_remote_rc_open(struct rc_dev *rdev)
|
||||
+{
|
||||
+ struct xbox_remote *xbox_remote = rdev->priv;
|
||||
+
|
||||
+ /* On first open, submit the read urb which was set up previously. */
|
||||
+ xbox_remote->irq_urb->dev = xbox_remote->udev;
|
||||
+ if (usb_submit_urb(xbox_remote->irq_urb, GFP_KERNEL)) {
|
||||
+ dev_err(&xbox_remote->interface->dev,
|
||||
+ "%s: usb_submit_urb failed!\n", __func__);
|
||||
+ return -EIO;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void xbox_remote_rc_close(struct rc_dev *rdev)
|
||||
+{
|
||||
+ struct xbox_remote *xbox_remote = rdev->priv;
|
||||
+
|
||||
+ usb_kill_urb(xbox_remote->irq_urb);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * xbox_remote_report_input
|
||||
+ */
|
||||
+static void xbox_remote_input_report(struct urb *urb)
|
||||
+{
|
||||
+ struct xbox_remote *xbox_remote = urb->context;
|
||||
+ unsigned char *data = xbox_remote->inbuf;
|
||||
+
|
||||
+ /*
|
||||
+ * data[0] = 0x00
|
||||
+ * data[1] = length - always 0x06
|
||||
+ * data[2] = the key code
|
||||
+ * data[3] = high part of key code
|
||||
+ * data[4] = last_press_ms (low)
|
||||
+ * data[5] = last_press_ms (high)
|
||||
+ */
|
||||
+
|
||||
+ /* Deal with strange looking inputs */
|
||||
+ if (urb->actual_length != 6 || urb->actual_length != data[1]) {
|
||||
+ dev_warn(&urb->dev->dev, "Weird data, len=%d: %*ph\n",
|
||||
+ urb->actual_length, urb->actual_length, data);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ rc_keydown(xbox_remote->rdev, RC_PROTO_UNKNOWN,
|
||||
+ le16_to_cpup((__le16*)(data + 2)), 0);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * xbox_remote_irq_in
|
||||
+ */
|
||||
+static void xbox_remote_irq_in(struct urb *urb)
|
||||
+{
|
||||
+ struct xbox_remote *xbox_remote = urb->context;
|
||||
+ int retval;
|
||||
+
|
||||
+ switch (urb->status) {
|
||||
+ case 0: /* success */
|
||||
+ xbox_remote_input_report(urb);
|
||||
+ break;
|
||||
+ case -ECONNRESET: /* unlink */
|
||||
+ case -ENOENT:
|
||||
+ case -ESHUTDOWN:
|
||||
+ dev_dbg(&xbox_remote->interface->dev,
|
||||
+ "%s: urb error status, unlink?\n",
|
||||
+ __func__);
|
||||
+ return;
|
||||
+ default: /* error */
|
||||
+ dev_dbg(&xbox_remote->interface->dev,
|
||||
+ "%s: Nonzero urb status %d\n",
|
||||
+ __func__, urb->status);
|
||||
+ }
|
||||
+
|
||||
+ retval = usb_submit_urb(urb, GFP_ATOMIC);
|
||||
+ if (retval)
|
||||
+ dev_err(&xbox_remote->interface->dev,
|
||||
+ "%s: usb_submit_urb()=%d\n",
|
||||
+ __func__, retval);
|
||||
+}
|
||||
+
|
||||
+static void xbox_remote_rc_init(struct xbox_remote *xbox_remote)
|
||||
+{
|
||||
+ struct rc_dev *rdev = xbox_remote->rdev;
|
||||
+
|
||||
+ rdev->priv = xbox_remote;
|
||||
+ rdev->allowed_protocols = RC_PROTO_BIT_UNKNOWN;
|
||||
+ rdev->driver_name = "xbox_remote";
|
||||
+
|
||||
+ rdev->open = xbox_remote_rc_open;
|
||||
+ rdev->close = xbox_remote_rc_close;
|
||||
+
|
||||
+ rdev->device_name = xbox_remote->rc_name;
|
||||
+ rdev->input_phys = xbox_remote->rc_phys;
|
||||
+
|
||||
+ usb_to_input_id(xbox_remote->udev, &rdev->input_id);
|
||||
+ rdev->dev.parent = &xbox_remote->interface->dev;
|
||||
+}
|
||||
+
|
||||
+static int xbox_remote_initialize(struct xbox_remote *xbox_remote,
|
||||
+ struct usb_endpoint_descriptor *endpoint_in)
|
||||
+{
|
||||
+ struct usb_device *udev = xbox_remote->udev;
|
||||
+ int pipe, maxp;
|
||||
+
|
||||
+ /* Set up irq_urb */
|
||||
+ pipe = usb_rcvintpipe(udev, endpoint_in->bEndpointAddress);
|
||||
+ maxp = usb_maxpacket(udev, pipe, usb_pipeout(pipe));
|
||||
+ maxp = (maxp > DATA_BUFSIZE) ? DATA_BUFSIZE : maxp;
|
||||
+
|
||||
+ usb_fill_int_urb(xbox_remote->irq_urb, udev, pipe, xbox_remote->inbuf,
|
||||
+ maxp, xbox_remote_irq_in, xbox_remote,
|
||||
+ endpoint_in->bInterval);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * xbox_remote_probe
|
||||
+ */
|
||||
+static int xbox_remote_probe(struct usb_interface *interface,
|
||||
+ const struct usb_device_id *id)
|
||||
+{
|
||||
+ struct usb_device *udev = interface_to_usbdev(interface);
|
||||
+ struct usb_host_interface *iface_host = interface->cur_altsetting;
|
||||
+ struct usb_endpoint_descriptor *endpoint_in;
|
||||
+ struct xbox_remote *xbox_remote;
|
||||
+ struct rc_dev *rc_dev;
|
||||
+ int err = -ENOMEM;
|
||||
+
|
||||
+ // why is there also a device with no endpoints?
|
||||
+ if (iface_host->desc.bNumEndpoints == 0)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ if (iface_host->desc.bNumEndpoints != 1) {
|
||||
+ pr_err("%s: Unexpected desc.bNumEndpoints: %d\n",
|
||||
+ __func__, iface_host->desc.bNumEndpoints);
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+
|
||||
+ endpoint_in = &iface_host->endpoint[0].desc;
|
||||
+
|
||||
+ if (!usb_endpoint_is_int_in(endpoint_in)) {
|
||||
+ pr_err("%s: Unexpected endpoint_in\n", __func__);
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+ if (le16_to_cpu(endpoint_in->wMaxPacketSize) == 0) {
|
||||
+ pr_err("%s: endpoint_in message size==0?\n", __func__);
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+
|
||||
+ xbox_remote = kzalloc(sizeof(*xbox_remote), GFP_KERNEL);
|
||||
+ rc_dev = rc_allocate_device(RC_DRIVER_SCANCODE);
|
||||
+ if (!xbox_remote || !rc_dev)
|
||||
+ goto exit_free_dev_rdev;
|
||||
+
|
||||
+ /* Allocate URB buffer */
|
||||
+ xbox_remote->irq_urb = usb_alloc_urb(0, GFP_KERNEL);
|
||||
+ if (!xbox_remote->irq_urb)
|
||||
+ goto exit_free_buffers;
|
||||
+
|
||||
+ xbox_remote->udev = udev;
|
||||
+ xbox_remote->rdev = rc_dev;
|
||||
+ xbox_remote->interface = interface;
|
||||
+
|
||||
+ usb_make_path(udev, xbox_remote->rc_phys, sizeof(xbox_remote->rc_phys));
|
||||
+
|
||||
+ strlcat(xbox_remote->rc_phys, "/input0", sizeof(xbox_remote->rc_phys));
|
||||
+
|
||||
+ snprintf(xbox_remote->rc_name, sizeof(xbox_remote->rc_name), "%s%s%s",
|
||||
+ udev->manufacturer ?: "",
|
||||
+ udev->manufacturer && udev->product ? " " : "",
|
||||
+ udev->product ?: "");
|
||||
+
|
||||
+ if (!strlen(xbox_remote->rc_name))
|
||||
+ snprintf(xbox_remote->rc_name, sizeof(xbox_remote->rc_name),
|
||||
+ DRIVER_DESC "(%04x,%04x)",
|
||||
+ le16_to_cpu(xbox_remote->udev->descriptor.idVendor),
|
||||
+ le16_to_cpu(xbox_remote->udev->descriptor.idProduct));
|
||||
+
|
||||
+ rc_dev->map_name = RC_MAP_XBOX_DVD; /* default map */
|
||||
+
|
||||
+ xbox_remote_rc_init(xbox_remote);
|
||||
+
|
||||
+ /* Device Hardware Initialization */
|
||||
+ err = xbox_remote_initialize(xbox_remote, endpoint_in);
|
||||
+ if (err)
|
||||
+ goto exit_kill_urbs;
|
||||
+
|
||||
+ /* Set up and register rc device */
|
||||
+ err = rc_register_device(xbox_remote->rdev);
|
||||
+ if (err)
|
||||
+ goto exit_kill_urbs;
|
||||
+
|
||||
+ usb_set_intfdata(interface, xbox_remote);
|
||||
+
|
||||
+ return 0;
|
||||
+
|
||||
+exit_kill_urbs:
|
||||
+ usb_kill_urb(xbox_remote->irq_urb);
|
||||
+exit_free_buffers:
|
||||
+ usb_free_urb(xbox_remote->irq_urb);
|
||||
+exit_free_dev_rdev:
|
||||
+ rc_free_device(rc_dev);
|
||||
+ kfree(xbox_remote);
|
||||
+
|
||||
+ return err;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * xbox_remote_disconnect
|
||||
+ */
|
||||
+static void xbox_remote_disconnect(struct usb_interface *interface)
|
||||
+{
|
||||
+ struct xbox_remote *xbox_remote;
|
||||
+
|
||||
+ xbox_remote = usb_get_intfdata(interface);
|
||||
+ usb_set_intfdata(interface, NULL);
|
||||
+ if (!xbox_remote) {
|
||||
+ dev_warn(&interface->dev, "%s - null device?\n", __func__);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ usb_kill_urb(xbox_remote->irq_urb);
|
||||
+ rc_unregister_device(xbox_remote->rdev);
|
||||
+ usb_free_urb(xbox_remote->irq_urb);
|
||||
+ kfree(xbox_remote);
|
||||
+}
|
||||
+
|
||||
+/* usb specific object to register with the usb subsystem */
|
||||
+static struct usb_driver xbox_remote_driver = {
|
||||
+ .name = "xbox_remote",
|
||||
+ .probe = xbox_remote_probe,
|
||||
+ .disconnect = xbox_remote_disconnect,
|
||||
+ .id_table = xbox_remote_table,
|
||||
+};
|
||||
+
|
||||
+module_usb_driver(xbox_remote_driver);
|
||||
+
|
||||
+MODULE_AUTHOR(DRIVER_AUTHOR);
|
||||
+MODULE_DESCRIPTION(DRIVER_DESC);
|
||||
+MODULE_LICENSE("GPL");
|
||||
diff --git a/include/media/rc-map.h b/include/media/rc-map.h
|
||||
index bfa3017cecba..d621acadfbf3 100644
|
||||
--- a/include/media/rc-map.h
|
||||
+++ b/include/media/rc-map.h
|
||||
@@ -277,6 +277,7 @@ struct rc_map *rc_map_get(const char *name);
|
||||
#define RC_MAP_WINFAST "rc-winfast"
|
||||
#define RC_MAP_WINFAST_USBII_DELUXE "rc-winfast-usbii-deluxe"
|
||||
#define RC_MAP_SU3000 "rc-su3000"
|
||||
+#define RC_MAP_XBOX_DVD "rc-xbox-dvd"
|
||||
#define RC_MAP_ZX_IRDEC "rc-zx-irdec"
|
||||
|
||||
/*
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
From 3f1f8303b6e0be751d7a7c55031c8ab840ed5c1a Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Reichl <hias@horus.com>
|
||||
Date: Fri, 24 Aug 2018 23:31:51 +0200
|
||||
Subject: [PATCH] media: rc: ir-rc6-decoder: enable toggle bit for Kathrein
|
||||
RCU-676 remote
|
||||
|
||||
The Kathrein RCU-676 remote uses the 32-bit rc6 protocol and toggles
|
||||
bit 15 (0x8000) on repeated button presses, like MCE remotes.
|
||||
|
||||
Add it's customer code 0x80460000 to the 32-bit rc6 toggle
|
||||
handling code to get proper scancodes and toggle reports.
|
||||
|
||||
Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
---
|
||||
drivers/media/rc/ir-rc6-decoder.c | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/rc/ir-rc6-decoder.c b/drivers/media/rc/ir-rc6-decoder.c
|
||||
index 68487ce9f79b..d96aed1343e4 100644
|
||||
--- a/drivers/media/rc/ir-rc6-decoder.c
|
||||
+++ b/drivers/media/rc/ir-rc6-decoder.c
|
||||
@@ -40,6 +40,7 @@
|
||||
#define RC6_6A_MCE_TOGGLE_MASK 0x8000 /* for the body bits */
|
||||
#define RC6_6A_LCC_MASK 0xffff0000 /* RC6-6A-32 long customer code mask */
|
||||
#define RC6_6A_MCE_CC 0x800f0000 /* MCE customer code */
|
||||
+#define RC6_6A_KATHREIN_CC 0x80460000 /* Kathrein RCU-676 customer code */
|
||||
#ifndef CHAR_BIT
|
||||
#define CHAR_BIT 8 /* Normally in <limits.h> */
|
||||
#endif
|
||||
@@ -242,13 +243,17 @@ static int ir_rc6_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
toggle = 0;
|
||||
break;
|
||||
case 32:
|
||||
- if ((scancode & RC6_6A_LCC_MASK) == RC6_6A_MCE_CC) {
|
||||
+ switch (scancode & RC6_6A_LCC_MASK) {
|
||||
+ case RC6_6A_MCE_CC:
|
||||
+ case RC6_6A_KATHREIN_CC:
|
||||
protocol = RC_PROTO_RC6_MCE;
|
||||
toggle = !!(scancode & RC6_6A_MCE_TOGGLE_MASK);
|
||||
scancode &= ~RC6_6A_MCE_TOGGLE_MASK;
|
||||
- } else {
|
||||
+ break;
|
||||
+ default:
|
||||
protocol = RC_PROTO_RC6_6A_32;
|
||||
toggle = 0;
|
||||
+ break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -1,466 +0,0 @@
|
||||
From 4d331d301222dc0585ab8864a842b3e460b1f744 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Valentin <benpicco@googlemail.com>
|
||||
Date: Thu, 4 Oct 2018 02:57:10 +0200
|
||||
Subject: [PATCH] media: rc: add driver for Xbox DVD Movie Playback Kit
|
||||
|
||||
The Xbox DVD Movie Playback Kit is a USB dongle with an IR remote for the
|
||||
Original Xbox.
|
||||
|
||||
Historically it has been supported by the out-of-tree lirc_xbox driver,
|
||||
but this one has fallen out of favour and was just dropped from popular
|
||||
Kodi (formerly XBMC) distributions.
|
||||
|
||||
This driver is heaviely based on the ati_remote driver where all the
|
||||
boilerplate was taken from - I was mostly just removing code.
|
||||
|
||||
Signed-off-by: Benjamin Valentin <benpicco@googlemail.com>
|
||||
Signed-off-by: Sean Young <sean@mess.org>
|
||||
---
|
||||
drivers/media/rc/Kconfig | 12 +
|
||||
drivers/media/rc/Makefile | 1 +
|
||||
drivers/media/rc/keymaps/Makefile | 1 +
|
||||
drivers/media/rc/keymaps/rc-xbox-dvd.c | 63 +++++
|
||||
drivers/media/rc/xbox_remote.c | 306 +++++++++++++++++++++++++
|
||||
include/media/rc-map.h | 1 +
|
||||
6 files changed, 384 insertions(+)
|
||||
create mode 100644 drivers/media/rc/keymaps/rc-xbox-dvd.c
|
||||
create mode 100644 drivers/media/rc/xbox_remote.c
|
||||
|
||||
diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
|
||||
index 1021c08a9ba4..8a216068a35a 100644
|
||||
--- a/drivers/media/rc/Kconfig
|
||||
+++ b/drivers/media/rc/Kconfig
|
||||
@@ -493,6 +493,18 @@ config IR_TANGO
|
||||
The HW decoder supports NEC, RC-5, RC-6 IR protocols.
|
||||
When compiled as a module, look for tango-ir.
|
||||
|
||||
+config RC_XBOX_DVD
|
||||
+ tristate "Xbox DVD Movie Playback Kit"
|
||||
+ depends on RC_CORE
|
||||
+ depends on USB_ARCH_HAS_HCD
|
||||
+ select USB
|
||||
+ help
|
||||
+ Say Y here if you want to use the Xbox DVD Movie Playback Kit.
|
||||
+ These are IR remotes with USB receivers for the Original Xbox (2001).
|
||||
+
|
||||
+ To compile this driver as a module, choose M here: the module will be
|
||||
+ called xbox_remote.
|
||||
+
|
||||
config IR_ZX
|
||||
tristate "ZTE ZX IR remote control"
|
||||
depends on RC_CORE
|
||||
diff --git a/drivers/media/rc/Makefile b/drivers/media/rc/Makefile
|
||||
index e0340d043fe8..92c163816849 100644
|
||||
--- a/drivers/media/rc/Makefile
|
||||
+++ b/drivers/media/rc/Makefile
|
||||
@@ -48,3 +48,4 @@ obj-$(CONFIG_IR_SIR) += sir_ir.o
|
||||
obj-$(CONFIG_IR_MTK) += mtk-cir.o
|
||||
obj-$(CONFIG_IR_ZX) += zx-irdec.o
|
||||
obj-$(CONFIG_IR_TANGO) += tango-ir.o
|
||||
+obj-$(CONFIG_RC_XBOX_DVD) += xbox_remote.o
|
||||
diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile
|
||||
index d6b913a3032d..5b1399af6b3a 100644
|
||||
--- a/drivers/media/rc/keymaps/Makefile
|
||||
+++ b/drivers/media/rc/keymaps/Makefile
|
||||
@@ -116,4 +116,5 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
|
||||
rc-winfast.o \
|
||||
rc-winfast-usbii-deluxe.o \
|
||||
rc-su3000.o \
|
||||
+ rc-xbox-dvd.o \
|
||||
rc-zx-irdec.o
|
||||
diff --git a/drivers/media/rc/keymaps/rc-xbox-dvd.c b/drivers/media/rc/keymaps/rc-xbox-dvd.c
|
||||
new file mode 100644
|
||||
index 000000000000..af387244636b
|
||||
--- /dev/null
|
||||
+++ b/drivers/media/rc/keymaps/rc-xbox-dvd.c
|
||||
@@ -0,0 +1,63 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0+
|
||||
+// Keytable for Xbox DVD remote
|
||||
+// Copyright (c) 2018 by Benjamin Valentin <benpicco@googlemail.com>
|
||||
+
|
||||
+#include <media/rc-map.h>
|
||||
+#include <linux/module.h>
|
||||
+
|
||||
+/* based on lircd.conf.xbox */
|
||||
+static struct rc_map_table xbox_dvd[] = {
|
||||
+ {0xa0b, KEY_OK},
|
||||
+ {0xaa6, KEY_UP},
|
||||
+ {0xaa7, KEY_DOWN},
|
||||
+ {0xaa8, KEY_RIGHT},
|
||||
+ {0xaa9, KEY_LEFT},
|
||||
+ {0xac3, KEY_INFO},
|
||||
+
|
||||
+ {0xac6, KEY_9},
|
||||
+ {0xac7, KEY_8},
|
||||
+ {0xac8, KEY_7},
|
||||
+ {0xac9, KEY_6},
|
||||
+ {0xaca, KEY_5},
|
||||
+ {0xacb, KEY_4},
|
||||
+ {0xacc, KEY_3},
|
||||
+ {0xacd, KEY_2},
|
||||
+ {0xace, KEY_1},
|
||||
+ {0xacf, KEY_0},
|
||||
+
|
||||
+ {0xad5, KEY_ANGLE},
|
||||
+ {0xad8, KEY_BACK},
|
||||
+ {0xadd, KEY_PREVIOUSSONG},
|
||||
+ {0xadf, KEY_NEXTSONG},
|
||||
+ {0xae0, KEY_STOP},
|
||||
+ {0xae2, KEY_REWIND},
|
||||
+ {0xae3, KEY_FASTFORWARD},
|
||||
+ {0xae5, KEY_TITLE},
|
||||
+ {0xae6, KEY_PAUSE},
|
||||
+ {0xaea, KEY_PLAY},
|
||||
+ {0xaf7, KEY_MENU},
|
||||
+};
|
||||
+
|
||||
+static struct rc_map_list xbox_dvd_map = {
|
||||
+ .map = {
|
||||
+ .scan = xbox_dvd,
|
||||
+ .size = ARRAY_SIZE(xbox_dvd),
|
||||
+ .rc_proto = RC_PROTO_UNKNOWN,
|
||||
+ .name = RC_MAP_XBOX_DVD,
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+static int __init init_rc_map(void)
|
||||
+{
|
||||
+ return rc_map_register(&xbox_dvd_map);
|
||||
+}
|
||||
+
|
||||
+static void __exit exit_rc_map(void)
|
||||
+{
|
||||
+ rc_map_unregister(&xbox_dvd_map);
|
||||
+}
|
||||
+
|
||||
+module_init(init_rc_map)
|
||||
+module_exit(exit_rc_map)
|
||||
+
|
||||
+MODULE_LICENSE("GPL");
|
||||
diff --git a/drivers/media/rc/xbox_remote.c b/drivers/media/rc/xbox_remote.c
|
||||
new file mode 100644
|
||||
index 000000000000..07ed9be24a60
|
||||
--- /dev/null
|
||||
+++ b/drivers/media/rc/xbox_remote.c
|
||||
@@ -0,0 +1,306 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0+
|
||||
+// Driver for Xbox DVD Movie Playback Kit
|
||||
+// Copyright (c) 2018 by Benjamin Valentin <benpicco@googlemail.com>
|
||||
+
|
||||
+/*
|
||||
+ * Xbox DVD Movie Playback Kit USB IR dongle support
|
||||
+ *
|
||||
+ * The driver was derived from the ati_remote driver 2.2.1
|
||||
+ * and used information from lirc_xbox.c
|
||||
+ *
|
||||
+ * Copyright (c) 2011, 2012 Anssi Hannula <anssi.hannula@iki.fi>
|
||||
+ * Copyright (c) 2004 Torrey Hoffman <thoffman@arnor.net>
|
||||
+ * Copyright (c) 2002 Vladimir Dergachev
|
||||
+ * Copyright (c) 2003-2004 Paul Miller <pmiller9@users.sourceforge.net>
|
||||
+ */
|
||||
+
|
||||
+#include <linux/slab.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/usb/input.h>
|
||||
+#include <media/rc-core.h>
|
||||
+
|
||||
+/*
|
||||
+ * Module and Version Information
|
||||
+ */
|
||||
+#define DRIVER_VERSION "1.0.0"
|
||||
+#define DRIVER_AUTHOR "Benjamin Valentin <benpicco@googlemail.com>"
|
||||
+#define DRIVER_DESC "Xbox DVD USB Remote Control"
|
||||
+
|
||||
+#define NAME_BUFSIZE 80 /* size of product name, path buffers */
|
||||
+#define DATA_BUFSIZE 8 /* size of URB data buffers */
|
||||
+
|
||||
+/*
|
||||
+ * USB vendor ids for XBOX DVD Dongles
|
||||
+ */
|
||||
+#define VENDOR_GAMESTER 0x040b
|
||||
+#define VENDOR_MICROSOFT 0x045e
|
||||
+
|
||||
+static const struct usb_device_id xbox_remote_table[] = {
|
||||
+ /* Gamester Xbox DVD Movie Playback Kit IR */
|
||||
+ {
|
||||
+ USB_DEVICE(VENDOR_GAMESTER, 0x6521),
|
||||
+ },
|
||||
+ /* Microsoft Xbox DVD Movie Playback Kit IR */
|
||||
+ {
|
||||
+ USB_DEVICE(VENDOR_MICROSOFT, 0x0284),
|
||||
+ },
|
||||
+ {} /* Terminating entry */
|
||||
+};
|
||||
+
|
||||
+MODULE_DEVICE_TABLE(usb, xbox_remote_table);
|
||||
+
|
||||
+struct xbox_remote {
|
||||
+ struct rc_dev *rdev;
|
||||
+ struct usb_device *udev;
|
||||
+ struct usb_interface *interface;
|
||||
+
|
||||
+ struct urb *irq_urb;
|
||||
+ unsigned char inbuf[DATA_BUFSIZE] __aligned(sizeof(u16));
|
||||
+
|
||||
+ char rc_name[NAME_BUFSIZE];
|
||||
+ char rc_phys[NAME_BUFSIZE];
|
||||
+};
|
||||
+
|
||||
+static int xbox_remote_rc_open(struct rc_dev *rdev)
|
||||
+{
|
||||
+ struct xbox_remote *xbox_remote = rdev->priv;
|
||||
+
|
||||
+ /* On first open, submit the read urb which was set up previously. */
|
||||
+ xbox_remote->irq_urb->dev = xbox_remote->udev;
|
||||
+ if (usb_submit_urb(xbox_remote->irq_urb, GFP_KERNEL)) {
|
||||
+ dev_err(&xbox_remote->interface->dev,
|
||||
+ "%s: usb_submit_urb failed!\n", __func__);
|
||||
+ return -EIO;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void xbox_remote_rc_close(struct rc_dev *rdev)
|
||||
+{
|
||||
+ struct xbox_remote *xbox_remote = rdev->priv;
|
||||
+
|
||||
+ usb_kill_urb(xbox_remote->irq_urb);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * xbox_remote_report_input
|
||||
+ */
|
||||
+static void xbox_remote_input_report(struct urb *urb)
|
||||
+{
|
||||
+ struct xbox_remote *xbox_remote = urb->context;
|
||||
+ unsigned char *data = xbox_remote->inbuf;
|
||||
+
|
||||
+ /*
|
||||
+ * data[0] = 0x00
|
||||
+ * data[1] = length - always 0x06
|
||||
+ * data[2] = the key code
|
||||
+ * data[3] = high part of key code
|
||||
+ * data[4] = last_press_ms (low)
|
||||
+ * data[5] = last_press_ms (high)
|
||||
+ */
|
||||
+
|
||||
+ /* Deal with strange looking inputs */
|
||||
+ if (urb->actual_length != 6 || urb->actual_length != data[1]) {
|
||||
+ dev_warn(&urb->dev->dev, "Weird data, len=%d: %*ph\n",
|
||||
+ urb->actual_length, urb->actual_length, data);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ rc_keydown(xbox_remote->rdev, RC_PROTO_UNKNOWN,
|
||||
+ le16_to_cpup((__le16*)(data + 2)), 0);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * xbox_remote_irq_in
|
||||
+ */
|
||||
+static void xbox_remote_irq_in(struct urb *urb)
|
||||
+{
|
||||
+ struct xbox_remote *xbox_remote = urb->context;
|
||||
+ int retval;
|
||||
+
|
||||
+ switch (urb->status) {
|
||||
+ case 0: /* success */
|
||||
+ xbox_remote_input_report(urb);
|
||||
+ break;
|
||||
+ case -ECONNRESET: /* unlink */
|
||||
+ case -ENOENT:
|
||||
+ case -ESHUTDOWN:
|
||||
+ dev_dbg(&xbox_remote->interface->dev,
|
||||
+ "%s: urb error status, unlink?\n",
|
||||
+ __func__);
|
||||
+ return;
|
||||
+ default: /* error */
|
||||
+ dev_dbg(&xbox_remote->interface->dev,
|
||||
+ "%s: Nonzero urb status %d\n",
|
||||
+ __func__, urb->status);
|
||||
+ }
|
||||
+
|
||||
+ retval = usb_submit_urb(urb, GFP_ATOMIC);
|
||||
+ if (retval)
|
||||
+ dev_err(&xbox_remote->interface->dev,
|
||||
+ "%s: usb_submit_urb()=%d\n",
|
||||
+ __func__, retval);
|
||||
+}
|
||||
+
|
||||
+static void xbox_remote_rc_init(struct xbox_remote *xbox_remote)
|
||||
+{
|
||||
+ struct rc_dev *rdev = xbox_remote->rdev;
|
||||
+
|
||||
+ rdev->priv = xbox_remote;
|
||||
+ rdev->allowed_protocols = RC_PROTO_BIT_UNKNOWN;
|
||||
+ rdev->driver_name = "xbox_remote";
|
||||
+
|
||||
+ rdev->open = xbox_remote_rc_open;
|
||||
+ rdev->close = xbox_remote_rc_close;
|
||||
+
|
||||
+ rdev->device_name = xbox_remote->rc_name;
|
||||
+ rdev->input_phys = xbox_remote->rc_phys;
|
||||
+
|
||||
+ usb_to_input_id(xbox_remote->udev, &rdev->input_id);
|
||||
+ rdev->dev.parent = &xbox_remote->interface->dev;
|
||||
+}
|
||||
+
|
||||
+static int xbox_remote_initialize(struct xbox_remote *xbox_remote,
|
||||
+ struct usb_endpoint_descriptor *endpoint_in)
|
||||
+{
|
||||
+ struct usb_device *udev = xbox_remote->udev;
|
||||
+ int pipe, maxp;
|
||||
+
|
||||
+ /* Set up irq_urb */
|
||||
+ pipe = usb_rcvintpipe(udev, endpoint_in->bEndpointAddress);
|
||||
+ maxp = usb_maxpacket(udev, pipe, usb_pipeout(pipe));
|
||||
+ maxp = (maxp > DATA_BUFSIZE) ? DATA_BUFSIZE : maxp;
|
||||
+
|
||||
+ usb_fill_int_urb(xbox_remote->irq_urb, udev, pipe, xbox_remote->inbuf,
|
||||
+ maxp, xbox_remote_irq_in, xbox_remote,
|
||||
+ endpoint_in->bInterval);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * xbox_remote_probe
|
||||
+ */
|
||||
+static int xbox_remote_probe(struct usb_interface *interface,
|
||||
+ const struct usb_device_id *id)
|
||||
+{
|
||||
+ struct usb_device *udev = interface_to_usbdev(interface);
|
||||
+ struct usb_host_interface *iface_host = interface->cur_altsetting;
|
||||
+ struct usb_endpoint_descriptor *endpoint_in;
|
||||
+ struct xbox_remote *xbox_remote;
|
||||
+ struct rc_dev *rc_dev;
|
||||
+ int err = -ENOMEM;
|
||||
+
|
||||
+ // why is there also a device with no endpoints?
|
||||
+ if (iface_host->desc.bNumEndpoints == 0)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ if (iface_host->desc.bNumEndpoints != 1) {
|
||||
+ pr_err("%s: Unexpected desc.bNumEndpoints: %d\n",
|
||||
+ __func__, iface_host->desc.bNumEndpoints);
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+
|
||||
+ endpoint_in = &iface_host->endpoint[0].desc;
|
||||
+
|
||||
+ if (!usb_endpoint_is_int_in(endpoint_in)) {
|
||||
+ pr_err("%s: Unexpected endpoint_in\n", __func__);
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+ if (le16_to_cpu(endpoint_in->wMaxPacketSize) == 0) {
|
||||
+ pr_err("%s: endpoint_in message size==0?\n", __func__);
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+
|
||||
+ xbox_remote = kzalloc(sizeof(*xbox_remote), GFP_KERNEL);
|
||||
+ rc_dev = rc_allocate_device(RC_DRIVER_SCANCODE);
|
||||
+ if (!xbox_remote || !rc_dev)
|
||||
+ goto exit_free_dev_rdev;
|
||||
+
|
||||
+ /* Allocate URB buffer */
|
||||
+ xbox_remote->irq_urb = usb_alloc_urb(0, GFP_KERNEL);
|
||||
+ if (!xbox_remote->irq_urb)
|
||||
+ goto exit_free_buffers;
|
||||
+
|
||||
+ xbox_remote->udev = udev;
|
||||
+ xbox_remote->rdev = rc_dev;
|
||||
+ xbox_remote->interface = interface;
|
||||
+
|
||||
+ usb_make_path(udev, xbox_remote->rc_phys, sizeof(xbox_remote->rc_phys));
|
||||
+
|
||||
+ strlcat(xbox_remote->rc_phys, "/input0", sizeof(xbox_remote->rc_phys));
|
||||
+
|
||||
+ snprintf(xbox_remote->rc_name, sizeof(xbox_remote->rc_name), "%s%s%s",
|
||||
+ udev->manufacturer ?: "",
|
||||
+ udev->manufacturer && udev->product ? " " : "",
|
||||
+ udev->product ?: "");
|
||||
+
|
||||
+ if (!strlen(xbox_remote->rc_name))
|
||||
+ snprintf(xbox_remote->rc_name, sizeof(xbox_remote->rc_name),
|
||||
+ DRIVER_DESC "(%04x,%04x)",
|
||||
+ le16_to_cpu(xbox_remote->udev->descriptor.idVendor),
|
||||
+ le16_to_cpu(xbox_remote->udev->descriptor.idProduct));
|
||||
+
|
||||
+ rc_dev->map_name = RC_MAP_XBOX_DVD; /* default map */
|
||||
+
|
||||
+ xbox_remote_rc_init(xbox_remote);
|
||||
+
|
||||
+ /* Device Hardware Initialization */
|
||||
+ err = xbox_remote_initialize(xbox_remote, endpoint_in);
|
||||
+ if (err)
|
||||
+ goto exit_kill_urbs;
|
||||
+
|
||||
+ /* Set up and register rc device */
|
||||
+ err = rc_register_device(xbox_remote->rdev);
|
||||
+ if (err)
|
||||
+ goto exit_kill_urbs;
|
||||
+
|
||||
+ usb_set_intfdata(interface, xbox_remote);
|
||||
+
|
||||
+ return 0;
|
||||
+
|
||||
+exit_kill_urbs:
|
||||
+ usb_kill_urb(xbox_remote->irq_urb);
|
||||
+exit_free_buffers:
|
||||
+ usb_free_urb(xbox_remote->irq_urb);
|
||||
+exit_free_dev_rdev:
|
||||
+ rc_free_device(rc_dev);
|
||||
+ kfree(xbox_remote);
|
||||
+
|
||||
+ return err;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * xbox_remote_disconnect
|
||||
+ */
|
||||
+static void xbox_remote_disconnect(struct usb_interface *interface)
|
||||
+{
|
||||
+ struct xbox_remote *xbox_remote;
|
||||
+
|
||||
+ xbox_remote = usb_get_intfdata(interface);
|
||||
+ usb_set_intfdata(interface, NULL);
|
||||
+ if (!xbox_remote) {
|
||||
+ dev_warn(&interface->dev, "%s - null device?\n", __func__);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ usb_kill_urb(xbox_remote->irq_urb);
|
||||
+ rc_unregister_device(xbox_remote->rdev);
|
||||
+ usb_free_urb(xbox_remote->irq_urb);
|
||||
+ kfree(xbox_remote);
|
||||
+}
|
||||
+
|
||||
+/* usb specific object to register with the usb subsystem */
|
||||
+static struct usb_driver xbox_remote_driver = {
|
||||
+ .name = "xbox_remote",
|
||||
+ .probe = xbox_remote_probe,
|
||||
+ .disconnect = xbox_remote_disconnect,
|
||||
+ .id_table = xbox_remote_table,
|
||||
+};
|
||||
+
|
||||
+module_usb_driver(xbox_remote_driver);
|
||||
+
|
||||
+MODULE_AUTHOR(DRIVER_AUTHOR);
|
||||
+MODULE_DESCRIPTION(DRIVER_DESC);
|
||||
+MODULE_LICENSE("GPL");
|
||||
diff --git a/include/media/rc-map.h b/include/media/rc-map.h
|
||||
index bfa3017cecba..d621acadfbf3 100644
|
||||
--- a/include/media/rc-map.h
|
||||
+++ b/include/media/rc-map.h
|
||||
@@ -277,6 +277,7 @@ struct rc_map *rc_map_get(const char *name);
|
||||
#define RC_MAP_WINFAST "rc-winfast"
|
||||
#define RC_MAP_WINFAST_USBII_DELUXE "rc-winfast-usbii-deluxe"
|
||||
#define RC_MAP_SU3000 "rc-su3000"
|
||||
+#define RC_MAP_XBOX_DVD "rc-xbox-dvd"
|
||||
#define RC_MAP_ZX_IRDEC "rc-zx-irdec"
|
||||
|
||||
/*
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
From 3f1f8303b6e0be751d7a7c55031c8ab840ed5c1a Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Reichl <hias@horus.com>
|
||||
Date: Fri, 24 Aug 2018 23:31:51 +0200
|
||||
Subject: [PATCH] media: rc: ir-rc6-decoder: enable toggle bit for Kathrein
|
||||
RCU-676 remote
|
||||
|
||||
The Kathrein RCU-676 remote uses the 32-bit rc6 protocol and toggles
|
||||
bit 15 (0x8000) on repeated button presses, like MCE remotes.
|
||||
|
||||
Add it's customer code 0x80460000 to the 32-bit rc6 toggle
|
||||
handling code to get proper scancodes and toggle reports.
|
||||
|
||||
Signed-off-by: Matthias Reichl <hias@horus.com>
|
||||
---
|
||||
drivers/media/rc/ir-rc6-decoder.c | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/rc/ir-rc6-decoder.c b/drivers/media/rc/ir-rc6-decoder.c
|
||||
index 68487ce9f79b..d96aed1343e4 100644
|
||||
--- a/drivers/media/rc/ir-rc6-decoder.c
|
||||
+++ b/drivers/media/rc/ir-rc6-decoder.c
|
||||
@@ -40,6 +40,7 @@
|
||||
#define RC6_6A_MCE_TOGGLE_MASK 0x8000 /* for the body bits */
|
||||
#define RC6_6A_LCC_MASK 0xffff0000 /* RC6-6A-32 long customer code mask */
|
||||
#define RC6_6A_MCE_CC 0x800f0000 /* MCE customer code */
|
||||
+#define RC6_6A_KATHREIN_CC 0x80460000 /* Kathrein RCU-676 customer code */
|
||||
#ifndef CHAR_BIT
|
||||
#define CHAR_BIT 8 /* Normally in <limits.h> */
|
||||
#endif
|
||||
@@ -242,13 +243,17 @@ static int ir_rc6_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
toggle = 0;
|
||||
break;
|
||||
case 32:
|
||||
- if ((scancode & RC6_6A_LCC_MASK) == RC6_6A_MCE_CC) {
|
||||
+ switch (scancode & RC6_6A_LCC_MASK) {
|
||||
+ case RC6_6A_MCE_CC:
|
||||
+ case RC6_6A_KATHREIN_CC:
|
||||
protocol = RC_PROTO_RC6_MCE;
|
||||
toggle = !!(scancode & RC6_6A_MCE_TOGGLE_MASK);
|
||||
scancode &= ~RC6_6A_MCE_TOGGLE_MASK;
|
||||
- } else {
|
||||
+ break;
|
||||
+ default:
|
||||
protocol = RC_PROTO_RC6_6A_32;
|
||||
toggle = 0;
|
||||
+ break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="bcm2835-bootloader"
|
||||
PKG_VERSION="d095b96ac33de9eb4b95539cb3261f35a3c74509"
|
||||
PKG_SHA256="45fc65720e5792813a3c29ddab9da32d821020fae3b9076eecb184c73c6866d0"
|
||||
PKG_VERSION="fd15e0700e45d9b7db83e30696aba299b9f2f31d"
|
||||
PKG_SHA256="c9d32c2355ce4116206b3deae3e340545f345441c0c93ba2347971784fd327ff"
|
||||
PKG_ARCH="arm"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://www.broadcom.com"
|
||||
|
||||
@@ -0,0 +1,257 @@
|
||||
From 8ca52f318962cf0f5d4fba74f676c4c58940d7a6 Mon Sep 17 00:00:00 2001
|
||||
From: MilhouseVH <milhouseVH.github@nmacleod.com>
|
||||
Date: Fri, 22 Feb 2019 21:19:00 +0000
|
||||
Subject: [PATCH] fix build for 5.0
|
||||
|
||||
Source: https://devtalk.nvidia.com/default/topic/1047179/linux/-solved-nvidia-340-107-linux-5-0-rc5-failed-to-build-kernel-module/post/5315771/#5315771
|
||||
---
|
||||
kernel/Makefile | 2 ++
|
||||
kernel/conftest.sh | 33 +++++++++++++++++++++++++++++++++
|
||||
kernel/nv-drm.c | 12 +++++++++++-
|
||||
kernel/nv-time.h | 24 ++++++++++++++++++++++++
|
||||
kernel/os-interface.c | 13 +++++++------
|
||||
kernel/uvm/Makefile | 1 +
|
||||
kernel/uvm/nvidia_uvm_linux.h | 1 +
|
||||
kernel/uvm/nvidia_uvm_lite.c | 4 ++--
|
||||
8 files changed, 81 insertions(+), 9 deletions(-)
|
||||
create mode 100644 kernel/nv-time.h
|
||||
|
||||
diff --git a/kernel/Makefile b/kernel/Makefile
|
||||
index 8ac3c1a..1959dce 100644
|
||||
--- a/kernel/Makefile
|
||||
+++ b/kernel/Makefile
|
||||
@@ -147,6 +147,8 @@ COMPILE_TESTS = \
|
||||
vm_fault_present \
|
||||
vm_fault_has_address \
|
||||
drm_driver_unload_has_int_return_type \
|
||||
+ drm_gem_object_get \
|
||||
+ do_gettimeofday \
|
||||
drm_legacy_pci_init \
|
||||
timer_setup
|
||||
#
|
||||
diff --git a/kernel/conftest.sh b/kernel/conftest.sh
|
||||
index 64d75a1..fb0bf60 100755
|
||||
--- a/kernel/conftest.sh
|
||||
+++ b/kernel/conftest.sh
|
||||
@@ -168,6 +168,7 @@ test_headers() {
|
||||
FILES="$FILES linux/sched/task.h"
|
||||
FILES="$FILES xen/ioemu.h"
|
||||
FILES="$FILES linux/fence.h"
|
||||
+ FILES="$FILES linux/ktime.h"
|
||||
|
||||
FILES_ARCH="$FILES_ARCH asm/set_memory.h"
|
||||
|
||||
@@ -1971,6 +1972,38 @@ compile_test() {
|
||||
compile_check_conftest "$CODE" "NV_DRM_DRIVER_UNLOAD_HAS_INT_RETURN_TYPE" "" "types"
|
||||
;;
|
||||
|
||||
+ drm_gem_object_get)
|
||||
+ #
|
||||
+ # Determine if the function drm_gem_object_get() is present.
|
||||
+ #
|
||||
+ CODE="
|
||||
+ #include <drm/drmP.h>
|
||||
+ #if defined(NV_DRM_DRM_GEM_H_PRESENT)
|
||||
+ #include <drm/drm_gem.h>
|
||||
+ #endif
|
||||
+ void conftest_drm_gem_object_get(void) {
|
||||
+ drm_gem_object_get();
|
||||
+ }"
|
||||
+
|
||||
+ compile_check_conftest "$CODE" "NV_DRM_GEM_OBJECT_GET_PRESENT" "" "functions"
|
||||
+ ;;
|
||||
+
|
||||
+ do_gettimeofday)
|
||||
+ #
|
||||
+ # Determine if the function do_gettimeofday() is present.
|
||||
+ #
|
||||
+ CODE="
|
||||
+ #include <linux/time.h>
|
||||
+ #if defined(NV_LINUX_KTIME_H_PRESENT)
|
||||
+ #include <linux/ktime.h>
|
||||
+ #endif
|
||||
+ void conftest_do_gettimeofday(void) {
|
||||
+ do_gettimeofday();
|
||||
+ }"
|
||||
+
|
||||
+ compile_check_conftest "$CODE" "NV_DO_GETTIMEOFDAY_PRESENT" "" "functions"
|
||||
+ ;;
|
||||
+
|
||||
drm_legacy_pci_init)
|
||||
#
|
||||
# Determine if drm_legacy_pci_init() is present. drm_pci_init() was
|
||||
diff --git a/kernel/nv-drm.c b/kernel/nv-drm.c
|
||||
index 0eb72e4..1c968de 100644
|
||||
--- a/kernel/nv-drm.c
|
||||
+++ b/kernel/nv-drm.c
|
||||
@@ -37,6 +37,16 @@ struct nv_gem_object {
|
||||
struct page **pages;
|
||||
};
|
||||
|
||||
+static inline void
|
||||
+nv_drm_gem_object_unreference_unlocked(struct nv_gem_object *nv_gem)
|
||||
+{
|
||||
+#if defined(NV_DRM_GEM_OBJECT_GET_PRESENT)
|
||||
+ drm_gem_object_put_unlocked(&nv_gem->base);
|
||||
+#else
|
||||
+ drm_gem_object_unreference_unlocked(&nv_gem->base);
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
static int nv_drm_load(
|
||||
struct drm_device *dev,
|
||||
unsigned long flags
|
||||
@@ -252,7 +262,7 @@ RM_STATUS NV_API_CALL nv_alloc_os_descriptor_handle(
|
||||
goto done;
|
||||
}
|
||||
|
||||
- drm_gem_object_unreference_unlocked(&nv_obj->base);
|
||||
+ nv_drm_gem_object_unreference_unlocked(nv_obj);
|
||||
|
||||
status = RM_OK;
|
||||
|
||||
diff --git a/kernel/nv-time.h b/kernel/nv-time.h
|
||||
new file mode 100644
|
||||
index 0000000..cc828aa
|
||||
--- /dev/null
|
||||
+++ b/kernel/nv-time.h
|
||||
@@ -0,0 +1,24 @@
|
||||
+#ifndef __NV_TIME_H__
|
||||
+#define __NV_TIME_H__
|
||||
+
|
||||
+#include "conftest.h"
|
||||
+#include <linux/time.h>
|
||||
+
|
||||
+#if defined(NV_LINUX_KTIME_H_PRESENT)
|
||||
+#include <linux/ktime.h>
|
||||
+#endif
|
||||
+
|
||||
+static inline void nv_gettimeofday(struct timeval *tv)
|
||||
+{
|
||||
+#ifdef NV_DO_GETTIMEOFDAY_PRESENT
|
||||
+ do_gettimeofday(tv);
|
||||
+#else
|
||||
+ struct timespec64 now;
|
||||
+
|
||||
+ ktime_get_real_ts64(&now);
|
||||
+ tv->tv_sec = now.tv_sec;
|
||||
+ tv->tv_usec = now.tv_nsec/1000;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
diff --git a/kernel/os-interface.c b/kernel/os-interface.c
|
||||
index 7e3d362..7190b26 100644
|
||||
--- a/kernel/os-interface.c
|
||||
+++ b/kernel/os-interface.c
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include "os-interface.h"
|
||||
#include "nv-linux.h"
|
||||
+#include "nv-time.h"
|
||||
|
||||
RM_STATUS NV_API_CALL os_disable_console_access(void)
|
||||
{
|
||||
@@ -440,7 +441,7 @@ RM_STATUS NV_API_CALL os_get_current_time(
|
||||
{
|
||||
struct timeval tm;
|
||||
|
||||
- do_gettimeofday(&tm);
|
||||
+ nv_gettimeofday(&tm);
|
||||
|
||||
*seconds = tm.tv_sec;
|
||||
*useconds = tm.tv_usec;
|
||||
@@ -475,7 +476,7 @@ RM_STATUS NV_API_CALL os_delay_us(NvU32 MicroSeconds)
|
||||
#ifdef NV_CHECK_DELAY_ACCURACY
|
||||
struct timeval tm1, tm2;
|
||||
|
||||
- do_gettimeofday(&tm1);
|
||||
+ nv_gettimeofday(&tm1);
|
||||
#endif
|
||||
|
||||
if (in_irq() && (MicroSeconds > NV_MAX_ISR_DELAY_US))
|
||||
@@ -490,7 +491,7 @@ RM_STATUS NV_API_CALL os_delay_us(NvU32 MicroSeconds)
|
||||
udelay(usec);
|
||||
|
||||
#ifdef NV_CHECK_DELAY_ACCURACY
|
||||
- do_gettimeofday(&tm2);
|
||||
+ nv_gettimeofday(&tm2);
|
||||
nv_printf(NV_DBG_ERRORS, "NVRM: osDelayUs %d: 0x%x 0x%x\n",
|
||||
MicroSeconds, tm2.tv_sec - tm1.tv_sec, tm2.tv_usec - tm1.tv_usec);
|
||||
#endif
|
||||
@@ -518,7 +519,7 @@ RM_STATUS NV_API_CALL os_delay(NvU32 MilliSeconds)
|
||||
struct timeval tm_start;
|
||||
#endif
|
||||
|
||||
- do_gettimeofday(&tm_aux);
|
||||
+ nv_gettimeofday(&tm_aux);
|
||||
#ifdef NV_CHECK_DELAY_ACCURACY
|
||||
tm_start = tm_aux;
|
||||
#endif
|
||||
@@ -552,7 +553,7 @@ RM_STATUS NV_API_CALL os_delay(NvU32 MilliSeconds)
|
||||
do
|
||||
{
|
||||
schedule_timeout(jiffies);
|
||||
- do_gettimeofday(&tm_aux);
|
||||
+ nv_gettimeofday(&tm_aux);
|
||||
if (NV_TIMERCMP(&tm_aux, &tm_end, <))
|
||||
{
|
||||
NV_TIMERSUB(&tm_end, &tm_aux, &tm_aux);
|
||||
@@ -574,7 +575,7 @@ RM_STATUS NV_API_CALL os_delay(NvU32 MilliSeconds)
|
||||
udelay(MicroSeconds);
|
||||
}
|
||||
#ifdef NV_CHECK_DELAY_ACCURACY
|
||||
- do_gettimeofday(&tm_aux);
|
||||
+ nv_gettimeofday(&tm_aux);
|
||||
timersub(&tm_aux, &tm_start, &tm_aux);
|
||||
nv_printf(NV_DBG_ERRORS, "NVRM: osDelay %dmsec: %d.%06dsec\n",
|
||||
MilliSeconds, tm_aux.tv_sec, tm_aux.tv_usec);
|
||||
diff --git a/kernel/uvm/Makefile b/kernel/uvm/Makefile
|
||||
index 42ad927..5c7b466 100644
|
||||
--- a/kernel/uvm/Makefile
|
||||
+++ b/kernel/uvm/Makefile
|
||||
@@ -171,6 +171,7 @@ COMPILE_TESTS = \
|
||||
kbasename \
|
||||
fatal_signal_pending \
|
||||
kuid_t \
|
||||
+ do_gettimeofday \
|
||||
vm_fault_has_address
|
||||
|
||||
MODULE_NAME:= nvidia-uvm
|
||||
diff --git a/kernel/uvm/nvidia_uvm_linux.h b/kernel/uvm/nvidia_uvm_linux.h
|
||||
index 1625209..1edb620 100644
|
||||
--- a/kernel/uvm/nvidia_uvm_linux.h
|
||||
+++ b/kernel/uvm/nvidia_uvm_linux.h
|
||||
@@ -146,6 +146,7 @@
|
||||
#include <linux/interrupt.h> /* tasklets, interrupt helpers */
|
||||
#include <linux/timer.h>
|
||||
#include <linux/time.h> /* do_gettimeofday()*/
|
||||
+#include "nv-time.h"
|
||||
|
||||
#include <asm/div64.h> /* do_div() */
|
||||
#if defined(NV_ASM_SYSTEM_H_PRESENT)
|
||||
diff --git a/kernel/uvm/nvidia_uvm_lite.c b/kernel/uvm/nvidia_uvm_lite.c
|
||||
index 246ed04..8bcf548 100644
|
||||
--- a/kernel/uvm/nvidia_uvm_lite.c
|
||||
+++ b/kernel/uvm/nvidia_uvm_lite.c
|
||||
@@ -2008,7 +2008,7 @@ static RM_STATUS _check_ecc_errors(UvmGpuMigrationTracking *pMigTracker,
|
||||
{
|
||||
if (!!(rmInterruptSet) && !bEccIncomingError)
|
||||
{
|
||||
- do_gettimeofday(&eccErrorStartTime);
|
||||
+ nv_gettimeofday(&eccErrorStartTime);
|
||||
_set_timeout_in_usec(&eccErrorStartTime, &eccTimeout,
|
||||
UVM_ECC_ERR_TIMEOUT_USEC);
|
||||
|
||||
@@ -2040,7 +2040,7 @@ static RM_STATUS _check_ecc_errors(UvmGpuMigrationTracking *pMigTracker,
|
||||
//
|
||||
if (!!(rmInterruptSet) && (eccErrorStartTime.tv_usec != 0))
|
||||
{
|
||||
- do_gettimeofday(&eccErrorCurrentTime);
|
||||
+ nv_gettimeofday(&eccErrorCurrentTime);
|
||||
if ((eccErrorCurrentTime.tv_sec > eccTimeout.tv_sec) ||
|
||||
((eccErrorCurrentTime.tv_sec == eccTimeout.tv_sec) &&
|
||||
(eccErrorCurrentTime.tv_usec >= eccTimeout.tv_usec)))
|
||||
--
|
||||
2.14.1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 4.19.20 Kernel Configuration
|
||||
# Linux/arm 5.0.0 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
@@ -9,6 +9,7 @@
|
||||
CONFIG_CC_IS_GCC=y
|
||||
CONFIG_GCC_VERSION=70200
|
||||
CONFIG_CLANG_VERSION=0
|
||||
CONFIG_CC_HAS_ASM_GOTO=y
|
||||
CONFIG_IRQ_WORK=y
|
||||
CONFIG_BUILDTIME_EXTABLE_SORT=y
|
||||
|
||||
@@ -79,6 +80,7 @@ CONFIG_TICK_CPU_ACCOUNTING=y
|
||||
# CONFIG_IRQ_TIME_ACCOUNTING is not set
|
||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||
# CONFIG_TASKSTATS is not set
|
||||
# CONFIG_PSI is not set
|
||||
|
||||
#
|
||||
# RCU Subsystem
|
||||
@@ -195,7 +197,6 @@ CONFIG_PROFILING=y
|
||||
CONFIG_TRACEPOINTS=y
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||
CONFIG_MIGHT_HAVE_PCI=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
CONFIG_HAVE_PROC_CPU=y
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
@@ -311,13 +312,6 @@ CONFIG_ARM_ERRATA_411920=y
|
||||
#
|
||||
# Bus support
|
||||
#
|
||||
# CONFIG_PCI is not set
|
||||
|
||||
#
|
||||
# PCI Endpoint
|
||||
#
|
||||
# CONFIG_PCI_ENDPOINT is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
||||
#
|
||||
# Kernel Features
|
||||
@@ -569,18 +563,11 @@ CONFIG_LDM_PARTITION=y
|
||||
CONFIG_EFI_PARTITION=y
|
||||
# CONFIG_SYSV68_PARTITION is not set
|
||||
# CONFIG_CMDLINE_PARTITION is not set
|
||||
CONFIG_BLK_PM=y
|
||||
|
||||
#
|
||||
# IO Schedulers
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
# CONFIG_CFQ_GROUP_IOSCHED is not set
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
CONFIG_DEFAULT_NOOP=y
|
||||
CONFIG_DEFAULT_IOSCHED="noop"
|
||||
CONFIG_MQ_IOSCHED_DEADLINE=y
|
||||
CONFIG_MQ_IOSCHED_KYBER=y
|
||||
CONFIG_IOSCHED_BFQ=y
|
||||
@@ -611,8 +598,6 @@ CONFIG_COREDUMP=y
|
||||
#
|
||||
CONFIG_FLATMEM=y
|
||||
CONFIG_FLAT_NODE_MEM_MAP=y
|
||||
CONFIG_HAVE_MEMBLOCK=y
|
||||
CONFIG_NO_BOOTMEM=y
|
||||
CONFIG_MEMORY_ISOLATION=y
|
||||
CONFIG_SPLIT_PTLOCK_CPUS=4
|
||||
CONFIG_COMPACTION=y
|
||||
@@ -636,6 +621,7 @@ CONFIG_FRAME_VECTOR=y
|
||||
# CONFIG_PERCPU_STATS is not set
|
||||
# CONFIG_GUP_BENCHMARK is not set
|
||||
CONFIG_NET=y
|
||||
CONFIG_SKB_EXTENSIONS=y
|
||||
|
||||
#
|
||||
# Networking options
|
||||
@@ -952,6 +938,7 @@ CONFIG_NET_SCHED=y
|
||||
# CONFIG_NET_SCH_TBF is not set
|
||||
# CONFIG_NET_SCH_CBS is not set
|
||||
# CONFIG_NET_SCH_ETF is not set
|
||||
# CONFIG_NET_SCH_TAPRIO is not set
|
||||
# CONFIG_NET_SCH_GRED is not set
|
||||
# CONFIG_NET_SCH_DSMARK is not set
|
||||
# CONFIG_NET_SCH_NETEM is not set
|
||||
@@ -1077,8 +1064,6 @@ CONFIG_CFG80211_WEXT=y
|
||||
CONFIG_MAC80211=m
|
||||
CONFIG_MAC80211_HAS_RC=y
|
||||
CONFIG_MAC80211_RC_MINSTREL=y
|
||||
CONFIG_MAC80211_RC_MINSTREL_HT=y
|
||||
CONFIG_MAC80211_RC_MINSTREL_VHT=y
|
||||
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
|
||||
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
|
||||
# CONFIG_MAC80211_MESH is not set
|
||||
@@ -1110,6 +1095,9 @@ CONFIG_HAVE_EBPF_JIT=y
|
||||
# Device Drivers
|
||||
#
|
||||
CONFIG_ARM_AMBA=y
|
||||
CONFIG_HAVE_PCI=y
|
||||
# CONFIG_PCI is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
||||
#
|
||||
# Generic Driver Options
|
||||
@@ -1218,6 +1206,7 @@ CONFIG_BCM2835_SMI=m
|
||||
# CONFIG_LATTICE_ECP3_CONFIG is not set
|
||||
# CONFIG_SRAM is not set
|
||||
CONFIG_MISC_RTSX=y
|
||||
# CONFIG_PVPANIC is not set
|
||||
# CONFIG_C2PORT is not set
|
||||
|
||||
#
|
||||
@@ -1230,6 +1219,7 @@ CONFIG_MISC_RTSX=y
|
||||
CONFIG_EEPROM_93CX6=m
|
||||
# CONFIG_EEPROM_93XX46 is not set
|
||||
# CONFIG_EEPROM_IDT_89HPESX is not set
|
||||
# CONFIG_EEPROM_EE1004 is not set
|
||||
|
||||
#
|
||||
# Texas Instruments shared transport line discipline
|
||||
@@ -1284,7 +1274,6 @@ CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
# CONFIG_SCSI_MQ_DEFAULT is not set
|
||||
# CONFIG_SCSI_PROC_FS is not set
|
||||
|
||||
#
|
||||
@@ -1331,6 +1320,7 @@ CONFIG_MACVLAN=m
|
||||
# CONFIG_MACVTAP is not set
|
||||
# CONFIG_IPVLAN is not set
|
||||
# CONFIG_VXLAN is not set
|
||||
# CONFIG_GENEVE is not set
|
||||
# CONFIG_MACSEC is not set
|
||||
CONFIG_NETCONSOLE=y
|
||||
CONFIG_NETCONSOLE_DYNAMIC=y
|
||||
@@ -1447,6 +1437,7 @@ CONFIG_USB_IPHETH=m
|
||||
# CONFIG_USB_SIERRA_NET is not set
|
||||
# CONFIG_USB_VL600 is not set
|
||||
# CONFIG_USB_NET_CH9200 is not set
|
||||
# CONFIG_USB_NET_AQC111 is not set
|
||||
CONFIG_WLAN=y
|
||||
# CONFIG_WIRELESS_WDS is not set
|
||||
CONFIG_WLAN_VENDOR_ADMTEK=y
|
||||
@@ -1525,8 +1516,11 @@ CONFIG_MT7601U=m
|
||||
CONFIG_MT76_CORE=m
|
||||
CONFIG_MT76_LEDS=y
|
||||
CONFIG_MT76_USB=m
|
||||
CONFIG_MT76x2_COMMON=m
|
||||
CONFIG_MT76x02_LIB=m
|
||||
CONFIG_MT76x02_USB=m
|
||||
CONFIG_MT76x0_COMMON=m
|
||||
CONFIG_MT76x0U=m
|
||||
CONFIG_MT76x2_COMMON=m
|
||||
CONFIG_MT76x2U=m
|
||||
CONFIG_WLAN_VENDOR_RALINK=y
|
||||
CONFIG_RT2X00=m
|
||||
@@ -1568,6 +1562,7 @@ CONFIG_ZD1211RW=m
|
||||
# CONFIG_WLAN_VENDOR_QUANTENNA is not set
|
||||
# CONFIG_MAC80211_HWSIM is not set
|
||||
CONFIG_USB_NET_RNDIS_WLAN=m
|
||||
# CONFIG_VIRT_WIFI is not set
|
||||
|
||||
#
|
||||
# Enable WiMAX (Networking options) to see the WiMAX drivers
|
||||
@@ -1576,6 +1571,7 @@ CONFIG_USB_NET_RNDIS_WLAN=m
|
||||
# CONFIG_NETDEVSIM is not set
|
||||
# CONFIG_NET_FAILOVER is not set
|
||||
# CONFIG_ISDN is not set
|
||||
# CONFIG_NVM is not set
|
||||
|
||||
#
|
||||
# Input device support
|
||||
@@ -1701,7 +1697,7 @@ CONFIG_TOUCHSCREEN_EGALAX=m
|
||||
# CONFIG_TOUCHSCREEN_MK712 is not set
|
||||
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
|
||||
# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
|
||||
CONFIG_TOUCHSCREEN_RPI_FT5406=m
|
||||
CONFIG_TOUCHSCREEN_RASPBERRYPI_FW=m
|
||||
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
|
||||
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
|
||||
# CONFIG_TOUCHSCREEN_PIXCIR is not set
|
||||
@@ -1796,6 +1792,7 @@ CONFIG_SERIO_SERPORT=y
|
||||
# CONFIG_SERIO_PS2MULT is not set
|
||||
# CONFIG_SERIO_ARC_PS2 is not set
|
||||
# CONFIG_SERIO_APBPS2 is not set
|
||||
# CONFIG_SERIO_OLPC_APSP is not set
|
||||
# CONFIG_SERIO_GPIO_PS2 is not set
|
||||
# CONFIG_USERIO is not set
|
||||
# CONFIG_GAMEPORT is not set
|
||||
@@ -1946,6 +1943,7 @@ CONFIG_I2C_GPIO=y
|
||||
# CONFIG_I2C_DEBUG_CORE is not set
|
||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||
# CONFIG_I2C_DEBUG_BUS is not set
|
||||
# CONFIG_I3C is not set
|
||||
CONFIG_SPI=y
|
||||
# CONFIG_SPI_DEBUG is not set
|
||||
CONFIG_SPI_MASTER=y
|
||||
@@ -1968,6 +1966,7 @@ CONFIG_SPI_BCM2835AUX=m
|
||||
# CONFIG_SPI_PL022 is not set
|
||||
# CONFIG_SPI_ROCKCHIP is not set
|
||||
# CONFIG_SPI_SC18IS602 is not set
|
||||
# CONFIG_SPI_MXIC is not set
|
||||
# CONFIG_SPI_XCOMM is not set
|
||||
# CONFIG_SPI_XILINX is not set
|
||||
# CONFIG_SPI_ZYNQMP_GQSPI is not set
|
||||
@@ -2000,6 +1999,7 @@ CONFIG_GENERIC_PINCONF=y
|
||||
# CONFIG_PINCTRL_MCP23S08 is not set
|
||||
# CONFIG_PINCTRL_SINGLE is not set
|
||||
# CONFIG_PINCTRL_SX150X is not set
|
||||
# CONFIG_PINCTRL_OCELOT is not set
|
||||
CONFIG_PINCTRL_BCM2835=y
|
||||
CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
|
||||
CONFIG_GPIOLIB=y
|
||||
@@ -2016,6 +2016,7 @@ CONFIG_GPIO_SYSFS=y
|
||||
# CONFIG_GPIO_ALTERA is not set
|
||||
CONFIG_GPIO_RASPBERRYPI_EXP=y
|
||||
CONFIG_GPIO_BCM_VIRT=y
|
||||
# CONFIG_GPIO_CADENCE is not set
|
||||
# CONFIG_GPIO_DWAPB is not set
|
||||
# CONFIG_GPIO_FTGPIO010 is not set
|
||||
# CONFIG_GPIO_GENERIC_PLATFORM is not set
|
||||
@@ -2212,6 +2213,7 @@ CONFIG_HWMON=y
|
||||
# CONFIG_SENSORS_NCT7802 is not set
|
||||
# CONFIG_SENSORS_NCT7904 is not set
|
||||
# CONFIG_SENSORS_NPCM7XX is not set
|
||||
# CONFIG_SENSORS_OCC_P8_I2C is not set
|
||||
# CONFIG_SENSORS_PCF8591 is not set
|
||||
# CONFIG_PMBUS is not set
|
||||
# CONFIG_SENSORS_PWM_FAN is not set
|
||||
@@ -2277,10 +2279,6 @@ CONFIG_THERMAL_GOV_STEP_WISE=y
|
||||
# CONFIG_THERMAL_EMULATION is not set
|
||||
# CONFIG_QORIQ_THERMAL is not set
|
||||
|
||||
#
|
||||
# ACPI INT340X thermal drivers
|
||||
#
|
||||
|
||||
#
|
||||
# Broadcom thermal drivers
|
||||
#
|
||||
@@ -2462,6 +2460,7 @@ CONFIG_REGULATOR_ARIZONA_MICSUPP=m
|
||||
# CONFIG_REGULATOR_MAX8660 is not set
|
||||
# CONFIG_REGULATOR_MAX8952 is not set
|
||||
# CONFIG_REGULATOR_MAX8973 is not set
|
||||
# CONFIG_REGULATOR_MCP16502 is not set
|
||||
# CONFIG_REGULATOR_MT6311 is not set
|
||||
# CONFIG_REGULATOR_PFUZE100 is not set
|
||||
# CONFIG_REGULATOR_PV88060 is not set
|
||||
@@ -2821,6 +2820,7 @@ CONFIG_DVB_TDA10048=m
|
||||
CONFIG_DVB_AF9013=m
|
||||
CONFIG_DVB_EC100=m
|
||||
CONFIG_DVB_CXD2820R=m
|
||||
CONFIG_DVB_CXD2841ER=m
|
||||
CONFIG_DVB_RTL2830=m
|
||||
CONFIG_DVB_RTL2832=m
|
||||
CONFIG_DVB_SI2168=m
|
||||
@@ -2953,10 +2953,12 @@ CONFIG_DRM_PANEL=y
|
||||
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
|
||||
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
|
||||
# CONFIG_DRM_PANEL_LG_LG4573 is not set
|
||||
# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
|
||||
# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set
|
||||
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
|
||||
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
|
||||
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
|
||||
# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
|
||||
# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
|
||||
# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
|
||||
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
|
||||
@@ -2964,6 +2966,7 @@ CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
|
||||
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
|
||||
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
|
||||
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
|
||||
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
|
||||
CONFIG_DRM_BRIDGE=y
|
||||
CONFIG_DRM_PANEL_BRIDGE=y
|
||||
|
||||
@@ -2981,8 +2984,10 @@ CONFIG_DRM_PANEL_BRIDGE=y
|
||||
# CONFIG_DRM_SII902X is not set
|
||||
# CONFIG_DRM_SII9234 is not set
|
||||
# CONFIG_DRM_THINE_THC63LVD1024 is not set
|
||||
# CONFIG_DRM_TOSHIBA_TC358764 is not set
|
||||
# CONFIG_DRM_TOSHIBA_TC358767 is not set
|
||||
# CONFIG_DRM_TI_TFP410 is not set
|
||||
# CONFIG_DRM_TI_SN65DSI86 is not set
|
||||
# CONFIG_DRM_I2C_ADV7511 is not set
|
||||
# CONFIG_DRM_STI is not set
|
||||
# CONFIG_DRM_V3D is not set
|
||||
@@ -2999,10 +3004,10 @@ CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
|
||||
#
|
||||
# Frame buffer Devices
|
||||
#
|
||||
CONFIG_FB=y
|
||||
# CONFIG_FIRMWARE_EDID is not set
|
||||
CONFIG_FB_CMDLINE=y
|
||||
CONFIG_FB_NOTIFY=y
|
||||
CONFIG_FB=y
|
||||
# CONFIG_FIRMWARE_EDID is not set
|
||||
CONFIG_FB_CFB_FILLRECT=y
|
||||
CONFIG_FB_CFB_COPYAREA=y
|
||||
CONFIG_FB_CFB_IMAGEBLIT=y
|
||||
@@ -3027,7 +3032,6 @@ CONFIG_FB_BCM2708=y
|
||||
# CONFIG_FB_IBM_GXT4500 is not set
|
||||
# CONFIG_FB_VIRTUAL is not set
|
||||
# CONFIG_FB_METRONOME is not set
|
||||
# CONFIG_FB_BROADSHEET is not set
|
||||
# CONFIG_FB_SIMPLE is not set
|
||||
# CONFIG_FB_SSD1307 is not set
|
||||
# CONFIG_FB_RPISENSE is not set
|
||||
@@ -3041,8 +3045,6 @@ CONFIG_LCD_CLASS_DEVICE=y
|
||||
# CONFIG_LCD_TDO24M is not set
|
||||
# CONFIG_LCD_VGG2432A4 is not set
|
||||
# CONFIG_LCD_PLATFORM is not set
|
||||
# CONFIG_LCD_S6E63M0 is not set
|
||||
# CONFIG_LCD_LD9040 is not set
|
||||
# CONFIG_LCD_AMS369FG06 is not set
|
||||
# CONFIG_LCD_LMS501KF03 is not set
|
||||
# CONFIG_LCD_HX8357 is not set
|
||||
@@ -3174,6 +3176,7 @@ CONFIG_SND_RPI_WM8804_SOUNDCARD=m
|
||||
#
|
||||
# STMicroelectronics STM32 SOC audio support
|
||||
#
|
||||
# CONFIG_SND_SOC_XILINX_I2S is not set
|
||||
# CONFIG_SND_SOC_XTFPGA_I2S is not set
|
||||
# CONFIG_ZX_TDM is not set
|
||||
CONFIG_SND_SOC_I2C_AND_SPI=m
|
||||
@@ -3193,6 +3196,7 @@ CONFIG_SND_SOC_ADAU1977=m
|
||||
CONFIG_SND_SOC_ADAU1977_I2C=m
|
||||
CONFIG_SND_SOC_ADAU7002=m
|
||||
# CONFIG_SND_SOC_AK4104 is not set
|
||||
# CONFIG_SND_SOC_AK4118 is not set
|
||||
# CONFIG_SND_SOC_AK4458 is not set
|
||||
CONFIG_SND_SOC_AK4554=m
|
||||
# CONFIG_SND_SOC_AK4613 is not set
|
||||
@@ -3230,6 +3234,7 @@ CONFIG_SND_SOC_DMIC=m
|
||||
# CONFIG_SND_SOC_GTM601 is not set
|
||||
# CONFIG_SND_SOC_ICS43432 is not set
|
||||
# CONFIG_SND_SOC_INNO_RK3036 is not set
|
||||
# CONFIG_SND_SOC_MAX98088 is not set
|
||||
# CONFIG_SND_SOC_MAX98504 is not set
|
||||
# CONFIG_SND_SOC_MAX9867 is not set
|
||||
# CONFIG_SND_SOC_MAX98927 is not set
|
||||
@@ -3242,6 +3247,8 @@ CONFIG_SND_SOC_DMIC=m
|
||||
# CONFIG_SND_SOC_PCM179X_SPI is not set
|
||||
# CONFIG_SND_SOC_PCM186X_I2C is not set
|
||||
# CONFIG_SND_SOC_PCM186X_SPI is not set
|
||||
# CONFIG_SND_SOC_PCM3060_I2C is not set
|
||||
# CONFIG_SND_SOC_PCM3060_SPI is not set
|
||||
# CONFIG_SND_SOC_PCM3168A_I2C is not set
|
||||
# CONFIG_SND_SOC_PCM3168A_SPI is not set
|
||||
CONFIG_SND_SOC_PCM5102A=m
|
||||
@@ -3311,6 +3318,7 @@ CONFIG_SND_SOC_WM8804_I2C=m
|
||||
# CONFIG_SND_SOC_MT6351 is not set
|
||||
# CONFIG_SND_SOC_NAU8540 is not set
|
||||
# CONFIG_SND_SOC_NAU8810 is not set
|
||||
# CONFIG_SND_SOC_NAU8822 is not set
|
||||
# CONFIG_SND_SOC_NAU8824 is not set
|
||||
CONFIG_SND_SOC_TPA6130A2=m
|
||||
CONFIG_SND_SIMPLE_CARD_UTILS=m
|
||||
@@ -3359,7 +3367,6 @@ CONFIG_HID_EZKEY=y
|
||||
# CONFIG_HID_GEMBIRD is not set
|
||||
# CONFIG_HID_GFRM is not set
|
||||
# CONFIG_HID_HOLTEK is not set
|
||||
# CONFIG_HID_GOOGLE_HAMMER is not set
|
||||
# CONFIG_HID_GT683R is not set
|
||||
# CONFIG_HID_KEYTOUCH is not set
|
||||
CONFIG_HID_KYE=y
|
||||
@@ -3651,6 +3658,7 @@ CONFIG_MMC_REALTEK_USB=m
|
||||
# CONFIG_MMC_MTK is not set
|
||||
# CONFIG_MMC_SDHCI_XENON is not set
|
||||
# CONFIG_MMC_SDHCI_OMAP is not set
|
||||
# CONFIG_MMC_SDHCI_AM654 is not set
|
||||
# CONFIG_MEMSTICK is not set
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
@@ -3661,6 +3669,7 @@ CONFIG_LEDS_CLASS_FLASH=y
|
||||
# LED drivers
|
||||
#
|
||||
# CONFIG_LEDS_AAT1290 is not set
|
||||
# CONFIG_LEDS_AN30259A is not set
|
||||
# CONFIG_LEDS_AS3645A is not set
|
||||
# CONFIG_LEDS_BCM6328 is not set
|
||||
# CONFIG_LEDS_BCM6358 is not set
|
||||
@@ -3720,6 +3729,8 @@ CONFIG_LEDS_TRIGGER_CAMERA=y
|
||||
CONFIG_LEDS_TRIGGER_INPUT=y
|
||||
# CONFIG_LEDS_TRIGGER_PANIC is not set
|
||||
# CONFIG_LEDS_TRIGGER_NETDEV is not set
|
||||
# CONFIG_LEDS_TRIGGER_PATTERN is not set
|
||||
# CONFIG_LEDS_TRIGGER_AUDIO is not set
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
# CONFIG_INFINIBAND is not set
|
||||
CONFIG_EDAC_ATOMIC_SCRUB=y
|
||||
@@ -3866,6 +3877,7 @@ CONFIG_DMA_BCM2708=y
|
||||
#
|
||||
CONFIG_SYNC_FILE=y
|
||||
# CONFIG_SW_SYNC is not set
|
||||
# CONFIG_UDMABUF is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
# CONFIG_VIRT_DRIVERS is not set
|
||||
@@ -3907,9 +3919,6 @@ CONFIG_BCM_VIDEOCORE=y
|
||||
CONFIG_BCM2835_VCHIQ=y
|
||||
CONFIG_SND_BCM2835=m
|
||||
# CONFIG_VIDEO_BCM2835 is not set
|
||||
# CONFIG_BCM2835_VCHIQ_MMAL is not set
|
||||
# CONFIG_BCM_VC_SM_CMA is not set
|
||||
# CONFIG_VIDEO_CODEC_BCM2835 is not set
|
||||
# CONFIG_PI433 is not set
|
||||
# CONFIG_MTK_MMC is not set
|
||||
|
||||
@@ -4037,6 +4046,9 @@ CONFIG_RESET_CONTROLLER=y
|
||||
#
|
||||
# CONFIG_GENERIC_PHY is not set
|
||||
# CONFIG_BCM_KONA_USB2_PHY is not set
|
||||
# CONFIG_PHY_CADENCE_DP is not set
|
||||
# CONFIG_PHY_CADENCE_SIERRA is not set
|
||||
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
|
||||
# CONFIG_PHY_PXA_28NM_HSIC is not set
|
||||
# CONFIG_PHY_PXA_28NM_USB2 is not set
|
||||
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
|
||||
@@ -4361,7 +4373,6 @@ CONFIG_CRYPTO_NULL=y
|
||||
CONFIG_CRYPTO_NULL2=y
|
||||
CONFIG_CRYPTO_WORKQUEUE=y
|
||||
# CONFIG_CRYPTO_CRYPTD is not set
|
||||
# CONFIG_CRYPTO_MCRYPTD is not set
|
||||
# CONFIG_CRYPTO_AUTHENC is not set
|
||||
# CONFIG_CRYPTO_TEST is not set
|
||||
|
||||
@@ -4388,9 +4399,11 @@ CONFIG_CRYPTO_CTR=y
|
||||
CONFIG_CRYPTO_CTS=m
|
||||
CONFIG_CRYPTO_ECB=y
|
||||
# CONFIG_CRYPTO_LRW is not set
|
||||
# CONFIG_CRYPTO_OFB is not set
|
||||
# CONFIG_CRYPTO_PCBC is not set
|
||||
# CONFIG_CRYPTO_XTS is not set
|
||||
# CONFIG_CRYPTO_KEYWRAP is not set
|
||||
# CONFIG_CRYPTO_ADIANTUM is not set
|
||||
|
||||
#
|
||||
# Hash modes
|
||||
@@ -4420,6 +4433,7 @@ CONFIG_CRYPTO_SHA256=y
|
||||
CONFIG_CRYPTO_SHA512=y
|
||||
# CONFIG_CRYPTO_SHA3 is not set
|
||||
# CONFIG_CRYPTO_SM3 is not set
|
||||
# CONFIG_CRYPTO_STREEBOG is not set
|
||||
# CONFIG_CRYPTO_TGR192 is not set
|
||||
# CONFIG_CRYPTO_WP512 is not set
|
||||
|
||||
@@ -4474,6 +4488,7 @@ CONFIG_CRYPTO_HASH_INFO=y
|
||||
CONFIG_ASYMMETRIC_KEY_TYPE=y
|
||||
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
|
||||
CONFIG_X509_CERTIFICATE_PARSER=y
|
||||
CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
|
||||
CONFIG_PKCS7_MESSAGE_PARSER=y
|
||||
# CONFIG_PKCS7_TEST_KEY is not set
|
||||
# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
|
||||
@@ -4492,6 +4507,7 @@ CONFIG_BINARY_PRINTF=y
|
||||
# Library routines
|
||||
#
|
||||
CONFIG_RAID6_PQ=m
|
||||
CONFIG_RAID6_PQ_BENCHMARK=y
|
||||
CONFIG_BITREVERSE=y
|
||||
CONFIG_RATIONAL=y
|
||||
CONFIG_GENERIC_STRNCPY_FROM_USER=y
|
||||
@@ -4539,13 +4555,14 @@ CONFIG_HAS_IOPORT_MAP=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_NEED_DMA_MAP_STATE=y
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_DMA_REMAP=y
|
||||
CONFIG_SGL_ALLOC=y
|
||||
CONFIG_DQL=y
|
||||
CONFIG_GLOB=y
|
||||
# CONFIG_GLOB_SELFTEST is not set
|
||||
CONFIG_NLATTR=y
|
||||
CONFIG_CLZ_TAB=y
|
||||
# CONFIG_CORDIC is not set
|
||||
CONFIG_CORDIC=m
|
||||
# CONFIG_DDR is not set
|
||||
# CONFIG_IRQ_POLL is not set
|
||||
CONFIG_MPILIB=y
|
||||
@@ -4556,7 +4573,6 @@ CONFIG_FONT_SUPPORT=y
|
||||
CONFIG_FONT_8x8=y
|
||||
CONFIG_FONT_8x16=y
|
||||
CONFIG_SG_POOL=y
|
||||
CONFIG_ARCH_HAS_SG_CHAIN=y
|
||||
CONFIG_SBITMAP=y
|
||||
# CONFIG_STRING_SELFTEST is not set
|
||||
|
||||
@@ -4588,6 +4604,7 @@ CONFIG_DEBUG_FS=y
|
||||
# CONFIG_HEADERS_CHECK is not set
|
||||
# CONFIG_DEBUG_SECTION_MISMATCH is not set
|
||||
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
|
||||
CONFIG_ARCH_WANT_FRAME_POINTERS=y
|
||||
CONFIG_FRAME_POINTER=y
|
||||
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
@@ -4612,6 +4629,8 @@ CONFIG_HAVE_DEBUG_KMEMLEAK=y
|
||||
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
|
||||
# CONFIG_DEBUG_VIRTUAL is not set
|
||||
# CONFIG_DEBUG_MEMORY_INIT is not set
|
||||
CONFIG_CC_HAS_KASAN_GENERIC=y
|
||||
CONFIG_KASAN_STACK=1
|
||||
CONFIG_ARCH_HAS_KCOV=y
|
||||
CONFIG_CC_HAS_SANCOV_TRACE_PC=y
|
||||
# CONFIG_KCOV is not set
|
||||
@@ -4705,6 +4724,7 @@ CONFIG_BLK_DEV_IO_TRACE=y
|
||||
CONFIG_KPROBE_EVENTS=y
|
||||
# CONFIG_UPROBE_EVENTS is not set
|
||||
CONFIG_BPF_EVENTS=y
|
||||
CONFIG_DYNAMIC_EVENTS=y
|
||||
CONFIG_PROBE_EVENTS=y
|
||||
CONFIG_DYNAMIC_FTRACE=y
|
||||
CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
|
||||
@@ -4729,8 +4749,8 @@ CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
# CONFIG_ARM_PTDUMP_DEBUGFS is not set
|
||||
# CONFIG_DEBUG_WX is not set
|
||||
# CONFIG_ARM_UNWIND is not set
|
||||
CONFIG_OLD_MCOUNT=y
|
||||
CONFIG_UNWINDER_FRAME_POINTER=y
|
||||
# CONFIG_UNWINDER_ARM is not set
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
# CONFIG_DEBUG_LL is not set
|
||||
CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user