diff --git a/0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch b/0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch new file mode 100644 index 000000000..ec2af2ab2 --- /dev/null +++ b/0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch @@ -0,0 +1,36 @@ +From 86da2d12cf6f76b1fa487f7acf3995f058a2e516 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Fri, 1 Aug 2014 17:27:49 +0200 +Subject: [PATCH v2 1/2] uas: Limit qdepth to 32 when connected over usb-2 + +Some jmicron uas chipsets act up (they disconnect from the bus) when sending +more then 32 commands to them at once. + +Rather then building an ever growing list with usb-id based quirks for +devices using this chipset, simply reduce the qdepth to 32 when connected +over usb-2. 32 should be plenty to keep things close to maximum +possible throughput on usb-2. + +Cc: stable@vger.kernel.org +Tested-and-reported-by: Laszlo T. +Signed-off-by: Hans de Goede +--- + drivers/usb/storage/uas.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c +index 511b229..3f42785 100644 +--- a/drivers/usb/storage/uas.c ++++ b/drivers/usb/storage/uas.c +@@ -1026,7 +1026,7 @@ static int uas_configure_endpoints(struct uas_dev_info *devinfo) + usb_endpoint_num(&eps[3]->desc)); + + if (udev->speed != USB_SPEED_SUPER) { +- devinfo->qdepth = 256; ++ devinfo->qdepth = 32; + devinfo->use_streams = 0; + } else { + devinfo->qdepth = usb_alloc_streams(devinfo->intf, eps + 1, +-- +2.0.4 + diff --git a/0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch b/0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch new file mode 100644 index 000000000..1b6c45be0 --- /dev/null +++ b/0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch @@ -0,0 +1,100 @@ +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1121288 +Upstream-status: Send upstream for 3.16/3.17 with Cc: stable + +From 508b353921aa266c48f70e1cd9332d3e2ef67171 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Fri, 25 Jul 2014 12:28:02 +0200 +Subject: [PATCH v2] xhci: Blacklist using streams on the Etron EJ168 + controller + +Streams on the EJ168 do not work as they should. I've spend 2 days trying +to get them to work, but without success. + +The first problem is that when ever you ring the stream-ring doorbell, the +controller starts executing trbs at the beginning of the first ring segment, +event if it ended somewhere else previously. This can be worked around by +allowing enqueing only one td (not a problem with how streams are typically +used) and then resetting our copies of the enqueueing en dequeueing pointers +on a td completion to match what the controller seems to be doing. + +This way things seem to start working with uas and instead of being able +to complete only the very first scsi command, the scsi core can probe the disk. + +But then things break later on when td-s get enqueued with more then one +trb. The controller does seem to increase its dequeue pointer while executing +a stream-ring (data transfer events I inserted for debugging do trigger). +However execution seems to stop at the final normal trb of a multi trb td, +even if there is a data transfer event inserted after the final trb. + +The first problem alone is a serious deviation from the spec, and esp. +dealing with cancellation would have been very tricky if not outright +impossible, but the second problem simply is a deal breaker altogether, +so this patch simply disables streams. + +Note this will cause the usb-storage + uas driver pair to automatically switch +to using usb-storage instead of uas on these devices, essentially reverting +to the 3.14 and earlier behavior when uas was marked CONFIG_BROKEN. + +https://bugzilla.redhat.com/show_bug.cgi?id=1121288 +https://bugzilla.kernel.org/show_bug.cgi?id=80101 + +Cc: stable@vger.kernel.org # 3.15 +Signed-off-by: Hans de Goede +--- + drivers/usb/host/xhci-pci.c | 4 +++- + drivers/usb/host/xhci.c | 3 ++- + drivers/usb/host/xhci.h | 2 ++ + 3 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c +index e20520f..464049f 100644 +--- a/drivers/usb/host/xhci-pci.c ++++ b/drivers/usb/host/xhci-pci.c +@@ -143,6 +143,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) + pdev->device == PCI_DEVICE_ID_ASROCK_P67) { + xhci->quirks |= XHCI_RESET_ON_RESUME; + xhci->quirks |= XHCI_TRUST_TX_LENGTH; ++ xhci->quirks |= XHCI_BROKEN_STREAMS; + } + if (pdev->vendor == PCI_VENDOR_ID_RENESAS && + pdev->device == 0x0015) +@@ -230,7 +231,8 @@ static int xhci_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) + goto put_usb3_hcd; + /* Roothub already marked as USB 3.0 speed */ + +- if (HCC_MAX_PSA(xhci->hcc_params) >= 4) ++ if (!(xhci->quirks & XHCI_BROKEN_STREAMS) && ++ HCC_MAX_PSA(xhci->hcc_params) >= 4) + xhci->shared_hcd->can_do_streams = 1; + + /* USB-2 and USB-3 roothubs initialized, allow runtime pm suspend */ +diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c +index 7d02e1b..758bc31 100644 +--- a/drivers/usb/host/xhci.c ++++ b/drivers/usb/host/xhci.c +@@ -3163,7 +3163,8 @@ int xhci_alloc_streams(struct usb_hcd *hcd, struct usb_device *udev, + num_streams); + + /* MaxPSASize value 0 (2 streams) means streams are not supported */ +- if (HCC_MAX_PSA(xhci->hcc_params) < 4) { ++ if ((xhci->quirks & XHCI_BROKEN_STREAMS) || ++ HCC_MAX_PSA(xhci->hcc_params) < 4) { + xhci_dbg(xhci, "xHCI controller does not support streams.\n"); + return -ENOSYS; + } +diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h +index 1411069..88b2958 100644 +--- a/drivers/usb/host/xhci.h ++++ b/drivers/usb/host/xhci.h +@@ -1558,6 +1558,8 @@ struct xhci_hcd { + #define XHCI_PLAT (1 << 16) + #define XHCI_SLOW_SUSPEND (1 << 17) + #define XHCI_SPURIOUS_WAKEUP (1 << 18) ++/* For controllers with a broken beyond repair streams implementation */ ++#define XHCI_BROKEN_STREAMS (1 << 19) + unsigned int num_active_eps; + unsigned int limit_active_eps; + /* There are two roothubs to keep track of bus suspend info for */ +-- +2.0.4 + diff --git a/Revert-Revert-ACPI-video-change-acpi-video-brightnes.patch b/Revert-Revert-ACPI-video-change-acpi-video-brightnes.patch new file mode 100644 index 000000000..2f44032c8 --- /dev/null +++ b/Revert-Revert-ACPI-video-change-acpi-video-brightnes.patch @@ -0,0 +1,44 @@ +Bugzilla: N/A +Upstream-status: Sigh. We almost got to drop this. + +From 20e3f1e1b9341d233a11734c07c076caac9936ef Mon Sep 17 00:00:00 2001 +From: Josh Boyer +Date: Mon, 28 Jul 2014 12:59:48 -0400 +Subject: [PATCH] Revert "Revert "ACPI / video: change acpi-video + brightness_switch_enabled default to 0"" + +This reverts commit 2843768b701971ab10e62c77d5c75ad7c306f1bd. +--- + Documentation/kernel-parameters.txt | 2 +- + drivers/acpi/video.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt +index b7fa2f599459..e8db409a7e3a 100644 +--- a/Documentation/kernel-parameters.txt ++++ b/Documentation/kernel-parameters.txt +@@ -3532,7 +3532,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted. + the allocated input device; If set to 0, video driver + will only send out the event without touching backlight + brightness level. +- default: 1 ++ default: 0 + + virtio_mmio.device= + [VMMIO] Memory mapped virtio (platform) device. +diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c +index 350d52a8f781..44c89f705018 100644 +--- a/drivers/acpi/video.c ++++ b/drivers/acpi/video.c +@@ -68,7 +68,7 @@ MODULE_AUTHOR("Bruno Ducrot"); + MODULE_DESCRIPTION("ACPI Video Driver"); + MODULE_LICENSE("GPL"); + +-static bool brightness_switch_enabled = 1; ++static bool brightness_switch_enabled; + module_param(brightness_switch_enabled, bool, 0644); + + /* +-- +1.9.3 + diff --git a/Revert-userns-Allow-unprivileged-users-to-create-use.patch b/Revert-userns-Allow-unprivileged-users-to-create-use.patch deleted file mode 100644 index cea6bff01..000000000 --- a/Revert-userns-Allow-unprivileged-users-to-create-use.patch +++ /dev/null @@ -1,44 +0,0 @@ -Bugzilla: 917708 -Upstream-status: Fedora mustard - -From e3da68be55914bfeedb8866f191cc0958579611d Mon Sep 17 00:00:00 2001 -From: Josh Boyer -Date: Wed, 13 Nov 2013 10:21:18 -0500 -Subject: [PATCH] Revert "userns: Allow unprivileged users to create user - namespaces." - -This reverts commit 5eaf563e53294d6696e651466697eb9d491f3946. - -Conflicts: - kernel/fork.c ---- - kernel/fork.c | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/kernel/fork.c b/kernel/fork.c -index f6d11fc..e04c9a7 100644 ---- a/kernel/fork.c -+++ b/kernel/fork.c -@@ -1573,6 +1573,19 @@ long do_fork(unsigned long clone_flags, - long nr; - - /* -+ * Do some preliminary argument and permissions checking before we -+ * actually start allocating stuff -+ */ -+ if (clone_flags & CLONE_NEWUSER) { -+ /* hopefully this check will go away when userns support is -+ * complete -+ */ -+ if (!capable(CAP_SYS_ADMIN) || !capable(CAP_SETUID) || -+ !capable(CAP_SETGID)) -+ return -EPERM; -+ } -+ -+ /* - * Determine whether and which event to report to ptracer. When - * called from kernel_thread or CLONE_UNTRACED is explicitly - * requested, no event is reported; otherwise, report if the event --- -1.8.3.1 - diff --git a/arm-qemu-fixdisplay.patch b/arm-qemu-fixdisplay.patch new file mode 100644 index 000000000..090193c2d --- /dev/null +++ b/arm-qemu-fixdisplay.patch @@ -0,0 +1,472 @@ +commit d10715be03bd8bad59ddc50236cb140c3bd73c7b +Author: Pawel Moll +Date: Tue Jun 24 12:55:11 2014 +0100 + + video: ARM CLCD: Add DT support + + This patch adds basic DT bindings for the PL11x CLCD cells + and make their fbdev driver use them. + + Signed-off-by: Pawel Moll + Signed-off-by: Tomi Valkeinen + +diff --git a/Documentation/devicetree/bindings/video/arm,pl11x.txt b/Documentation/devicetree/bindings/video/arm,pl11x.txt +new file mode 100644 +index 0000000..3e3039a +--- /dev/null ++++ b/Documentation/devicetree/bindings/video/arm,pl11x.txt +@@ -0,0 +1,109 @@ ++* ARM PrimeCell Color LCD Controller PL110/PL111 ++ ++See also Documentation/devicetree/bindings/arm/primecell.txt ++ ++Required properties: ++ ++- compatible: must be one of: ++ "arm,pl110", "arm,primecell" ++ "arm,pl111", "arm,primecell" ++ ++- reg: base address and size of the control registers block ++ ++- interrupt-names: either the single entry "combined" representing a ++ combined interrupt output (CLCDINTR), or the four entries ++ "mbe", "vcomp", "lnbu", "fuf" representing the individual ++ CLCDMBEINTR, CLCDVCOMPINTR, CLCDLNBUINTR, CLCDFUFINTR interrupts ++ ++- interrupts: contains an interrupt specifier for each entry in ++ interrupt-names ++ ++- clock-names: should contain "clcdclk" and "apb_pclk" ++ ++- clocks: contains phandle and clock specifier pairs for the entries ++ in the clock-names property. See ++ Documentation/devicetree/binding/clock/clock-bindings.txt ++ ++Optional properties: ++ ++- memory-region: phandle to a node describing memory (see ++ Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt) ++ to be used for the framebuffer; if not present, the framebuffer ++ may be located anywhere in the memory ++ ++- max-memory-bandwidth: maximum bandwidth in bytes per second that the ++ cell's memory interface can handle; if not present, the memory ++ interface is fast enough to handle all possible video modes ++ ++Required sub-nodes: ++ ++- port: describes LCD panel signals, following the common binding ++ for video transmitter interfaces; see ++ Documentation/devicetree/bindings/media/video-interfaces.txt; ++ when it is a TFT panel, the port's endpoint must define the ++ following property: ++ ++ - arm,pl11x,tft-r0g0b0-pads: an array of three 32-bit values, ++ defining the way CLD pads are wired up; first value ++ contains index of the "CLD" external pin (pad) used ++ as R0 (first bit of the red component), second value ++ index of the pad used as G0, third value index of the ++ pad used as B0, see also "LCD panel signal multiplexing ++ details" paragraphs in the PL110/PL111 Technical ++ Reference Manuals; this implicitly defines available ++ color modes, for example: ++ - PL111 TFT 4:4:4 panel: ++ arm,pl11x,tft-r0g0b0-pads = <4 15 20>; ++ - PL110 TFT (1:)5:5:5 panel: ++ arm,pl11x,tft-r0g0b0-pads = <1 7 13>; ++ - PL111 TFT (1:)5:5:5 panel: ++ arm,pl11x,tft-r0g0b0-pads = <3 11 19>; ++ - PL111 TFT 5:6:5 panel: ++ arm,pl11x,tft-r0g0b0-pads = <3 10 19>; ++ - PL110 and PL111 TFT 8:8:8 panel: ++ arm,pl11x,tft-r0g0b0-pads = <0 8 16>; ++ - PL110 and PL111 TFT 8:8:8 panel, R & B components swapped: ++ arm,pl11x,tft-r0g0b0-pads = <16 8 0>; ++ ++ ++Example: ++ ++ clcd@10020000 { ++ compatible = "arm,pl111", "arm,primecell"; ++ reg = <0x10020000 0x1000>; ++ interrupt-names = "combined"; ++ interrupts = <0 44 4>; ++ clocks = <&oscclk1>, <&oscclk2>; ++ clock-names = "clcdclk", "apb_pclk"; ++ max-memory-bandwidth = <94371840>; /* Bps, 1024x768@60 16bpp */ ++ ++ port { ++ clcd_pads: endpoint { ++ remote-endpoint = <&clcd_panel>; ++ arm,pl11x,tft-r0g0b0-pads = <0 8 16>; ++ }; ++ }; ++ ++ }; ++ ++ panel { ++ compatible = "panel-dpi"; ++ ++ port { ++ clcd_panel: endpoint { ++ remote-endpoint = <&clcd_pads>; ++ }; ++ }; ++ ++ panel-timing { ++ clock-frequency = <25175000>; ++ hactive = <640>; ++ hback-porch = <40>; ++ hfront-porch = <24>; ++ hsync-len = <96>; ++ vactive = <480>; ++ vback-porch = <32>; ++ vfront-porch = <11>; ++ vsync-len = <2>; ++ }; ++ }; +diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig +index 4a7098f..6f451ad 100644 +--- a/drivers/video/fbdev/Kconfig ++++ b/drivers/video/fbdev/Kconfig +@@ -280,6 +280,7 @@ config FB_ARMCLCD + select FB_CFB_FILLRECT + select FB_CFB_COPYAREA + select FB_CFB_IMAGEBLIT ++ select VIDEOMODE_HELPERS if OF + help + This framebuffer device driver is for the ARM PrimeCell PL110 + Colour LCD controller. ARM PrimeCells provide the building +diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c +index 14d6b37..23b3519 100644 +--- a/drivers/video/fbdev/amba-clcd.c ++++ b/drivers/video/fbdev/amba-clcd.c +@@ -26,6 +26,13 @@ + #include + #include + #include ++#include ++#include ++#include ++#include ++#include