mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
linux: update to linux-3.17.1, update kernel config, update RPi support patch. TODO: rework some patches from packages/linux/patches/3.17.1/todo
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
@@ -23,7 +23,7 @@ case "$LINUX" in
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
;;
|
||||
*)
|
||||
PKG_VERSION="3.16.5"
|
||||
PKG_VERSION="3.17.1"
|
||||
PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -1,348 +0,0 @@
|
||||
From 1a48ff81b3912be5fadae3fafde6c2f632246a4c Mon Sep 17 00:00:00 2001
|
||||
From: Ted Mielczarek <ted@mielczarek.org>
|
||||
Date: Fri, 8 Aug 2014 11:21:59 -0700
|
||||
Subject: Input: xpad - add support for Xbox One controllers
|
||||
|
||||
Xbox One controllers require an initialization message to start sending
|
||||
data, so xpad_init_output becomes a required function. The Xbox One
|
||||
controller does not have LEDs like the Xbox 360 controller, so that
|
||||
functionality is not implemented. The format of messages controlling rumble
|
||||
is currently undocumented, so rumble support is not yet implemented.
|
||||
|
||||
Note that Xbox One controller advertises three interfaces with the same
|
||||
interface class, subclass and protocol, so we have to also match against
|
||||
interface number.
|
||||
|
||||
Signed-off-by: Ted Mielczarek <ted@mielczarek.org>
|
||||
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
||||
|
||||
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
|
||||
index 603fe0d..177602c 100644
|
||||
--- a/drivers/input/joystick/xpad.c
|
||||
+++ b/drivers/input/joystick/xpad.c
|
||||
@@ -95,7 +95,8 @@
|
||||
#define XTYPE_XBOX 0
|
||||
#define XTYPE_XBOX360 1
|
||||
#define XTYPE_XBOX360W 2
|
||||
-#define XTYPE_UNKNOWN 3
|
||||
+#define XTYPE_XBOXONE 3
|
||||
+#define XTYPE_UNKNOWN 4
|
||||
|
||||
static bool dpad_to_buttons;
|
||||
module_param(dpad_to_buttons, bool, S_IRUGO);
|
||||
@@ -121,6 +122,7 @@ static const struct xpad_device {
|
||||
{ 0x045e, 0x0287, "Microsoft Xbox Controller S", 0, XTYPE_XBOX },
|
||||
{ 0x045e, 0x0289, "Microsoft X-Box pad v2 (US)", 0, XTYPE_XBOX },
|
||||
{ 0x045e, 0x028e, "Microsoft X-Box 360 pad", 0, XTYPE_XBOX360 },
|
||||
+ { 0x045e, 0x02d1, "Microsoft X-Box One pad", 0, XTYPE_XBOXONE },
|
||||
{ 0x045e, 0x0291, "Xbox 360 Wireless Receiver (XBOX)", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360W },
|
||||
{ 0x045e, 0x0719, "Xbox 360 Wireless Receiver", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360W },
|
||||
{ 0x044f, 0x0f07, "Thrustmaster, Inc. Controller", 0, XTYPE_XBOX },
|
||||
@@ -231,10 +233,12 @@ static const signed short xpad_abs_triggers[] = {
|
||||
-1
|
||||
};
|
||||
|
||||
-/* Xbox 360 has a vendor-specific class, so we cannot match it with only
|
||||
+/*
|
||||
+ * Xbox 360 has a vendor-specific class, so we cannot match it with only
|
||||
* USB_INTERFACE_INFO (also specifically refused by USB subsystem), so we
|
||||
* match against vendor id as well. Wired Xbox 360 devices have protocol 1,
|
||||
- * wireless controllers have protocol 129. */
|
||||
+ * wireless controllers have protocol 129.
|
||||
+ */
|
||||
#define XPAD_XBOX360_VENDOR_PROTOCOL(vend,pr) \
|
||||
.match_flags = USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_INT_INFO, \
|
||||
.idVendor = (vend), \
|
||||
@@ -245,9 +249,20 @@ static const signed short xpad_abs_triggers[] = {
|
||||
{ XPAD_XBOX360_VENDOR_PROTOCOL(vend,1) }, \
|
||||
{ XPAD_XBOX360_VENDOR_PROTOCOL(vend,129) }
|
||||
|
||||
+/* The Xbox One controller uses subclass 71 and protocol 208. */
|
||||
+#define XPAD_XBOXONE_VENDOR_PROTOCOL(vend, pr) \
|
||||
+ .match_flags = USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_INT_INFO, \
|
||||
+ .idVendor = (vend), \
|
||||
+ .bInterfaceClass = USB_CLASS_VENDOR_SPEC, \
|
||||
+ .bInterfaceSubClass = 71, \
|
||||
+ .bInterfaceProtocol = (pr)
|
||||
+#define XPAD_XBOXONE_VENDOR(vend) \
|
||||
+ { XPAD_XBOXONE_VENDOR_PROTOCOL(vend, 208) }
|
||||
+
|
||||
static struct usb_device_id xpad_table[] = {
|
||||
{ USB_INTERFACE_INFO('X', 'B', 0) }, /* X-Box USB-IF not approved class */
|
||||
XPAD_XBOX360_VENDOR(0x045e), /* Microsoft X-Box 360 controllers */
|
||||
+ XPAD_XBOXONE_VENDOR(0x045e), /* Microsoft X-Box One controllers */
|
||||
XPAD_XBOX360_VENDOR(0x046d), /* Logitech X-Box 360 style controllers */
|
||||
XPAD_XBOX360_VENDOR(0x0738), /* Mad Catz X-Box 360 controllers */
|
||||
{ USB_DEVICE(0x0738, 0x4540) }, /* Mad Catz Beat Pad */
|
||||
@@ -278,12 +293,10 @@ struct usb_xpad {
|
||||
struct urb *bulk_out;
|
||||
unsigned char *bdata;
|
||||
|
||||
-#if defined(CONFIG_JOYSTICK_XPAD_FF) || defined(CONFIG_JOYSTICK_XPAD_LEDS)
|
||||
struct urb *irq_out; /* urb for interrupt out report */
|
||||
unsigned char *odata; /* output data */
|
||||
dma_addr_t odata_dma;
|
||||
struct mutex odata_mutex;
|
||||
-#endif
|
||||
|
||||
#if defined(CONFIG_JOYSTICK_XPAD_LEDS)
|
||||
struct xpad_led *led;
|
||||
@@ -470,6 +483,105 @@ static void xpad360w_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned cha
|
||||
xpad360_process_packet(xpad, cmd, &data[4]);
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * xpadone_process_buttons
|
||||
+ *
|
||||
+ * Process a button update packet from an Xbox one controller.
|
||||
+ */
|
||||
+static void xpadone_process_buttons(struct usb_xpad *xpad,
|
||||
+ struct input_dev *dev,
|
||||
+ unsigned char *data)
|
||||
+{
|
||||
+ /* menu/view buttons */
|
||||
+ input_report_key(dev, BTN_START, data[4] & 0x04);
|
||||
+ input_report_key(dev, BTN_SELECT, data[4] & 0x08);
|
||||
+
|
||||
+ /* buttons A,B,X,Y */
|
||||
+ input_report_key(dev, BTN_A, data[4] & 0x10);
|
||||
+ input_report_key(dev, BTN_B, data[4] & 0x20);
|
||||
+ input_report_key(dev, BTN_X, data[4] & 0x40);
|
||||
+ input_report_key(dev, BTN_Y, data[4] & 0x80);
|
||||
+
|
||||
+ /* digital pad */
|
||||
+ if (xpad->mapping & MAP_DPAD_TO_BUTTONS) {
|
||||
+ /* dpad as buttons (left, right, up, down) */
|
||||
+ input_report_key(dev, BTN_TRIGGER_HAPPY1, data[5] & 0x04);
|
||||
+ input_report_key(dev, BTN_TRIGGER_HAPPY2, data[5] & 0x08);
|
||||
+ input_report_key(dev, BTN_TRIGGER_HAPPY3, data[5] & 0x01);
|
||||
+ input_report_key(dev, BTN_TRIGGER_HAPPY4, data[5] & 0x02);
|
||||
+ } else {
|
||||
+ input_report_abs(dev, ABS_HAT0X,
|
||||
+ !!(data[5] & 0x08) - !!(data[5] & 0x04));
|
||||
+ input_report_abs(dev, ABS_HAT0Y,
|
||||
+ !!(data[5] & 0x02) - !!(data[5] & 0x01));
|
||||
+ }
|
||||
+
|
||||
+ /* TL/TR */
|
||||
+ input_report_key(dev, BTN_TL, data[5] & 0x10);
|
||||
+ input_report_key(dev, BTN_TR, data[5] & 0x20);
|
||||
+
|
||||
+ /* stick press left/right */
|
||||
+ input_report_key(dev, BTN_THUMBL, data[5] & 0x40);
|
||||
+ input_report_key(dev, BTN_THUMBR, data[5] & 0x80);
|
||||
+
|
||||
+ if (!(xpad->mapping & MAP_STICKS_TO_NULL)) {
|
||||
+ /* left stick */
|
||||
+ input_report_abs(dev, ABS_X,
|
||||
+ (__s16) le16_to_cpup((__le16 *)(data + 10)));
|
||||
+ input_report_abs(dev, ABS_Y,
|
||||
+ ~(__s16) le16_to_cpup((__le16 *)(data + 12)));
|
||||
+
|
||||
+ /* right stick */
|
||||
+ input_report_abs(dev, ABS_RX,
|
||||
+ (__s16) le16_to_cpup((__le16 *)(data + 14)));
|
||||
+ input_report_abs(dev, ABS_RY,
|
||||
+ ~(__s16) le16_to_cpup((__le16 *)(data + 16)));
|
||||
+ }
|
||||
+
|
||||
+ /* triggers left/right */
|
||||
+ if (xpad->mapping & MAP_TRIGGERS_TO_BUTTONS) {
|
||||
+ input_report_key(dev, BTN_TL2,
|
||||
+ (__u16) le16_to_cpup((__le16 *)(data + 6)));
|
||||
+ input_report_key(dev, BTN_TR2,
|
||||
+ (__u16) le16_to_cpup((__le16 *)(data + 8)));
|
||||
+ } else {
|
||||
+ input_report_abs(dev, ABS_Z,
|
||||
+ (__u16) le16_to_cpup((__le16 *)(data + 6)));
|
||||
+ input_report_abs(dev, ABS_RZ,
|
||||
+ (__u16) le16_to_cpup((__le16 *)(data + 8)));
|
||||
+ }
|
||||
+
|
||||
+ input_sync(dev);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * xpadone_process_packet
|
||||
+ *
|
||||
+ * Completes a request by converting the data into events for the
|
||||
+ * input subsystem. This version is for the Xbox One controller.
|
||||
+ *
|
||||
+ * The report format was gleaned from
|
||||
+ * https://github.com/kylelemons/xbox/blob/master/xbox.go
|
||||
+ */
|
||||
+
|
||||
+static void xpadone_process_packet(struct usb_xpad *xpad,
|
||||
+ u16 cmd, unsigned char *data)
|
||||
+{
|
||||
+ struct input_dev *dev = xpad->dev;
|
||||
+
|
||||
+ switch (data[0]) {
|
||||
+ case 0x20:
|
||||
+ xpadone_process_buttons(xpad, dev, data);
|
||||
+ break;
|
||||
+
|
||||
+ case 0x07:
|
||||
+ /* the xbox button has its own special report */
|
||||
+ input_report_key(dev, BTN_MODE, data[4] & 0x01);
|
||||
+ input_sync(dev);
|
||||
+ break;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static void xpad_irq_in(struct urb *urb)
|
||||
{
|
||||
struct usb_xpad *xpad = urb->context;
|
||||
@@ -502,6 +614,9 @@ static void xpad_irq_in(struct urb *urb)
|
||||
case XTYPE_XBOX360W:
|
||||
xpad360w_process_packet(xpad, 0, xpad->idata);
|
||||
break;
|
||||
+ case XTYPE_XBOXONE:
|
||||
+ xpadone_process_packet(xpad, 0, xpad->idata);
|
||||
+ break;
|
||||
default:
|
||||
xpad_process_packet(xpad, 0, xpad->idata);
|
||||
}
|
||||
@@ -535,7 +650,6 @@ static void xpad_bulk_out(struct urb *urb)
|
||||
}
|
||||
}
|
||||
|
||||
-#if defined(CONFIG_JOYSTICK_XPAD_FF) || defined(CONFIG_JOYSTICK_XPAD_LEDS)
|
||||
static void xpad_irq_out(struct urb *urb)
|
||||
{
|
||||
struct usb_xpad *xpad = urb->context;
|
||||
@@ -573,6 +687,7 @@ exit:
|
||||
static int xpad_init_output(struct usb_interface *intf, struct usb_xpad *xpad)
|
||||
{
|
||||
struct usb_endpoint_descriptor *ep_irq_out;
|
||||
+ int ep_irq_out_idx;
|
||||
int error;
|
||||
|
||||
if (xpad->xtype == XTYPE_UNKNOWN)
|
||||
@@ -593,7 +708,10 @@ static int xpad_init_output(struct usb_interface *intf, struct usb_xpad *xpad)
|
||||
goto fail2;
|
||||
}
|
||||
|
||||
- ep_irq_out = &intf->cur_altsetting->endpoint[1].desc;
|
||||
+ /* Xbox One controller has in/out endpoints swapped. */
|
||||
+ ep_irq_out_idx = xpad->xtype == XTYPE_XBOXONE ? 0 : 1;
|
||||
+ ep_irq_out = &intf->cur_altsetting->endpoint[ep_irq_out_idx].desc;
|
||||
+
|
||||
usb_fill_int_urb(xpad->irq_out, xpad->udev,
|
||||
usb_sndintpipe(xpad->udev, ep_irq_out->bEndpointAddress),
|
||||
xpad->odata, XPAD_PKT_LEN,
|
||||
@@ -621,11 +739,6 @@ static void xpad_deinit_output(struct usb_xpad *xpad)
|
||||
xpad->odata, xpad->odata_dma);
|
||||
}
|
||||
}
|
||||
-#else
|
||||
-static int xpad_init_output(struct usb_interface *intf, struct usb_xpad *xpad) { return 0; }
|
||||
-static void xpad_deinit_output(struct usb_xpad *xpad) {}
|
||||
-static void xpad_stop_output(struct usb_xpad *xpad) {}
|
||||
-#endif
|
||||
|
||||
#ifdef CONFIG_JOYSTICK_XPAD_FF
|
||||
static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect *effect)
|
||||
@@ -692,7 +805,7 @@ static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect
|
||||
|
||||
static int xpad_init_ff(struct usb_xpad *xpad)
|
||||
{
|
||||
- if (xpad->xtype == XTYPE_UNKNOWN)
|
||||
+ if (xpad->xtype == XTYPE_UNKNOWN || xpad->xtype == XTYPE_XBOXONE)
|
||||
return 0;
|
||||
|
||||
input_set_capability(xpad->dev, EV_FF, FF_RUMBLE);
|
||||
@@ -801,6 +914,14 @@ static int xpad_open(struct input_dev *dev)
|
||||
if (usb_submit_urb(xpad->irq_in, GFP_KERNEL))
|
||||
return -EIO;
|
||||
|
||||
+ if (xpad->xtype == XTYPE_XBOXONE) {
|
||||
+ /* Xbox one controller needs to be initialized. */
|
||||
+ xpad->odata[0] = 0x05;
|
||||
+ xpad->odata[1] = 0x20;
|
||||
+ xpad->irq_out->transfer_buffer_length = 2;
|
||||
+ return usb_submit_urb(xpad->irq_out, GFP_KERNEL);
|
||||
+ }
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -816,6 +937,7 @@ static void xpad_close(struct input_dev *dev)
|
||||
|
||||
static void xpad_set_up_abs(struct input_dev *input_dev, signed short abs)
|
||||
{
|
||||
+ struct usb_xpad *xpad = input_get_drvdata(input_dev);
|
||||
set_bit(abs, input_dev->absbit);
|
||||
|
||||
switch (abs) {
|
||||
@@ -827,7 +949,10 @@ static void xpad_set_up_abs(struct input_dev *input_dev, signed short abs)
|
||||
break;
|
||||
case ABS_Z:
|
||||
case ABS_RZ: /* the triggers (if mapped to axes) */
|
||||
- input_set_abs_params(input_dev, abs, 0, 255, 0, 0);
|
||||
+ if (xpad->xtype == XTYPE_XBOXONE)
|
||||
+ input_set_abs_params(input_dev, abs, 0, 1023, 0, 0);
|
||||
+ else
|
||||
+ input_set_abs_params(input_dev, abs, 0, 255, 0, 0);
|
||||
break;
|
||||
case ABS_HAT0X:
|
||||
case ABS_HAT0Y: /* the d-pad (only if dpad is mapped to axes */
|
||||
@@ -842,6 +967,7 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
|
||||
struct usb_xpad *xpad;
|
||||
struct input_dev *input_dev;
|
||||
struct usb_endpoint_descriptor *ep_irq_in;
|
||||
+ int ep_irq_in_idx;
|
||||
int i, error;
|
||||
|
||||
for (i = 0; xpad_device[i].idVendor; i++) {
|
||||
@@ -850,6 +976,16 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
|
||||
break;
|
||||
}
|
||||
|
||||
+ if (xpad_device[i].xtype == XTYPE_XBOXONE &&
|
||||
+ intf->cur_altsetting->desc.bInterfaceNumber != 0) {
|
||||
+ /*
|
||||
+ * The Xbox One controller lists three interfaces all with the
|
||||
+ * same interface class, subclass and protocol. Differentiate by
|
||||
+ * interface number.
|
||||
+ */
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+
|
||||
xpad = kzalloc(sizeof(struct usb_xpad), GFP_KERNEL);
|
||||
input_dev = input_allocate_device();
|
||||
if (!xpad || !input_dev) {
|
||||
@@ -920,7 +1056,8 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
|
||||
__set_bit(xpad_common_btn[i], input_dev->keybit);
|
||||
|
||||
/* set up model-specific ones */
|
||||
- if (xpad->xtype == XTYPE_XBOX360 || xpad->xtype == XTYPE_XBOX360W) {
|
||||
+ if (xpad->xtype == XTYPE_XBOX360 || xpad->xtype == XTYPE_XBOX360W ||
|
||||
+ xpad->xtype == XTYPE_XBOXONE) {
|
||||
for (i = 0; xpad360_btn[i] >= 0; i++)
|
||||
__set_bit(xpad360_btn[i], input_dev->keybit);
|
||||
} else {
|
||||
@@ -933,7 +1070,7 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
|
||||
__set_bit(xpad_btn_pad[i], input_dev->keybit);
|
||||
} else {
|
||||
for (i = 0; xpad_abs_pad[i] >= 0; i++)
|
||||
- xpad_set_up_abs(input_dev, xpad_abs_pad[i]);
|
||||
+ xpad_set_up_abs(input_dev, xpad_abs_pad[i]);
|
||||
}
|
||||
|
||||
if (xpad->mapping & MAP_TRIGGERS_TO_BUTTONS) {
|
||||
@@ -956,7 +1093,10 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
|
||||
if (error)
|
||||
goto fail5;
|
||||
|
||||
- ep_irq_in = &intf->cur_altsetting->endpoint[0].desc;
|
||||
+ /* Xbox One controller has in/out endpoints swapped. */
|
||||
+ ep_irq_in_idx = xpad->xtype == XTYPE_XBOXONE ? 1 : 0;
|
||||
+ ep_irq_in = &intf->cur_altsetting->endpoint[ep_irq_in_idx].desc;
|
||||
+
|
||||
usb_fill_int_urb(xpad->irq_in, udev,
|
||||
usb_rcvintpipe(udev, ep_irq_in->bEndpointAddress),
|
||||
xpad->idata, XPAD_PKT_LEN, xpad_irq_in,
|
||||
--
|
||||
cgit v0.10.1
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
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 */
|
||||
{ }
|
||||
};
|
||||
@@ -1,97 +0,0 @@
|
||||
diff --git a/drivers/media/dvb-frontends/cxd2820r.h b/drivers/media/dvb-frontends/cxd2820r.h
|
||||
index 82b3d93..6095dbc 100644
|
||||
--- a/drivers/media/dvb-frontends/cxd2820r.h
|
||||
+++ b/drivers/media/dvb-frontends/cxd2820r.h
|
||||
@@ -52,6 +52,12 @@ struct cxd2820r_config {
|
||||
*/
|
||||
u8 ts_mode;
|
||||
|
||||
+ /* TS clock inverted.
|
||||
+ * Default: 0
|
||||
+ * Values: 0, 1
|
||||
+ */
|
||||
+ bool ts_clock_inv;
|
||||
+
|
||||
/* IF AGC polarity.
|
||||
* Default: 0
|
||||
* Values: 0, 1
|
||||
diff --git a/drivers/media/dvb-frontends/cxd2820r_c.c b/drivers/media/dvb-frontends/cxd2820r_c.c
|
||||
index 5c6ab49..0f4657e 100644
|
||||
--- a/drivers/media/dvb-frontends/cxd2820r_c.c
|
||||
+++ b/drivers/media/dvb-frontends/cxd2820r_c.c
|
||||
@@ -45,6 +45,7 @@ int cxd2820r_set_frontend_c(struct dvb_frontend *fe)
|
||||
{ 0x1008b, 0x07, 0xff },
|
||||
{ 0x1001f, priv->cfg.if_agc_polarity << 7, 0x80 },
|
||||
{ 0x10070, priv->cfg.ts_mode, 0xff },
|
||||
+ { 0x10071, !priv->cfg.ts_clock_inv << 4, 0x10 },
|
||||
};
|
||||
|
||||
dev_dbg(&priv->i2c->dev, "%s: frequency=%d symbol_rate=%d\n", __func__,
|
||||
diff --git a/drivers/media/dvb-frontends/cxd2820r_t.c b/drivers/media/dvb-frontends/cxd2820r_t.c
|
||||
index fa184ca..9b5a45b 100644
|
||||
--- a/drivers/media/dvb-frontends/cxd2820r_t.c
|
||||
+++ b/drivers/media/dvb-frontends/cxd2820r_t.c
|
||||
@@ -46,6 +46,7 @@ int cxd2820r_set_frontend_t(struct dvb_frontend *fe)
|
||||
{ 0x00088, 0x01, 0xff },
|
||||
|
||||
{ 0x00070, priv->cfg.ts_mode, 0xff },
|
||||
+ { 0x00071, !priv->cfg.ts_clock_inv << 4, 0x10 },
|
||||
{ 0x000cb, priv->cfg.if_agc_polarity << 6, 0x40 },
|
||||
{ 0x000a5, 0x00, 0x01 },
|
||||
{ 0x00082, 0x20, 0x60 },
|
||||
diff --git a/drivers/media/dvb-frontends/cxd2820r_t2.c b/drivers/media/dvb-frontends/cxd2820r_t2.c
|
||||
index 2ba130e..9c0c4f4 100644
|
||||
--- a/drivers/media/dvb-frontends/cxd2820r_t2.c
|
||||
+++ b/drivers/media/dvb-frontends/cxd2820r_t2.c
|
||||
@@ -47,6 +47,7 @@ int cxd2820r_set_frontend_t2(struct dvb_frontend *fe)
|
||||
{ 0x02083, 0x0a, 0xff },
|
||||
{ 0x020cb, priv->cfg.if_agc_polarity << 6, 0x40 },
|
||||
{ 0x02070, priv->cfg.ts_mode, 0xff },
|
||||
+ { 0x02071, !priv->cfg.ts_clock_inv << 6, 0x40 },
|
||||
{ 0x020b5, priv->cfg.spec_inv << 4, 0x10 },
|
||||
{ 0x02567, 0x07, 0x0f },
|
||||
{ 0x02569, 0x03, 0x03 },
|
||||
diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c
|
||||
index ae0f56a..7135a3e 100644
|
||||
--- a/drivers/media/usb/dvb-usb/dw2102.c
|
||||
+++ b/drivers/media/usb/dvb-usb/dw2102.c
|
||||
@@ -1109,6 +1109,7 @@ static struct ds3000_config su3000_ds3000_config = {
|
||||
static struct cxd2820r_config cxd2820r_config = {
|
||||
.i2c_address = 0x6c, /* (0xd8 >> 1) */
|
||||
.ts_mode = 0x38,
|
||||
+ .ts_clock_inv = 1,
|
||||
};
|
||||
|
||||
static struct tda18271_config tda18271_config = {
|
||||
@@ -1387,20 +1388,27 @@ static int su3000_frontend_attach(struct dvb_usb_adapter *d)
|
||||
|
||||
static int t220_frontend_attach(struct dvb_usb_adapter *d)
|
||||
{
|
||||
- u8 obuf[3] = { 0xe, 0x80, 0 };
|
||||
+ u8 obuf[3] = { 0xe, 0x87, 0 };
|
||||
u8 ibuf[] = { 0 };
|
||||
|
||||
if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
|
||||
err("command 0x0e transfer failed.");
|
||||
|
||||
obuf[0] = 0xe;
|
||||
- obuf[1] = 0x83;
|
||||
+ obuf[1] = 0x86;
|
||||
+ obuf[2] = 1;
|
||||
+
|
||||
+ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
|
||||
+ err("command 0x0e transfer failed.");
|
||||
+
|
||||
+ obuf[0] = 0xe;
|
||||
+ obuf[1] = 0x80;
|
||||
obuf[2] = 0;
|
||||
|
||||
if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
|
||||
err("command 0x0e transfer failed.");
|
||||
|
||||
- msleep(100);
|
||||
+ msleep(50);
|
||||
|
||||
obuf[0] = 0xe;
|
||||
obuf[1] = 0x80;
|
||||
|
||||
21
packages/linux/patches/3.17.1/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch
vendored
Normal file
21
packages/linux/patches/3.17.1/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
diff -Naur linux-3.17.1/drivers/media/rc/mceusb.c linux-3.17.1.patch/drivers/media/rc/mceusb.c
|
||||
--- linux-3.17.1/drivers/media/rc/mceusb.c 2014-10-15 12:29:30.000000000 +0200
|
||||
+++ linux-3.17.1.patch/drivers/media/rc/mceusb.c 2014-10-16 11:45:57.480176874 +0200
|
||||
@@ -188,6 +188,8 @@
|
||||
#define VENDOR_TWISTEDMELON 0x2596
|
||||
#define VENDOR_HAUPPAUGE 0x2040
|
||||
#define VENDOR_PCTV 0x2013
|
||||
+#define VENDOR_ADAPTEC 0x03f3
|
||||
+
|
||||
|
||||
enum mceusb_model_type {
|
||||
MCE_GEN2 = 0, /* Most boards */
|
||||
@@ -401,6 +403,8 @@
|
||||
.driver_info = HAUPPAUGE_CX_HYBRID_TV },
|
||||
{ USB_DEVICE(VENDOR_PCTV, 0x025e),
|
||||
.driver_info = HAUPPAUGE_CX_HYBRID_TV },
|
||||
+ /* Adaptec / HP eHome Receiver */
|
||||
+ { USB_DEVICE(VENDOR_ADAPTEC, 0x0094) },
|
||||
|
||||
/* Terminating entry */
|
||||
{ }
|
||||
@@ -3,7 +3,7 @@ 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.16
|
||||
adapted to 3.17
|
||||
|
||||
Betreff: [RFC] hid/sony: add autorepeat for PS3 remotes
|
||||
Von: David Dillow <dave@thedillows.org>
|
||||
@@ -24,13 +24,10 @@ 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 | 20 ++++++++++++++++++++
|
||||
1 files changed, 20 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
|
||||
--- a/drivers/hid/hid-sony.c
|
||||
+++ b/drivers/hid/hid-sony.c
|
||||
@@ -819,6 +819,24 @@ static int ps3remote_mapping(struct hid_
|
||||
diff -Naur linux-3.17.1/drivers/hid/hid-sony.c linux-3.17.1.patch/drivers/hid/hid-sony.c
|
||||
--- linux-3.17.1/drivers/hid/hid-sony.c 2014-10-15 12:29:30.000000000 +0200
|
||||
+++ linux-3.17.1.patch/drivers/hid/hid-sony.c 2014-10-16 12:55:43.979181366 +0200
|
||||
@@ -875,6 +875,25 @@
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -52,10 +49,11 @@ diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
|
||||
/* Sony Vaio VGX has wrongly mouse pointer declared as constant */
|
||||
+
|
||||
static __u8 *sony_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
||||
@@ -1892,6 +1910,8 @@ static int sony_probe(struct hid_device
|
||||
unsigned int *rsize)
|
||||
{
|
||||
@@ -1932,6 +1951,8 @@
|
||||
goto err_stop;
|
||||
|
||||
sony_init_work(sc, dualshock4_state_worker);
|
||||
@@ -64,6 +62,3 @@ diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
|
||||
} else {
|
||||
ret = 0;
|
||||
}
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -1,8 +1,49 @@
|
||||
From 36a453623c141f69f5f72337e0d0180dbc19b014 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Mon, 6 Oct 2014 12:39:47 +0300
|
||||
Subject: [PATCH] dvbsky
|
||||
|
||||
---
|
||||
drivers/media/dvb-frontends/Kconfig | 14 +
|
||||
drivers/media/dvb-frontends/Makefile | 3 +-
|
||||
drivers/media/dvb-frontends/dvbsky_m88dc2800.c | 2124 ++++++++++++++++++++
|
||||
drivers/media/dvb-frontends/dvbsky_m88dc2800.h | 44 +
|
||||
drivers/media/dvb-frontends/dvbsky_m88ds3103.c | 1707 ++++++++++++++++
|
||||
drivers/media/dvb-frontends/dvbsky_m88ds3103.h | 53 +
|
||||
.../media/dvb-frontends/dvbsky_m88ds3103_priv.h | 403 ++++
|
||||
drivers/media/pci/cx23885/Kconfig | 2 +
|
||||
drivers/media/pci/cx23885/cimax2.c | 23 +-
|
||||
drivers/media/pci/cx23885/cimax2.h | 4 +-
|
||||
drivers/media/pci/cx23885/cx23885-cards.c | 182 ++
|
||||
drivers/media/pci/cx23885/cx23885-core.c | 6 +
|
||||
drivers/media/pci/cx23885/cx23885-dvb.c | 179 ++-
|
||||
drivers/media/pci/cx23885/cx23885-input.c | 24 +
|
||||
drivers/media/pci/cx23885/cx23885.h | 10 +-
|
||||
drivers/media/pci/cx88/Kconfig | 1 +
|
||||
drivers/media/pci/cx88/cx88-cards.c | 22 +
|
||||
drivers/media/pci/cx88/cx88-dvb.c | 85 +
|
||||
drivers/media/pci/cx88/cx88-input.c | 4 +
|
||||
drivers/media/pci/cx88/cx88.h | 1 +
|
||||
drivers/media/rc/keymaps/Makefile | 1 +
|
||||
drivers/media/rc/keymaps/rc-dvbsky.c | 78 +
|
||||
drivers/media/usb/dvb-usb-v2/Kconfig | 6 +
|
||||
drivers/media/usb/dvb-usb-v2/Makefile | 3 +
|
||||
drivers/media/usb/dvb-usb-v2/dvbsky.c | 739 +++++++
|
||||
include/media/rc-map.h | 1 +
|
||||
26 files changed, 5714 insertions(+), 5 deletions(-)
|
||||
create mode 100644 drivers/media/dvb-frontends/dvbsky_m88dc2800.c
|
||||
create mode 100644 drivers/media/dvb-frontends/dvbsky_m88dc2800.h
|
||||
create mode 100644 drivers/media/dvb-frontends/dvbsky_m88ds3103.c
|
||||
create mode 100644 drivers/media/dvb-frontends/dvbsky_m88ds3103.h
|
||||
create mode 100644 drivers/media/dvb-frontends/dvbsky_m88ds3103_priv.h
|
||||
create mode 100644 drivers/media/rc/keymaps/rc-dvbsky.c
|
||||
create mode 100644 drivers/media/usb/dvb-usb-v2/dvbsky.c
|
||||
|
||||
diff --git a/drivers/media/dvb-frontends/Kconfig b/drivers/media/dvb-frontends/Kconfig
|
||||
index 49db718..6ddcfc9 100644
|
||||
index 8587675..b78ad4b 100644
|
||||
--- a/drivers/media/dvb-frontends/Kconfig
|
||||
+++ b/drivers/media/dvb-frontends/Kconfig
|
||||
@@ -248,6 +248,20 @@ config DVB_CX24117
|
||||
@@ -230,6 +230,20 @@ config DVB_CX24117
|
||||
help
|
||||
A Dual DVB-S/S2 tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
@@ -24,11 +65,11 @@ index 49db718..6ddcfc9 100644
|
||||
tristate "Silicon Labs SI21XX based"
|
||||
depends on DVB_CORE && I2C
|
||||
diff --git a/drivers/media/dvb-frontends/Makefile b/drivers/media/dvb-frontends/Makefile
|
||||
index 9b21488..edaae0d 100644
|
||||
index 4629ee8..941b247 100644
|
||||
--- a/drivers/media/dvb-frontends/Makefile
|
||||
+++ b/drivers/media/dvb-frontends/Makefile
|
||||
@@ -112,4 +112,5 @@ obj-$(CONFIG_DVB_RTL2830) += rtl2830.o
|
||||
obj-$(CONFIG_DVB_RTL2832) += rtl2832.o
|
||||
@@ -117,4 +117,5 @@ obj-$(CONFIG_DVB_RTL2832) += rtl2832.o
|
||||
obj-$(CONFIG_DVB_RTL2832_SDR) += rtl2832_sdr.o
|
||||
obj-$(CONFIG_DVB_M88RS2000) += m88rs2000.o
|
||||
obj-$(CONFIG_DVB_AF9033) += af9033.o
|
||||
-
|
||||
@@ -4396,7 +4437,7 @@ index 0000000..dfb3f8b
|
||||
+
|
||||
+#endif /* dvbsky_m88ds3103_PRIV_H */
|
||||
diff --git a/drivers/media/pci/cx23885/Kconfig b/drivers/media/pci/cx23885/Kconfig
|
||||
index d1dcb1d..a5fbc89 100644
|
||||
index e12c006..7b769f7 100644
|
||||
--- a/drivers/media/pci/cx23885/Kconfig
|
||||
+++ b/drivers/media/pci/cx23885/Kconfig
|
||||
@@ -23,6 +23,8 @@ config VIDEO_CX23885
|
||||
@@ -4469,7 +4510,7 @@ index 518744a..39f3db7 100644
|
||||
+
|
||||
#endif
|
||||
diff --git a/drivers/media/pci/cx23885/cx23885-cards.c b/drivers/media/pci/cx23885/cx23885-cards.c
|
||||
index 79f20c8..cb00710 100644
|
||||
index c2b6080..51b8b56 100644
|
||||
--- a/drivers/media/pci/cx23885/cx23885-cards.c
|
||||
+++ b/drivers/media/pci/cx23885/cx23885-cards.c
|
||||
@@ -613,6 +613,34 @@ struct cx23885_board cx23885_boards[] = {
|
||||
@@ -4507,7 +4548,7 @@ index 79f20c8..cb00710 100644
|
||||
[CX23885_BOARD_PROF_8000] = {
|
||||
.name = "Prof Revolution DVB-S2 8000",
|
||||
.portb = CX23885_MPEG_DVB,
|
||||
@@ -874,6 +902,30 @@ struct cx23885_subid cx23885_subids[] = {
|
||||
@@ -903,6 +931,30 @@ struct cx23885_subid cx23885_subids[] = {
|
||||
.subdevice = 0x9022,
|
||||
.card = CX23885_BOARD_TEVII_S471,
|
||||
}, {
|
||||
@@ -4538,7 +4579,7 @@ index 79f20c8..cb00710 100644
|
||||
.subvendor = 0x8000,
|
||||
.subdevice = 0x3034,
|
||||
.card = CX23885_BOARD_PROF_8000,
|
||||
@@ -1483,9 +1535,84 @@ void cx23885_gpio_setup(struct cx23885_dev *dev)
|
||||
@@ -1528,9 +1580,84 @@ void cx23885_gpio_setup(struct cx23885_dev *dev)
|
||||
cx_set(GP0_IO, 0x00040004);
|
||||
mdelay(60);
|
||||
break;
|
||||
@@ -4623,7 +4664,7 @@ index 79f20c8..cb00710 100644
|
||||
int cx23885_ir_init(struct cx23885_dev *dev)
|
||||
{
|
||||
static struct v4l2_subdev_io_pin_config ir_rxtx_pin_cfg[] = {
|
||||
@@ -1573,6 +1700,23 @@ int cx23885_ir_init(struct cx23885_dev *dev)
|
||||
@@ -1618,6 +1745,23 @@ int cx23885_ir_init(struct cx23885_dev *dev)
|
||||
v4l2_subdev_call(dev->sd_cx25840, core, s_io_pin_config,
|
||||
ir_rx_pin_cfg_count, ir_rx_pin_cfg);
|
||||
break;
|
||||
@@ -4647,7 +4688,7 @@ index 79f20c8..cb00710 100644
|
||||
case CX23885_BOARD_HAUPPAUGE_HVR1250:
|
||||
if (!enable_885_ir)
|
||||
break;
|
||||
@@ -1602,6 +1746,12 @@ void cx23885_ir_fini(struct cx23885_dev *dev)
|
||||
@@ -1648,6 +1792,12 @@ void cx23885_ir_fini(struct cx23885_dev *dev)
|
||||
cx23888_ir_remove(dev);
|
||||
dev->sd_ir = NULL;
|
||||
break;
|
||||
@@ -4660,7 +4701,7 @@ index 79f20c8..cb00710 100644
|
||||
case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
|
||||
case CX23885_BOARD_TEVII_S470:
|
||||
case CX23885_BOARD_HAUPPAUGE_HVR1250:
|
||||
@@ -1649,6 +1799,12 @@ void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
|
||||
@@ -1695,6 +1845,12 @@ void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
|
||||
if (dev->sd_ir)
|
||||
cx23885_irq_add_enable(dev, PCI_MSK_IR);
|
||||
break;
|
||||
@@ -4673,7 +4714,7 @@ index 79f20c8..cb00710 100644
|
||||
case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
|
||||
case CX23885_BOARD_TEVII_S470:
|
||||
case CX23885_BOARD_HAUPPAUGE_HVR1250:
|
||||
@@ -1752,6 +1908,10 @@ void cx23885_card_setup(struct cx23885_dev *dev)
|
||||
@@ -1800,6 +1956,10 @@ void cx23885_card_setup(struct cx23885_dev *dev)
|
||||
ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */
|
||||
ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
|
||||
break;
|
||||
@@ -4684,9 +4725,9 @@ index 79f20c8..cb00710 100644
|
||||
case CX23885_BOARD_TEVII_S470:
|
||||
case CX23885_BOARD_TEVII_S471:
|
||||
case CX23885_BOARD_DVBWORLD_2005:
|
||||
@@ -1800,6 +1960,22 @@ void cx23885_card_setup(struct cx23885_dev *dev)
|
||||
ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */
|
||||
ts1->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
|
||||
@@ -1851,6 +2011,22 @@ void cx23885_card_setup(struct cx23885_dev *dev)
|
||||
ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
|
||||
ts2->src_sel_val = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
|
||||
break;
|
||||
+ case CX23885_BOARD_DVBSKY_S952:
|
||||
+ ts1->gen_ctrl_val = 0x5; /* Parallel */
|
||||
@@ -4707,7 +4748,7 @@ index 79f20c8..cb00710 100644
|
||||
case CX23885_BOARD_HAUPPAUGE_HVR1250:
|
||||
case CX23885_BOARD_HAUPPAUGE_HVR1500:
|
||||
case CX23885_BOARD_HAUPPAUGE_HVR1500Q:
|
||||
@@ -1857,6 +2033,12 @@ void cx23885_card_setup(struct cx23885_dev *dev)
|
||||
@@ -1910,6 +2086,12 @@ void cx23885_card_setup(struct cx23885_dev *dev)
|
||||
case CX23885_BOARD_MPX885:
|
||||
case CX23885_BOARD_MYGICA_X8507:
|
||||
case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
|
||||
@@ -4745,10 +4786,10 @@ index edcd79d..4b57eef 100644
|
||||
break;
|
||||
}
|
||||
diff --git a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/cx23885-dvb.c
|
||||
index 0549205..201523a 100644
|
||||
index 968fecc..966e1d0 100644
|
||||
--- a/drivers/media/pci/cx23885/cx23885-dvb.c
|
||||
+++ b/drivers/media/pci/cx23885/cx23885-dvb.c
|
||||
@@ -52,6 +52,8 @@
|
||||
@@ -53,6 +53,8 @@
|
||||
#include "lnbh24.h"
|
||||
#include "cx24116.h"
|
||||
#include "cx24117.h"
|
||||
@@ -4757,7 +4798,7 @@ index 0549205..201523a 100644
|
||||
#include "cimax2.h"
|
||||
#include "lgs8gxx.h"
|
||||
#include "netup-eeprom.h"
|
||||
@@ -507,6 +509,93 @@ static struct xc5000_config mygica_x8507_xc5000_config = {
|
||||
@@ -515,6 +517,93 @@ static struct xc5000_config mygica_x8507_xc5000_config = {
|
||||
.if_khz = 4000,
|
||||
};
|
||||
|
||||
@@ -4851,7 +4892,7 @@ index 0549205..201523a 100644
|
||||
static struct stv090x_config prof_8000_stv090x_config = {
|
||||
.device = STV0903,
|
||||
.demod_mode = STV090x_SINGLE,
|
||||
@@ -1311,6 +1400,57 @@ static int dvb_register(struct cx23885_tsport *port)
|
||||
@@ -1452,6 +1541,57 @@ static int dvb_register(struct cx23885_tsport *port)
|
||||
&tevii_ts2020_config, &i2c_bus->i2c_adap);
|
||||
}
|
||||
break;
|
||||
@@ -4909,7 +4950,7 @@ index 0549205..201523a 100644
|
||||
case CX23885_BOARD_PROF_8000:
|
||||
i2c_bus = &dev->i2c_bus[0];
|
||||
|
||||
@@ -1386,7 +1526,7 @@ static int dvb_register(struct cx23885_tsport *port)
|
||||
@@ -1548,7 +1688,7 @@ static int dvb_register(struct cx23885_tsport *port)
|
||||
printk(KERN_INFO "NetUP Dual DVB-S2 CI card port%d MAC=%pM\n",
|
||||
port->nr, port->frontends.adapter.proposed_mac);
|
||||
|
||||
@@ -4918,7 +4959,7 @@ index 0549205..201523a 100644
|
||||
break;
|
||||
}
|
||||
case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF: {
|
||||
@@ -1413,6 +1553,41 @@ static int dvb_register(struct cx23885_tsport *port)
|
||||
@@ -1575,6 +1715,41 @@ static int dvb_register(struct cx23885_tsport *port)
|
||||
memcpy(port->frontends.adapter.proposed_mac, eeprom + 0xa0, 6);
|
||||
break;
|
||||
}
|
||||
@@ -4960,7 +5001,7 @@ index 0549205..201523a 100644
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -1495,6 +1670,8 @@ int cx23885_dvb_unregister(struct cx23885_tsport *port)
|
||||
@@ -1657,6 +1832,8 @@ int cx23885_dvb_unregister(struct cx23885_tsport *port)
|
||||
|
||||
switch (port->dev->board) {
|
||||
case CX23885_BOARD_NETUP_DUAL_DVBS2_CI:
|
||||
@@ -4970,7 +5011,7 @@ index 0549205..201523a 100644
|
||||
break;
|
||||
case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF:
|
||||
diff --git a/drivers/media/pci/cx23885/cx23885-input.c b/drivers/media/pci/cx23885/cx23885-input.c
|
||||
index 8a49e7c..a5e4639 100644
|
||||
index 1940c18..af20f25 100644
|
||||
--- a/drivers/media/pci/cx23885/cx23885-input.c
|
||||
+++ b/drivers/media/pci/cx23885/cx23885-input.c
|
||||
@@ -89,6 +89,12 @@ void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events)
|
||||
@@ -5019,14 +5060,14 @@ index 8a49e7c..a5e4639 100644
|
||||
/* Integrated CX23885 IR controller */
|
||||
driver_type = RC_DRIVER_IR_RAW;
|
||||
diff --git a/drivers/media/pci/cx23885/cx23885.h b/drivers/media/pci/cx23885/cx23885.h
|
||||
index 0fa4048..7084a4e 100644
|
||||
index 0e086c0..f870b83 100644
|
||||
--- a/drivers/media/pci/cx23885/cx23885.h
|
||||
+++ b/drivers/media/pci/cx23885/cx23885.h
|
||||
@@ -97,6 +97,14 @@
|
||||
#define CX23885_BOARD_TBS_6980 41
|
||||
#define CX23885_BOARD_LEADTEK_WINFAST_PXPVR2200 42
|
||||
@@ -99,6 +99,14 @@
|
||||
#define CX23885_BOARD_HAUPPAUGE_IMPACTVCBE 43
|
||||
#define CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP2 44
|
||||
|
||||
+#define CX23885_BOARD_BASE_INDEX 43
|
||||
+#define CX23885_BOARD_BASE_INDEX 45
|
||||
+#define CX23885_BOARD_BST_PS8512 (CX23885_BOARD_BASE_INDEX)
|
||||
+#define CX23885_BOARD_DVBSKY_S952 (CX23885_BOARD_BASE_INDEX+1)
|
||||
+#define CX23885_BOARD_DVBSKY_S950 (CX23885_BOARD_BASE_INDEX+2)
|
||||
@@ -5037,7 +5078,7 @@ index 0fa4048..7084a4e 100644
|
||||
#define GPIO_0 0x00000001
|
||||
#define GPIO_1 0x00000002
|
||||
#define GPIO_2 0x00000004
|
||||
@@ -234,7 +242,7 @@ struct cx23885_board {
|
||||
@@ -236,7 +244,7 @@ struct cx23885_board {
|
||||
*/
|
||||
u32 clk_freq;
|
||||
struct cx23885_input input[MAX_CX23885_INPUT];
|
||||
@@ -5223,11 +5264,11 @@ index 053ed1b..955b916 100644
|
||||
case CX88_BOARD_TBS_8920:
|
||||
case CX88_BOARD_PROF_7300:
|
||||
diff --git a/drivers/media/pci/cx88/cx88-input.c b/drivers/media/pci/cx88/cx88-input.c
|
||||
index f29e18c..42a911c 100644
|
||||
index 3f1342c..2d1fd27 100644
|
||||
--- a/drivers/media/pci/cx88/cx88-input.c
|
||||
+++ b/drivers/media/pci/cx88/cx88-input.c
|
||||
@@ -419,6 +419,10 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
|
||||
rc_type = RC_BIT_NEC;
|
||||
@@ -435,6 +435,10 @@ int cx88_ir_init(struct cx88_core *core, struct pci_dev *pci)
|
||||
ir_codes = RC_MAP_TWINHAN_VP1027_DVBS;
|
||||
ir->sampling = 0xff00; /* address */
|
||||
break;
|
||||
+ case CX88_BOARD_BST_PS8312:
|
||||
@@ -5346,10 +5387,10 @@ index 0000000..bfc41fb
|
||||
+MODULE_LICENSE("GPL");
|
||||
+MODULE_AUTHOR("Nibble Max <nibble.max@gmail.com>");
|
||||
diff --git a/drivers/media/usb/dvb-usb-v2/Kconfig b/drivers/media/usb/dvb-usb-v2/Kconfig
|
||||
index 2059d0c..24a4ec2 100644
|
||||
index 66645b0..e2f282b 100644
|
||||
--- a/drivers/media/usb/dvb-usb-v2/Kconfig
|
||||
+++ b/drivers/media/usb/dvb-usb-v2/Kconfig
|
||||
@@ -147,3 +147,9 @@ config DVB_USB_RTL28XXU
|
||||
@@ -141,3 +141,9 @@ config DVB_USB_RTL28XXU
|
||||
help
|
||||
Say Y here to support the Realtek RTL28xxU DVB USB receiver.
|
||||
|
||||
@@ -5360,10 +5401,10 @@ index 2059d0c..24a4ec2 100644
|
||||
+ help
|
||||
+ Say Y here to support the USB receivers from DVBSky.
|
||||
diff --git a/drivers/media/usb/dvb-usb-v2/Makefile b/drivers/media/usb/dvb-usb-v2/Makefile
|
||||
index 2c06714..926f12d 100644
|
||||
index bc38f03..f10d4df 100644
|
||||
--- a/drivers/media/usb/dvb-usb-v2/Makefile
|
||||
+++ b/drivers/media/usb/dvb-usb-v2/Makefile
|
||||
@@ -40,6 +40,9 @@ obj-$(CONFIG_DVB_USB_MXL111SF) += mxl111sf-tuner.o
|
||||
@@ -37,6 +37,9 @@ obj-$(CONFIG_DVB_USB_MXL111SF) += mxl111sf-tuner.o
|
||||
dvb-usb-rtl28xxu-objs := rtl28xxu.o
|
||||
obj-$(CONFIG_DVB_USB_RTL28XXU) += dvb-usb-rtl28xxu.o
|
||||
|
||||
@@ -5858,7 +5899,7 @@ index 0000000..9033d92
|
||||
+ dprintk("rc code: %x", code);
|
||||
+ toggle = (code & 0x800) ? 1 : 0;
|
||||
+ code &= 0x3f;
|
||||
+ rc_keydown(d->rc_dev, code, toggle);
|
||||
+ rc_keydown(d->rc_dev, RC_TYPE_UNKNOWN, code, toggle);
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
@@ -6119,10 +6160,10 @@ index 0000000..9033d92
|
||||
+MODULE_DESCRIPTION("Driver for DVBSky USB2.0");
|
||||
+MODULE_LICENSE("GPL");
|
||||
diff --git a/include/media/rc-map.h b/include/media/rc-map.h
|
||||
index a20ed97..73f8c92 100644
|
||||
index 80f9518..e7a1514 100644
|
||||
--- a/include/media/rc-map.h
|
||||
+++ b/include/media/rc-map.h
|
||||
@@ -119,6 +119,7 @@ void rc_map_init(void);
|
||||
@@ -135,6 +135,7 @@ void rc_map_init(void);
|
||||
#define RC_MAP_DM1105_NEC "rc-dm1105-nec"
|
||||
#define RC_MAP_DNTV_LIVE_DVBT_PRO "rc-dntv-live-dvbt-pro"
|
||||
#define RC_MAP_DNTV_LIVE_DVB_T "rc-dntv-live-dvb-t"
|
||||
@@ -6130,3 +6171,6 @@ index a20ed97..73f8c92 100644
|
||||
#define RC_MAP_EMPTY "rc-empty"
|
||||
#define RC_MAP_EM_TERRATEC "rc-em-terratec"
|
||||
#define RC_MAP_ENCORE_ENLTV2 "rc-encore-enltv2"
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -2267,7 +2267,7 @@ index 0000000..f4777f2
|
||||
+ rc5_system = (dwIRCode & 0x7C0) >> 6;
|
||||
+ toggle = (dwIRCode & 0x800) ? 1 : 0;
|
||||
+ scancode = rc5_system << 8 | rc5_command;
|
||||
+ rc_keydown(rc_dev, scancode, toggle);
|
||||
+ rc_keydown(rc_dev, RC_TYPE_UNKNOWN, scancode, toggle);
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user