diff --git a/packages/linux/package.mk b/packages/linux/package.mk index af0ce00864..d96a0a0004 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -40,8 +40,8 @@ case "$LINUX" in PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET imx6-status-led imx6-soc-fan" ;; *) - PKG_VERSION="4.3.2" - PKG_URL="http://www.kernel.org/pub/linux/kernel/v4.x/$PKG_NAME-$PKG_VERSION.tar.xz" + PKG_VERSION="4.4-rc5" + PKG_URL="http://www.kernel.org/pub/linux/kernel/v4.x/testing/$PKG_NAME-$PKG_VERSION.tar.xz" ;; esac diff --git a/packages/linux/patches/4.3.2/linux-063-xpad-fix_xbox360_wireless.patch b/packages/linux/patches/4.3.2/linux-063-xpad-fix_xbox360_wireless.patch deleted file mode 100644 index d0c30cbb0e..0000000000 --- a/packages/linux/patches/4.3.2/linux-063-xpad-fix_xbox360_wireless.patch +++ /dev/null @@ -1,1078 +0,0 @@ -From e99d241a9074888a6c1da714bcdd64c45cf19d3b Mon Sep 17 00:00:00 2001 -From: Matt DeVillier -Date: Mon, 26 Oct 2015 18:02:08 -0500 -Subject: [PATCH 1/1] linux/drivers/input/joystick/xpad: fixes for xbox360/one controllers - -merged from https://github.com/paroj/xpad - -- fixed blinking LED on Xbox 360 Wireless Controllers -- only expose actually connected Xbox 360 Wireless Controllers -- fixed kernel warnings due to submitting active URB requests -- updated Xbox One controller force feedback -- controller still works after suspend/ resume -- Xbox 360 Wireless button mappings are now compatible with Xbox 360 (non-wireless) mappings - -Signed-off-by: Matt DeVillier ---- - drivers/input/joystick/xpad.c | 715 +++++++++++++++++++++++++----------------- - 1 file changed, 431 insertions(+), 284 deletions(-) - -diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c -index f8850f9..3ba9914 100644 ---- a/drivers/input/joystick/xpad.c -+++ b/drivers/input/joystick/xpad.c -@@ -74,7 +74,7 @@ - * - * Later changes can be tracked in SCM. - */ -- -+#define DEBUG - #include - #include - #include -@@ -125,6 +125,7 @@ static const struct xpad_device { - { 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, 0x02dd, "Microsoft X-Box One pad (Covert Forces)", 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 }, -@@ -204,7 +205,7 @@ static const struct xpad_device { - { 0x1bad, 0xf900, "Harmonix Xbox 360 Controller", 0, XTYPE_XBOX360 }, - { 0x1bad, 0xf901, "Gamestop Xbox 360 Controller", 0, XTYPE_XBOX360 }, - { 0x1bad, 0xf903, "Tron Xbox 360 controller", 0, XTYPE_XBOX360 }, -- { 0x24c6, 0x5000, "Razer Atrox Arcade Stick", 0, XTYPE_XBOX360 }, -+ { 0x24c6, 0x5000, "Razer Atrox Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, - { 0x24c6, 0x5300, "PowerA MINI PROEX Controller", 0, XTYPE_XBOX360 }, - { 0x24c6, 0x5303, "Xbox Airflo wired controller", 0, XTYPE_XBOX360 }, - { 0x24c6, 0x5500, "Hori XBOX 360 EX 2 with Turbo", 0, XTYPE_XBOX360 }, -@@ -242,7 +243,6 @@ static const signed short xpad_btn_triggers[] = { - -1 - }; - -- - static const signed short xpad360_btn[] = { /* buttons for x360 controller */ - BTN_TL, BTN_TR, /* Button LB/RB */ - BTN_MODE, /* The big X button */ -@@ -328,13 +328,17 @@ struct usb_xpad { - unsigned char *idata; /* input data */ - dma_addr_t idata_dma; - -- struct urb *bulk_out; -- unsigned char *bdata; -- - struct urb *irq_out; /* urb for interrupt out report */ -+ int irq_out_active; /* we must not use an active URB */ - unsigned char *odata; /* output data */ - dma_addr_t odata_dma; -- struct mutex odata_mutex; -+ spinlock_t odata_lock; -+ -+ unsigned char rum_odata[XPAD_PKT_LEN]; /* cache for rumble data */ -+ unsigned char led_odata[XPAD_PKT_LEN]; /* cache for led data */ -+ unsigned pend_rum; /* length of cached rumble data */ -+ unsigned pend_led; /* length of cached led data */ -+ int force_led; /* force send led cache next */ - - #if defined(CONFIG_JOYSTICK_XPAD_LEDS) - struct xpad_led *led; -@@ -344,9 +348,15 @@ struct usb_xpad { - - int mapping; /* map d-pad to buttons or to axes */ - int xtype; /* type of xbox device */ -- unsigned long led_no; /* led to lit on xbox360 controllers */ -+ int pad_nr; /* the order x360 pads were attached */ -+ const char *name; /* name of the device */ -+ struct work_struct work; /* init/remove device from callback */ -+ unsigned char odata_serial; /* serial number for xbox one protocol */ - }; - -+static int xpad_init_input(struct usb_xpad *xpad); -+static void xpad_deinit_input(struct usb_xpad *xpad); -+ - /* - * xpad_process_packet - * -@@ -356,7 +366,6 @@ struct usb_xpad { - * The used report descriptor was taken from ITO Takayukis website: - * http://euc.jp/periphs/xbox-controller.ja.html - */ -- - static void xpad_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *data) - { - struct input_dev *dev = xpad->dev; -@@ -439,7 +448,16 @@ static void xpad360_process_packet(struct usb_xpad *xpad, - input_report_key(dev, BTN_TRIGGER_HAPPY2, data[2] & 0x08); - input_report_key(dev, BTN_TRIGGER_HAPPY3, data[2] & 0x01); - input_report_key(dev, BTN_TRIGGER_HAPPY4, data[2] & 0x02); -- } else { -+ } -+ -+ /* -+ * This should be a simple else block. However historically -+ * xbox360w has mapped DPAD to buttons while xbox360 did not. This -+ * made no sense, but now we can not just switch back and have to -+ * support both behaviors. -+ */ -+ if (!(xpad->mapping & MAP_DPAD_TO_BUTTONS) || -+ xpad->xtype == XTYPE_XBOX360W) { - input_report_abs(dev, ABS_HAT0X, - !!(data[2] & 0x08) - !!(data[2] & 0x04)); - input_report_abs(dev, ABS_HAT0Y, -@@ -491,6 +509,22 @@ static void xpad360_process_packet(struct usb_xpad *xpad, - - static void xpad_identify_controller(struct usb_xpad *xpad); - -+static void presence_work_function(struct work_struct *work) -+{ -+ struct usb_xpad *xpad = container_of(work, struct usb_xpad, work); -+ int error; -+ -+ if (xpad->pad_present) { -+ error = xpad_init_input(xpad); -+ if (error) { -+ /* complain only, not much else we can do here */ -+ dev_err(&xpad->dev->dev, "unable to init device\n"); -+ } -+ } else { -+ xpad_deinit_input(xpad); -+ } -+} -+ - /* - * xpad360w_process_packet - * -@@ -505,21 +539,18 @@ static void xpad_identify_controller(struct usb_xpad *xpad); - * 01.1 - Pad state (Bytes 4+) valid - * - */ -- - static void xpad360w_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *data) - { -+ int presence; -+ - /* Presence change */ - if (data[0] & 0x08) { -- if (data[1] & 0x80) { -- xpad->pad_present = 1; -- usb_submit_urb(xpad->bulk_out, GFP_ATOMIC); -- /* -- * Light up the segment corresponding to -- * controller number. -- */ -- xpad_identify_controller(xpad); -- } else -- xpad->pad_present = 0; -+ presence = (data[1] & 0x80) != 0; -+ -+ if (xpad->pad_present != presence) { -+ xpad->pad_present = presence; -+ schedule_work(&xpad->work); -+ } - } - - /* Valid pad data */ -@@ -674,40 +705,40 @@ exit: - __func__, retval); - } - --static void xpad_bulk_out(struct urb *urb) --{ -- struct usb_xpad *xpad = urb->context; -- struct device *dev = &xpad->intf->dev; -- -- switch (urb->status) { -- case 0: -- /* success */ -- break; -- case -ECONNRESET: -- case -ENOENT: -- case -ESHUTDOWN: -- /* this urb is terminated, clean up */ -- dev_dbg(dev, "%s - urb shutting down with status: %d\n", -- __func__, urb->status); -- break; -- default: -- dev_dbg(dev, "%s - nonzero urb status received: %d\n", -- __func__, urb->status); -- } --} -- - static void xpad_irq_out(struct urb *urb) - { - struct usb_xpad *xpad = urb->context; - struct device *dev = &xpad->intf->dev; - int retval, status; -+ unsigned long flags; - - status = urb->status; - - switch (status) { - case 0: - /* success */ -- return; -+ if(!xpad->pend_led && !xpad->pend_rum) { -+ xpad->irq_out_active = 0; -+ return; -+ } -+ -+ spin_lock_irqsave(&xpad->odata_lock, flags); -+ -+ if(xpad->pend_led && (!xpad->pend_rum || xpad->force_led)) { -+ xpad->irq_out->transfer_buffer_length = xpad->pend_led; -+ memcpy(xpad->odata, xpad->led_odata, xpad->pend_led); -+ xpad->pend_led = 0; -+ xpad->force_led = 0; -+ dev_dbg(dev, "%s - sending pending led\n", __func__); -+ break; -+ } -+ -+ xpad->irq_out->transfer_buffer_length = xpad->pend_rum; -+ memcpy(xpad->odata, xpad->rum_odata, xpad->pend_rum); -+ xpad->pend_rum = 0; -+ xpad->force_led = 1; -+ dev_dbg(dev, "%s - sending pending rumble\n", __func__); -+ break; - - case -ECONNRESET: - case -ENOENT: -@@ -715,16 +746,19 @@ static void xpad_irq_out(struct urb *urb) - /* this urb is terminated, clean up */ - dev_dbg(dev, "%s - urb shutting down with status: %d\n", - __func__, status); -+ xpad->irq_out_active = 0; - return; - - default: - dev_dbg(dev, "%s - nonzero urb status received: %d\n", - __func__, status); -- goto exit; -+ -+ spin_lock_irqsave(&xpad->odata_lock, flags); -+ break; - } - --exit: - retval = usb_submit_urb(urb, GFP_ATOMIC); -+ spin_unlock_irqrestore(&xpad->odata_lock, flags); - if (retval) - dev_err(dev, "%s - usb_submit_urb failed with result %d\n", - __func__, retval); -@@ -734,7 +768,6 @@ 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) - return 0; -@@ -742,16 +775,18 @@ static int xpad_init_output(struct usb_interface *intf, struct usb_xpad *xpad) - xpad->odata = usb_alloc_coherent(xpad->udev, XPAD_PKT_LEN, - GFP_KERNEL, &xpad->odata_dma); - if (!xpad->odata) { -- error = -ENOMEM; -- goto fail1; -+ return -ENOMEM; - } - -- mutex_init(&xpad->odata_mutex); -+ spin_lock_init(&xpad->odata_lock); -+ xpad->pend_led = 0; -+ xpad->pend_rum = 0; -+ xpad->force_led = 0; - - xpad->irq_out = usb_alloc_urb(0, GFP_KERNEL); - if (!xpad->irq_out) { -- error = -ENOMEM; -- goto fail2; -+ usb_free_coherent(xpad->udev, XPAD_PKT_LEN, xpad->odata, xpad->odata_dma); -+ return -ENOMEM; - } - - /* Xbox One controller has in/out endpoints swapped. */ -@@ -766,9 +801,6 @@ static int xpad_init_output(struct usb_interface *intf, struct usb_xpad *xpad) - xpad->irq_out->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; - - return 0; -- -- fail2: usb_free_coherent(xpad->udev, XPAD_PKT_LEN, xpad->odata, xpad->odata_dma); -- fail1: return error; - } - - static void xpad_stop_output(struct usb_xpad *xpad) -@@ -786,84 +818,143 @@ static void xpad_deinit_output(struct usb_xpad *xpad) - } - } - -+static int xpad_inquiry_pad_presence(struct usb_xpad *xpad) -+{ -+ int retval; -+ unsigned long flags; -+ -+ spin_lock_irqsave(&xpad->odata_lock, flags); -+ -+ xpad->odata[0] = 0x08; -+ xpad->odata[1] = 0x00; -+ xpad->odata[2] = 0x0F; -+ xpad->odata[3] = 0xC0; -+ xpad->odata[4] = 0x00; -+ xpad->odata[5] = 0x00; -+ xpad->odata[6] = 0x00; -+ xpad->odata[7] = 0x00; -+ xpad->odata[8] = 0x00; -+ xpad->odata[9] = 0x00; -+ xpad->odata[10] = 0x00; -+ xpad->odata[11] = 0x00; -+ xpad->irq_out->transfer_buffer_length = 12; -+ -+ if (!xpad->irq_out_active) { -+ retval = usb_submit_urb(xpad->irq_out, GFP_KERNEL); -+ xpad->irq_out_active = 1; -+ } else { -+ dev_dbg(&xpad->dev->dev, "%s - dropped, irq_out is active\n", -+ __func__); -+ retval = -EIO; -+ } -+ -+ spin_unlock_irqrestore(&xpad->odata_lock, flags); -+ -+ return retval; -+} -+ - #ifdef CONFIG_JOYSTICK_XPAD_FF - static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect *effect) - { - struct usb_xpad *xpad = input_get_drvdata(dev); -+ __u16 strong; -+ __u16 weak; -+ int retval; -+ -+ unsigned long flags; -+ -+ if (effect->type != FF_RUMBLE) -+ return 0; -+ -+ strong = effect->u.rumble.strong_magnitude; -+ weak = effect->u.rumble.weak_magnitude; -+ -+ spin_lock_irqsave(&xpad->odata_lock, flags); -+ -+ switch (xpad->xtype) { -+ case XTYPE_XBOX: -+ xpad->odata[0] = 0x00; -+ xpad->odata[1] = 0x06; -+ xpad->odata[2] = 0x00; -+ xpad->odata[3] = strong / 256; /* left actuator */ -+ xpad->odata[4] = 0x00; -+ xpad->odata[5] = weak / 256; /* right actuator */ -+ xpad->irq_out->transfer_buffer_length = 6; -+ break; -+ -+ case XTYPE_XBOX360: -+ xpad->odata[0] = 0x00; -+ xpad->odata[1] = 0x08; -+ xpad->odata[2] = 0x00; -+ xpad->odata[3] = strong / 256; /* left actuator? */ -+ xpad->odata[4] = weak / 256; /* right actuator? */ -+ xpad->odata[5] = 0x00; -+ xpad->odata[6] = 0x00; -+ xpad->odata[7] = 0x00; -+ xpad->irq_out->transfer_buffer_length = 8; -+ break; -+ -+ case XTYPE_XBOX360W: -+ xpad->odata[0] = 0x00; -+ xpad->odata[1] = 0x01; -+ xpad->odata[2] = 0x0F; -+ xpad->odata[3] = 0xC0; -+ xpad->odata[4] = 0x00; -+ xpad->odata[5] = strong / 256; -+ xpad->odata[6] = weak / 256; -+ xpad->odata[7] = 0x00; -+ xpad->odata[8] = 0x00; -+ xpad->odata[9] = 0x00; -+ xpad->odata[10] = 0x00; -+ xpad->odata[11] = 0x00; -+ xpad->irq_out->transfer_buffer_length = 12; -+ break; - -- if (effect->type == FF_RUMBLE) { -- __u16 strong = effect->u.rumble.strong_magnitude; -- __u16 weak = effect->u.rumble.weak_magnitude; -- -- switch (xpad->xtype) { -- -- case XTYPE_XBOX: -- xpad->odata[0] = 0x00; -- xpad->odata[1] = 0x06; -- xpad->odata[2] = 0x00; -- xpad->odata[3] = strong / 256; /* left actuator */ -- xpad->odata[4] = 0x00; -- xpad->odata[5] = weak / 256; /* right actuator */ -- xpad->irq_out->transfer_buffer_length = 6; -- -- return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); -- -- case XTYPE_XBOX360: -- xpad->odata[0] = 0x00; -- xpad->odata[1] = 0x08; -- xpad->odata[2] = 0x00; -- xpad->odata[3] = strong / 256; /* left actuator? */ -- xpad->odata[4] = weak / 256; /* right actuator? */ -- xpad->odata[5] = 0x00; -- xpad->odata[6] = 0x00; -- xpad->odata[7] = 0x00; -- xpad->irq_out->transfer_buffer_length = 8; -- -- return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); -- -- case XTYPE_XBOX360W: -- xpad->odata[0] = 0x00; -- xpad->odata[1] = 0x01; -- xpad->odata[2] = 0x0F; -- xpad->odata[3] = 0xC0; -- xpad->odata[4] = 0x00; -- xpad->odata[5] = strong / 256; -- xpad->odata[6] = weak / 256; -- xpad->odata[7] = 0x00; -- xpad->odata[8] = 0x00; -- xpad->odata[9] = 0x00; -- xpad->odata[10] = 0x00; -- xpad->odata[11] = 0x00; -- xpad->irq_out->transfer_buffer_length = 12; -- -- return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); -- -- case XTYPE_XBOXONE: -- xpad->odata[0] = 0x09; /* activate rumble */ -- xpad->odata[1] = 0x08; -- xpad->odata[2] = 0x00; -- xpad->odata[3] = 0x08; /* continuous effect */ -- xpad->odata[4] = 0x00; /* simple rumble mode */ -- xpad->odata[5] = 0x03; /* L and R actuator only */ -- xpad->odata[6] = 0x00; /* TODO: LT actuator */ -- xpad->odata[7] = 0x00; /* TODO: RT actuator */ -- xpad->odata[8] = strong / 256; /* left actuator */ -- xpad->odata[9] = weak / 256; /* right actuator */ -- xpad->odata[10] = 0x80; /* length of pulse */ -- xpad->odata[11] = 0x00; /* stop period of pulse */ -- xpad->irq_out->transfer_buffer_length = 12; -- -- return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); -- -- default: -+ case XTYPE_XBOXONE: -+ xpad->odata[0] = 0x09; /* activate rumble */ -+ xpad->odata[1] = 0x08; -+ xpad->odata[2] = xpad->odata_serial++; -+ xpad->odata[3] = 0x08; /* continuous effect */ -+ xpad->odata[4] = 0x00; /* simple rumble mode */ -+ xpad->odata[5] = 0x03; /* L and R actuator only */ -+ xpad->odata[6] = 0x00; /* TODO: LT actuator */ -+ xpad->odata[7] = 0x00; /* TODO: RT actuator */ -+ xpad->odata[8] = strong / 512; /* left actuator */ -+ xpad->odata[9] = weak / 512; /* right actuator */ -+ xpad->odata[10] = 0x80; /* length of pulse */ -+ xpad->odata[11] = 0x00; /* stop period of pulse */ -+ xpad->odata[12] = 0x00; -+ xpad->irq_out->transfer_buffer_length = 13; -+ break; -+ -+ default: -+ spin_unlock_irqrestore(&xpad->odata_lock, flags); -+ dev_dbg(&xpad->dev->dev, -+ "%s - rumble command sent to unsupported xpad type: %d\n", -+ __func__, xpad->xtype); -+ return -EINVAL; -+ } -+ -+ if (!xpad->irq_out_active) { -+ retval = usb_submit_urb(xpad->irq_out, GFP_ATOMIC); -+ xpad->irq_out_active = 1; -+ } else { -+ retval = 0; -+ -+ if(xpad->pend_rum) { - dev_dbg(&xpad->dev->dev, -- "%s - rumble command sent to unsupported xpad type: %d\n", -- __func__, xpad->xtype); -- return -1; -+ "%s - overwriting pending\n", __func__); -+ -+ retval = -EIO; - } -+ -+ xpad->pend_rum = xpad->irq_out->transfer_buffer_length; -+ memcpy(xpad->rum_odata, xpad->odata, xpad->pend_rum); - } - -- return 0; -+ spin_unlock_irqrestore(&xpad->odata_lock, flags); -+ -+ return retval; - } - - static int xpad_init_ff(struct usb_xpad *xpad) -@@ -882,6 +973,9 @@ static int xpad_init_ff(struct usb_xpad *xpad) { return 0; } - - #if defined(CONFIG_JOYSTICK_XPAD_LEDS) - #include -+#include -+ -+static DEFINE_IDA(xpad_pad_seq); - - struct xpad_led { - char name[16]; -@@ -890,6 +984,7 @@ struct xpad_led { - }; - - /** -+ * set the LEDs on Xbox360 / Wireless Controllers - * @param command - * 0: off - * 1: all blink, then previous setting -@@ -910,9 +1005,11 @@ struct xpad_led { - */ - static void xpad_send_led_command(struct usb_xpad *xpad, int command) - { -+ unsigned long flags; -+ - command %= 16; - -- mutex_lock(&xpad->odata_mutex); -+ spin_lock_irqsave(&xpad->odata_lock, flags); - - switch (xpad->xtype) { - case XTYPE_XBOX360: -@@ -938,14 +1035,29 @@ static void xpad_send_led_command(struct usb_xpad *xpad, int command) - break; - } - -- usb_submit_urb(xpad->irq_out, GFP_KERNEL); -- mutex_unlock(&xpad->odata_mutex); -+ if (!xpad->irq_out_active) { -+ usb_submit_urb(xpad->irq_out, GFP_KERNEL); -+ xpad->irq_out_active = 1; -+ } else { -+ if(xpad->pend_led) { -+ dev_dbg(&xpad->dev->dev, -+ "%s - overwriting pending\n", __func__); -+ } -+ -+ xpad->pend_led = xpad->irq_out->transfer_buffer_length; -+ memcpy(xpad->led_odata, xpad->odata, xpad->pend_led); -+ } -+ -+ spin_unlock_irqrestore(&xpad->odata_lock, flags); - } - -+/* -+ * Light up the segment corresponding to the pad number on -+ * Xbox 360 Controllers. -+ */ - static void xpad_identify_controller(struct usb_xpad *xpad) - { -- /* Light up the segment corresponding to controller number */ -- xpad_send_led_command(xpad, (xpad->led_no % 4) + 2); -+ xpad_send_led_command(xpad, (xpad->pad_nr % 4) + 2); - } - - static void xpad_led_set(struct led_classdev *led_cdev, -@@ -959,7 +1071,6 @@ static void xpad_led_set(struct led_classdev *led_cdev, - - static int xpad_led_probe(struct usb_xpad *xpad) - { -- static atomic_t led_seq = ATOMIC_INIT(-1); - struct xpad_led *led; - struct led_classdev *led_cdev; - int error; -@@ -971,9 +1082,13 @@ static int xpad_led_probe(struct usb_xpad *xpad) - if (!led) - return -ENOMEM; - -- xpad->led_no = atomic_inc_return(&led_seq); -+ xpad->pad_nr = ida_simple_get(&xpad_pad_seq, 0, 0, GFP_KERNEL); -+ if (xpad->pad_nr < 0) { -+ error = xpad->pad_nr; -+ goto err_free_mem; -+ } - -- snprintf(led->name, sizeof(led->name), "xpad%lu", xpad->led_no); -+ snprintf(led->name, sizeof(led->name), "xpad%d", xpad->pad_nr); - led->xpad = xpad; - - led_cdev = &led->led_cdev; -@@ -981,16 +1096,19 @@ static int xpad_led_probe(struct usb_xpad *xpad) - led_cdev->brightness_set = xpad_led_set; - - error = led_classdev_register(&xpad->udev->dev, led_cdev); -- if (error) { -- kfree(led); -- xpad->led = NULL; -- return error; -- } -+ if (error) -+ goto err_free_id; - -- /* Light up the segment corresponding to controller number */ - xpad_identify_controller(xpad); - - return 0; -+ -+err_free_id: -+ ida_simple_remove(&xpad_pad_seq, xpad->pad_nr); -+err_free_mem: -+ kfree(led); -+ xpad->led = NULL; -+ return error; - } - - static void xpad_led_disconnect(struct usb_xpad *xpad) -@@ -999,6 +1117,7 @@ static void xpad_led_disconnect(struct usb_xpad *xpad) - - if (xpad_led) { - led_classdev_unregister(&xpad_led->led_cdev); -+ ida_simple_remove(&xpad_pad_seq, xpad->pad_nr); - kfree(xpad_led); - } - } -@@ -1008,10 +1127,12 @@ static void xpad_led_disconnect(struct usb_xpad *xpad) { } - static void xpad_identify_controller(struct usb_xpad *xpad) { } - #endif - -- - static int xpad_open(struct input_dev *dev) - { - struct usb_xpad *xpad = input_get_drvdata(dev); -+ int retval; -+ -+ unsigned long flags; - - /* URB was submitted in probe */ - if (xpad->xtype == XTYPE_XBOX360W) -@@ -1022,11 +1143,17 @@ static int xpad_open(struct input_dev *dev) - return -EIO; - - if (xpad->xtype == XTYPE_XBOXONE) { -+ spin_lock_irqsave(&xpad->odata_lock, flags); - /* 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); -+ xpad->odata[2] = xpad->odata_serial++; /* packet serial */ -+ xpad->odata[3] = 0x01; /* rumble bit enable? */ -+ xpad->odata[4] = 0x00; -+ xpad->irq_out->transfer_buffer_length = 5; -+ retval = usb_submit_urb(xpad->irq_out, GFP_KERNEL); -+ spin_unlock_irqrestore(&xpad->odata_lock, flags); -+ return retval; - } - - return 0; -@@ -1068,11 +1195,107 @@ static void xpad_set_up_abs(struct input_dev *input_dev, signed short abs) - } - } - -+static void xpad_deinit_input(struct usb_xpad *xpad) -+{ -+ xpad_led_disconnect(xpad); -+ input_unregister_device(xpad->dev); -+} -+ -+static int xpad_init_input(struct usb_xpad *xpad) -+{ -+ struct input_dev *input_dev; -+ int i, error; -+ -+ input_dev = input_allocate_device(); -+ if (!input_dev) -+ return -ENOMEM; -+ -+ xpad->dev = input_dev; -+ input_dev->name = xpad->name; -+ input_dev->phys = xpad->phys; -+ usb_to_input_id(xpad->udev, &input_dev->id); -+ input_dev->dev.parent = &xpad->intf->dev; -+ -+ input_set_drvdata(input_dev, xpad); -+ -+ input_dev->open = xpad_open; -+ input_dev->close = xpad_close; -+ -+ __set_bit(EV_KEY, input_dev->evbit); -+ -+ if (!(xpad->mapping & MAP_STICKS_TO_NULL)) { -+ __set_bit(EV_ABS, input_dev->evbit); -+ /* set up axes */ -+ for (i = 0; xpad_abs[i] >= 0; i++) -+ xpad_set_up_abs(input_dev, xpad_abs[i]); -+ } -+ -+ /* set up standard buttons */ -+ for (i = 0; xpad_common_btn[i] >= 0; i++) -+ __set_bit(xpad_common_btn[i], input_dev->keybit); -+ -+ /* set up model-specific ones */ -+ 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 { -+ for (i = 0; xpad_btn[i] >= 0; i++) -+ __set_bit(xpad_btn[i], input_dev->keybit); -+ } -+ -+ if (xpad->mapping & MAP_DPAD_TO_BUTTONS) { -+ for (i = 0; xpad_btn_pad[i] >= 0; i++) -+ __set_bit(xpad_btn_pad[i], input_dev->keybit); -+ } -+ -+ /* -+ * This should be a simple else block. However historically -+ * xbox360w has mapped DPAD to buttons while xbox360 did not. This -+ * made no sense, but now we can not just switch back and have to -+ * support both behaviors. -+ */ -+ if (!(xpad->mapping & MAP_DPAD_TO_BUTTONS) || -+ xpad->xtype == XTYPE_XBOX360W) { -+ for (i = 0; xpad_abs_pad[i] >= 0; i++) -+ xpad_set_up_abs(input_dev, xpad_abs_pad[i]); -+ } -+ -+ if (xpad->mapping & MAP_TRIGGERS_TO_BUTTONS) { -+ for (i = 0; xpad_btn_triggers[i] >= 0; i++) -+ __set_bit(xpad_btn_triggers[i], input_dev->keybit); -+ } else { -+ for (i = 0; xpad_abs_triggers[i] >= 0; i++) -+ xpad_set_up_abs(input_dev, xpad_abs_triggers[i]); -+ } -+ -+ error = xpad_init_ff(xpad); -+ if (error) -+ goto err_free_input; -+ -+ error = xpad_led_probe(xpad); -+ if (error) -+ goto err_destroy_ff; -+ -+ error = input_register_device(xpad->dev); -+ if (error) -+ goto err_disconnect_led; -+ -+ return 0; -+ -+err_disconnect_led: -+ xpad_led_disconnect(xpad); -+err_destroy_ff: -+ input_ff_destroy(input_dev); -+err_free_input: -+ input_free_device(input_dev); -+ return error; -+} -+ - static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id) - { - struct usb_device *udev = interface_to_usbdev(intf); - struct usb_xpad *xpad; -- struct input_dev *input_dev; - struct usb_endpoint_descriptor *ep_irq_in; - int ep_irq_in_idx; - int i, error; -@@ -1094,29 +1317,31 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id - } - - xpad = kzalloc(sizeof(struct usb_xpad), GFP_KERNEL); -- input_dev = input_allocate_device(); -- if (!xpad || !input_dev) { -- error = -ENOMEM; -- goto fail1; -- } -+ if (!xpad) -+ return -ENOMEM; -+ -+ usb_make_path(udev, xpad->phys, sizeof(xpad->phys)); -+ strlcat(xpad->phys, "/input0", sizeof(xpad->phys)); - - xpad->idata = usb_alloc_coherent(udev, XPAD_PKT_LEN, - GFP_KERNEL, &xpad->idata_dma); - if (!xpad->idata) { - error = -ENOMEM; -- goto fail1; -+ goto err_free_mem; - } - - xpad->irq_in = usb_alloc_urb(0, GFP_KERNEL); - if (!xpad->irq_in) { - error = -ENOMEM; -- goto fail2; -+ goto err_free_idata; - } - - xpad->udev = udev; - xpad->intf = intf; - xpad->mapping = xpad_device[i].mapping; - xpad->xtype = xpad_device[i].xtype; -+ xpad->name = xpad_device[i].name; -+ INIT_WORK(&xpad->work, presence_work_function); - - if (xpad->xtype == XTYPE_UNKNOWN) { - if (intf->cur_altsetting->desc.bInterfaceClass == USB_CLASS_VENDOR_SPEC) { -@@ -1124,8 +1349,9 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id - xpad->xtype = XTYPE_XBOX360W; - else - xpad->xtype = XTYPE_XBOX360; -- } else -+ } else { - xpad->xtype = XTYPE_XBOX; -+ } - - if (dpad_to_buttons) - xpad->mapping |= MAP_DPAD_TO_BUTTONS; -@@ -1135,70 +1361,9 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id - xpad->mapping |= MAP_STICKS_TO_NULL; - } - -- xpad->dev = input_dev; -- usb_make_path(udev, xpad->phys, sizeof(xpad->phys)); -- strlcat(xpad->phys, "/input0", sizeof(xpad->phys)); -- -- input_dev->name = xpad_device[i].name; -- input_dev->phys = xpad->phys; -- usb_to_input_id(udev, &input_dev->id); -- input_dev->dev.parent = &intf->dev; -- -- input_set_drvdata(input_dev, xpad); -- -- input_dev->open = xpad_open; -- input_dev->close = xpad_close; -- -- input_dev->evbit[0] = BIT_MASK(EV_KEY); -- -- if (!(xpad->mapping & MAP_STICKS_TO_NULL)) { -- input_dev->evbit[0] |= BIT_MASK(EV_ABS); -- /* set up axes */ -- for (i = 0; xpad_abs[i] >= 0; i++) -- xpad_set_up_abs(input_dev, xpad_abs[i]); -- } -- -- /* set up standard buttons */ -- for (i = 0; xpad_common_btn[i] >= 0; i++) -- __set_bit(xpad_common_btn[i], input_dev->keybit); -- -- /* set up model-specific ones */ -- 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 { -- for (i = 0; xpad_btn[i] >= 0; i++) -- __set_bit(xpad_btn[i], input_dev->keybit); -- } -- -- if (xpad->mapping & MAP_DPAD_TO_BUTTONS) { -- for (i = 0; xpad_btn_pad[i] >= 0; i++) -- __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]); -- } -- -- if (xpad->mapping & MAP_TRIGGERS_TO_BUTTONS) { -- for (i = 0; xpad_btn_triggers[i] >= 0; i++) -- __set_bit(xpad_btn_triggers[i], input_dev->keybit); -- } else { -- for (i = 0; xpad_abs_triggers[i] >= 0; i++) -- xpad_set_up_abs(input_dev, xpad_abs_triggers[i]); -- } -- - error = xpad_init_output(intf, xpad); - if (error) -- goto fail3; -- -- error = xpad_init_ff(xpad); -- if (error) -- goto fail4; -- -- error = xpad_led_probe(xpad); -- if (error) -- goto fail5; -+ goto err_free_in_urb; - - /* Xbox One controller has in/out endpoints swapped. */ - ep_irq_in_idx = xpad->xtype == XTYPE_XBOXONE ? 1 : 0; -@@ -1211,60 +1376,10 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id - xpad->irq_in->transfer_dma = xpad->idata_dma; - xpad->irq_in->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; - -- error = input_register_device(xpad->dev); -- if (error) -- goto fail6; -- - usb_set_intfdata(intf, xpad); - - if (xpad->xtype == XTYPE_XBOX360W) { - /* -- * Setup the message to set the LEDs on the -- * controller when it shows up -- */ -- xpad->bulk_out = usb_alloc_urb(0, GFP_KERNEL); -- if (!xpad->bulk_out) { -- error = -ENOMEM; -- goto fail7; -- } -- -- xpad->bdata = kzalloc(XPAD_PKT_LEN, GFP_KERNEL); -- if (!xpad->bdata) { -- error = -ENOMEM; -- goto fail8; -- } -- -- xpad->bdata[2] = 0x08; -- switch (intf->cur_altsetting->desc.bInterfaceNumber) { -- case 0: -- xpad->bdata[3] = 0x42; -- break; -- case 2: -- xpad->bdata[3] = 0x43; -- break; -- case 4: -- xpad->bdata[3] = 0x44; -- break; -- case 6: -- xpad->bdata[3] = 0x45; -- } -- -- ep_irq_in = &intf->cur_altsetting->endpoint[1].desc; -- if (usb_endpoint_is_bulk_out(ep_irq_in)) { -- usb_fill_bulk_urb(xpad->bulk_out, udev, -- usb_sndbulkpipe(udev, -- ep_irq_in->bEndpointAddress), -- xpad->bdata, XPAD_PKT_LEN, -- xpad_bulk_out, xpad); -- } else { -- usb_fill_int_urb(xpad->bulk_out, udev, -- usb_sndintpipe(udev, -- ep_irq_in->bEndpointAddress), -- xpad->bdata, XPAD_PKT_LEN, -- xpad_bulk_out, xpad, 0); -- } -- -- /* - * Submit the int URB immediately rather than waiting for open - * because we get status messages from the device whether - * or not any controllers are attached. In fact, it's -@@ -1274,55 +1389,87 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id - xpad->irq_in->dev = xpad->udev; - error = usb_submit_urb(xpad->irq_in, GFP_KERNEL); - if (error) -- goto fail9; -- } -+ goto err_deinit_output; - -+ /* -+ * Send presence packet. -+ * This will force the controller to resend connection packets. -+ * This is useful in the case we activate the module after the -+ * adapter has been plugged in, as it won't automatically -+ * send us info about the controllers. -+ */ -+ error = xpad_inquiry_pad_presence(xpad); -+ if (error) -+ goto err_kill_in_urb; -+ } else { -+ xpad->pad_present = 1; -+ error = xpad_init_input(xpad); -+ if (error) -+ goto err_deinit_output; -+ } - return 0; - -- fail9: kfree(xpad->bdata); -- fail8: usb_free_urb(xpad->bulk_out); -- fail7: input_unregister_device(input_dev); -- input_dev = NULL; -- fail6: xpad_led_disconnect(xpad); -- fail5: if (input_dev) -- input_ff_destroy(input_dev); -- fail4: xpad_deinit_output(xpad); -- fail3: usb_free_urb(xpad->irq_in); -- fail2: usb_free_coherent(udev, XPAD_PKT_LEN, xpad->idata, xpad->idata_dma); -- fail1: input_free_device(input_dev); -+err_kill_in_urb: -+ usb_kill_urb(xpad->irq_in); -+err_deinit_output: -+ xpad_deinit_output(xpad); -+err_free_in_urb: -+ usb_free_urb(xpad->irq_in); -+err_free_idata: -+ usb_free_coherent(udev, XPAD_PKT_LEN, xpad->idata, xpad->idata_dma); -+err_free_mem: - kfree(xpad); - return error; - - } - -+static void xpad_stop_communication(struct usb_xpad *xpad) { -+ xpad_stop_output(xpad); -+ -+ if (xpad->xtype == XTYPE_XBOX360W) { -+ usb_kill_urb(xpad->irq_in); -+ } -+ -+ cancel_work_sync(&xpad->work); -+} -+ - static void xpad_disconnect(struct usb_interface *intf) - { - struct usb_xpad *xpad = usb_get_intfdata (intf); - -- xpad_led_disconnect(xpad); -- input_unregister_device(xpad->dev); -- xpad_deinit_output(xpad); -+ if (xpad->pad_present) -+ xpad_deinit_input(xpad); - -- if (xpad->xtype == XTYPE_XBOX360W) { -- usb_kill_urb(xpad->bulk_out); -- usb_free_urb(xpad->bulk_out); -- usb_kill_urb(xpad->irq_in); -- } -+ xpad_stop_communication(xpad); -+ -+ xpad_deinit_output(xpad); - - usb_free_urb(xpad->irq_in); - usb_free_coherent(xpad->udev, XPAD_PKT_LEN, - xpad->idata, xpad->idata_dma); - -- kfree(xpad->bdata); - kfree(xpad); - - usb_set_intfdata(intf, NULL); - } - -+static int xpad_suspend(struct usb_interface *intf, pm_message_t message) { -+ struct usb_xpad *xpad = usb_get_intfdata (intf); -+ xpad_stop_communication(xpad); -+ return 0; -+} -+ -+static int xpad_resume(struct usb_interface *intf) { -+ usb_queue_reset_device(intf); -+ return 0; -+} -+ - static struct usb_driver xpad_driver = { - .name = "xpad", - .probe = xpad_probe, - .disconnect = xpad_disconnect, -+ .suspend = xpad_suspend, -+ .resume = xpad_resume, - .id_table = xpad_table, - }; - --- -1.9.1 - diff --git a/packages/linux/patches/4.3.2/linux-011-Thermal-initialize-thermal-zone-device-correctly.patch b/packages/linux/patches/4.4-rc5/linux-0001-Thermal-initialize-thermal-zone-device-correctly.patch similarity index 97% rename from packages/linux/patches/4.3.2/linux-011-Thermal-initialize-thermal-zone-device-correctly.patch rename to packages/linux/patches/4.4-rc5/linux-0001-Thermal-initialize-thermal-zone-device-correctly.patch index ad5f025d5d..68baf14f9b 100644 --- a/packages/linux/patches/4.3.2/linux-011-Thermal-initialize-thermal-zone-device-correctly.patch +++ b/packages/linux/patches/4.4-rc5/linux-0001-Thermal-initialize-thermal-zone-device-correctly.patch @@ -133,8 +133,8 @@ index 157d366..5bcabc7 100644 +#define THERMAL_TEMP_INVALID -274000 + /* Unit conversion macros */ - #define KELVIN_TO_CELSIUS(t) (long)(((long)t-2732 >= 0) ? \ - ((long)t-2732+5)/10 : ((long)t-2732-5)/10) + #define DECI_KELVIN_TO_CELSIUS(t) ({ \ + long _t = (t); \ -- 1.8.4.2 diff --git a/packages/linux/patches/4.3.2/linux-012-Thermal-handle-thermal-zone-device-properly-during-s.patch b/packages/linux/patches/4.4-rc5/linux-0002-Thermal-handle-thermal-zone-device-properly-during-s.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-012-Thermal-handle-thermal-zone-device-properly-during-s.patch rename to packages/linux/patches/4.4-rc5/linux-0002-Thermal-handle-thermal-zone-device-properly-during-s.patch diff --git a/packages/linux/patches/4.3.2/linux-013-Thermal-do-thermal-zone-update-after-a-cooling-devic.patch b/packages/linux/patches/4.4-rc5/linux-0003-Thermal-do-thermal-zone-update-after-a-cooling-devic.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-013-Thermal-do-thermal-zone-update-after-a-cooling-devic.patch rename to packages/linux/patches/4.4-rc5/linux-0003-Thermal-do-thermal-zone-update-after-a-cooling-devic.patch diff --git a/packages/linux/patches/4.3.2/linux-003-no_dev_console.patch b/packages/linux/patches/4.4-rc5/linux-003-no_dev_console.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-003-no_dev_console.patch rename to packages/linux/patches/4.4-rc5/linux-003-no_dev_console.patch diff --git a/packages/linux/patches/4.3.2/linux-004-fix-build-with-gcc-5.patch b/packages/linux/patches/4.4-rc5/linux-004-fix-build-with-gcc-5.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-004-fix-build-with-gcc-5.patch rename to packages/linux/patches/4.4-rc5/linux-004-fix-build-with-gcc-5.patch diff --git a/packages/linux/patches/4.3.2/linux-051-ouya_controller_support.patch b/packages/linux/patches/4.4-rc5/linux-051-ouya_controller_support.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-051-ouya_controller_support.patch rename to packages/linux/patches/4.4-rc5/linux-051-ouya_controller_support.patch diff --git a/packages/linux/patches/4.3.2/linux-052-XBOX_remote_support.patch b/packages/linux/patches/4.4-rc5/linux-052-XBOX_remote_support.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-052-XBOX_remote_support.patch rename to packages/linux/patches/4.4-rc5/linux-052-XBOX_remote_support.patch diff --git a/packages/linux/patches/4.3.2/linux-053-spinelplus-remote-0.2.patch b/packages/linux/patches/4.4-rc5/linux-053-spinelplus-remote-0.2.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-053-spinelplus-remote-0.2.patch rename to packages/linux/patches/4.4-rc5/linux-053-spinelplus-remote-0.2.patch diff --git a/packages/linux/patches/4.3.2/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch b/packages/linux/patches/4.4-rc5/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch rename to packages/linux/patches/4.4-rc5/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch diff --git a/packages/linux/patches/4.3.2/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch b/packages/linux/patches/4.4-rc5/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch rename to packages/linux/patches/4.4-rc5/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch diff --git a/packages/linux/patches/4.3.2/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch b/packages/linux/patches/4.4-rc5/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch rename to packages/linux/patches/4.4-rc5/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch diff --git a/packages/linux/patches/4.3.2/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch b/packages/linux/patches/4.4-rc5/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch rename to packages/linux/patches/4.4-rc5/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch diff --git a/packages/linux/patches/4.3.2/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch b/packages/linux/patches/4.4-rc5/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch rename to packages/linux/patches/4.4-rc5/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch diff --git a/packages/linux/patches/4.3.2/linux-062-imon_pad_ignore_diagonal.patch b/packages/linux/patches/4.4-rc5/linux-062-imon_pad_ignore_diagonal.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-062-imon_pad_ignore_diagonal.patch rename to packages/linux/patches/4.4-rc5/linux-062-imon_pad_ignore_diagonal.patch diff --git a/packages/linux/patches/4.4-rc5/linux-063-xpad-fix_xbox360_wireless.patch b/packages/linux/patches/4.4-rc5/linux-063-xpad-fix_xbox360_wireless.patch new file mode 100644 index 0000000000..c76ec3895e --- /dev/null +++ b/packages/linux/patches/4.4-rc5/linux-063-xpad-fix_xbox360_wireless.patch @@ -0,0 +1,521 @@ +From f55be5f4acd492f9dd9979e04678fbc1a7e658e0 Mon Sep 17 00:00:00 2001 +From: Matt DeVillier +Date: Thu, 17 Dec 2015 15:01:37 -0600 +Subject: [PATCH 1/1] linux/drivers/input/joystick/xpad: fixes for xbox360/one controllers + +merged from https://github.com/paroj/xpad + +- fixed blinking LED on Xbox 360 Wireless Controllers +- only expose actually connected Xbox 360 Wireless Controllers +- fixed kernel warnings due to submitting active URB requests +- updated Xbox One controller force feedback +- controller still works after suspend/ resume +- Xbox 360 Wireless button mappings are now compatible with Xbox 360 (non-wireless) mappings + +Signed-off-by: Matt DeVillier +--- + drivers/input/joystick/xpad.c | 240 ++++++++++++++++++++++++++++++++---------- + 1 file changed, 184 insertions(+), 56 deletions(-) + +diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c +index fd4100d..301a77a 100644 +--- a/drivers/input/joystick/xpad.c ++++ b/drivers/input/joystick/xpad.c +@@ -126,6 +126,7 @@ static const struct xpad_device { + { 0x045e, 0x028e, "Microsoft X-Box 360 pad", 0, XTYPE_XBOX360 }, + { 0x045e, 0x02d1, "Microsoft X-Box One pad", 0, XTYPE_XBOXONE }, + { 0x045e, 0x02dd, "Microsoft X-Box One pad (Covert Forces)", 0, XTYPE_XBOXONE }, ++ { 0x0e6f, 0x0139, "Afterglow Prismatic Wired Controller", 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 }, +@@ -298,6 +299,7 @@ static struct usb_device_id xpad_table[] = { + XPAD_XBOX360_VENDOR(0x044f), /* Thrustmaster X-Box 360 controllers */ + XPAD_XBOX360_VENDOR(0x045e), /* Microsoft X-Box 360 controllers */ + XPAD_XBOXONE_VENDOR(0x045e), /* Microsoft X-Box One controllers */ ++ XPAD_XBOXONE_VENDOR(0x0e6f), /* 0x0e6f 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 */ +@@ -329,9 +331,16 @@ struct usb_xpad { + dma_addr_t idata_dma; + + struct urb *irq_out; /* urb for interrupt out report */ ++ int irq_out_active; /* we must not use an active URB */ + unsigned char *odata; /* output data */ + dma_addr_t odata_dma; +- struct mutex odata_mutex; ++ spinlock_t odata_lock; ++ ++ unsigned char rum_odata[XPAD_PKT_LEN]; /* cache for rumble data */ ++ unsigned char led_odata[XPAD_PKT_LEN]; /* cache for led data */ ++ unsigned pend_rum; /* length of cached rumble data */ ++ unsigned pend_led; /* length of cached led data */ ++ int force_led; /* force send led cache next */ + + #if defined(CONFIG_JOYSTICK_XPAD_LEDS) + struct xpad_led *led; +@@ -343,8 +352,13 @@ struct usb_xpad { + int xtype; /* type of xbox device */ + int pad_nr; /* the order x360 pads were attached */ + const char *name; /* name of the device */ ++ struct work_struct work; /* init/remove device from callback */ ++ unsigned char odata_serial; /* serial number for xbox one protocol */ + }; + ++static int xpad_init_input(struct usb_xpad *xpad); ++static void xpad_deinit_input(struct usb_xpad *xpad); ++ + /* + * xpad_process_packet + * +@@ -497,6 +511,22 @@ static void xpad360_process_packet(struct usb_xpad *xpad, + + static void xpad_identify_controller(struct usb_xpad *xpad); + ++static void presence_work_function(struct work_struct *work) ++{ ++ struct usb_xpad *xpad = container_of(work, struct usb_xpad, work); ++ int error; ++ ++ if (xpad->pad_present) { ++ error = xpad_init_input(xpad); ++ if (error) { ++ /* complain only, not much else we can do here */ ++ dev_err(&xpad->dev->dev, "unable to init device\n"); ++ } ++ } else { ++ xpad_deinit_input(xpad); ++ } ++} ++ + /* + * xpad360w_process_packet + * +@@ -513,21 +543,20 @@ static void xpad_identify_controller(struct usb_xpad *xpad); + */ + static void xpad360w_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *data) + { ++ int presence; ++ + /* Presence change */ + if (data[0] & 0x08) { +- if (data[1] & 0x80) { +- xpad->pad_present = 1; +- /* +- * Light up the segment corresponding to +- * controller number. +- */ +- xpad_identify_controller(xpad); +- } else +- xpad->pad_present = 0; ++ presence = (data[1] & 0x80) != 0; ++ ++ if (xpad->pad_present != presence) { ++ xpad->pad_present = presence; ++ schedule_work(&xpad->work); ++ } + } + + /* Valid pad data */ +- if (!(data[1] & 0x1)) ++ if (!(data[1] & 0x1) || data[1] == 0xf) + return; + + xpad360_process_packet(xpad, cmd, &data[4]); +@@ -683,13 +712,35 @@ static void xpad_irq_out(struct urb *urb) + struct usb_xpad *xpad = urb->context; + struct device *dev = &xpad->intf->dev; + int retval, status; ++ unsigned long flags; + + status = urb->status; + + switch (status) { + case 0: + /* success */ +- return; ++ if (!xpad->pend_led && !xpad->pend_rum) { ++ xpad->irq_out_active = 0; ++ return; ++ } ++ ++ spin_lock_irqsave(&xpad->odata_lock, flags); ++ ++ if (xpad->pend_led && (!xpad->pend_rum || xpad->force_led)) { ++ xpad->irq_out->transfer_buffer_length = xpad->pend_led; ++ memcpy(xpad->odata, xpad->led_odata, xpad->pend_led); ++ xpad->pend_led = 0; ++ xpad->force_led = 0; ++ dev_dbg(dev, "%s - sending pending led\n", __func__); ++ break; ++ } ++ ++ xpad->irq_out->transfer_buffer_length = xpad->pend_rum; ++ memcpy(xpad->odata, xpad->rum_odata, xpad->pend_rum); ++ xpad->pend_rum = 0; ++ xpad->force_led = 1; ++ dev_dbg(dev, "%s - sending pending rumble\n", __func__); ++ break; + + case -ECONNRESET: + case -ENOENT: +@@ -697,16 +748,19 @@ static void xpad_irq_out(struct urb *urb) + /* this urb is terminated, clean up */ + dev_dbg(dev, "%s - urb shutting down with status: %d\n", + __func__, status); ++ xpad->irq_out_active = 0; + return; + + default: + dev_dbg(dev, "%s - nonzero urb status received: %d\n", + __func__, status); +- goto exit; ++ ++ spin_lock_irqsave(&xpad->odata_lock, flags); ++ break; + } + +-exit: + retval = usb_submit_urb(urb, GFP_ATOMIC); ++ spin_unlock_irqrestore(&xpad->odata_lock, flags); + if (retval) + dev_err(dev, "%s - usb_submit_urb failed with result %d\n", + __func__, retval); +@@ -716,7 +770,6 @@ 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) + return 0; +@@ -724,16 +777,18 @@ static int xpad_init_output(struct usb_interface *intf, struct usb_xpad *xpad) + xpad->odata = usb_alloc_coherent(xpad->udev, XPAD_PKT_LEN, + GFP_KERNEL, &xpad->odata_dma); + if (!xpad->odata) { +- error = -ENOMEM; +- goto fail1; ++ return -ENOMEM; + } + +- mutex_init(&xpad->odata_mutex); ++ spin_lock_init(&xpad->odata_lock); ++ xpad->pend_led = 0; ++ xpad->pend_rum = 0; ++ xpad->force_led = 0; + + xpad->irq_out = usb_alloc_urb(0, GFP_KERNEL); + if (!xpad->irq_out) { +- error = -ENOMEM; +- goto fail2; ++ usb_free_coherent(xpad->udev, XPAD_PKT_LEN, xpad->odata, xpad->odata_dma); ++ return -ENOMEM; + } + + /* Xbox One controller has in/out endpoints swapped. */ +@@ -748,9 +803,6 @@ static int xpad_init_output(struct usb_interface *intf, struct usb_xpad *xpad) + xpad->irq_out->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; + + return 0; +- +- fail2: usb_free_coherent(xpad->udev, XPAD_PKT_LEN, xpad->odata, xpad->odata_dma); +- fail1: return error; + } + + static void xpad_stop_output(struct usb_xpad *xpad) +@@ -771,8 +823,9 @@ static void xpad_deinit_output(struct usb_xpad *xpad) + static int xpad_inquiry_pad_presence(struct usb_xpad *xpad) + { + int retval; ++ unsigned long flags; + +- mutex_lock(&xpad->odata_mutex); ++ spin_lock_irqsave(&xpad->odata_lock, flags); + + xpad->odata[0] = 0x08; + xpad->odata[1] = 0x00; +@@ -788,9 +841,16 @@ static int xpad_inquiry_pad_presence(struct usb_xpad *xpad) + xpad->odata[11] = 0x00; + xpad->irq_out->transfer_buffer_length = 12; + +- retval = usb_submit_urb(xpad->irq_out, GFP_KERNEL); ++ if (!xpad->irq_out_active) { ++ retval = usb_submit_urb(xpad->irq_out, GFP_KERNEL); ++ xpad->irq_out_active = 1; ++ } else { ++ dev_dbg(&xpad->dev->dev, "%s - dropped, irq_out is active\n", ++ __func__); ++ retval = -EIO; ++ } + +- mutex_unlock(&xpad->odata_mutex); ++ spin_unlock_irqrestore(&xpad->odata_lock, flags); + + return retval; + } +@@ -801,6 +861,9 @@ static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect + struct usb_xpad *xpad = input_get_drvdata(dev); + __u16 strong; + __u16 weak; ++ int retval; ++ ++ unsigned long flags; + + if (effect->type != FF_RUMBLE) + return 0; +@@ -808,6 +871,8 @@ static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect + strong = effect->u.rumble.strong_magnitude; + weak = effect->u.rumble.weak_magnitude; + ++ spin_lock_irqsave(&xpad->odata_lock, flags); ++ + switch (xpad->xtype) { + case XTYPE_XBOX: + xpad->odata[0] = 0x00; +@@ -850,27 +915,48 @@ static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect + case XTYPE_XBOXONE: + xpad->odata[0] = 0x09; /* activate rumble */ + xpad->odata[1] = 0x08; +- xpad->odata[2] = 0x00; ++ xpad->odata[2] = xpad->odata_serial++; + xpad->odata[3] = 0x08; /* continuous effect */ + xpad->odata[4] = 0x00; /* simple rumble mode */ + xpad->odata[5] = 0x03; /* L and R actuator only */ + xpad->odata[6] = 0x00; /* TODO: LT actuator */ + xpad->odata[7] = 0x00; /* TODO: RT actuator */ +- xpad->odata[8] = strong / 256; /* left actuator */ +- xpad->odata[9] = weak / 256; /* right actuator */ ++ xpad->odata[8] = strong / 512; /* left actuator */ ++ xpad->odata[9] = weak / 512; /* right actuator */ + xpad->odata[10] = 0x80; /* length of pulse */ + xpad->odata[11] = 0x00; /* stop period of pulse */ +- xpad->irq_out->transfer_buffer_length = 12; ++ xpad->odata[12] = 0x00; ++ xpad->irq_out->transfer_buffer_length = 13; + break; + + default: ++ spin_unlock_irqrestore(&xpad->odata_lock, flags); + dev_dbg(&xpad->dev->dev, + "%s - rumble command sent to unsupported xpad type: %d\n", + __func__, xpad->xtype); + return -EINVAL; + } + +- return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); ++ if (!xpad->irq_out_active) { ++ retval = usb_submit_urb(xpad->irq_out, GFP_ATOMIC); ++ xpad->irq_out_active = 1; ++ } else { ++ retval = 0; ++ ++ if (xpad->pend_rum) { ++ dev_dbg(&xpad->dev->dev, ++ "%s - overwriting pending\n", __func__); ++ ++ retval = -EIO; ++ } ++ ++ xpad->pend_rum = xpad->irq_out->transfer_buffer_length; ++ memcpy(xpad->rum_odata, xpad->odata, xpad->pend_rum); ++ } ++ ++ spin_unlock_irqrestore(&xpad->odata_lock, flags); ++ ++ return retval; + } + + static int xpad_init_ff(struct usb_xpad *xpad) +@@ -921,9 +1007,11 @@ struct xpad_led { + */ + static void xpad_send_led_command(struct usb_xpad *xpad, int command) + { ++ unsigned long flags; ++ + command %= 16; + +- mutex_lock(&xpad->odata_mutex); ++ spin_lock_irqsave(&xpad->odata_lock, flags); + + switch (xpad->xtype) { + case XTYPE_XBOX360: +@@ -949,8 +1037,20 @@ static void xpad_send_led_command(struct usb_xpad *xpad, int command) + break; + } + +- usb_submit_urb(xpad->irq_out, GFP_KERNEL); +- mutex_unlock(&xpad->odata_mutex); ++ if (!xpad->irq_out_active) { ++ usb_submit_urb(xpad->irq_out, GFP_KERNEL); ++ xpad->irq_out_active = 1; ++ } else { ++ if (xpad->pend_led) { ++ dev_dbg(&xpad->dev->dev, ++ "%s - overwriting pending\n", __func__); ++ } ++ ++ xpad->pend_led = xpad->irq_out->transfer_buffer_length; ++ memcpy(xpad->led_odata, xpad->odata, xpad->pend_led); ++ } ++ ++ spin_unlock_irqrestore(&xpad->odata_lock, flags); + } + + /* +@@ -1001,14 +1101,7 @@ static int xpad_led_probe(struct usb_xpad *xpad) + if (error) + goto err_free_id; + +- if (xpad->xtype == XTYPE_XBOX360) { +- /* +- * Light up the segment corresponding to controller +- * number on wired devices. On wireless we'll do that +- * when they respond to "presence" packet. +- */ +- xpad_identify_controller(xpad); +- } ++ xpad_identify_controller(xpad); + + return 0; + +@@ -1039,6 +1132,9 @@ static void xpad_identify_controller(struct usb_xpad *xpad) { } + static int xpad_open(struct input_dev *dev) + { + struct usb_xpad *xpad = input_get_drvdata(dev); ++ int retval; ++ ++ unsigned long flags; + + /* URB was submitted in probe */ + if (xpad->xtype == XTYPE_XBOX360W) +@@ -1049,11 +1145,17 @@ static int xpad_open(struct input_dev *dev) + return -EIO; + + if (xpad->xtype == XTYPE_XBOXONE) { ++ spin_lock_irqsave(&xpad->odata_lock, flags); + /* 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); ++ xpad->odata[2] = xpad->odata_serial++; /* packet serial */ ++ xpad->odata[3] = 0x01; /* rumble bit enable? */ ++ xpad->odata[4] = 0x00; ++ xpad->irq_out->transfer_buffer_length = 5; ++ retval = usb_submit_urb(xpad->irq_out, GFP_KERNEL); ++ spin_unlock_irqrestore(&xpad->odata_lock, flags); ++ return retval; + } + + return 0; +@@ -1241,6 +1343,7 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id + xpad->mapping = xpad_device[i].mapping; + xpad->xtype = xpad_device[i].xtype; + xpad->name = xpad_device[i].name; ++ INIT_WORK(&xpad->work, presence_work_function); + + if (xpad->xtype == XTYPE_UNKNOWN) { + if (intf->cur_altsetting->desc.bInterfaceClass == USB_CLASS_VENDOR_SPEC) { +@@ -1277,10 +1380,6 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id + + usb_set_intfdata(intf, xpad); + +- error = xpad_init_input(xpad); +- if (error) +- goto err_deinit_output; +- + if (xpad->xtype == XTYPE_XBOX360W) { + /* + * Submit the int URB immediately rather than waiting for open +@@ -1292,7 +1391,7 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id + xpad->irq_in->dev = xpad->udev; + error = usb_submit_urb(xpad->irq_in, GFP_KERNEL); + if (error) +- goto err_deinit_input; ++ goto err_deinit_output; + + /* + * Send presence packet. +@@ -1304,13 +1403,16 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id + error = xpad_inquiry_pad_presence(xpad); + if (error) + goto err_kill_in_urb; ++ } else { ++ xpad->pad_present = 1; ++ error = xpad_init_input(xpad); ++ if (error) ++ goto err_deinit_output; + } + return 0; + + err_kill_in_urb: + usb_kill_urb(xpad->irq_in); +-err_deinit_input: +- xpad_deinit_input(xpad); + err_deinit_output: + xpad_deinit_output(xpad); + err_free_in_urb: +@@ -1323,17 +1425,27 @@ err_free_mem: + + } + +-static void xpad_disconnect(struct usb_interface *intf) ++static void xpad_stop_communication(struct usb_xpad *xpad) + { +- struct usb_xpad *xpad = usb_get_intfdata (intf); +- +- xpad_deinit_input(xpad); +- xpad_deinit_output(xpad); ++ xpad_stop_output(xpad); + + if (xpad->xtype == XTYPE_XBOX360W) { + usb_kill_urb(xpad->irq_in); + } + ++ cancel_work_sync(&xpad->work); ++} ++ ++static void xpad_disconnect(struct usb_interface *intf) ++{ ++ struct usb_xpad *xpad = usb_get_intfdata(intf); ++ ++ xpad_stop_communication(xpad); ++ xpad_deinit_output(xpad); ++ ++ if (xpad->pad_present) ++ xpad_deinit_input(xpad); ++ + usb_free_urb(xpad->irq_in); + usb_free_coherent(xpad->udev, XPAD_PKT_LEN, + xpad->idata, xpad->idata_dma); +@@ -1343,10 +1455,26 @@ static void xpad_disconnect(struct usb_interface *intf) + usb_set_intfdata(intf, NULL); + } + ++static int xpad_suspend(struct usb_interface *intf, pm_message_t message) ++{ ++ struct usb_xpad *xpad = usb_get_intfdata(intf); ++ ++ xpad_stop_communication(xpad); ++ return 0; ++} ++ ++static int xpad_resume(struct usb_interface *intf) ++{ ++ usb_queue_reset_device(intf); ++ return 0; ++} ++ + static struct usb_driver xpad_driver = { + .name = "xpad", + .probe = xpad_probe, + .disconnect = xpad_disconnect, ++ .suspend = xpad_suspend, ++ .resume = xpad_resume, + .id_table = xpad_table, + }; + +-- +1.9.1 + diff --git a/packages/linux/patches/4.3.2/linux-203-stb0899_enable_low_symbol_rate.patch b/packages/linux/patches/4.4-rc5/linux-203-stb0899_enable_low_symbol_rate.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-203-stb0899_enable_low_symbol_rate.patch rename to packages/linux/patches/4.4-rc5/linux-203-stb0899_enable_low_symbol_rate.patch diff --git a/packages/linux/patches/4.3.2/linux-212-mantis_stb0899_faster_lock.patch b/packages/linux/patches/4.4-rc5/linux-212-mantis_stb0899_faster_lock.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-212-mantis_stb0899_faster_lock.patch rename to packages/linux/patches/4.4-rc5/linux-212-mantis_stb0899_faster_lock.patch diff --git a/packages/linux/patches/4.3.2/linux-221-ngene-octopus.todo b/packages/linux/patches/4.4-rc5/linux-221-ngene-octopus.todo similarity index 100% rename from packages/linux/patches/4.3.2/linux-221-ngene-octopus.todo rename to packages/linux/patches/4.4-rc5/linux-221-ngene-octopus.todo diff --git a/packages/linux/patches/4.3.2/linux-222-stb0899_signal_quality.patch b/packages/linux/patches/4.4-rc5/linux-222-stb0899_signal_quality.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-222-stb0899_signal_quality.patch rename to packages/linux/patches/4.4-rc5/linux-222-stb0899_signal_quality.patch diff --git a/packages/linux/patches/4.3.2/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch b/packages/linux/patches/4.4-rc5/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch rename to packages/linux/patches/4.4-rc5/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch diff --git a/packages/linux/patches/4.3.2/linux-227-ds3000-invalid-symbol-rate.patch b/packages/linux/patches/4.4-rc5/linux-227-ds3000-invalid-symbol-rate.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-227-ds3000-invalid-symbol-rate.patch rename to packages/linux/patches/4.4-rc5/linux-227-ds3000-invalid-symbol-rate.patch diff --git a/packages/linux/patches/4.3.2/linux-230-elgato-eyetv-sat-v3.patch b/packages/linux/patches/4.4-rc5/linux-230-elgato-eyetv-sat-v3.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-230-elgato-eyetv-sat-v3.patch rename to packages/linux/patches/4.4-rc5/linux-230-elgato-eyetv-sat-v3.patch diff --git a/packages/linux/patches/4.3.2/linux-706-Sitecom-N300.patch b/packages/linux/patches/4.4-rc5/linux-706-Sitecom-N300.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-706-Sitecom-N300.patch rename to packages/linux/patches/4.4-rc5/linux-706-Sitecom-N300.patch diff --git a/packages/linux/patches/4.3.2/linux-950-saa716x_PCIe_interface_chipset.todo b/packages/linux/patches/4.4-rc5/linux-950-saa716x_PCIe_interface_chipset.patch similarity index 99% rename from packages/linux/patches/4.3.2/linux-950-saa716x_PCIe_interface_chipset.todo rename to packages/linux/patches/4.4-rc5/linux-950-saa716x_PCIe_interface_chipset.patch index 71cac81ac0..1acb96c92c 100644 --- a/packages/linux/patches/4.3.2/linux-950-saa716x_PCIe_interface_chipset.todo +++ b/packages/linux/patches/4.4-rc5/linux-950-saa716x_PCIe_interface_chipset.patch @@ -2,7 +2,7 @@ diff --git a/drivers/media/common/Kconfig b/drivers/media/common/Kconfig index b85f88c..238b2ed 100644 --- a/drivers/media/common/Kconfig +++ b/drivers/media/common/Kconfig -@@ -22,4 +22,5 @@ config CYPRESS_FIRMWARE +@@ -18,4 +18,5 @@ config CYPRESS_FIRMWARE source "drivers/media/common/b2c2/Kconfig" source "drivers/media/common/saa7146/Kconfig" @@ -16,8 +16,8 @@ index d208de3..b3c373d 100644 -obj-y += b2c2/ saa7146/ siano/ +obj-y += b2c2/ saa7146/ saa716x/ siano/ obj-$(CONFIG_VIDEO_CX2341X) += cx2341x.o - obj-$(CONFIG_VIDEO_BTCX) += btcx-risc.o obj-$(CONFIG_VIDEO_TVEEPROM) += tveeprom.o + obj-$(CONFIG_CYPRESS_FIRMWARE) += cypress_firmware.o diff --git a/drivers/media/common/saa716x/Kconfig b/drivers/media/common/saa716x/Kconfig new file mode 100644 index 0000000..e667a58 @@ -1192,7 +1192,7 @@ index 0000000..6b52fc1 +#define SAA716x_MODEL_TWINHAN_VP1028 "Twinhan/Azurewave VP-1028" +#define SAA716x_DEV_TWINHAN_VP1028 "DVB-S" + -+static int vp1028_dvbs_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++static int vp1028_dvbs_set_voltage(struct dvb_frontend *fe, enum fe_sec_voltage voltage) +{ + struct saa716x_dev *saa716x = fe->dvb->priv; + @@ -2485,10 +2485,11 @@ new file mode 100644 index 0000000..21d1dd8 --- /dev/null +++ b/drivers/media/common/saa716x/saa716x_dma.c -@@ -0,0 +1,306 @@ +@@ -0,0 +1,307 @@ +#include +#include +#include ++#include +#include +#include + @@ -6771,7 +6772,7 @@ index 0000000..27e5e71 + .request_firmware = tda1004x_vp6090_request_firmware, +}; + -+static int vp6090_dvbs_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++static int vp6090_dvbs_set_voltage(struct dvb_frontend *fe, enum fe_sec_voltage voltage) +{ + struct saa716x_dev *saa716x = fe->dvb->priv; + @@ -7198,7 +7199,7 @@ new file mode 100644 index 0000000..91a091d --- /dev/null +++ b/drivers/media/common/saa716x/saa716x_i2c.c -@@ -0,0 +1,734 @@ +@@ -0,0 +1,731 @@ +#include + +#include @@ -7909,7 +7910,7 @@ index 0000000..91a091d +{ + struct saa716x_i2c *i2c = saa716x->i2c; + struct i2c_adapter *adapter = NULL; -+ int i, err = 0; ++ int i; + + dprintk(SAA716x_DEBUG, 1, "Removing SAA%02x I2C Core", saa716x->pdev->device); + @@ -7928,9 +7929,6 @@ index 0000000..91a091d + dprintk(SAA716x_DEBUG, 1, "SAA%02x I2C Core succesfully removed", saa716x->pdev->device); + + return 0; -+ -+exit: -+ return err; +} +EXPORT_SYMBOL_GPL(saa716x_i2c_exit); diff --git a/drivers/media/common/saa716x/saa716x_i2c.h b/drivers/media/common/saa716x/saa716x_i2c.h @@ -8930,7 +8928,9 @@ new file mode 100644 index 0000000..7fa6bad --- /dev/null +++ b/drivers/media/common/saa716x/saa716x_pci.c -@@ -0,0 +1,275 @@ +@@ -0,0 +1,272 @@ ++#include ++#include +#include +#include +#include @@ -8950,11 +8950,6 @@ index 0000000..7fa6bad + +#define DRIVER_NAME "SAA716x Core" + -+static irqreturn_t saa716x_msi_handler(int irq, void *dev_id) -+{ -+ return IRQ_HANDLED; -+} -+ +static int saa716x_enable_msi(struct saa716x_dev *saa716x) +{ + struct pci_dev *pdev = saa716x->pdev; diff --git a/packages/linux/patches/4.3.2/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch b/packages/linux/patches/4.4-rc5/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch rename to packages/linux/patches/4.4-rc5/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch diff --git a/packages/linux/patches/4.3.2/linux-999-i915-implement-passthrough-colors.patch b/packages/linux/patches/4.4-rc5/linux-999-i915-implement-passthrough-colors.patch similarity index 51% rename from packages/linux/patches/4.3.2/linux-999-i915-implement-passthrough-colors.patch rename to packages/linux/patches/4.4-rc5/linux-999-i915-implement-passthrough-colors.patch index 2ccfd8ae8a..b3f5cbc65f 100644 --- a/packages/linux/patches/4.3.2/linux-999-i915-implement-passthrough-colors.patch +++ b/packages/linux/patches/4.4-rc5/linux-999-i915-implement-passthrough-colors.patch @@ -1,21 +1,21 @@ -From 2ede4f1aabc37c6726c4edf39636d6411957bfad Mon Sep 17 00:00:00 2001 -From: fritsch -Date: Wed, 30 Sep 2015 20:57:49 +0200 -Subject: [PATCH] Implement Color Range (passthrough) by lauri v1 Initial v2 - Fix a hunk +From 72d030ffa118d6981cb678dae0b97dea77f14b4c Mon Sep 17 00:00:00 2001 +From: fritsch +Date: Sun, 29 Nov 2015 16:38:14 +0100 +Subject: [PATCH] Intel: Implement Video Color Range --- - drivers/gpu/drm/i915/i915_drv.h | 1 + - drivers/gpu/drm/i915/intel_drv.h | 7 +++++++ - drivers/gpu/drm/i915/intel_hdmi.c | 17 +++++++++++++++-- - drivers/gpu/drm/i915/intel_modes.c | 1 + - 4 files changed, 24 insertions(+), 2 deletions(-) + drivers/gpu/drm/i915/i915_drv.h | 1 + + drivers/gpu/drm/i915/intel_display.c | 4 ++-- + drivers/gpu/drm/i915/intel_drv.h | 8 ++++++++ + drivers/gpu/drm/i915/intel_hdmi.c | 17 +++++++++++++++-- + drivers/gpu/drm/i915/intel_modes.c | 1 + + 5 files changed, 27 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h -index 7d53d7e..5d45cd8 100644 +index a01e515..9e4b8d0 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h -@@ -3206,6 +3206,7 @@ int intel_freq_opcode(struct drm_i915_private *dev_priv, int val); +@@ -3450,6 +3450,7 @@ int intel_freq_opcode(struct drm_i915_private *dev_priv, int val); #define INTEL_BROADCAST_RGB_AUTO 0 #define INTEL_BROADCAST_RGB_FULL 1 #define INTEL_BROADCAST_RGB_LIMITED 2 @@ -23,36 +23,59 @@ index 7d53d7e..5d45cd8 100644 static inline uint32_t i915_vgacntrl_reg(struct drm_device *dev) { +diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c +index 22e86d2..5d86734 100644 +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -8655,7 +8655,7 @@ static void intel_set_pipe_csc(struct drm_crtc *crtc) + * consideration. + */ + +- if (intel_crtc->config->limited_color_range) ++ if (intel_crtc->config->limited_color_range && !intel_crtc->config->video_color_range) + coeff = ((235 - 16) * (1 << 12) / 255) & 0xff8; /* 0.xxx... */ + + /* +@@ -8679,7 +8679,7 @@ static void intel_set_pipe_csc(struct drm_crtc *crtc) + if (INTEL_INFO(dev)->gen > 6) { + uint16_t postoff = 0; + +- if (intel_crtc->config->limited_color_range) ++ if (intel_crtc->config->limited_color_range && !intel_crtc->config->video_color_range) + postoff = (16 * (1 << 12) / 255) & 0x1fff; + + I915_WRITE(PIPE_CSC_POSTOFF_HI(pipe), postoff); diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h -index 68d1f74..637d13b 100644 +index f2a1142..210e7a7 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h -@@ -299,6 +299,12 @@ struct intel_crtc_state { +@@ -372,6 +372,13 @@ struct intel_crtc_state { */ bool limited_color_range; -+ /* -+ * Use reduced/limited/broadcast rgb range without compressing -+ * -+ */ ++ /* ++ * ++ * Use reduced/limited/broadcast rgb range without compressing. ++ * ++ */ + bool video_color_range; + /* DP has a bunch of special case unfortunately, so mark the pipe * accordingly. */ bool has_dp_encoder; -@@ -574,6 +580,7 @@ struct intel_hdmi { +@@ -682,6 +689,7 @@ struct intel_hdmi { int ddc_bus; - uint32_t color_range; + bool limited_color_range; bool color_range_auto; -+ bool color_range_video; ++ bool color_range_video; bool has_hdmi_sink; bool has_audio; enum hdmi_force_audio force_audio; diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c -index bfbe07b..8a45c16 100644 +index 81cdd9f..741bf89 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c -@@ -437,7 +437,8 @@ static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder, +@@ -464,7 +464,8 @@ static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder, } if (intel_hdmi->rgb_quant_range_selectable) { @@ -62,20 +85,19 @@ index bfbe07b..8a45c16 100644 frame.avi.quantization_range = HDMI_QUANTIZATION_RANGE_LIMITED; else -@@ -1017,6 +1018,9 @@ bool intel_hdmi_compute_config(struct intel_encoder *encoder, - if (intel_hdmi->color_range) - pipe_config->limited_color_range = true; - +@@ -1266,6 +1267,8 @@ bool intel_hdmi_compute_config(struct intel_encoder *encoder, + pipe_config->limited_color_range = + intel_hdmi->limited_color_range; + } + if (intel_hdmi->color_range_video) -+ pipe_config->video_color_range = true; -+ - if (HAS_PCH_SPLIT(dev) && !HAS_DDI(dev)) - pipe_config->has_pch_encoder = true; ++ pipe_config->video_color_range = true; -@@ -1209,25 +1213,34 @@ intel_hdmi_set_property(struct drm_connector *connector, + if (adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK) { + pipe_config->pixel_multiplier = 2; +@@ -1485,25 +1488,35 @@ intel_hdmi_set_property(struct drm_connector *connector, if (property == dev_priv->broadcast_rgb_property) { bool old_auto = intel_hdmi->color_range_auto; - uint32_t old_range = intel_hdmi->color_range; + bool old_range = intel_hdmi->limited_color_range; + bool old_range_video = intel_hdmi->color_range_video; switch (val) { @@ -85,31 +107,32 @@ index bfbe07b..8a45c16 100644 break; case INTEL_BROADCAST_RGB_FULL: intel_hdmi->color_range_auto = false; - intel_hdmi->color_range = 0; + intel_hdmi->limited_color_range = false; + intel_hdmi->color_range_video = false; break; case INTEL_BROADCAST_RGB_LIMITED: intel_hdmi->color_range_auto = false; - intel_hdmi->color_range = HDMI_COLOR_RANGE_16_235; -+ intel_hdmi->color_range_video = true; - break; + intel_hdmi->limited_color_range = true; ++ intel_hdmi->color_range_video = false; ++ break; + case INTEL_BROADCAST_RGB_VIDEO: + intel_hdmi->color_range_auto = false; -+ intel_hdmi->color_range = 0; ++ intel_hdmi->limited_color_range = true; + intel_hdmi->color_range_video = true; + break; default: return -EINVAL; } if (old_auto == intel_hdmi->color_range_auto && -- old_range == intel_hdmi->color_range) -+ old_range == intel_hdmi->color_range && +- old_range == intel_hdmi->limited_color_range) ++ old_range == intel_hdmi->limited_color_range && + old_range_video == intel_hdmi->color_range_video) return 0; goto done; diff --git a/drivers/gpu/drm/i915/intel_modes.c b/drivers/gpu/drm/i915/intel_modes.c -index 0e860f3..db39cbb 100644 +index 38a4c8c..c49681a 100644 --- a/drivers/gpu/drm/i915/intel_modes.c +++ b/drivers/gpu/drm/i915/intel_modes.c @@ -103,6 +103,7 @@ static const struct drm_prop_enum_list broadcast_rgb_names[] = { @@ -121,5 +144,5 @@ index 0e860f3..db39cbb 100644 void -- -2.1.4 +2.5.0 diff --git a/packages/linux/patches/4.3.2/linux-999-i915-use-legacy-turbo.patch b/packages/linux/patches/4.4-rc5/linux-999-i915-use-legacy-turbo.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-999-i915-use-legacy-turbo.patch rename to packages/linux/patches/4.4-rc5/linux-999-i915-use-legacy-turbo.patch diff --git a/packages/linux/patches/4.3.2/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch b/packages/linux/patches/4.4-rc5/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch rename to packages/linux/patches/4.4-rc5/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch diff --git a/packages/linux/patches/4.3.2/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch b/packages/linux/patches/4.4-rc5/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch similarity index 100% rename from packages/linux/patches/4.3.2/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch rename to packages/linux/patches/4.4-rc5/linux-999.05-eMMC-Don-t-initialize-partitions-on-RPMB-flagged-are.patch diff --git a/projects/Generic/linux/linux.x86_64.conf b/projects/Generic/linux/linux.x86_64.conf index 062f00d5c6..ef9ed7d206 100644 --- a/projects/Generic/linux/linux.x86_64.conf +++ b/projects/Generic/linux/linux.x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86_64 4.3.0 Kernel Configuration +# Linux/x86_64 4.4.0-rc5 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -303,7 +303,6 @@ CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_SIG is not set # CONFIG_MODULE_COMPRESS is not set CONFIG_MODULES_TREE_LOOKUP=y -CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y @@ -420,9 +419,6 @@ CONFIG_MICROCODE=y CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y -CONFIG_MICROCODE_INTEL_EARLY=y -CONFIG_MICROCODE_AMD_EARLY=y -CONFIG_MICROCODE_EARLY=y CONFIG_X86_MSR=y CONFIG_X86_CPUID=y CONFIG_ARCH_PHYS_ADDR_T_64BIT=y @@ -454,7 +450,6 @@ CONFIG_ARCH_DISCARD_MEMBLOCK=y # CONFIG_MOVABLE_NODE is not set # CONFIG_HAVE_BOOTMEM_INFO_NODE is not set # CONFIG_MEMORY_HOTPLUG is not set -CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y CONFIG_COMPACTION=y @@ -512,6 +507,9 @@ CONFIG_HOTPLUG_CPU=y # CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set # CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_COMPAT_VDSO is not set +# CONFIG_LEGACY_VSYSCALL_NATIVE is not set +CONFIG_LEGACY_VSYSCALL_EMULATE=y +# CONFIG_LEGACY_VSYSCALL_NONE is not set CONFIG_CMDLINE_BOOL=y CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init usbcore.autosuspend=-1" # CONFIG_CMDLINE_OVERRIDE is not set @@ -543,6 +541,7 @@ CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y +# CONFIG_ACPI_DEBUGGER is not set CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y @@ -788,6 +787,7 @@ CONFIG_NF_CONNTRACK_SIP=m # CONFIG_NF_CONNTRACK_TFTP is not set CONFIG_NF_CT_NETLINK=m # CONFIG_NF_CT_NETLINK_TIMEOUT is not set +# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y # CONFIG_NF_NAT_AMANDA is not set @@ -965,6 +965,7 @@ CONFIG_DNS_RESOLVER=y # CONFIG_MPLS is not set # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set +# CONFIG_NET_L3_MASTER_DEV is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y @@ -1007,7 +1008,6 @@ CONFIG_BT_HCIBTUSB_RTL=y # CONFIG_BT_HCIBTSDIO is not set # CONFIG_BT_HCIUART is not set # CONFIG_BT_HCIBCM203X is not set -# CONFIG_BT_HCIBPA10X is not set # CONFIG_BT_HCIBFUSB is not set # CONFIG_BT_HCIVHCI is not set # CONFIG_BT_MRVL is not set @@ -1027,6 +1027,7 @@ CONFIG_CFG80211=m CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set CONFIG_CFG80211_INTERNAL_REGDB=y +# CONFIG_CFG80211_CRDA_SUPPORT is not set CONFIG_CFG80211_WEXT=y CONFIG_CFG80211_WEXT_EXPORT=y CONFIG_LIB80211=m @@ -1114,7 +1115,6 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=y -CONFIG_BLK_DEV_NVME=y # CONFIG_BLK_DEV_SKD is not set # CONFIG_BLK_DEV_SX8 is not set CONFIG_BLK_DEV_RAM=y @@ -1125,6 +1125,7 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_BLK_DEV_HD is not set # CONFIG_BLK_DEV_RBD is not set # CONFIG_BLK_DEV_RSXX is not set +CONFIG_BLK_DEV_NVME=y # # Misc devices @@ -1194,6 +1195,10 @@ CONFIG_ALTERA_STAPL=m # # SCIF Driver # + +# +# Intel MIC Coprocessor State Management (COSM) Drivers +# # CONFIG_GENWQE is not set # CONFIG_ECHO is not set # CONFIG_CXL_BASE is not set @@ -1265,8 +1270,8 @@ CONFIG_SCSI_MVSAS=y # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_SAS is not set -# CONFIG_SCSI_MPT2SAS is not set # CONFIG_SCSI_MPT3SAS is not set +# CONFIG_SCSI_MPT2SAS is not set # CONFIG_SCSI_UFSHCD is not set # CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_BUSLOGIC is not set @@ -1447,6 +1452,7 @@ CONFIG_ATL1=y CONFIG_ATL1E=y CONFIG_ATL1C=y CONFIG_ALX=y +# CONFIG_NET_VENDOR_AURORA is not set # CONFIG_NET_CADENCE is not set CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=y @@ -1458,6 +1464,7 @@ CONFIG_BNX2=y CONFIG_CNIC=y CONFIG_TIGON3=y # CONFIG_BNX2X is not set +# CONFIG_BNXT is not set # CONFIG_NET_VENDOR_BROCADE is not set CONFIG_NET_VENDOR_CAVIUM=y # CONFIG_THUNDER_NIC_PF is not set @@ -1495,7 +1502,6 @@ CONFIG_IGB_HWMON=y # CONFIG_I40EVF is not set # CONFIG_FM10K is not set CONFIG_NET_VENDOR_I825XX=y -CONFIG_IP1000=y CONFIG_JME=y CONFIG_NET_VENDOR_MARVELL=y # CONFIG_MVMDIO is not set @@ -1519,6 +1525,7 @@ CONFIG_QLA3XXX=y # CONFIG_QLCNIC is not set # CONFIG_QLGE is not set # CONFIG_NETXEN_NIC is not set +# CONFIG_QED is not set # CONFIG_NET_VENDOR_QUALCOMM is not set CONFIG_NET_VENDOR_REALTEK=y # CONFIG_8139CP is not set @@ -1568,6 +1575,7 @@ CONFIG_MARVELL_PHY=y # CONFIG_VITESSE_PHY is not set # CONFIG_TERANETICS_PHY is not set # CONFIG_SMSC_PHY is not set +CONFIG_BCM_NET_PHYLIB=y CONFIG_BROADCOM_PHY=y # CONFIG_BCM7XXX_PHY is not set # CONFIG_BCM87XX_PHY is not set @@ -1641,10 +1649,10 @@ CONFIG_PCI_ATMEL=m # CONFIG_PRISM54 is not set CONFIG_USB_ZD1201=m CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_ADM8211 is not set CONFIG_RTL8180=m CONFIG_RTL8187=m CONFIG_RTL8187_LEDS=y -# CONFIG_ADM8211 is not set # CONFIG_MAC80211_HWSIM is not set # CONFIG_MWL8K is not set CONFIG_ATH_COMMON=m @@ -1782,6 +1790,8 @@ CONFIG_RTLWIFI_PCI=m CONFIG_RTL8192C_COMMON=m CONFIG_RTL8723_COMMON=m CONFIG_RTLBTCOEXIST=m +CONFIG_RTL8XXXU=m +CONFIG_RTL8XXXU_UNTESTED=y # CONFIG_WL_TI is not set CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set @@ -1796,6 +1806,7 @@ CONFIG_ZD1211RW=m # CONFIG_VMXNET3 is not set # CONFIG_FUJITSU_ES is not set # CONFIG_ISDN is not set +# CONFIG_NVM is not set # # Input device support @@ -1939,11 +1950,13 @@ CONFIG_TOUCHSCREEN_USB_3M=y CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set # CONFIG_TOUCHSCREEN_TSC_SERIO is not set +# CONFIG_TOUCHSCREEN_TSC2004 is not set # CONFIG_TOUCHSCREEN_TSC2007 is not set CONFIG_TOUCHSCREEN_ST1232=m # CONFIG_TOUCHSCREEN_SUR40 is not set # CONFIG_TOUCHSCREEN_SX8654 is not set # CONFIG_TOUCHSCREEN_TPS6507X is not set +# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set CONFIG_INPUT_MISC=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_BMA150 is not set @@ -1981,6 +1994,7 @@ CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_ALTERA_PS2 is not set # CONFIG_SERIO_PS2MULT is not set # CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_USERIO is not set # CONFIG_GAMEPORT is not set # @@ -2015,7 +2029,9 @@ CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 # CONFIG_SERIAL_8250_EXTENDED is not set # CONFIG_SERIAL_8250_DW is not set +# CONFIG_SERIAL_8250_RT288X is not set # CONFIG_SERIAL_8250_FINTEK is not set +# CONFIG_SERIAL_8250_MID is not set # # Non-8250 serial port support @@ -2158,6 +2174,7 @@ CONFIG_PINCTRL=y # # CONFIG_DEBUG_PINCTRL is not set # CONFIG_PINCTRL_CHERRYVIEW is not set +# CONFIG_PINCTRL_BROXTON is not set # CONFIG_PINCTRL_SUNRISEPOINT is not set CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y # CONFIG_GPIOLIB is not set @@ -2170,7 +2187,7 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_SBS is not set -# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_BQ27XXX is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set # CONFIG_CHARGER_MAX8903 is not set @@ -2243,6 +2260,7 @@ CONFIG_SENSORS_IT87=m # CONFIG_SENSORS_MAX6642 is not set # CONFIG_SENSORS_MAX6650 is not set # CONFIG_SENSORS_MAX6697 is not set +# CONFIG_SENSORS_MAX31790 is not set # CONFIG_SENSORS_HTU21 is not set # CONFIG_SENSORS_MCP3021 is not set # CONFIG_SENSORS_LM63 is not set @@ -2314,7 +2332,7 @@ CONFIG_SENSORS_W83627EHF=y CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=y CONFIG_THERMAL_HWMON=y -# CONFIG_THERMAL_WRITABLE_TRIPS is not set +CONFIG_THERMAL_WRITABLE_TRIPS=y CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y # CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set # CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set @@ -2343,6 +2361,7 @@ CONFIG_SSB_PCIHOST=y # CONFIG_SSB_B43_PCI_BRIDGE is not set CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y +# CONFIG_SSB_HOST_SOC is not set # CONFIG_SSB_SILENT is not set # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y @@ -2690,6 +2709,10 @@ CONFIG_CYPRESS_FIRMWARE=m CONFIG_DVB_B2C2_FLEXCOP=m CONFIG_VIDEO_SAA7146=m CONFIG_VIDEO_SAA7146_VV=m +CONFIG_SAA716X_SUPPORT=y +CONFIG_SAA716X_CORE=m +CONFIG_DVB_SAA716X_BUDGET=m +CONFIG_DVB_SAA716X_HYBRID=m CONFIG_SMS_SIANO_MDTV=m CONFIG_SMS_SIANO_RC=y # CONFIG_SMS_SIANO_DEBUGFS is not set @@ -3043,6 +3066,7 @@ CONFIG_FB_EFI=y # CONFIG_FB_CARMINE is not set # CONFIG_FB_SMSCUFX is not set # CONFIG_FB_UDL is not set +# CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set @@ -3089,6 +3113,7 @@ CONFIG_SND_JACK=y # CONFIG_SND_SEQUENCER is not set # CONFIG_SND_MIXER_OSS is not set # CONFIG_SND_PCM_OSS is not set +CONFIG_SND_PCM_TIMER=y CONFIG_SND_HRTIMER=y CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_MAX_CARDS=32 @@ -3225,6 +3250,8 @@ CONFIG_SND_FIREWIRE=y # CONFIG_SND_SCS1X is not set # CONFIG_SND_FIREWORKS is not set # CONFIG_SND_BEBOB is not set +# CONFIG_SND_FIREWIRE_DIGI00X is not set +# CONFIG_SND_FIREWIRE_TASCAM is not set # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m @@ -3250,6 +3277,7 @@ CONFIG_HID_BELKIN=y # CONFIG_HID_BETOP_FF is not set CONFIG_HID_CHERRY=y CONFIG_HID_CHICONY=y +# CONFIG_HID_CORSAIR is not set # CONFIG_HID_PRODIKEYS is not set CONFIG_HID_CYPRESS=y CONFIG_HID_DRAGONRISE=m @@ -3259,6 +3287,7 @@ CONFIG_DRAGONRISE_FF=y # CONFIG_HID_ELO is not set CONFIG_HID_EZKEY=y # CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set # CONFIG_HID_HOLTEK is not set # CONFIG_HID_GT683R is not set # CONFIG_HID_KEYTOUCH is not set @@ -3342,7 +3371,6 @@ CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_OTG is not set # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set -# CONFIG_USB_OTG_FSM is not set # CONFIG_USB_ULPI_BUS is not set # CONFIG_USB_MON is not set # CONFIG_USB_WUSB_CBAF is not set @@ -3362,7 +3390,6 @@ CONFIG_USB_EHCI_PCI=y # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1362_HCD is not set -# CONFIG_USB_FUSBH200_HCD is not set # CONFIG_USB_FOTG210_HCD is not set CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PCI=y @@ -3513,7 +3540,6 @@ CONFIG_USB_SERIAL_PL2303=m # CONFIG_UWB is not set CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_CLKGATE is not set # # MMC/SD/SDIO Card Drivers @@ -3657,6 +3683,7 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_EM3027 is not set # CONFIG_RTC_DRV_RV3029C2 is not set +# CONFIG_RTC_DRV_RV8803 is not set # # SPI RTC drivers @@ -3725,7 +3752,6 @@ CONFIG_RTS5208=y CONFIG_VT6656=m # CONFIG_FB_SM750 is not set # CONFIG_FB_XGI is not set -# CONFIG_FT1000 is not set # # Speakup console speech @@ -3758,6 +3784,7 @@ CONFIG_LIRC_XBOX=m # CONFIG_GS_FPGABOOT is not set # CONFIG_CRYPTO_SKEIN is not set # CONFIG_UNISYSSPAR is not set +# CONFIG_WILC1000_DRIVER is not set # CONFIG_MOST is not set # CONFIG_X86_PLATFORM_DEVICES is not set # CONFIG_CHROME_PLATFORMS is not set @@ -3837,6 +3864,15 @@ CONFIG_THUNDERBOLT=m # CONFIG_ANDROID is not set # CONFIG_LIBNVDIMM is not set # CONFIG_NVMEM is not set +# CONFIG_STM is not set +# CONFIG_STM_DUMMY is not set +# CONFIG_STM_SOURCE_CONSOLE is not set +# CONFIG_INTEL_TH is not set + +# +# FPGA Configuration Support +# +# CONFIG_FPGA is not set # # Firmware Drivers @@ -3857,6 +3893,7 @@ CONFIG_ISCSI_IBFT=y # CONFIG_EFI_VARS=y CONFIG_EFI_ESRT=y +# CONFIG_EFI_FAKE_MEMMAP is not set CONFIG_EFI_RUNTIME_WRAPPERS=y # @@ -4112,6 +4149,7 @@ CONFIG_STRIP_ASM_SYMS=y 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 is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set @@ -4228,6 +4266,7 @@ CONFIG_TRACING_SUPPORT=y # CONFIG_TEST_HEXDUMP is not set # CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set # CONFIG_TEST_RHASHTABLE is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_DMA_API_DEBUG is not set @@ -4244,9 +4283,12 @@ CONFIG_HAVE_ARCH_KGDB=y CONFIG_STRICT_DEVMEM=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_EARLY_PRINTK is not set +# CONFIG_X86_PTDUMP_CORE is not set # CONFIG_X86_PTDUMP is not set +# CONFIG_EFI_PGT_DUMP is not set CONFIG_DEBUG_RODATA=y # CONFIG_DEBUG_RODATA_TEST is not set +# CONFIG_DEBUG_WX is not set # CONFIG_DEBUG_SET_MODULE_RONX is not set # CONFIG_DEBUG_NX_TEST is not set CONFIG_DOUBLEFAULT=y @@ -4337,6 +4379,7 @@ CONFIG_CRYPTO_ECB=y # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_PCBC is not set # CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_KEYWRAP is not set # # Hash modes @@ -4444,7 +4487,6 @@ CONFIG_CRYPTO_JITTERENTROPY=m # # CONFIG_SYSTEM_TRUSTED_KEYRING is not set CONFIG_HAVE_KVM=y -CONFIG_KVM_COMPAT=y # CONFIG_VIRTUALIZATION is not set # CONFIG_BINARY_PRINTF is not set diff --git a/projects/Nvidia_Legacy/linux/linux.x86_64.conf b/projects/Nvidia_Legacy/linux/linux.x86_64.conf index 062f00d5c6..ef9ed7d206 100644 --- a/projects/Nvidia_Legacy/linux/linux.x86_64.conf +++ b/projects/Nvidia_Legacy/linux/linux.x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86_64 4.3.0 Kernel Configuration +# Linux/x86_64 4.4.0-rc5 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -303,7 +303,6 @@ CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_SIG is not set # CONFIG_MODULE_COMPRESS is not set CONFIG_MODULES_TREE_LOOKUP=y -CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y @@ -420,9 +419,6 @@ CONFIG_MICROCODE=y CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y -CONFIG_MICROCODE_INTEL_EARLY=y -CONFIG_MICROCODE_AMD_EARLY=y -CONFIG_MICROCODE_EARLY=y CONFIG_X86_MSR=y CONFIG_X86_CPUID=y CONFIG_ARCH_PHYS_ADDR_T_64BIT=y @@ -454,7 +450,6 @@ CONFIG_ARCH_DISCARD_MEMBLOCK=y # CONFIG_MOVABLE_NODE is not set # CONFIG_HAVE_BOOTMEM_INFO_NODE is not set # CONFIG_MEMORY_HOTPLUG is not set -CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y CONFIG_COMPACTION=y @@ -512,6 +507,9 @@ CONFIG_HOTPLUG_CPU=y # CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set # CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_COMPAT_VDSO is not set +# CONFIG_LEGACY_VSYSCALL_NATIVE is not set +CONFIG_LEGACY_VSYSCALL_EMULATE=y +# CONFIG_LEGACY_VSYSCALL_NONE is not set CONFIG_CMDLINE_BOOL=y CONFIG_CMDLINE="root=/dev/ram0 rdinit=/init usbcore.autosuspend=-1" # CONFIG_CMDLINE_OVERRIDE is not set @@ -543,6 +541,7 @@ CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y +# CONFIG_ACPI_DEBUGGER is not set CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y @@ -788,6 +787,7 @@ CONFIG_NF_CONNTRACK_SIP=m # CONFIG_NF_CONNTRACK_TFTP is not set CONFIG_NF_CT_NETLINK=m # CONFIG_NF_CT_NETLINK_TIMEOUT is not set +# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y # CONFIG_NF_NAT_AMANDA is not set @@ -965,6 +965,7 @@ CONFIG_DNS_RESOLVER=y # CONFIG_MPLS is not set # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set +# CONFIG_NET_L3_MASTER_DEV is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y @@ -1007,7 +1008,6 @@ CONFIG_BT_HCIBTUSB_RTL=y # CONFIG_BT_HCIBTSDIO is not set # CONFIG_BT_HCIUART is not set # CONFIG_BT_HCIBCM203X is not set -# CONFIG_BT_HCIBPA10X is not set # CONFIG_BT_HCIBFUSB is not set # CONFIG_BT_HCIVHCI is not set # CONFIG_BT_MRVL is not set @@ -1027,6 +1027,7 @@ CONFIG_CFG80211=m CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set CONFIG_CFG80211_INTERNAL_REGDB=y +# CONFIG_CFG80211_CRDA_SUPPORT is not set CONFIG_CFG80211_WEXT=y CONFIG_CFG80211_WEXT_EXPORT=y CONFIG_LIB80211=m @@ -1114,7 +1115,6 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=y -CONFIG_BLK_DEV_NVME=y # CONFIG_BLK_DEV_SKD is not set # CONFIG_BLK_DEV_SX8 is not set CONFIG_BLK_DEV_RAM=y @@ -1125,6 +1125,7 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_BLK_DEV_HD is not set # CONFIG_BLK_DEV_RBD is not set # CONFIG_BLK_DEV_RSXX is not set +CONFIG_BLK_DEV_NVME=y # # Misc devices @@ -1194,6 +1195,10 @@ CONFIG_ALTERA_STAPL=m # # SCIF Driver # + +# +# Intel MIC Coprocessor State Management (COSM) Drivers +# # CONFIG_GENWQE is not set # CONFIG_ECHO is not set # CONFIG_CXL_BASE is not set @@ -1265,8 +1270,8 @@ CONFIG_SCSI_MVSAS=y # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_SAS is not set -# CONFIG_SCSI_MPT2SAS is not set # CONFIG_SCSI_MPT3SAS is not set +# CONFIG_SCSI_MPT2SAS is not set # CONFIG_SCSI_UFSHCD is not set # CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_BUSLOGIC is not set @@ -1447,6 +1452,7 @@ CONFIG_ATL1=y CONFIG_ATL1E=y CONFIG_ATL1C=y CONFIG_ALX=y +# CONFIG_NET_VENDOR_AURORA is not set # CONFIG_NET_CADENCE is not set CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=y @@ -1458,6 +1464,7 @@ CONFIG_BNX2=y CONFIG_CNIC=y CONFIG_TIGON3=y # CONFIG_BNX2X is not set +# CONFIG_BNXT is not set # CONFIG_NET_VENDOR_BROCADE is not set CONFIG_NET_VENDOR_CAVIUM=y # CONFIG_THUNDER_NIC_PF is not set @@ -1495,7 +1502,6 @@ CONFIG_IGB_HWMON=y # CONFIG_I40EVF is not set # CONFIG_FM10K is not set CONFIG_NET_VENDOR_I825XX=y -CONFIG_IP1000=y CONFIG_JME=y CONFIG_NET_VENDOR_MARVELL=y # CONFIG_MVMDIO is not set @@ -1519,6 +1525,7 @@ CONFIG_QLA3XXX=y # CONFIG_QLCNIC is not set # CONFIG_QLGE is not set # CONFIG_NETXEN_NIC is not set +# CONFIG_QED is not set # CONFIG_NET_VENDOR_QUALCOMM is not set CONFIG_NET_VENDOR_REALTEK=y # CONFIG_8139CP is not set @@ -1568,6 +1575,7 @@ CONFIG_MARVELL_PHY=y # CONFIG_VITESSE_PHY is not set # CONFIG_TERANETICS_PHY is not set # CONFIG_SMSC_PHY is not set +CONFIG_BCM_NET_PHYLIB=y CONFIG_BROADCOM_PHY=y # CONFIG_BCM7XXX_PHY is not set # CONFIG_BCM87XX_PHY is not set @@ -1641,10 +1649,10 @@ CONFIG_PCI_ATMEL=m # CONFIG_PRISM54 is not set CONFIG_USB_ZD1201=m CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_ADM8211 is not set CONFIG_RTL8180=m CONFIG_RTL8187=m CONFIG_RTL8187_LEDS=y -# CONFIG_ADM8211 is not set # CONFIG_MAC80211_HWSIM is not set # CONFIG_MWL8K is not set CONFIG_ATH_COMMON=m @@ -1782,6 +1790,8 @@ CONFIG_RTLWIFI_PCI=m CONFIG_RTL8192C_COMMON=m CONFIG_RTL8723_COMMON=m CONFIG_RTLBTCOEXIST=m +CONFIG_RTL8XXXU=m +CONFIG_RTL8XXXU_UNTESTED=y # CONFIG_WL_TI is not set CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set @@ -1796,6 +1806,7 @@ CONFIG_ZD1211RW=m # CONFIG_VMXNET3 is not set # CONFIG_FUJITSU_ES is not set # CONFIG_ISDN is not set +# CONFIG_NVM is not set # # Input device support @@ -1939,11 +1950,13 @@ CONFIG_TOUCHSCREEN_USB_3M=y CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set # CONFIG_TOUCHSCREEN_TSC_SERIO is not set +# CONFIG_TOUCHSCREEN_TSC2004 is not set # CONFIG_TOUCHSCREEN_TSC2007 is not set CONFIG_TOUCHSCREEN_ST1232=m # CONFIG_TOUCHSCREEN_SUR40 is not set # CONFIG_TOUCHSCREEN_SX8654 is not set # CONFIG_TOUCHSCREEN_TPS6507X is not set +# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set CONFIG_INPUT_MISC=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_BMA150 is not set @@ -1981,6 +1994,7 @@ CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_ALTERA_PS2 is not set # CONFIG_SERIO_PS2MULT is not set # CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_USERIO is not set # CONFIG_GAMEPORT is not set # @@ -2015,7 +2029,9 @@ CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 # CONFIG_SERIAL_8250_EXTENDED is not set # CONFIG_SERIAL_8250_DW is not set +# CONFIG_SERIAL_8250_RT288X is not set # CONFIG_SERIAL_8250_FINTEK is not set +# CONFIG_SERIAL_8250_MID is not set # # Non-8250 serial port support @@ -2158,6 +2174,7 @@ CONFIG_PINCTRL=y # # CONFIG_DEBUG_PINCTRL is not set # CONFIG_PINCTRL_CHERRYVIEW is not set +# CONFIG_PINCTRL_BROXTON is not set # CONFIG_PINCTRL_SUNRISEPOINT is not set CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y # CONFIG_GPIOLIB is not set @@ -2170,7 +2187,7 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_SBS is not set -# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_BQ27XXX is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set # CONFIG_CHARGER_MAX8903 is not set @@ -2243,6 +2260,7 @@ CONFIG_SENSORS_IT87=m # CONFIG_SENSORS_MAX6642 is not set # CONFIG_SENSORS_MAX6650 is not set # CONFIG_SENSORS_MAX6697 is not set +# CONFIG_SENSORS_MAX31790 is not set # CONFIG_SENSORS_HTU21 is not set # CONFIG_SENSORS_MCP3021 is not set # CONFIG_SENSORS_LM63 is not set @@ -2314,7 +2332,7 @@ CONFIG_SENSORS_W83627EHF=y CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=y CONFIG_THERMAL_HWMON=y -# CONFIG_THERMAL_WRITABLE_TRIPS is not set +CONFIG_THERMAL_WRITABLE_TRIPS=y CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y # CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set # CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set @@ -2343,6 +2361,7 @@ CONFIG_SSB_PCIHOST=y # CONFIG_SSB_B43_PCI_BRIDGE is not set CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y +# CONFIG_SSB_HOST_SOC is not set # CONFIG_SSB_SILENT is not set # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y @@ -2690,6 +2709,10 @@ CONFIG_CYPRESS_FIRMWARE=m CONFIG_DVB_B2C2_FLEXCOP=m CONFIG_VIDEO_SAA7146=m CONFIG_VIDEO_SAA7146_VV=m +CONFIG_SAA716X_SUPPORT=y +CONFIG_SAA716X_CORE=m +CONFIG_DVB_SAA716X_BUDGET=m +CONFIG_DVB_SAA716X_HYBRID=m CONFIG_SMS_SIANO_MDTV=m CONFIG_SMS_SIANO_RC=y # CONFIG_SMS_SIANO_DEBUGFS is not set @@ -3043,6 +3066,7 @@ CONFIG_FB_EFI=y # CONFIG_FB_CARMINE is not set # CONFIG_FB_SMSCUFX is not set # CONFIG_FB_UDL is not set +# CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set @@ -3089,6 +3113,7 @@ CONFIG_SND_JACK=y # CONFIG_SND_SEQUENCER is not set # CONFIG_SND_MIXER_OSS is not set # CONFIG_SND_PCM_OSS is not set +CONFIG_SND_PCM_TIMER=y CONFIG_SND_HRTIMER=y CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_MAX_CARDS=32 @@ -3225,6 +3250,8 @@ CONFIG_SND_FIREWIRE=y # CONFIG_SND_SCS1X is not set # CONFIG_SND_FIREWORKS is not set # CONFIG_SND_BEBOB is not set +# CONFIG_SND_FIREWIRE_DIGI00X is not set +# CONFIG_SND_FIREWIRE_TASCAM is not set # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m @@ -3250,6 +3277,7 @@ CONFIG_HID_BELKIN=y # CONFIG_HID_BETOP_FF is not set CONFIG_HID_CHERRY=y CONFIG_HID_CHICONY=y +# CONFIG_HID_CORSAIR is not set # CONFIG_HID_PRODIKEYS is not set CONFIG_HID_CYPRESS=y CONFIG_HID_DRAGONRISE=m @@ -3259,6 +3287,7 @@ CONFIG_DRAGONRISE_FF=y # CONFIG_HID_ELO is not set CONFIG_HID_EZKEY=y # CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set # CONFIG_HID_HOLTEK is not set # CONFIG_HID_GT683R is not set # CONFIG_HID_KEYTOUCH is not set @@ -3342,7 +3371,6 @@ CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_OTG is not set # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set -# CONFIG_USB_OTG_FSM is not set # CONFIG_USB_ULPI_BUS is not set # CONFIG_USB_MON is not set # CONFIG_USB_WUSB_CBAF is not set @@ -3362,7 +3390,6 @@ CONFIG_USB_EHCI_PCI=y # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1362_HCD is not set -# CONFIG_USB_FUSBH200_HCD is not set # CONFIG_USB_FOTG210_HCD is not set CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PCI=y @@ -3513,7 +3540,6 @@ CONFIG_USB_SERIAL_PL2303=m # CONFIG_UWB is not set CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_CLKGATE is not set # # MMC/SD/SDIO Card Drivers @@ -3657,6 +3683,7 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_EM3027 is not set # CONFIG_RTC_DRV_RV3029C2 is not set +# CONFIG_RTC_DRV_RV8803 is not set # # SPI RTC drivers @@ -3725,7 +3752,6 @@ CONFIG_RTS5208=y CONFIG_VT6656=m # CONFIG_FB_SM750 is not set # CONFIG_FB_XGI is not set -# CONFIG_FT1000 is not set # # Speakup console speech @@ -3758,6 +3784,7 @@ CONFIG_LIRC_XBOX=m # CONFIG_GS_FPGABOOT is not set # CONFIG_CRYPTO_SKEIN is not set # CONFIG_UNISYSSPAR is not set +# CONFIG_WILC1000_DRIVER is not set # CONFIG_MOST is not set # CONFIG_X86_PLATFORM_DEVICES is not set # CONFIG_CHROME_PLATFORMS is not set @@ -3837,6 +3864,15 @@ CONFIG_THUNDERBOLT=m # CONFIG_ANDROID is not set # CONFIG_LIBNVDIMM is not set # CONFIG_NVMEM is not set +# CONFIG_STM is not set +# CONFIG_STM_DUMMY is not set +# CONFIG_STM_SOURCE_CONSOLE is not set +# CONFIG_INTEL_TH is not set + +# +# FPGA Configuration Support +# +# CONFIG_FPGA is not set # # Firmware Drivers @@ -3857,6 +3893,7 @@ CONFIG_ISCSI_IBFT=y # CONFIG_EFI_VARS=y CONFIG_EFI_ESRT=y +# CONFIG_EFI_FAKE_MEMMAP is not set CONFIG_EFI_RUNTIME_WRAPPERS=y # @@ -4112,6 +4149,7 @@ CONFIG_STRIP_ASM_SYMS=y 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 is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set @@ -4228,6 +4266,7 @@ CONFIG_TRACING_SUPPORT=y # CONFIG_TEST_HEXDUMP is not set # CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set # CONFIG_TEST_RHASHTABLE is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_DMA_API_DEBUG is not set @@ -4244,9 +4283,12 @@ CONFIG_HAVE_ARCH_KGDB=y CONFIG_STRICT_DEVMEM=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_EARLY_PRINTK is not set +# CONFIG_X86_PTDUMP_CORE is not set # CONFIG_X86_PTDUMP is not set +# CONFIG_EFI_PGT_DUMP is not set CONFIG_DEBUG_RODATA=y # CONFIG_DEBUG_RODATA_TEST is not set +# CONFIG_DEBUG_WX is not set # CONFIG_DEBUG_SET_MODULE_RONX is not set # CONFIG_DEBUG_NX_TEST is not set CONFIG_DOUBLEFAULT=y @@ -4337,6 +4379,7 @@ CONFIG_CRYPTO_ECB=y # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_PCBC is not set # CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_KEYWRAP is not set # # Hash modes @@ -4444,7 +4487,6 @@ CONFIG_CRYPTO_JITTERENTROPY=m # # CONFIG_SYSTEM_TRUSTED_KEYRING is not set CONFIG_HAVE_KVM=y -CONFIG_KVM_COMPAT=y # CONFIG_VIRTUALIZATION is not set # CONFIG_BINARY_PRINTF is not set diff --git a/projects/RPi/linux/linux.arm.conf b/projects/RPi/linux/linux.arm.conf index d207f08aca..0c9ae9ba96 100644 --- a/projects/RPi/linux/linux.arm.conf +++ b/projects/RPi/linux/linux.arm.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.3.0 Kernel Configuration +# Linux/arm 4.4.0-rc4 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -308,7 +308,6 @@ CONFIG_ARCH_BCM2708=y # CONFIG_ARCH_W90X900 is not set # CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_SHMOBILE_LEGACY is not set # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set # CONFIG_ARCH_S3C24XX is not set @@ -366,6 +365,7 @@ CONFIG_ARM_ERRATA_364296=y # Kernel Features # # CONFIG_VMSPLIT_3G is not set +# CONFIG_VMSPLIT_3G_OPT is not set CONFIG_VMSPLIT_2G=y # CONFIG_VMSPLIT_1G is not set CONFIG_PAGE_OFFSET=0x80000000 @@ -397,7 +397,6 @@ CONFIG_HAVE_MEMBLOCK=y CONFIG_NO_BOOTMEM=y CONFIG_MEMORY_ISOLATION=y # CONFIG_HAVE_BOOTMEM_INFO_NODE is not set -CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_COMPACTION=y CONFIG_MIGRATION=y @@ -615,6 +614,7 @@ CONFIG_NF_CONNTRACK_SIP=m # CONFIG_NF_CONNTRACK_TFTP is not set CONFIG_NF_CT_NETLINK=m # CONFIG_NF_CT_NETLINK_TIMEOUT is not set +# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y # CONFIG_NF_NAT_AMANDA is not set @@ -791,6 +791,7 @@ CONFIG_DNS_RESOLVER=y # CONFIG_MPLS is not set # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set +# CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_CGROUP_NET_PRIO is not set # CONFIG_CGROUP_NET_CLASSID is not set CONFIG_NET_RX_BUSY_POLL=y @@ -827,7 +828,6 @@ CONFIG_BT_HCIBTUSB_RTL=y # CONFIG_BT_HCIBTSDIO is not set # CONFIG_BT_HCIUART is not set CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m # CONFIG_BT_HCIVHCI is not set # CONFIG_BT_MRVL is not set @@ -846,6 +846,7 @@ CONFIG_CFG80211=m CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set CONFIG_CFG80211_INTERNAL_REGDB=y +# CONFIG_CFG80211_CRDA_SUPPORT is not set CONFIG_CFG80211_WEXT=y # CONFIG_LIB80211 is not set CONFIG_MAC80211=m @@ -1016,6 +1017,10 @@ CONFIG_BCM2708_VCHIQ=y # # SCIF Driver # + +# +# Intel MIC Coprocessor State Management (COSM) Drivers +# # CONFIG_ECHO is not set # CONFIG_CXL_BASE is not set # CONFIG_CXL_KERNEL_API is not set @@ -1259,6 +1264,8 @@ CONFIG_WL_MEDIATEK=y CONFIG_MT7601U=m CONFIG_RTL_CARDS=m # CONFIG_RTL8192CU is not set +CONFIG_RTL8XXXU=m +CONFIG_RTL8XXXU_UNTESTED=y # CONFIG_WL_TI is not set CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set @@ -1271,6 +1278,7 @@ CONFIG_ZD1211RW=m # # CONFIG_WAN is not set # CONFIG_ISDN is not set +# CONFIG_NVM is not set # # Input device support @@ -1387,6 +1395,7 @@ CONFIG_TOUCHSCREEN_USB_3M=y # CONFIG_TOUCHSCREEN_USB_EASYTOUCH is not set # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set # CONFIG_TOUCHSCREEN_TSC_SERIO is not set +# CONFIG_TOUCHSCREEN_TSC2004 is not set # CONFIG_TOUCHSCREEN_TSC2005 is not set # CONFIG_TOUCHSCREEN_TSC2007 is not set CONFIG_TOUCHSCREEN_ST1232=m @@ -1394,6 +1403,7 @@ CONFIG_TOUCHSCREEN_ST1232=m # CONFIG_TOUCHSCREEN_SX8654 is not set # CONFIG_TOUCHSCREEN_TPS6507X is not set # CONFIG_TOUCHSCREEN_ZFORCE is not set +# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set CONFIG_INPUT_MISC=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ARIZONA_HAPTICS is not set @@ -1629,8 +1639,9 @@ CONFIG_GPIO_SYSFS=y # CONFIG_GPIO_GENERIC_PLATFORM is not set # CONFIG_GPIO_GRGPIO is not set # CONFIG_GPIO_PL061 is not set -# CONFIG_GPIO_SCH311X is not set +# CONFIG_GPIO_XILINX is not set # CONFIG_GPIO_ZEVIO is not set +# CONFIG_GPIO_ZX is not set # # I2C GPIO expanders @@ -1653,9 +1664,12 @@ CONFIG_GPIO_ARIZONA=m # # CONFIG_GPIO_74X164 is not set # CONFIG_GPIO_MAX7301 is not set -# CONFIG_GPIO_MCP23S08 is not set # CONFIG_GPIO_MC33880 is not set -# CONFIG_GPIO_ZX is not set + +# +# SPI or I2C GPIO expanders +# +# CONFIG_GPIO_MCP23S08 is not set # # USB GPIO expanders @@ -1694,7 +1708,7 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_SBS is not set -# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_BQ27XXX is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set # CONFIG_CHARGER_MAX8903 is not set @@ -1765,6 +1779,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_MAX6642 is not set # CONFIG_SENSORS_MAX6650 is not set # CONFIG_SENSORS_MAX6697 is not set +# CONFIG_SENSORS_MAX31790 is not set # CONFIG_SENSORS_HTU21 is not set # CONFIG_SENSORS_MCP3021 is not set # CONFIG_SENSORS_ADCXX is not set @@ -1861,6 +1876,7 @@ CONFIG_WATCHDOG_CORE=y # CONFIG_DW_WATCHDOG is not set # CONFIG_MAX63XX_WATCHDOG is not set CONFIG_BCM2835_WDT=m +# CONFIG_BCM7038_WDT is not set # CONFIG_MEN_A21_WDT is not set # @@ -1876,6 +1892,7 @@ CONFIG_SSB=m CONFIG_SSB_BLOCKIO=y CONFIG_SSB_SDIOHOST_POSSIBLE=y # CONFIG_SSB_SDIOHOST is not set +# CONFIG_SSB_HOST_SOC is not set # CONFIG_SSB_SILENT is not set # CONFIG_SSB_DEBUG is not set # CONFIG_SSB_DRIVER_GPIO is not set @@ -1900,6 +1917,7 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_AS3722 is not set # CONFIG_PMIC_ADP5520 is not set # CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_ATMEL_FLEXCOM is not set # CONFIG_MFD_ATMEL_HLCDC is not set # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_AXP20X is not set @@ -2412,6 +2430,7 @@ CONFIG_FB_BCM2708=y # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_SMSCUFX is not set # CONFIG_FB_UDL is not set +# 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 @@ -2438,11 +2457,11 @@ CONFIG_SND_PCM=m CONFIG_SND_DMAENGINE_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m -CONFIG_SND_COMPRESS_OFFLOAD=m CONFIG_SND_JACK=y # CONFIG_SND_SEQUENCER is not set # CONFIG_SND_MIXER_OSS is not set # CONFIG_SND_PCM_OSS is not set +CONFIG_SND_PCM_TIMER=y CONFIG_SND_HRTIMER=m CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_MAX_CARDS=32 @@ -2508,6 +2527,11 @@ CONFIG_SND_BCM2708_SOC_RASPIDAC3=m # CONFIG_SND_SOC_FSL_SPDIF is not set # CONFIG_SND_SOC_FSL_ESAI is not set # CONFIG_SND_SOC_IMX_AUDMUX is not set + +# +# Allwinner SoC Audio support +# +# CONFIG_SND_SUN4I_CODEC is not set # CONFIG_SND_SOC_XTFPGA_I2S is not set CONFIG_SND_SOC_I2C_AND_SPI=m @@ -2518,6 +2542,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=m # CONFIG_SND_SOC_ADAU1701 is not set # CONFIG_SND_SOC_AK4104 is not set # CONFIG_SND_SOC_AK4554 is not set +# CONFIG_SND_SOC_AK4613 is not set # CONFIG_SND_SOC_AK4642 is not set # CONFIG_SND_SOC_AK5386 is not set # CONFIG_SND_SOC_ALC5623 is not set @@ -2532,7 +2557,6 @@ CONFIG_SND_SOC_I2C_AND_SPI=m # CONFIG_SND_SOC_CS4271_SPI is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set # CONFIG_SND_SOC_CS4349 is not set -# CONFIG_SND_SOC_HDMI_CODEC is not set # CONFIG_SND_SOC_ES8328 is not set # CONFIG_SND_SOC_GTM601 is not set # CONFIG_SND_SOC_PCM1681 is not set @@ -2607,6 +2631,7 @@ CONFIG_HID_BELKIN=y # CONFIG_HID_BETOP_FF is not set CONFIG_HID_CHERRY=y CONFIG_HID_CHICONY=y +# CONFIG_HID_CORSAIR is not set # CONFIG_HID_PRODIKEYS is not set # CONFIG_HID_CP2112 is not set CONFIG_HID_CYPRESS=y @@ -2617,6 +2642,7 @@ CONFIG_DRAGONRISE_FF=y # CONFIG_HID_ELO is not set CONFIG_HID_EZKEY=y # CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set # CONFIG_HID_HOLTEK is not set # CONFIG_HID_GT683R is not set # CONFIG_HID_KEYTOUCH is not set @@ -2699,7 +2725,6 @@ CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set -# CONFIG_USB_OTG_FSM is not set # CONFIG_USB_ULPI_BUS is not set CONFIG_USB_MON=m # CONFIG_USB_WUSB_CBAF is not set @@ -2713,7 +2738,6 @@ CONFIG_USB_MON=m # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1362_HCD is not set -# CONFIG_USB_FUSBH200_HCD is not set # CONFIG_USB_FOTG210_HCD is not set # CONFIG_USB_MAX3421_HCD is not set # CONFIG_USB_OHCI_HCD is not set @@ -2864,7 +2888,6 @@ CONFIG_USB_SERIAL_PL2303=m # CONFIG_UWB is not set CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_CLKGATE is not set # # MMC/SD/SDIO Card Drivers @@ -2998,6 +3021,7 @@ CONFIG_RTC_DRV_DS1307=m # CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_EM3027 is not set # CONFIG_RTC_DRV_RV3029C2 is not set +# CONFIG_RTC_DRV_RV8803 is not set # # SPI RTC drivers @@ -3059,7 +3083,7 @@ CONFIG_DMA_OF=y # CONFIG_AMBA_PL08X is not set CONFIG_DMA_BCM2835=y # CONFIG_FSL_EDMA is not set -# CONFIG_IDMA64 is not set +# CONFIG_INTEL_IDMA64 is not set # CONFIG_NBPFAXI_DMA is not set # CONFIG_PL330_DMA is not set CONFIG_DMA_BCM2708=y @@ -3089,7 +3113,6 @@ CONFIG_STAGING=y CONFIG_R8712U=m # CONFIG_R8188EU is not set CONFIG_VT6656=m -# CONFIG_FT1000 is not set # # Speakup console speech @@ -3119,6 +3142,7 @@ CONFIG_LIRC_XBOX=m # CONFIG_GS_FPGABOOT is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set # CONFIG_FB_TFT is not set +# CONFIG_WILC1000_DRIVER is not set # CONFIG_MOST is not set # CONFIG_CHROME_PLATFORMS is not set CONFIG_CLKDEV_LOOKUP=y @@ -3129,6 +3153,7 @@ CONFIG_COMMON_CLK=y # Common Clock Framework # # CONFIG_COMMON_CLK_SI5351 is not set +# CONFIG_COMMON_CLK_SI514 is not set # CONFIG_COMMON_CLK_SI570 is not set # CONFIG_COMMON_CLK_CDCE925 is not set # CONFIG_CLK_QORIQ is not set @@ -3143,6 +3168,7 @@ CONFIG_COMMON_CLK=y # Clock Source drivers # CONFIG_CLKSRC_OF=y +CONFIG_CLKSRC_PROBE=y CONFIG_CLKSRC_MMIO=y # CONFIG_ARM_TIMER_SP804 is not set # CONFIG_ATMEL_PIT is not set @@ -3155,6 +3181,7 @@ CONFIG_MAILBOX=y # CONFIG_PL320_MBOX is not set # CONFIG_ALTERA_MBOX is not set CONFIG_BCM2835_MBOX=y +# CONFIG_MAILBOX_TEST is not set # CONFIG_IOMMU_SUPPORT is not set # @@ -3169,6 +3196,7 @@ CONFIG_BCM2835_MBOX=y # # SOC (System On Chip) specific Drivers # +# CONFIG_SOC_BRCMSTB is not set # CONFIG_SUNXI_SRAM is not set # CONFIG_SOC_TI is not set # CONFIG_PM_DEVFREQ is not set @@ -3210,6 +3238,15 @@ CONFIG_IRQCHIP=y # # CONFIG_ANDROID is not set # CONFIG_NVMEM is not set +# CONFIG_STM is not set +# CONFIG_STM_DUMMY is not set +# CONFIG_STM_SOURCE_CONSOLE is not set +# CONFIG_INTEL_TH is not set + +# +# FPGA Configuration Support +# +# CONFIG_FPGA is not set # # Firmware Drivers @@ -3465,6 +3502,7 @@ CONFIG_STRIP_ASM_SYMS=y CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_FRAME_POINTER=y # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set CONFIG_MAGIC_SYSRQ=y @@ -3560,6 +3598,7 @@ CONFIG_TRACING_SUPPORT=y # CONFIG_TEST_HEXDUMP is not set # CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set # CONFIG_TEST_RHASHTABLE is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_TEST_LKM is not set @@ -3649,6 +3688,7 @@ CONFIG_CRYPTO_ECB=y # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_PCBC is not set # CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_KEYWRAP is not set # # Hash modes @@ -3743,6 +3783,7 @@ CONFIG_CRYPTO_AES_ARM=m CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y # CONFIG_HAVE_ARCH_BITREVERSE is not set +CONFIG_RATIONAL=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y diff --git a/projects/RPi2/linux/linux.arm.conf b/projects/RPi2/linux/linux.arm.conf index 75de64c221..55f85090e1 100644 --- a/projects/RPi2/linux/linux.arm.conf +++ b/projects/RPi2/linux/linux.arm.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.3.0 Kernel Configuration +# Linux/arm 4.4.0-rc4 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -314,7 +314,6 @@ CONFIG_ARCH_BCM2709=y # CONFIG_ARCH_W90X900 is not set # CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_SHMOBILE_LEGACY is not set # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set # CONFIG_ARCH_S3C24XX is not set @@ -399,6 +398,7 @@ CONFIG_HAVE_ARM_ARCH_TIMER=y # CONFIG_MCPM is not set # CONFIG_BIG_LITTLE is not set # CONFIG_VMSPLIT_3G is not set +# CONFIG_VMSPLIT_3G_OPT is not set CONFIG_VMSPLIT_2G=y # CONFIG_VMSPLIT_1G is not set CONFIG_PAGE_OFFSET=0x80000000 @@ -434,7 +434,6 @@ CONFIG_HAVE_MEMBLOCK=y CONFIG_NO_BOOTMEM=y CONFIG_MEMORY_ISOLATION=y # CONFIG_HAVE_BOOTMEM_INFO_NODE is not set -CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_COMPACTION=y CONFIG_MIGRATION=y @@ -655,6 +654,7 @@ CONFIG_NF_CONNTRACK_SIP=m # CONFIG_NF_CONNTRACK_TFTP is not set CONFIG_NF_CT_NETLINK=m # CONFIG_NF_CT_NETLINK_TIMEOUT is not set +# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y # CONFIG_NF_NAT_AMANDA is not set @@ -831,6 +831,7 @@ CONFIG_DNS_RESOLVER=y # CONFIG_MPLS is not set # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set +# CONFIG_NET_L3_MASTER_DEV is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y @@ -871,7 +872,6 @@ CONFIG_BT_HCIBTUSB_RTL=y # CONFIG_BT_HCIBTSDIO is not set # CONFIG_BT_HCIUART is not set CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m # CONFIG_BT_HCIVHCI is not set # CONFIG_BT_MRVL is not set @@ -890,6 +890,7 @@ CONFIG_CFG80211=m CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set CONFIG_CFG80211_INTERNAL_REGDB=y +# CONFIG_CFG80211_CRDA_SUPPORT is not set CONFIG_CFG80211_WEXT=y # CONFIG_LIB80211 is not set CONFIG_MAC80211=m @@ -1060,6 +1061,10 @@ CONFIG_BCM2708_VCHIQ=y # # SCIF Driver # + +# +# Intel MIC Coprocessor State Management (COSM) Drivers +# # CONFIG_ECHO is not set # CONFIG_CXL_BASE is not set # CONFIG_CXL_KERNEL_API is not set @@ -1303,6 +1308,8 @@ CONFIG_WL_MEDIATEK=y CONFIG_MT7601U=m CONFIG_RTL_CARDS=m # CONFIG_RTL8192CU is not set +CONFIG_RTL8XXXU=m +CONFIG_RTL8XXXU_UNTESTED=y # CONFIG_WL_TI is not set CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set @@ -1315,6 +1322,7 @@ CONFIG_ZD1211RW=m # # CONFIG_WAN is not set # CONFIG_ISDN is not set +# CONFIG_NVM is not set # # Input device support @@ -1431,6 +1439,7 @@ CONFIG_TOUCHSCREEN_USB_3M=y # CONFIG_TOUCHSCREEN_USB_EASYTOUCH is not set # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set # CONFIG_TOUCHSCREEN_TSC_SERIO is not set +# CONFIG_TOUCHSCREEN_TSC2004 is not set # CONFIG_TOUCHSCREEN_TSC2005 is not set # CONFIG_TOUCHSCREEN_TSC2007 is not set CONFIG_TOUCHSCREEN_ST1232=m @@ -1438,6 +1447,7 @@ CONFIG_TOUCHSCREEN_ST1232=m # CONFIG_TOUCHSCREEN_SX8654 is not set # CONFIG_TOUCHSCREEN_TPS6507X is not set # CONFIG_TOUCHSCREEN_ZFORCE is not set +# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set CONFIG_INPUT_MISC=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_ARIZONA_HAPTICS is not set @@ -1673,8 +1683,9 @@ CONFIG_GPIO_SYSFS=y # CONFIG_GPIO_GENERIC_PLATFORM is not set # CONFIG_GPIO_GRGPIO is not set # CONFIG_GPIO_PL061 is not set -# CONFIG_GPIO_SCH311X is not set +# CONFIG_GPIO_XILINX is not set # CONFIG_GPIO_ZEVIO is not set +# CONFIG_GPIO_ZX is not set # # I2C GPIO expanders @@ -1697,9 +1708,12 @@ CONFIG_GPIO_ARIZONA=m # # CONFIG_GPIO_74X164 is not set # CONFIG_GPIO_MAX7301 is not set -# CONFIG_GPIO_MCP23S08 is not set # CONFIG_GPIO_MC33880 is not set -# CONFIG_GPIO_ZX is not set + +# +# SPI or I2C GPIO expanders +# +# CONFIG_GPIO_MCP23S08 is not set # # USB GPIO expanders @@ -1738,7 +1752,7 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_SBS is not set -# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_BQ27XXX is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set # CONFIG_CHARGER_MAX8903 is not set @@ -1809,6 +1823,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_MAX6642 is not set # CONFIG_SENSORS_MAX6650 is not set # CONFIG_SENSORS_MAX6697 is not set +# CONFIG_SENSORS_MAX31790 is not set # CONFIG_SENSORS_HTU21 is not set # CONFIG_SENSORS_MCP3021 is not set # CONFIG_SENSORS_ADCXX is not set @@ -1905,6 +1920,7 @@ CONFIG_WATCHDOG_CORE=y # CONFIG_DW_WATCHDOG is not set # CONFIG_MAX63XX_WATCHDOG is not set CONFIG_BCM2835_WDT=m +# CONFIG_BCM7038_WDT is not set # CONFIG_MEN_A21_WDT is not set # @@ -1920,6 +1936,7 @@ CONFIG_SSB=m CONFIG_SSB_BLOCKIO=y CONFIG_SSB_SDIOHOST_POSSIBLE=y # CONFIG_SSB_SDIOHOST is not set +# CONFIG_SSB_HOST_SOC is not set # CONFIG_SSB_SILENT is not set # CONFIG_SSB_DEBUG is not set # CONFIG_SSB_DRIVER_GPIO is not set @@ -1944,6 +1961,7 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_AS3722 is not set # CONFIG_PMIC_ADP5520 is not set # CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_ATMEL_FLEXCOM is not set # CONFIG_MFD_ATMEL_HLCDC is not set # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_AXP20X is not set @@ -2456,6 +2474,7 @@ CONFIG_FB_BCM2708=y # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_SMSCUFX is not set # CONFIG_FB_UDL is not set +# 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 @@ -2482,11 +2501,11 @@ CONFIG_SND_PCM=m CONFIG_SND_DMAENGINE_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m -CONFIG_SND_COMPRESS_OFFLOAD=m CONFIG_SND_JACK=y # CONFIG_SND_SEQUENCER is not set # CONFIG_SND_MIXER_OSS is not set # CONFIG_SND_PCM_OSS is not set +CONFIG_SND_PCM_TIMER=y CONFIG_SND_HRTIMER=m CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_MAX_CARDS=32 @@ -2552,6 +2571,11 @@ CONFIG_SND_BCM2708_SOC_RASPIDAC3=m # CONFIG_SND_SOC_FSL_SPDIF is not set # CONFIG_SND_SOC_FSL_ESAI is not set # CONFIG_SND_SOC_IMX_AUDMUX is not set + +# +# Allwinner SoC Audio support +# +# CONFIG_SND_SUN4I_CODEC is not set # CONFIG_SND_SOC_XTFPGA_I2S is not set CONFIG_SND_SOC_I2C_AND_SPI=m @@ -2562,6 +2586,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=m # CONFIG_SND_SOC_ADAU1701 is not set # CONFIG_SND_SOC_AK4104 is not set # CONFIG_SND_SOC_AK4554 is not set +# CONFIG_SND_SOC_AK4613 is not set # CONFIG_SND_SOC_AK4642 is not set # CONFIG_SND_SOC_AK5386 is not set # CONFIG_SND_SOC_ALC5623 is not set @@ -2576,7 +2601,6 @@ CONFIG_SND_SOC_I2C_AND_SPI=m # CONFIG_SND_SOC_CS4271_SPI is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set # CONFIG_SND_SOC_CS4349 is not set -# CONFIG_SND_SOC_HDMI_CODEC is not set # CONFIG_SND_SOC_ES8328 is not set # CONFIG_SND_SOC_GTM601 is not set # CONFIG_SND_SOC_PCM1681 is not set @@ -2651,6 +2675,7 @@ CONFIG_HID_BELKIN=y # CONFIG_HID_BETOP_FF is not set CONFIG_HID_CHERRY=y CONFIG_HID_CHICONY=y +# CONFIG_HID_CORSAIR is not set # CONFIG_HID_PRODIKEYS is not set # CONFIG_HID_CP2112 is not set CONFIG_HID_CYPRESS=y @@ -2661,6 +2686,7 @@ CONFIG_DRAGONRISE_FF=y # CONFIG_HID_ELO is not set CONFIG_HID_EZKEY=y # CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set # CONFIG_HID_HOLTEK is not set # CONFIG_HID_GT683R is not set # CONFIG_HID_KEYTOUCH is not set @@ -2743,7 +2769,6 @@ CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set -# CONFIG_USB_OTG_FSM is not set # CONFIG_USB_ULPI_BUS is not set CONFIG_USB_MON=m # CONFIG_USB_WUSB_CBAF is not set @@ -2757,7 +2782,6 @@ CONFIG_USB_MON=m # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1362_HCD is not set -# CONFIG_USB_FUSBH200_HCD is not set # CONFIG_USB_FOTG210_HCD is not set # CONFIG_USB_MAX3421_HCD is not set # CONFIG_USB_OHCI_HCD is not set @@ -2908,7 +2932,6 @@ CONFIG_USB_SERIAL_PL2303=m # CONFIG_UWB is not set CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_CLKGATE is not set # # MMC/SD/SDIO Card Drivers @@ -3042,6 +3065,7 @@ CONFIG_RTC_DRV_DS1307=m # CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_EM3027 is not set # CONFIG_RTC_DRV_RV3029C2 is not set +# CONFIG_RTC_DRV_RV8803 is not set # # SPI RTC drivers @@ -3103,7 +3127,7 @@ CONFIG_DMA_OF=y # CONFIG_AMBA_PL08X is not set CONFIG_DMA_BCM2835=y # CONFIG_FSL_EDMA is not set -# CONFIG_IDMA64 is not set +# CONFIG_INTEL_IDMA64 is not set # CONFIG_NBPFAXI_DMA is not set # CONFIG_PL330_DMA is not set CONFIG_DMA_BCM2708=y @@ -3133,7 +3157,6 @@ CONFIG_STAGING=y CONFIG_R8712U=m # CONFIG_R8188EU is not set CONFIG_VT6656=m -# CONFIG_FT1000 is not set # # Speakup console speech @@ -3163,6 +3186,7 @@ CONFIG_LIRC_XBOX=m # CONFIG_GS_FPGABOOT is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set # CONFIG_FB_TFT is not set +# CONFIG_WILC1000_DRIVER is not set # CONFIG_MOST is not set # CONFIG_CHROME_PLATFORMS is not set CONFIG_CLKDEV_LOOKUP=y @@ -3173,6 +3197,7 @@ CONFIG_COMMON_CLK=y # Common Clock Framework # # CONFIG_COMMON_CLK_SI5351 is not set +# CONFIG_COMMON_CLK_SI514 is not set # CONFIG_COMMON_CLK_SI570 is not set # CONFIG_COMMON_CLK_CDCE925 is not set # CONFIG_CLK_QORIQ is not set @@ -3187,6 +3212,7 @@ CONFIG_COMMON_CLK=y # Clock Source drivers # CONFIG_CLKSRC_OF=y +CONFIG_CLKSRC_PROBE=y CONFIG_ARM_ARCH_TIMER=y CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y # CONFIG_ARM_TIMER_SP804 is not set @@ -3200,6 +3226,7 @@ CONFIG_MAILBOX=y # CONFIG_PL320_MBOX is not set # CONFIG_ALTERA_MBOX is not set CONFIG_BCM2835_MBOX=y +# CONFIG_MAILBOX_TEST is not set # CONFIG_IOMMU_SUPPORT is not set # @@ -3214,6 +3241,7 @@ CONFIG_BCM2835_MBOX=y # # SOC (System On Chip) specific Drivers # +# CONFIG_SOC_BRCMSTB is not set # CONFIG_SUNXI_SRAM is not set # CONFIG_SOC_TI is not set # CONFIG_PM_DEVFREQ is not set @@ -3255,6 +3283,15 @@ CONFIG_IRQCHIP=y # # CONFIG_ANDROID is not set # CONFIG_NVMEM is not set +# CONFIG_STM is not set +# CONFIG_STM_DUMMY is not set +# CONFIG_STM_SOURCE_CONSOLE is not set +# CONFIG_INTEL_TH is not set + +# +# FPGA Configuration Support +# +# CONFIG_FPGA is not set # # Firmware Drivers @@ -3510,6 +3547,7 @@ CONFIG_STRIP_ASM_SYMS=y CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_FRAME_POINTER=y # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set CONFIG_MAGIC_SYSRQ=y @@ -3606,6 +3644,7 @@ CONFIG_TRACING_SUPPORT=y # CONFIG_TEST_HEXDUMP is not set # CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set # CONFIG_TEST_RHASHTABLE is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_TEST_LKM is not set @@ -3696,6 +3735,7 @@ CONFIG_CRYPTO_ECB=y # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_PCBC is not set # CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_KEYWRAP is not set # # Hash modes @@ -3790,6 +3830,7 @@ CONFIG_CRYPTO_AES_ARM=m CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y CONFIG_HAVE_ARCH_BITREVERSE=y +CONFIG_RATIONAL=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y