mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 13:46:49 +00:00
Merge pull request #3136 from stefansaraev/linux315
linux: add patches for 3.15-rc2
This commit is contained in:
commit
b692e90c47
@ -0,0 +1,21 @@
|
|||||||
|
diff --git a/init/main.c b/init/main.c
|
||||||
|
index 9484f4b..db55edd 100644
|
||||||
|
--- a/init/main.c
|
||||||
|
+++ b/init/main.c
|
||||||
|
@@ -880,8 +880,14 @@ static noinline void __init kernel_init_freeable(void)
|
||||||
|
do_basic_setup();
|
||||||
|
|
||||||
|
/* Open the /dev/console on the rootfs, this should never fail */
|
||||||
|
- if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
|
||||||
|
- pr_err("Warning: unable to open an initial console.\n");
|
||||||
|
+ char *console = "/dev_console";
|
||||||
|
+
|
||||||
|
+ if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) {
|
||||||
|
+ sys_mknod(console, S_IFCHR|0600, (TTYAUX_MAJOR<<8)|1);
|
||||||
|
+ if (sys_open(console, O_RDWR, 0) < 0)
|
||||||
|
+ printk(KERN_WARNING "Warning: unable to open an initial console.\n");
|
||||||
|
+ sys_unlink(console);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
(void) sys_dup(0);
|
||||||
|
(void) sys_dup(0);
|
1029
packages/linux/patches/3.15-rc2/linux-052-XBOX_remote_support.patch
Normal file
1029
packages/linux/patches/3.15-rc2/linux-052-XBOX_remote_support.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,161 @@
|
|||||||
|
diff -Naur linux-3.9/drivers/hid/hid-core.c linux-3.9.patch/drivers/hid/hid-core.c
|
||||||
|
--- linux-3.9/drivers/hid/hid-core.c 2013-04-29 02:36:01.000000000 +0200
|
||||||
|
+++ linux-3.9.patch/drivers/hid/hid-core.c 2013-04-29 17:08:40.528324010 +0200
|
||||||
|
@@ -1681,6 +1681,9 @@
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_PKB1700) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) },
|
||||||
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_1) },
|
||||||
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_2) },
|
||||||
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS, USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_3) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_KEYBOARD) },
|
||||||
|
#if IS_ENABLED(CONFIG_HID_ROCCAT)
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONE) },
|
||||||
|
diff -Naur linux-3.9/drivers/hid/hid-ids.h linux-3.9.patch/drivers/hid/hid-ids.h
|
||||||
|
--- linux-3.9/drivers/hid/hid-ids.h 2013-04-29 02:36:01.000000000 +0200
|
||||||
|
+++ linux-3.9.patch/drivers/hid/hid-ids.h 2013-04-29 17:08:40.537323981 +0200
|
||||||
|
@@ -663,6 +663,9 @@
|
||||||
|
|
||||||
|
#define USB_VENDOR_ID_PHILIPS 0x0471
|
||||||
|
#define USB_DEVICE_ID_PHILIPS_IEEE802154_DONGLE 0x0617
|
||||||
|
+#define USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_1 0x206c
|
||||||
|
+#define USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_2 0x20cc
|
||||||
|
+#define USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_3 0x0613
|
||||||
|
|
||||||
|
#define USB_VENDOR_ID_PI_ENGINEERING 0x05f3
|
||||||
|
#define USB_DEVICE_ID_PI_ENGINEERING_VEC_USB_FOOTPEDAL 0xff
|
||||||
|
diff -Naur linux-3.9/drivers/hid/hid-spinelplus.c linux-3.9.patch/drivers/hid/hid-spinelplus.c
|
||||||
|
--- linux-3.9/drivers/hid/hid-spinelplus.c 1970-01-01 01:00:00.000000000 +0100
|
||||||
|
+++ linux-3.9.patch/drivers/hid/hid-spinelplus.c 2013-04-29 17:08:40.537323981 +0200
|
||||||
|
@@ -0,0 +1,104 @@
|
||||||
|
+/*
|
||||||
|
+ * HID driver for "PHILIPS MCE USB IR Receiver- Spinel plus" remotes
|
||||||
|
+ *
|
||||||
|
+ * Copyright (c) 2010 Panagiotis Skintzos
|
||||||
|
+ *
|
||||||
|
+ * Renamed to Spinel, cleanup and modified to also support
|
||||||
|
+ * Spinel Plus 0471:20CC by Stephan Raue 2012.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * This program is free software; you can redistribute it and/or modify it
|
||||||
|
+ * under the terms of the GNU General Public License as published by the Free
|
||||||
|
+ * Software Foundation; either version 2 of the License, or (at your option)
|
||||||
|
+ * any later version.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+#include <linux/device.h>
|
||||||
|
+#include <linux/input.h>
|
||||||
|
+#include <linux/hid.h>
|
||||||
|
+#include <linux/module.h>
|
||||||
|
+
|
||||||
|
+#include "hid-ids.h"
|
||||||
|
+
|
||||||
|
+#define spinelplus_map_key(c) set_bit(EV_REP, hi->input->evbit); \
|
||||||
|
+ hid_map_usage_clear(hi, usage, bit, max, EV_KEY, (c))
|
||||||
|
+
|
||||||
|
+static int spinelplus_input_mapping(struct hid_device *hdev,
|
||||||
|
+ struct hid_input *hi, struct hid_field *field, struct hid_usage *usage,
|
||||||
|
+ unsigned long **bit, int *max)
|
||||||
|
+{
|
||||||
|
+ switch (usage->hid) {
|
||||||
|
+ case 0xffbc000d: spinelplus_map_key(KEY_MEDIA); break;
|
||||||
|
+ case 0xffbc0024: spinelplus_map_key(KEY_MEDIA); break;
|
||||||
|
+ case 0xffbc0027: spinelplus_map_key(KEY_ZOOM); break;
|
||||||
|
+ case 0xffbc0033: spinelplus_map_key(KEY_HOME); break;
|
||||||
|
+ case 0xffbc0035: spinelplus_map_key(KEY_CAMERA); break;
|
||||||
|
+ case 0xffbc0036: spinelplus_map_key(KEY_EPG); break;
|
||||||
|
+ case 0xffbc0037: spinelplus_map_key(KEY_DVD); break;
|
||||||
|
+ case 0xffbc0038: spinelplus_map_key(KEY_HOME); break;
|
||||||
|
+ case 0xffbc0039: spinelplus_map_key(KEY_MP3); break;
|
||||||
|
+ case 0xffbc003a: spinelplus_map_key(KEY_VIDEO); break;
|
||||||
|
+ case 0xffbc005a: spinelplus_map_key(KEY_TEXT); break;
|
||||||
|
+ case 0xffbc005b: spinelplus_map_key(KEY_RED); break;
|
||||||
|
+ case 0xffbc005c: spinelplus_map_key(KEY_GREEN); break;
|
||||||
|
+ case 0xffbc005d: spinelplus_map_key(KEY_YELLOW); break;
|
||||||
|
+ case 0xffbc005e: spinelplus_map_key(KEY_BLUE); break;
|
||||||
|
+ default:
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ return 1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int spinelplus_probe(struct hid_device *hdev,
|
||||||
|
+ const struct hid_device_id *id)
|
||||||
|
+{
|
||||||
|
+ int ret;
|
||||||
|
+ /* Connect only to hid input (not hiddev & hidraw)*/
|
||||||
|
+ unsigned int cmask = HID_CONNECT_HIDINPUT;
|
||||||
|
+
|
||||||
|
+ ret = hid_parse(hdev);
|
||||||
|
+ if (ret) {
|
||||||
|
+ dev_err(&hdev->dev, "parse failed\n");
|
||||||
|
+ goto err_free;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ ret = hid_hw_start(hdev, cmask);
|
||||||
|
+ if (ret) {
|
||||||
|
+ dev_err(&hdev->dev, "hw start failed\n");
|
||||||
|
+ goto err_free;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+err_free:
|
||||||
|
+ return ret;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static const struct hid_device_id spinelplus_devices[] = {
|
||||||
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS,USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_1) },
|
||||||
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS,USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_2) },
|
||||||
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_PHILIPS,USB_DEVICE_ID_PHILIPS_SPINEL_PLUS_3) },
|
||||||
|
+ { }
|
||||||
|
+};
|
||||||
|
+MODULE_DEVICE_TABLE(hid, spinelplus_devices);
|
||||||
|
+
|
||||||
|
+static struct hid_driver spinelplus_driver = {
|
||||||
|
+ .name = "SpinelPlus",
|
||||||
|
+ .id_table = spinelplus_devices,
|
||||||
|
+ .input_mapping = spinelplus_input_mapping,
|
||||||
|
+ .probe = spinelplus_probe,
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static int __init spinelplus_init(void)
|
||||||
|
+{
|
||||||
|
+ return hid_register_driver(&spinelplus_driver);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void __exit spinelplus_exit(void)
|
||||||
|
+{
|
||||||
|
+ hid_unregister_driver(&spinelplus_driver);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+module_init(spinelplus_init);
|
||||||
|
+module_exit(spinelplus_exit);
|
||||||
|
+MODULE_LICENSE("GPL");
|
||||||
|
diff -Naur linux-3.9/drivers/hid/Kconfig linux-3.9.patch/drivers/hid/Kconfig
|
||||||
|
--- linux-3.9/drivers/hid/Kconfig 2013-04-29 02:36:01.000000000 +0200
|
||||||
|
+++ linux-3.9.patch/drivers/hid/Kconfig 2013-04-29 17:08:40.538323977 +0200
|
||||||
|
@@ -602,6 +602,12 @@
|
||||||
|
---help---
|
||||||
|
Support for Steelseries SRW-S1 steering wheel
|
||||||
|
|
||||||
|
+config HID_SPINELPLUS
|
||||||
|
+ tristate "Spinel Plus remote control"
|
||||||
|
+ depends on USB_HID
|
||||||
|
+ ---help---
|
||||||
|
+ Say Y here if you have a Spinel Plus (0471:206c/20cc/0613) remote
|
||||||
|
+
|
||||||
|
config HID_SUNPLUS
|
||||||
|
tristate "Sunplus wireless desktop"
|
||||||
|
depends on USB_HID
|
||||||
|
diff -Naur linux-3.9/drivers/hid/Makefile linux-3.9.patch/drivers/hid/Makefile
|
||||||
|
--- linux-3.9/drivers/hid/Makefile 2013-04-29 02:36:01.000000000 +0200
|
||||||
|
+++ linux-3.9.patch/drivers/hid/Makefile 2013-04-29 17:09:26.744173841 +0200
|
||||||
|
@@ -101,6 +101,7 @@
|
||||||
|
obj-$(CONFIG_HID_SMARTJOYPLUS) += hid-sjoy.o
|
||||||
|
obj-$(CONFIG_HID_SONY) += hid-sony.o
|
||||||
|
obj-$(CONFIG_HID_SPEEDLINK) += hid-speedlink.o
|
||||||
|
+obj-$(CONFIG_HID_SPINELPLUS) += hid-spinelplus.o
|
||||||
|
obj-$(CONFIG_HID_STEELSERIES) += hid-steelseries.o
|
||||||
|
obj-$(CONFIG_HID_SUNPLUS) += hid-sunplus.o
|
||||||
|
obj-$(CONFIG_HID_GREENASIA) += hid-gaff.o
|
@ -0,0 +1,12 @@
|
|||||||
|
diff -Naur linux-3.0/drivers/media/rc/nuvoton-cir.c linux-3.0.patch/drivers/media/rc/nuvoton-cir.c
|
||||||
|
--- linux-3.0/drivers/media/rc/nuvoton-cir.c 2011-07-22 04:17:23.000000000 +0200
|
||||||
|
+++ linux-3.0.patch/drivers/media/rc/nuvoton-cir.c 2011-07-22 21:30:48.374591146 +0200
|
||||||
|
@@ -1110,7 +1110,7 @@
|
||||||
|
rdev->dev.parent = &pdev->dev;
|
||||||
|
rdev->driver_name = NVT_DRIVER_NAME;
|
||||||
|
rdev->map_name = RC_MAP_RC6_MCE;
|
||||||
|
- rdev->timeout = MS_TO_NS(100);
|
||||||
|
+ rdev->timeout = US_TO_NS(1000);
|
||||||
|
/* rx resolution is hardwired to 50us atm, 1, 25, 100 also possible */
|
||||||
|
rdev->rx_resolution = US_TO_NS(CIR_SAMPLE_PERIOD);
|
||||||
|
#if 0
|
@ -0,0 +1,11 @@
|
|||||||
|
--- linux-3.2.2.orig/drivers/media/rc/mceusb.c 2012-01-30 23:37:12.374473509 +0100
|
||||||
|
+++ linux-3.2.2/drivers/media/rc/mceusb.c 2012-01-30 23:40:57.989652931 +0100
|
||||||
|
@@ -350,6 +350,8 @@
|
||||||
|
{ USB_DEVICE(VENDOR_FORMOSA, 0xe015) },
|
||||||
|
/* Formosa21 / eHome Infrared Receiver */
|
||||||
|
{ USB_DEVICE(VENDOR_FORMOSA, 0xe016) },
|
||||||
|
+ /* Formosa21 / eHome Infrared Receiver */
|
||||||
|
+ { USB_DEVICE(VENDOR_FORMOSA, 0xe042) },
|
||||||
|
/* Formosa aim / Trust MCE Infrared Receiver */
|
||||||
|
{ USB_DEVICE(VENDOR_FORMOSA, 0xe017),
|
||||||
|
.driver_info = MCE_GEN2_NO_TX },
|
@ -0,0 +1,21 @@
|
|||||||
|
diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c
|
||||||
|
index baa1203..fee1f95 100644
|
||||||
|
--- a/drivers/media/rc/mceusb.c
|
||||||
|
+++ b/drivers/media/rc/mceusb.c
|
||||||
|
@@ -200,6 +200,7 @@ static bool debug;
|
||||||
|
#define VENDOR_CONEXANT 0x0572
|
||||||
|
#define VENDOR_TWISTEDMELON 0x2596
|
||||||
|
#define VENDOR_HAUPPAUGE 0x2040
|
||||||
|
+#define VENDOR_ADAPTEC 0x03f3
|
||||||
|
|
||||||
|
enum mceusb_model_type {
|
||||||
|
MCE_GEN2 = 0, /* Most boards */
|
||||||
|
@@ -414,6 +415,8 @@ static struct usb_device_id mceusb_dev_table[] = {
|
||||||
|
/* Hauppauge WINTV-HVR-HVR 930C-HD - based on cx231xx */
|
||||||
|
{ USB_DEVICE(VENDOR_HAUPPAUGE, 0xb130),
|
||||||
|
.driver_info = HAUPPAUGE_CX_HYBRID_TV },
|
||||||
|
+ /* Adaptec / HP eHome Receiver */
|
||||||
|
+ { USB_DEVICE(VENDOR_ADAPTEC, 0x0094) },
|
||||||
|
/* Terminating entry */
|
||||||
|
{ }
|
||||||
|
};
|
@ -0,0 +1,22 @@
|
|||||||
|
--- linux/drivers/media/rc/ir-rc6-decoder.c 2012-11-25 22:08:13.148418669 -0800
|
||||||
|
+++ linux.patch/drivers/media/rc/ir-rc6-decoder.c 2012-11-25 22:07:48.864417975 -0800
|
||||||
|
@@ -39,7 +39,6 @@
|
||||||
|
#define RC6_STARTBIT_MASK 0x08 /* for the header bits */
|
||||||
|
#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 */
|
||||||
|
#ifndef CHAR_BIT
|
||||||
|
#define CHAR_BIT 8 /* Normally in <limits.h> */
|
||||||
|
#endif
|
||||||
|
@@ -242,9 +241,8 @@ again:
|
||||||
|
}
|
||||||
|
|
||||||
|
scancode = data->body;
|
||||||
|
- if (data->count == RC6_6A_32_NBITS &&
|
||||||
|
- (scancode & RC6_6A_LCC_MASK) == RC6_6A_MCE_CC) {
|
||||||
|
- /* MCE RC */
|
||||||
|
+ if (data->count == RC6_6A_32_NBITS) {
|
||||||
|
+ /* MCE compatible RC */
|
||||||
|
toggle = (scancode & RC6_6A_MCE_TOGGLE_MASK) ? 1 : 0;
|
||||||
|
scancode &= ~RC6_6A_MCE_TOGGLE_MASK;
|
||||||
|
} else {
|
@ -0,0 +1,13 @@
|
|||||||
|
diff -Naur linux-3.9.4/drivers/media/rc/mceusb.c linux-3.9.4.patch/drivers/media/rc/mceusb.c
|
||||||
|
--- linux-3.9.4/drivers/media/rc/mceusb.c 2013-05-24 20:45:59.000000000 +0200
|
||||||
|
+++ linux-3.9.4.patch/drivers/media/rc/mceusb.c 2013-05-27 12:28:12.811230633 +0200
|
||||||
|
@@ -309,6 +309,9 @@
|
||||||
|
/* SMK/I-O Data GV-MC7/RCKIT Receiver */
|
||||||
|
{ USB_DEVICE(VENDOR_SMK, 0x0353),
|
||||||
|
.driver_info = MCE_GEN2_NO_TX },
|
||||||
|
+ /* SMK Manufacturing, Inc. Receiver */
|
||||||
|
+ { USB_DEVICE(VENDOR_SMK, 0x0357),
|
||||||
|
+ .driver_info = MCE_GEN2_NO_TX },
|
||||||
|
/* Tatung eHome Infrared Transceiver */
|
||||||
|
{ USB_DEVICE(VENDOR_TATUNG, 0x9150) },
|
||||||
|
/* Shuttle eHome Infrared Transceiver */
|
@ -0,0 +1,71 @@
|
|||||||
|
From 7051422474e4c4e302ede3d07ffd8ef2682e07a2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Saraev <stefan@saraev.ca>
|
||||||
|
Date: Tue, 22 Apr 2014 16:05:14 +0300
|
||||||
|
Subject: [PATCH] [RFC] hid/sony: add autorepeat for PS3 remotes
|
||||||
|
|
||||||
|
adapted to 3.15
|
||||||
|
|
||||||
|
Betreff: [RFC] hid/sony: add autorepeat for PS3 remotes
|
||||||
|
Von: David Dillow <dave@thedillows.org>
|
||||||
|
Datum: 28.06.2013 04:28
|
||||||
|
An: linux-input@vger.kernel.org
|
||||||
|
Kopie (CC): Stephan Raue <stephan@openelec.tv>
|
||||||
|
|
||||||
|
Some applications using the PS3 remote would like to have autorepeat
|
||||||
|
from the device. Use the input subsystem's software emulation to provide
|
||||||
|
this capability, and enable those that don't need it to turn it off.
|
||||||
|
---
|
||||||
|
I'm not sure this is the correct approach, or if it is even appropriate
|
||||||
|
for a remote to do autorepeat. However, the media/rc subsystem does do
|
||||||
|
it by default, and it's been requested by users, so there is at least
|
||||||
|
some demand.
|
||||||
|
|
||||||
|
This compiled against the hid-sony driver with the PS3 remote changes
|
||||||
|
merged, but I have done no testing of it. If the approach seems
|
||||||
|
reasonable, I'll try to test it when the MythTV is idle.
|
||||||
|
---
|
||||||
|
drivers/hid/hid-sony.c | 21 +++++++++++++++++++++
|
||||||
|
1 files changed, 21 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
|
||||||
|
index 6647dc0..02ff292 100644
|
||||||
|
--- a/drivers/hid/hid-sony.c
|
||||||
|
+++ b/drivers/hid/hid-sony.c
|
||||||
|
@@ -785,6 +785,25 @@ static int ps3remote_mapping(struct hid_device *hdev, struct hid_input *hi,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+static int ps3remote_setup_repeat(struct hid_device *hdev)
|
||||||
|
+{
|
||||||
|
+ struct hid_input *hidinput = list_first_entry(&hdev->inputs,
|
||||||
|
+ struct hid_input, list);
|
||||||
|
+ struct input_dev *input = hidinput->input;
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * Set up autorepeat defaults per the remote control subsystem;
|
||||||
|
+ * this must be done after hid_hw_start(), as having these non-zero
|
||||||
|
+ * at the time of input_register_device() tells the input system that
|
||||||
|
+ * the hardware does the autorepeat, and the PS3 remote does not.
|
||||||
|
+ */
|
||||||
|
+ set_bit(EV_REP, input->evbit);
|
||||||
|
+ input->rep[REP_DELAY] = 500;
|
||||||
|
+ input->rep[REP_PERIOD] = 125;
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/* Sony Vaio VGX has wrongly mouse pointer declared as constant */
|
||||||
|
static __u8 *sony_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
||||||
|
unsigned int *rsize)
|
||||||
|
@@ -1608,6 +1627,8 @@ static int sony_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||||
|
connect_mask |= HID_CONNECT_HIDDEV_FORCE;
|
||||||
|
else if (sc->quirks & SIXAXIS_CONTROLLER_BT)
|
||||||
|
connect_mask |= HID_CONNECT_HIDDEV_FORCE;
|
||||||
|
+ else if (sc->quirks & PS3REMOTE)
|
||||||
|
+ ret = ps3remote_setup_repeat(hdev);
|
||||||
|
|
||||||
|
ret = hid_hw_start(hdev, connect_mask);
|
||||||
|
if (ret) {
|
||||||
|
--
|
||||||
|
1.7.2.5
|
||||||
|
|
@ -0,0 +1,38 @@
|
|||||||
|
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
|
||||||
|
index 61b604f..0ad4515 100644
|
||||||
|
--- a/drivers/hid/hid-core.c
|
||||||
|
+++ b/drivers/hid/hid-core.c
|
||||||
|
@@ -1828,6 +1828,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_SKYCABLE, USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER) },
|
||||||
|
+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SMK, USB_DEVICE_ID_SONY_PS3_BDREMOTE) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_BUZZ_CONTROLLER) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_WIRELESS_BUZZ_CONTROLLER) },
|
||||||
|
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_BDREMOTE) },
|
||||||
|
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
|
||||||
|
index 0af8e93..f14b038 100644
|
||||||
|
--- a/drivers/hid/hid-ids.h
|
||||||
|
+++ b/drivers/hid/hid-ids.h
|
||||||
|
@@ -775,6 +775,7 @@
|
||||||
|
#define USB_VENDOR_ID_SKYCABLE 0x1223
|
||||||
|
#define USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER 0x3F07
|
||||||
|
|
||||||
|
+#define USB_VENDOR_ID_SMK 0x0609
|
||||||
|
#define USB_VENDOR_ID_SONY 0x054c
|
||||||
|
#define USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE 0x024b
|
||||||
|
#define USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE 0x0374
|
||||||
|
diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
|
||||||
|
index 1235405..69e2bf6 100644
|
||||||
|
--- a/drivers/hid/hid-sony.c
|
||||||
|
+++ b/drivers/hid/hid-sony.c
|
||||||
|
@@ -1153,6 +1153,9 @@ static const struct hid_device_id sony_devices[] = {
|
||||||
|
.driver_data = DUALSHOCK4_CONTROLLER_USB },
|
||||||
|
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER),
|
||||||
|
.driver_data = DUALSHOCK4_CONTROLLER_BT },
|
||||||
|
+ /* SMK-Link Universal Remote Control VP3700 */
|
||||||
|
+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SMK, USB_DEVICE_ID_SONY_PS3_BDREMOTE),
|
||||||
|
+ .driver_data = PS3REMOTE },
|
||||||
|
{ }
|
||||||
|
};
|
||||||
|
MODULE_DEVICE_TABLE(hid, sony_devices);
|
@ -0,0 +1,11 @@
|
|||||||
|
diff -Naur linux-3.8.4/drivers/input/joystick/xpad.c linux-3.8.4.patch/drivers/input/joystick/xpad.c
|
||||||
|
--- linux-3.8.4/drivers/input/joystick/xpad.c 2013-03-20 21:11:19.000000000 +0100
|
||||||
|
+++ linux-3.8.4.patch/drivers/input/joystick/xpad.c 2013-03-26 20:24:29.273978355 +0100
|
||||||
|
@@ -174,7 +174,6 @@
|
||||||
|
{ 0x1bad, 0xf901, "Gamestop Xbox 360 Controller", 0, XTYPE_XBOX360 },
|
||||||
|
{ 0x1bad, 0xf903, "Tron Xbox 360 controller", 0, XTYPE_XBOX360 },
|
||||||
|
{ 0x24c6, 0x5300, "PowerA MINI PROEX Controller", 0, XTYPE_XBOX360 },
|
||||||
|
- { 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX },
|
||||||
|
{ 0x0000, 0x0000, "Generic X-Box pad", 0, XTYPE_UNKNOWN }
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,14 @@
|
|||||||
|
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
|
||||||
|
index 61d196e..ae87b9c 100644
|
||||||
|
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
|
||||||
|
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
|
||||||
|
@@ -1497,6 +1497,9 @@ static const struct usb_device_id rtl28xxu_id_table[] = {
|
||||||
|
&rtl2832u_props, "Leadtek WinFast DTV Dongle mini", NULL) },
|
||||||
|
{ DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_CPYTO_REDI_PC50A,
|
||||||
|
&rtl2832u_props, "Crypto ReDi PC 50 A", NULL) },
|
||||||
|
+ { DVB_USB_DEVICE(USB_VID_GTEK, 0xa803,
|
||||||
|
+ &rtl2832u_props, "Realtek RTL2832U reference design", NULL) },
|
||||||
|
+
|
||||||
|
{ DVB_USB_DEVICE(USB_VID_KYE, 0x707f,
|
||||||
|
&rtl2832u_props, "Genius TVGo DVB-T03", NULL) },
|
||||||
|
|
@ -0,0 +1,12 @@
|
|||||||
|
diff -Naur linux-3.7.2/drivers/media/dvb-frontends/stb0899_drv.c linux-3.7.2.patch/drivers/media/dvb-frontends/stb0899_drv.c
|
||||||
|
--- linux-3.7.2/drivers/media/dvb-frontends/stb0899_drv.c 2013-01-11 18:19:28.000000000 +0100
|
||||||
|
+++ linux-3.7.2.patch/drivers/media/dvb-frontends/stb0899_drv.c 2013-01-16 10:25:43.479645317 +0100
|
||||||
|
@@ -1581,7 +1581,7 @@
|
||||||
|
.frequency_max = 2150000,
|
||||||
|
.frequency_stepsize = 0,
|
||||||
|
.frequency_tolerance = 0,
|
||||||
|
- .symbol_rate_min = 5000000,
|
||||||
|
+ .symbol_rate_min = 1000000,
|
||||||
|
.symbol_rate_max = 45000000,
|
||||||
|
|
||||||
|
.caps = FE_CAN_INVERSION_AUTO |
|
6132
packages/linux/patches/3.15-rc2/linux-210-dvbsky.patch
Normal file
6132
packages/linux/patches/3.15-rc2/linux-210-dvbsky.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,138 @@
|
|||||||
|
diff -Naur linux-3.7.2/drivers/media/dvb-frontends/stb0899_algo.c linux-3.7.2.patch/drivers/media/dvb-frontends/stb0899_algo.c
|
||||||
|
--- linux-3.7.2/drivers/media/dvb-frontends/stb0899_algo.c 2013-01-11 18:19:28.000000000 +0100
|
||||||
|
+++ linux-3.7.2.patch/drivers/media/dvb-frontends/stb0899_algo.c 2013-01-16 10:28:33.633409961 +0100
|
||||||
|
@@ -206,7 +206,6 @@
|
||||||
|
static enum stb0899_status stb0899_search_tmg(struct stb0899_state *state)
|
||||||
|
{
|
||||||
|
struct stb0899_internal *internal = &state->internal;
|
||||||
|
- struct stb0899_params *params = &state->params;
|
||||||
|
|
||||||
|
short int derot_step, derot_freq = 0, derot_limit, next_loop = 3;
|
||||||
|
int index = 0;
|
||||||
|
@@ -216,10 +215,9 @@
|
||||||
|
|
||||||
|
/* timing loop computation & symbol rate optimisation */
|
||||||
|
derot_limit = (internal->sub_range / 2L) / internal->mclk;
|
||||||
|
- derot_step = (params->srate / 2L) / internal->mclk;
|
||||||
|
+ derot_step = internal->derot_step * 4; /* dertot_step = decreasing delta */
|
||||||
|
|
||||||
|
while ((stb0899_check_tmg(state) != TIMINGOK) && next_loop) {
|
||||||
|
- index++;
|
||||||
|
derot_freq += index * internal->direction * derot_step; /* next derot zig zag position */
|
||||||
|
|
||||||
|
if (abs(derot_freq) > derot_limit)
|
||||||
|
@@ -230,6 +228,7 @@
|
||||||
|
STB0899_SETFIELD_VAL(CFRL, cfr[1], LSB(state->config->inversion * derot_freq));
|
||||||
|
stb0899_write_regs(state, STB0899_CFRM, cfr, 2); /* derotator frequency */
|
||||||
|
}
|
||||||
|
+ index++;
|
||||||
|
internal->direction = -internal->direction; /* Change zigzag direction */
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -278,14 +277,18 @@
|
||||||
|
{
|
||||||
|
struct stb0899_internal *internal = &state->internal;
|
||||||
|
|
||||||
|
- short int derot_freq = 0, last_derot_freq = 0, derot_limit, next_loop = 3;
|
||||||
|
+ short int derot_freq = 0, last_derot_freq = 0, derot_limit, derot_step, next_loop = 3;
|
||||||
|
int index = 0;
|
||||||
|
+ int base_freq;
|
||||||
|
u8 cfr[2];
|
||||||
|
u8 reg;
|
||||||
|
|
||||||
|
internal->status = NOCARRIER;
|
||||||
|
derot_limit = (internal->sub_range / 2L) / internal->mclk;
|
||||||
|
derot_freq = internal->derot_freq;
|
||||||
|
+ derot_step = internal->derot_step * 2;
|
||||||
|
+ last_derot_freq = internal->derot_freq;
|
||||||
|
+ base_freq = internal->derot_freq;
|
||||||
|
|
||||||
|
reg = stb0899_read_reg(state, STB0899_CFD);
|
||||||
|
STB0899_SETFIELD_VAL(CFD_ON, reg, 1);
|
||||||
|
@@ -294,11 +297,10 @@
|
||||||
|
do {
|
||||||
|
dprintk(state->verbose, FE_DEBUG, 1, "Derot Freq=%d, mclk=%d", derot_freq, internal->mclk);
|
||||||
|
if (stb0899_check_carrier(state) == NOCARRIER) {
|
||||||
|
- index++;
|
||||||
|
last_derot_freq = derot_freq;
|
||||||
|
- derot_freq += index * internal->direction * internal->derot_step; /* next zig zag derotator position */
|
||||||
|
+ derot_freq += index * internal->direction * derot_step; /* next zig zag derotator position */
|
||||||
|
|
||||||
|
- if(abs(derot_freq) > derot_limit)
|
||||||
|
+ if (derot_freq > base_freq + derot_limit || derot_freq < base_freq - derot_limit)
|
||||||
|
next_loop--;
|
||||||
|
|
||||||
|
if (next_loop) {
|
||||||
|
@@ -310,9 +312,10 @@
|
||||||
|
STB0899_SETFIELD_VAL(CFRL, cfr[1], LSB(state->config->inversion * derot_freq));
|
||||||
|
stb0899_write_regs(state, STB0899_CFRM, cfr, 2); /* derotator frequency */
|
||||||
|
}
|
||||||
|
+ index++;
|
||||||
|
+ internal->direction = -internal->direction; /* Change zigzag direction */
|
||||||
|
}
|
||||||
|
|
||||||
|
- internal->direction = -internal->direction; /* Change zigzag direction */
|
||||||
|
} while ((internal->status != CARRIEROK) && next_loop);
|
||||||
|
|
||||||
|
if (internal->status == CARRIEROK) {
|
||||||
|
@@ -338,6 +341,7 @@
|
||||||
|
int lock = 0, index = 0, dataTime = 500, loop;
|
||||||
|
u8 reg;
|
||||||
|
|
||||||
|
+ msleep(1);
|
||||||
|
internal->status = NODATA;
|
||||||
|
|
||||||
|
/* RESET FEC */
|
||||||
|
@@ -348,6 +352,7 @@
|
||||||
|
reg = stb0899_read_reg(state, STB0899_TSTRES);
|
||||||
|
STB0899_SETFIELD_VAL(FRESACS, reg, 0);
|
||||||
|
stb0899_write_reg(state, STB0899_TSTRES, reg);
|
||||||
|
+ msleep(1);
|
||||||
|
|
||||||
|
if (params->srate <= 2000000)
|
||||||
|
dataTime = 2000;
|
||||||
|
@@ -363,6 +368,7 @@
|
||||||
|
|
||||||
|
stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force search loop */
|
||||||
|
while (1) {
|
||||||
|
+ msleep(1); // Alex: added 1 mSec
|
||||||
|
/* WARNING! VIT LOCKED has to be tested before VIT_END_LOOOP */
|
||||||
|
reg = stb0899_read_reg(state, STB0899_VSTATUS);
|
||||||
|
lock = STB0899_GETFIELD(VSTATUS_LOCKEDVIT, reg);
|
||||||
|
@@ -390,20 +396,21 @@
|
||||||
|
short int derot_freq, derot_step, derot_limit, next_loop = 3;
|
||||||
|
u8 cfr[2];
|
||||||
|
u8 reg;
|
||||||
|
- int index = 1;
|
||||||
|
+ int index = 0;
|
||||||
|
+ int base_freq;
|
||||||
|
|
||||||
|
struct stb0899_internal *internal = &state->internal;
|
||||||
|
- struct stb0899_params *params = &state->params;
|
||||||
|
|
||||||
|
- derot_step = (params->srate / 4L) / internal->mclk;
|
||||||
|
+ derot_step = internal->derot_step;
|
||||||
|
derot_limit = (internal->sub_range / 2L) / internal->mclk;
|
||||||
|
derot_freq = internal->derot_freq;
|
||||||
|
+ base_freq = internal->derot_freq;
|
||||||
|
|
||||||
|
do {
|
||||||
|
if ((internal->status != CARRIEROK) || (stb0899_check_data(state) != DATAOK)) {
|
||||||
|
|
||||||
|
derot_freq += index * internal->direction * derot_step; /* next zig zag derotator position */
|
||||||
|
- if (abs(derot_freq) > derot_limit)
|
||||||
|
+ if (derot_freq > base_freq + derot_limit || derot_freq < base_freq - derot_limit)
|
||||||
|
next_loop--;
|
||||||
|
|
||||||
|
if (next_loop) {
|
||||||
|
@@ -417,9 +424,9 @@
|
||||||
|
stb0899_write_regs(state, STB0899_CFRM, cfr, 2); /* derotator frequency */
|
||||||
|
|
||||||
|
stb0899_check_carrier(state);
|
||||||
|
- index++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ index++;
|
||||||
|
internal->direction = -internal->direction; /* change zig zag direction */
|
||||||
|
} while ((internal->status != DATAOK) && next_loop);
|
||||||
|
|
26679
packages/linux/patches/3.15-rc2/linux-221-ngene-octopus.patch
Normal file
26679
packages/linux/patches/3.15-rc2/linux-221-ngene-octopus.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,62 @@
|
|||||||
|
diff -Naur linux-3.7.2/drivers/media/dvb-frontends/stb0899_drv.c linux-3.7.2.patch/drivers/media/dvb-frontends/stb0899_drv.c
|
||||||
|
--- linux-3.7.2/drivers/media/dvb-frontends/stb0899_drv.c 2013-01-11 18:19:28.000000000 +0100
|
||||||
|
+++ linux-3.7.2.patch/drivers/media/dvb-frontends/stb0899_drv.c 2013-01-16 10:33:10.323380937 +0100
|
||||||
|
@@ -971,6 +971,16 @@
|
||||||
|
|
||||||
|
*strength = stb0899_table_lookup(stb0899_dvbsrf_tab, ARRAY_SIZE(stb0899_dvbsrf_tab) - 1, val);
|
||||||
|
*strength += 750;
|
||||||
|
+
|
||||||
|
+ const int MIN_STRENGTH_DVBS = 0;
|
||||||
|
+ const int MAX_STRENGTH_DVBS = 680;
|
||||||
|
+ if (*strength < MIN_STRENGTH_DVBS)
|
||||||
|
+ *strength = 0;
|
||||||
|
+ else if(*strength > MAX_STRENGTH_DVBS)
|
||||||
|
+ *strength = 0xFFFF;
|
||||||
|
+ else
|
||||||
|
+ *strength = (*strength - MIN_STRENGTH_DVBS) * 0xFFFF / (MAX_STRENGTH_DVBS - MIN_STRENGTH_DVBS);
|
||||||
|
+
|
||||||
|
dprintk(state->verbose, FE_DEBUG, 1, "AGCIQVALUE = 0x%02x, C = %d * 0.1 dBm",
|
||||||
|
val & 0xff, *strength);
|
||||||
|
}
|
||||||
|
@@ -983,6 +993,7 @@
|
||||||
|
|
||||||
|
*strength = stb0899_table_lookup(stb0899_dvbs2rf_tab, ARRAY_SIZE(stb0899_dvbs2rf_tab) - 1, val);
|
||||||
|
*strength += 950;
|
||||||
|
+ *strength = *strength << 4;
|
||||||
|
dprintk(state->verbose, FE_DEBUG, 1, "IF_AGC_GAIN = 0x%04x, C = %d * 0.1 dBm",
|
||||||
|
val & 0x3fff, *strength);
|
||||||
|
}
|
||||||
|
@@ -1016,6 +1027,16 @@
|
||||||
|
val = MAKEWORD16(buf[0], buf[1]);
|
||||||
|
|
||||||
|
*snr = stb0899_table_lookup(stb0899_cn_tab, ARRAY_SIZE(stb0899_cn_tab) - 1, val);
|
||||||
|
+
|
||||||
|
+ const int MIN_SNR_DVBS = 0;
|
||||||
|
+ const int MAX_SNR_DVBS = 200;
|
||||||
|
+ if (*snr < MIN_SNR_DVBS)
|
||||||
|
+ *snr = 0;
|
||||||
|
+ else if(*snr > MAX_SNR_DVBS)
|
||||||
|
+ *snr = 0xFFFF;
|
||||||
|
+ else
|
||||||
|
+ *snr = (*snr - MIN_SNR_DVBS) * 0xFFFF / (MAX_SNR_DVBS - MIN_SNR_DVBS);
|
||||||
|
+
|
||||||
|
dprintk(state->verbose, FE_DEBUG, 1, "NIR = 0x%02x%02x = %u, C/N = %d * 0.1 dBm\n",
|
||||||
|
buf[0], buf[1], val, *snr);
|
||||||
|
}
|
||||||
|
@@ -1040,6 +1061,16 @@
|
||||||
|
val = (quantn - estn) / 10;
|
||||||
|
}
|
||||||
|
*snr = val;
|
||||||
|
+
|
||||||
|
+ const int MIN_SNR_DVBS2 = 10;
|
||||||
|
+ const int MAX_SNR_DVBS2 = 70;
|
||||||
|
+ if (*snr < MIN_SNR_DVBS2)
|
||||||
|
+ *snr = 0;
|
||||||
|
+ else if(*snr > MAX_SNR_DVBS2)
|
||||||
|
+ *snr = 0xFFFF;
|
||||||
|
+ else
|
||||||
|
+ *snr = (*snr - MIN_SNR_DVBS2) * 0xFFFF / (MAX_SNR_DVBS2 - MIN_SNR_DVBS2);
|
||||||
|
+
|
||||||
|
dprintk(state->verbose, FE_DEBUG, 1, "Es/N0 quant = %d (%d) estimate = %u (%d), C/N = %d * 0.1 dBm",
|
||||||
|
quant, quantn, est, estn, val);
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
diff -Naur linux-3.7.9/drivers/media/usb/dvb-usb/pctv452e.c linux-3.7.9.patch/drivers/media/usb/dvb-usb/pctv452e.c
|
||||||
|
--- linux-3.7.9/drivers/media/usb/dvb-usb/pctv452e.c 2013-01-11 18:19:28.000000000 +0100
|
||||||
|
+++ linux-3.7.9.patch/drivers/media/usb/dvb-usb/pctv452e.c 2013-01-16 10:35:01.131342123 +0100
|
||||||
|
@@ -995,11 +995,11 @@
|
||||||
|
/* parameter for the MPEG2-data transfer */
|
||||||
|
.stream = {
|
||||||
|
.type = USB_ISOC,
|
||||||
|
- .count = 7,
|
||||||
|
+ .count = 4,
|
||||||
|
.endpoint = 0x02,
|
||||||
|
.u = {
|
||||||
|
.isoc = {
|
||||||
|
- .framesperurb = 4,
|
||||||
|
+ .framesperurb = 64,
|
||||||
|
.framesize = 940,
|
||||||
|
.interval = 1
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
--- a/drivers/net/wireless/brcm80211/brcmfmac/usb.c 2013-07-21 16:06:37.443909481 +0200
|
||||||
|
+++ b/drivers/net/wireless/brcm80211/brcmfmac/usb.c 2013-07-21 16:11:10.696335476 +0200
|
||||||
|
@@ -1470,15 +1470,18 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
#define BRCMF_USB_VENDOR_ID_BROADCOM 0x0a5c
|
||||||
|
+#define BRCMF_USB_VENDOR_ID_LINKSYS 0x13b1
|
||||||
|
#define BRCMF_USB_DEVICE_ID_43143 0xbd1e
|
||||||
|
#define BRCMF_USB_DEVICE_ID_43236 0xbd17
|
||||||
|
#define BRCMF_USB_DEVICE_ID_43242 0xbd1f
|
||||||
|
+#define BRCMF_USB_DEVICE_ID_AE2500 0x003a
|
||||||
|
#define BRCMF_USB_DEVICE_ID_BCMFW 0x0bdc
|
||||||
|
|
||||||
|
static struct usb_device_id brcmf_usb_devid_table[] = {
|
||||||
|
{ USB_DEVICE(BRCMF_USB_VENDOR_ID_BROADCOM, BRCMF_USB_DEVICE_ID_43143) },
|
||||||
|
{ USB_DEVICE(BRCMF_USB_VENDOR_ID_BROADCOM, BRCMF_USB_DEVICE_ID_43236) },
|
||||||
|
{ USB_DEVICE(BRCMF_USB_VENDOR_ID_BROADCOM, BRCMF_USB_DEVICE_ID_43242) },
|
||||||
|
+ { USB_DEVICE(BRCMF_USB_VENDOR_ID_LINKSYS, BRCMF_USB_DEVICE_ID_AE2500) },
|
||||||
|
/* special entry for device with firmware loaded and running */
|
||||||
|
{ USB_DEVICE(BRCMF_USB_VENDOR_ID_BROADCOM, BRCMF_USB_DEVICE_ID_BCMFW) },
|
||||||
|
{ }
|
@ -0,0 +1,11 @@
|
|||||||
|
--- linux-3.9.2/drivers/net/ethernet/broadcom/tg3.c 2013-05-11 18:19:28.000000000 +0400
|
||||||
|
+++ linux-3.9.2/drivers/net/ethernet/broadcom/tg3.c 2013-05-25 20:55:00.282972605 +0400
|
||||||
|
@@ -333,6 +333,8 @@
|
||||||
|
{PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_5720)},
|
||||||
|
{PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57762)},
|
||||||
|
{PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57766)},
|
||||||
|
+ {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57782)},
|
||||||
|
+ {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57786)},
|
||||||
|
{PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_5762)},
|
||||||
|
{PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_5725)},
|
||||||
|
{PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_5727)},
|
@ -0,0 +1,28 @@
|
|||||||
|
From 62330f8f9b6105bfe201f52b7ed86ea6ce3d5901 Mon Sep 17 00:00:00 2001
|
||||||
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
|
Date: Sun, 8 Sep 2013 10:33:51 +0100
|
||||||
|
Subject: [PATCH] Add Ubiquiti WifiStation USB id to ath9k wifi driver
|
||||||
|
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath9k/hif_usb.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
|
||||||
|
index 75a6376..8cb8d8d 100644
|
||||||
|
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
|
||||||
|
@@ -37,9 +37,11 @@
|
||||||
|
{ USB_DEVICE(0x13D3, 0x3350) }, /* Azurewave */
|
||||||
|
{ USB_DEVICE(0x04CA, 0x4605) }, /* Liteon */
|
||||||
|
{ USB_DEVICE(0x040D, 0x3801) }, /* VIA */
|
||||||
|
+ { USB_DEVICE(0x0cf3, 0xb002) }, /* Ubiquiti WifiStation */
|
||||||
|
{ USB_DEVICE(0x0cf3, 0xb003) }, /* Ubiquiti WifiStation Ext */
|
||||||
|
{ USB_DEVICE(0x0cf3, 0xb002) }, /* Ubiquiti WifiStation */
|
||||||
|
{ USB_DEVICE(0x057c, 0x8403) }, /* AVM FRITZ!WLAN 11N v2 USB */
|
||||||
|
+ { USB_DEVICE(0x057c, 0x8403) }, /* AVM FRITZ!WLAN 11N v2 USB */
|
||||||
|
|
||||||
|
{ USB_DEVICE(0x0cf3, 0x7015),
|
||||||
|
.driver_info = AR9287_USB }, /* Atheros */
|
||||||
|
--
|
||||||
|
1.8.4
|
||||||
|
|
@ -0,0 +1,10 @@
|
|||||||
|
--- a/drivers/net/wireless/rt2x00/rt2800usb.c 2013-10-08 15:14:44.844047190 +0200
|
||||||
|
+++ b/drivers/net/wireless/rt2x00/rt2800usb.c 2013-10-08 15:15:00.279904575 +0200
|
||||||
|
@@ -976,6 +976,7 @@
|
||||||
|
{ USB_DEVICE(0x0411, 0x015d) },
|
||||||
|
{ USB_DEVICE(0x0411, 0x016f) },
|
||||||
|
{ USB_DEVICE(0x0411, 0x01a2) },
|
||||||
|
+ { USB_DEVICE(0x0411, 0x01a8) },
|
||||||
|
{ USB_DEVICE(0x0411, 0x01ee) },
|
||||||
|
/* Corega */
|
||||||
|
{ USB_DEVICE(0x07aa, 0x002f) },
|
11
packages/linux/patches/3.15-rc2/linux-706-Sitecom-N300.patch
Normal file
11
packages/linux/patches/3.15-rc2/linux-706-Sitecom-N300.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
diff -Naur linux-3.10.16/drivers/staging/rtl8712/usb_intf.c linux-3.10.16.patch/drivers/staging/rtl8712/usb_intf.c
|
||||||
|
--- linux-3.10.16/drivers/staging/rtl8712/usb_intf.c 2013-10-14 01:08:56.000000000 +0200
|
||||||
|
+++ linux-3.10.16.patch/drivers/staging/rtl8712/usb_intf.c 2013-10-16 13:27:44.032951265 +0200
|
||||||
|
@@ -92,6 +92,7 @@
|
||||||
|
{USB_DEVICE(0x0DF6, 0x005B)},
|
||||||
|
{USB_DEVICE(0x0DF6, 0x005D)},
|
||||||
|
{USB_DEVICE(0x0DF6, 0x0063)},
|
||||||
|
+ {USB_DEVICE(0x0DF6, 0x006C)},
|
||||||
|
/* Sweex */
|
||||||
|
{USB_DEVICE(0x177F, 0x0154)},
|
||||||
|
/* Thinkware */
|
@ -0,0 +1,12 @@
|
|||||||
|
diff -uNr linux-3.6.4-orig/arch/x86/kernel/tsc.c linux-3.6.4-new/arch/x86/kernel/tsc.c
|
||||||
|
--- linux-3.6.4-orig/arch/x86/kernel/tsc.c 2012-11-03 14:19:55.000000000 +0100
|
||||||
|
+++ linux-3.6.4-new/arch/x86/kernel/tsc.c 2012-11-03 14:23:05.000000000 +0100
|
||||||
|
@@ -374,7 +374,7 @@
|
||||||
|
goto success;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- pr_err("Fast TSC calibration failed\n");
|
||||||
|
+ pr_info("Fast TSC calibration failed\n");
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
success:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,83 @@
|
|||||||
|
From 56ca3555ed8e0f5fd741477fd23497f5455c3f53 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Saraev <stefan@saraev.ca>
|
||||||
|
Date: Tue, 22 Apr 2014 15:58:50 +0300
|
||||||
|
Subject: [PATCH] ALSA: hda - Avoid outputting HDMI audio before prepare() and after close()
|
||||||
|
|
||||||
|
adapted to 3.15
|
||||||
|
|
||||||
|
From a6024295fd3290a8c9c5519a03316081ee82378a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||||||
|
Date: Sat, 16 Feb 2013 17:42:46 +0200
|
||||||
|
Subject: [PATCH] ALSA: hda - Avoid outputting HDMI audio before prepare() and
|
||||||
|
after close()
|
||||||
|
|
||||||
|
Some HDMI codecs (at least NVIDIA 0x10de000b:0x10de0101:0x100100) start
|
||||||
|
transmitting an empty audio stream as soon as PIN_OUT and AC_DIG1_ENABLE
|
||||||
|
are enabled.
|
||||||
|
|
||||||
|
Since commit 6169b673618bf0b2518ce413b54925782a603f06 ("ALSA: hda -
|
||||||
|
Always turn on pins for HDMI/DP") this happens at first open() time, and
|
||||||
|
will continue even after close().
|
||||||
|
|
||||||
|
Additionally, some codecs (at least Intel PantherPoint HDMI) currently
|
||||||
|
continue transmitting HDMI audio even after close() in case some actual
|
||||||
|
audio was output after open() (this happens regardless of PIN_OUT).
|
||||||
|
|
||||||
|
Empty HDMI audio transmission when not intended has the effect that a
|
||||||
|
possible HDMI audio sink/receiver may prefer the empty HDMI audio stream
|
||||||
|
over an actual audio stream on its S/PDIF inputs.
|
||||||
|
|
||||||
|
To avoid the issue before first prepare(), set stream format to 0 on
|
||||||
|
codec initialization. 0 is not a valid format value for HDMI and will
|
||||||
|
prevent the audio stream from being output.
|
||||||
|
|
||||||
|
Additionally, at close() time, make sure that the stream is cleaned up.
|
||||||
|
This will ensure that the format is reset to 0 at that time, preventing
|
||||||
|
audio from being output in that case.
|
||||||
|
|
||||||
|
Thanks to OpenELEC developers and users for their help in investigating
|
||||||
|
this issue on the affected NVIDIA "ION2" hardware. Testing of the final
|
||||||
|
version on NVIDIA ION2 was done by OpenELEC user "MrXIII". Testing on
|
||||||
|
Intel PantherPoint was done by myself.
|
||||||
|
|
||||||
|
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
|
||||||
|
Cc: stable@vger.kernel.org
|
||||||
|
---
|
||||||
|
sound/pci/hda/patch_hdmi.c | 14 ++++++++++++++
|
||||||
|
1 files changed, 14 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
|
||||||
|
index 0cb5b89..e92f24f 100644
|
||||||
|
--- a/sound/pci/hda/patch_hdmi.c
|
||||||
|
+++ b/sound/pci/hda/patch_hdmi.c
|
||||||
|
@@ -1698,6 +1698,14 @@ static int hdmi_add_cvt(struct hda_codec *codec, hda_nid_t cvt_nid)
|
||||||
|
if (err < 0)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * Some HDMI codecs (at least NVIDIA 0x10de000b:0x10de0101:0x100100)
|
||||||
|
+ * start transmitting an empty audio stream as soon as PIN_OUT and
|
||||||
|
+ * AC_DIG1_ENABLE are enabled, which happens at open() time.
|
||||||
|
+ * To avoid that, set format to 0, which is not valid for HDMI.
|
||||||
|
+ */
|
||||||
|
+ snd_hda_codec_write(codec, cvt_nid, 0, AC_VERB_SET_STREAM_FORMAT, 0);
|
||||||
|
+
|
||||||
|
if (spec->num_cvts < ARRAY_SIZE(spec->cvt_nids))
|
||||||
|
spec->cvt_nids[spec->num_cvts] = cvt_nid;
|
||||||
|
spec->num_cvts++;
|
||||||
|
@@ -1823,6 +1831,12 @@ static int hdmi_pcm_close(struct hda_pcm_stream *hinfo,
|
||||||
|
int pinctl;
|
||||||
|
|
||||||
|
if (hinfo->nid) {
|
||||||
|
+ /*
|
||||||
|
+ * Make sure no empty audio is output after this point by
|
||||||
|
+ * setting stream format to 0, which is not valid for HDMI.
|
||||||
|
+ */
|
||||||
|
+ __snd_hda_codec_cleanup_stream(codec, hinfo->nid, 1);
|
||||||
|
+
|
||||||
|
cvt_idx = cvt_nid_to_cvt_index(codec, hinfo->nid);
|
||||||
|
if (snd_BUG_ON(cvt_idx < 0))
|
||||||
|
return -EINVAL;
|
||||||
|
--
|
||||||
|
1.7.2.5
|
||||||
|
|
@ -0,0 +1,17 @@
|
|||||||
|
diff -Naur linux-3.10.10/include/uapi/linux/ptrace.h linux-3.10.10.patch/include/uapi/linux/ptrace.h
|
||||||
|
--- linux-3.10.10/include/uapi/linux/ptrace.h 2013-08-29 18:47:51.000000000 +0200
|
||||||
|
+++ linux-3.10.10.patch/include/uapi/linux/ptrace.h 2013-09-04 16:38:10.182685149 +0200
|
||||||
|
@@ -55,11 +55,13 @@
|
||||||
|
|
||||||
|
#define PTRACE_PEEKSIGINFO 0x4209
|
||||||
|
|
||||||
|
+#ifdef __KERNEL__
|
||||||
|
struct ptrace_peeksiginfo_args {
|
||||||
|
__u64 off; /* from which siginfo to start */
|
||||||
|
__u32 flags;
|
||||||
|
__s32 nr; /* how may siginfos to take */
|
||||||
|
};
|
||||||
|
+#endif /* __KERNEL__ */
|
||||||
|
|
||||||
|
/* Read signals from a shared (process wide) queue */
|
||||||
|
#define PTRACE_PEEKSIGINFO_SHARED (1 << 0)
|
1577
packages/linux/patches/3.15-rc2/linux-995-CX24120-13Z_frontend.patch
Executable file
1577
packages/linux/patches/3.15-rc2/linux-995-CX24120-13Z_frontend.patch
Executable file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,57 @@
|
|||||||
|
Signed-off-by: Christian König <christian.koenig@amd.com>
|
||||||
|
---
|
||||||
|
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
|
||||||
|
index fb3b505..037db45 100644
|
||||||
|
--- a/drivers/gpu/drm/radeon/radeon_display.c
|
||||||
|
+++ b/drivers/gpu/drm/radeon/radeon_display.c
|
||||||
|
@@ -820,6 +820,9 @@ static void avivo_reduce_ratio(unsigned *nom, unsigned *den,
|
||||||
|
{
|
||||||
|
unsigned tmp;
|
||||||
|
|
||||||
|
+ DRM_DEBUG_KMS("nom: %d den: %d nom_min %d den_min %d\n",
|
||||||
|
+ *nom, *den, nom_min, den_min);
|
||||||
|
+
|
||||||
|
/* reduce the numbers to a simpler ratio */
|
||||||
|
tmp = gcd(*nom, *den);
|
||||||
|
*nom /= tmp;
|
||||||
|
@@ -876,6 +879,9 @@ void radeon_compute_pll_avivo(struct radeon_pll *pll,
|
||||||
|
fb_div_max *= 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ DRM_DEBUG_KMS("fb_div_min: %d fb_div_max: %d\n",
|
||||||
|
+ fb_div_min, fb_div_max);
|
||||||
|
+
|
||||||
|
/* determine allowed ref divider range */
|
||||||
|
if (pll->flags & RADEON_PLL_USE_REF_DIV)
|
||||||
|
ref_div_min = pll->reference_div;
|
||||||
|
@@ -883,6 +889,9 @@ void radeon_compute_pll_avivo(struct radeon_pll *pll,
|
||||||
|
ref_div_min = pll->min_ref_div;
|
||||||
|
ref_div_max = pll->max_ref_div;
|
||||||
|
|
||||||
|
+ DRM_DEBUG_KMS("ref_div_min: %d ref_div_max: %d\n",
|
||||||
|
+ ref_div_min, ref_div_max);
|
||||||
|
+
|
||||||
|
/* determine allowed post divider range */
|
||||||
|
if (pll->flags & RADEON_PLL_USE_POST_DIV) {
|
||||||
|
post_div_min = pll->post_div;
|
||||||
|
@@ -912,6 +921,9 @@ void radeon_compute_pll_avivo(struct radeon_pll *pll,
|
||||||
|
post_div_max = pll->max_post_div;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ DRM_DEBUG_KMS("post_div_min: %d post_div_max: %d\n",
|
||||||
|
+ post_div_min, post_div_max);
|
||||||
|
+
|
||||||
|
/* represent the searched ratio as fractional number */
|
||||||
|
nom = pll->flags & RADEON_PLL_USE_FRAC_FB_DIV ? freq : freq / 10;
|
||||||
|
den = pll->reference_freq;
|
||||||
|
@@ -980,7 +992,7 @@ void radeon_compute_pll_avivo(struct radeon_pll *pll,
|
||||||
|
*post_div_p = post_div;
|
||||||
|
|
||||||
|
DRM_DEBUG_KMS("%d - %d, pll dividers - fb: %d.%d ref: %d, post %d\n",
|
||||||
|
- freq, *dot_clock_p, *fb_div_p, *frac_fb_div_p,
|
||||||
|
+ freq, *dot_clock_p * 10, *fb_div_p, *frac_fb_div_p,
|
||||||
|
ref_div, post_div);
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
cgit v0.9.0.2-2-gbebe
|
@ -0,0 +1,27 @@
|
|||||||
|
From: Christian König <christian.koenig at amd.com>
|
||||||
|
|
||||||
|
Letting post and refernce divider get to big is bad for signal stability.
|
||||||
|
|
||||||
|
v2: increase the limit to 210
|
||||||
|
|
||||||
|
Signed-off-by: Christian König <christian.koenig at amd.com>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/radeon/radeon_display.c | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
|
||||||
|
index 386cfa4..2f42912 100644
|
||||||
|
--- a/drivers/gpu/drm/radeon/radeon_display.c
|
||||||
|
+++ b/drivers/gpu/drm/radeon/radeon_display.c
|
||||||
|
@@ -937,6 +937,9 @@ void radeon_compute_pll_avivo(struct radeon_pll *pll,
|
||||||
|
}
|
||||||
|
post_div = post_div_best;
|
||||||
|
|
||||||
|
+ /* limit reference * post divider to a maximum */
|
||||||
|
+ ref_div_max = min(210 / post_div, ref_div_max);
|
||||||
|
+
|
||||||
|
/* get matching reference and feedback divider */
|
||||||
|
ref_div = max(den / post_div, 1u);
|
||||||
|
fb_div = nom;
|
||||||
|
--
|
||||||
|
1.9.1
|
@ -0,0 +1,25 @@
|
|||||||
|
From c314d9af9d774c052bea324e1a140ccdba0ca070 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Saraev <stefan@saraev.ca>
|
||||||
|
Date: Tue, 8 Apr 2014 14:02:53 +0300
|
||||||
|
Subject: [PATCH] pm: disable async suspend/resume by default
|
||||||
|
|
||||||
|
---
|
||||||
|
kernel/power/main.c | 2 +-
|
||||||
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/kernel/power/main.c b/kernel/power/main.c
|
||||||
|
index 1d1bf63..361db93 100644
|
||||||
|
--- a/kernel/power/main.c
|
||||||
|
+++ b/kernel/power/main.c
|
||||||
|
@@ -46,7 +46,7 @@ int pm_notifier_call_chain(unsigned long val)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If set, devices may be suspended and resumed asynchronously. */
|
||||||
|
-int pm_async_enabled = 1;
|
||||||
|
+int pm_async_enabled = 0;
|
||||||
|
|
||||||
|
static ssize_t pm_async_show(struct kobject *kobj, struct kobj_attribute *attr,
|
||||||
|
char *buf)
|
||||||
|
--
|
||||||
|
1.7.2.5
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user