diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-02-18 13:03:08 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-02-18 13:03:08 -0800 |
commit | 85eeccf5f9a389b6852c0a8e90675905c2749788 (patch) | |
tree | 9a857e306bd1f2e0f0086d3b6713a42bef09159c | |
parent | 68054859f00431a38a9b058f7bb743425d050046 (diff) | |
download | ltsi-kernel-85eeccf5f9a389b6852c0a8e90675905c2749788.tar.gz |
Update to 3.10.30
115 files changed, 992 insertions, 1759 deletions
diff --git a/KERNEL_VERSION b/KERNEL_VERSION index 31358ba7b58f1..6b266693cd8db 100644 --- a/KERNEL_VERSION +++ b/KERNEL_VERSION @@ -1 +1 @@ -3.10.28 +3.10.30 diff --git a/patches.baytrail/0003-usb-xhci-check-usb2-port-capabilities-before-adding-.patch b/patches.baytrail/0003-usb-xhci-check-usb2-port-capabilities-before-adding-.patch index a7fa62d4a2c2e..5a172886a4bfc 100644 --- a/patches.baytrail/0003-usb-xhci-check-usb2-port-capabilities-before-adding-.patch +++ b/patches.baytrail/0003-usb-xhci-check-usb2-port-capabilities-before-adding-.patch @@ -21,13 +21,11 @@ Commit-Queue: Benson Leung <bleung@chromium.org> Tested-by: Benson Leung <bleung@chromium.org> Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/usb/host/xhci-mem.c | 33 +++++++++++++++++++++++++++++---- - drivers/usb/host/xhci.c | 27 ++++++++++++++++++++++++++- - drivers/usb/host/xhci.h | 3 +++ + drivers/usb/host/xhci-mem.c | 33 +++++++++++++++++++++++++++++---- + drivers/usb/host/xhci.c | 27 ++++++++++++++++++++++++++- + drivers/usb/host/xhci.h | 3 +++ 3 files changed, 58 insertions(+), 5 deletions(-) -diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c -index 19a0cc38b6d9..0fc539dc1cb8 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c @@ -1860,6 +1860,7 @@ no_bw: @@ -38,7 +36,7 @@ index 19a0cc38b6d9..0fc539dc1cb8 100644 xhci->page_size = 0; xhci->page_shift = 0; -@@ -2047,7 +2048,7 @@ static void xhci_set_hc_event_deq(struct xhci_hcd *xhci) +@@ -2047,7 +2048,7 @@ static void xhci_set_hc_event_deq(struct } static void xhci_add_in_port(struct xhci_hcd *xhci, unsigned int num_ports, @@ -47,7 +45,7 @@ index 19a0cc38b6d9..0fc539dc1cb8 100644 { u32 temp, port_offset, port_count; int i; -@@ -2072,6 +2073,10 @@ static void xhci_add_in_port(struct xhci_hcd *xhci, unsigned int num_ports, +@@ -2072,6 +2073,10 @@ static void xhci_add_in_port(struct xhci /* WTF? "Valid values are ‘1’ to MaxPorts" */ return; @@ -58,7 +56,7 @@ index 19a0cc38b6d9..0fc539dc1cb8 100644 /* Check the host's USB2 LPM capability */ if ((xhci->hci_version == 0x96) && (major_revision != 0x03) && (temp & XHCI_L1C)) { -@@ -2129,10 +2134,11 @@ static void xhci_add_in_port(struct xhci_hcd *xhci, unsigned int num_ports, +@@ -2129,10 +2134,11 @@ static void xhci_add_in_port(struct xhci */ static int xhci_setup_port_arrays(struct xhci_hcd *xhci, gfp_t flags) { @@ -72,7 +70,7 @@ index 19a0cc38b6d9..0fc539dc1cb8 100644 addr = &xhci->cap_regs->hcc_params; offset = XHCI_HCC_EXT_CAPS(xhci_readl(xhci, addr)); -@@ -2165,13 +2171,32 @@ static int xhci_setup_port_arrays(struct xhci_hcd *xhci, gfp_t flags) +@@ -2165,13 +2171,32 @@ static int xhci_setup_port_arrays(struct * See section 5.3.6 for offset calculation. */ addr = &xhci->cap_regs->hc_capbase + offset; @@ -106,11 +104,9 @@ index 19a0cc38b6d9..0fc539dc1cb8 100644 offset = XHCI_EXT_CAPS_NEXT(cap_id); if (!offset || (xhci->num_usb2_ports + xhci->num_usb3_ports) == num_ports) -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 4a5251f3614c..ae20252e22aa 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -4045,15 +4045,40 @@ int xhci_set_usb2_hardware_lpm(struct usb_hcd *hcd, +@@ -4048,15 +4048,40 @@ int xhci_set_usb2_hardware_lpm(struct us return 0; } @@ -152,8 +148,6 @@ index 4a5251f3614c..ae20252e22aa 100644 udev->usb2_hw_lpm_capable = 1; ret = xhci_set_usb2_hardware_lpm(hcd, udev, 1); if (!ret) -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index cd35c1fc596f..140b2edebde4 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1543,6 +1543,9 @@ struct xhci_hcd { @@ -166,6 +160,3 @@ index cd35c1fc596f..140b2edebde4 100644 /* Compliance Mode Recovery Data */ struct timer_list comp_mode_recovery_timer; u32 port_status_u0; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0004-usb-xhci-define-port-register-names-and-use-them-ins.patch b/patches.baytrail/0004-usb-xhci-define-port-register-names-and-use-them-ins.patch index c996c1bd31f3f..6c5604d419253 100644 --- a/patches.baytrail/0004-usb-xhci-define-port-register-names-and-use-them-ins.patch +++ b/patches.baytrail/0004-usb-xhci-define-port-register-names-and-use-them-ins.patch @@ -16,16 +16,14 @@ Commit-Queue: Benson Leung <bleung@chromium.org> Tested-by: Benson Leung <bleung@chromium.org> Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/usb/host/xhci-hub.c | 16 +++++++--------- - drivers/usb/host/xhci.c | 4 ++-- - drivers/usb/host/xhci.h | 5 +++++ + drivers/usb/host/xhci-hub.c | 16 +++++++--------- + drivers/usb/host/xhci.c | 4 ++-- + drivers/usb/host/xhci.h | 5 +++++ 3 files changed, 14 insertions(+), 11 deletions(-) -diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c -index 1f94d42bcc56..f6395dd6a8d6 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c -@@ -920,18 +920,18 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, +@@ -920,18 +920,18 @@ int xhci_hub_control(struct usb_hcd *hcd case USB_PORT_FEAT_U1_TIMEOUT: if (hcd->speed != HCD_USB3) goto error; @@ -48,7 +46,7 @@ index 1f94d42bcc56..f6395dd6a8d6 100644 break; default: goto error; -@@ -1151,10 +1151,8 @@ int xhci_bus_suspend(struct usb_hcd *hcd) +@@ -1151,10 +1151,8 @@ int xhci_bus_suspend(struct usb_hcd *hcd __le32 __iomem *addr; u32 tmp; @@ -70,11 +68,9 @@ index 1f94d42bcc56..f6395dd6a8d6 100644 tmp = xhci_readl(xhci, addr); tmp &= ~PORT_RWE; xhci_writel(xhci, tmp, addr); -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index ae20252e22aa..1bd8ddb12d36 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -3923,7 +3923,7 @@ static int xhci_usb2_software_lpm_test(struct usb_hcd *hcd, +@@ -3926,7 +3926,7 @@ static int xhci_usb2_software_lpm_test(s * Check device's USB 2.0 extension descriptor to determine whether * HIRD or BESL shoule be used. See USB2.0 LPM errata. */ @@ -83,7 +79,7 @@ index ae20252e22aa..1bd8ddb12d36 100644 hird = xhci_calculate_hird_besl(xhci, udev); temp = PORT_L1DS(udev->slot_id) | PORT_HIRD(hird); xhci_writel(xhci, temp, pm_addr); -@@ -4021,7 +4021,7 @@ int xhci_set_usb2_hardware_lpm(struct usb_hcd *hcd, +@@ -4024,7 +4024,7 @@ int xhci_set_usb2_hardware_lpm(struct us port_array = xhci->usb2_ports; port_num = udev->portnum - 1; @@ -92,8 +88,6 @@ index ae20252e22aa..1bd8ddb12d36 100644 temp = xhci_readl(xhci, pm_addr); xhci_dbg(xhci, "%s port %d USB2 hardware LPM\n", -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 140b2edebde4..9d3766be3a64 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -132,6 +132,11 @@ struct xhci_cap_regs { @@ -108,6 +102,3 @@ index 140b2edebde4..9d3766be3a64 100644 /** * struct xhci_op_regs - xHCI Host Controller Operational Registers. * @command: USBCMD - xHC command register --- -1.8.5.rc3 - diff --git a/patches.baytrail/0005-usb-xhci-add-USB2-Link-power-management-BESL-support.patch b/patches.baytrail/0005-usb-xhci-add-USB2-Link-power-management-BESL-support.patch index 8f7eaa995fc0c..3cd7d358f942f 100644 --- a/patches.baytrail/0005-usb-xhci-add-USB2-Link-power-management-BESL-support.patch +++ b/patches.baytrail/0005-usb-xhci-add-USB2-Link-power-management-BESL-support.patch @@ -23,14 +23,12 @@ Signed-off-by: Benson Leung <bleung@chromium.org> UPSTREAM] Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/usb/host/xhci-ext-caps.h | 1 + - drivers/usb/host/xhci.c | 204 +++++++++++++++++++++++++++------------ - drivers/usb/host/xhci.h | 21 ++++ - include/linux/usb.h | 2 + + drivers/usb/host/xhci-ext-caps.h | 1 + drivers/usb/host/xhci.c | 204 ++++++++++++++++++++++++++------------- + drivers/usb/host/xhci.h | 21 ++++ + include/linux/usb.h | 2 4 files changed, 164 insertions(+), 64 deletions(-) -diff --git a/drivers/usb/host/xhci-ext-caps.h b/drivers/usb/host/xhci-ext-caps.h -index 377f4242dabb..8d7a1324e2f3 100644 --- a/drivers/usb/host/xhci-ext-caps.h +++ b/drivers/usb/host/xhci-ext-caps.h @@ -71,6 +71,7 @@ @@ -41,11 +39,9 @@ index 377f4242dabb..8d7a1324e2f3 100644 /* command register values to disable interrupts and halt the HC */ /* start/stop HC execution - do not write unless HC is halted*/ -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 1bd8ddb12d36..0ea9df4df4b4 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -3827,6 +3827,56 @@ int xhci_find_raw_port_number(struct usb_hcd *hcd, int port1) +@@ -3830,6 +3830,56 @@ int xhci_find_raw_port_number(struct usb return raw_port; } @@ -102,7 +98,7 @@ index 1bd8ddb12d36..0ea9df4df4b4 100644 #ifdef CONFIG_PM_RUNTIME /* BESL to HIRD Encoding array for USB2 LPM */ -@@ -3868,6 +3918,28 @@ static int xhci_calculate_hird_besl(struct xhci_hcd *xhci, +@@ -3871,6 +3921,28 @@ static int xhci_calculate_hird_besl(stru return besl; } @@ -131,7 +127,7 @@ index 1bd8ddb12d36..0ea9df4df4b4 100644 static int xhci_usb2_software_lpm_test(struct usb_hcd *hcd, struct usb_device *udev) { -@@ -4000,11 +4072,12 @@ int xhci_set_usb2_hardware_lpm(struct usb_hcd *hcd, +@@ -4003,11 +4075,12 @@ int xhci_set_usb2_hardware_lpm(struct us { struct xhci_hcd *xhci = hcd_to_xhci(hcd); __le32 __iomem **port_array; @@ -147,7 +143,7 @@ index 1bd8ddb12d36..0ea9df4df4b4 100644 if (hcd->speed == HCD_USB3 || !xhci->hw_lpm_support || !udev->lpm_capable) -@@ -4022,23 +4095,73 @@ int xhci_set_usb2_hardware_lpm(struct usb_hcd *hcd, +@@ -4025,23 +4098,73 @@ int xhci_set_usb2_hardware_lpm(struct us port_array = xhci->usb2_ports; port_num = udev->portnum - 1; pm_addr = port_array[port_num] + PORTPMSC; @@ -232,7 +228,7 @@ index 1bd8ddb12d36..0ea9df4df4b4 100644 } spin_unlock_irqrestore(&xhci->lock, flags); -@@ -4080,6 +4203,9 @@ int xhci_update_device(struct usb_hcd *hcd, struct usb_device *udev) +@@ -4083,6 +4206,9 @@ int xhci_update_device(struct usb_hcd *h if (xhci->hw_lpm_support == 1 && xhci_check_usb2_port_capability(xhci, portnum, XHCI_HLC)) { udev->usb2_hw_lpm_capable = 1; @@ -242,7 +238,7 @@ index 1bd8ddb12d36..0ea9df4df4b4 100644 ret = xhci_set_usb2_hardware_lpm(hcd, udev, 1); if (!ret) udev->usb2_hw_lpm_enabled = 1; -@@ -4410,56 +4536,6 @@ static u16 xhci_calculate_lpm_timeout(struct usb_hcd *hcd, +@@ -4413,56 +4539,6 @@ static u16 xhci_calculate_lpm_timeout(st return timeout; } @@ -299,8 +295,6 @@ index 1bd8ddb12d36..0ea9df4df4b4 100644 static int calculate_max_exit_latency(struct usb_device *udev, enum usb3_link_state state_changed, u16 hub_encoded_timeout) -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 9d3766be3a64..65aef567ad34 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -386,6 +386,27 @@ struct xhci_op_regs { @@ -331,8 +325,6 @@ index 9d3766be3a64..65aef567ad34 100644 /** * struct xhci_intr_reg - Interrupt Register Set * @irq_pending: IMAN - Interrupt Management Register. Used to enable -diff --git a/include/linux/usb.h b/include/linux/usb.h -index a0bee5a28d1a..3a1b864ad541 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h @@ -468,6 +468,7 @@ struct usb3_lpm_parameters { @@ -351,6 +343,3 @@ index a0bee5a28d1a..3a1b864ad541 100644 unsigned usb2_hw_lpm_enabled:1; unsigned usb3_lpm_enabled:1; int string_langid; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0006-usb-add-usb2-Link-PM-variables-to-sysfs-and-usb_devi.patch b/patches.baytrail/0006-usb-add-usb2-Link-PM-variables-to-sysfs-and-usb_devi.patch index 2188d406b07e6..2133d812459c0 100644 --- a/patches.baytrail/0006-usb-add-usb2-Link-PM-variables-to-sysfs-and-usb_devi.patch +++ b/patches.baytrail/0006-usb-add-usb2-Link-PM-variables-to-sysfs-and-usb_devi.patch @@ -21,14 +21,12 @@ Commit-Queue: Benson Leung <bleung@chromium.org> Tested-by: Benson Leung <bleung@chromium.org> Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - Documentation/ABI/testing/sysfs-bus-usb | 27 +++++++++++++++++ - drivers/usb/core/sysfs.c | 54 +++++++++++++++++++++++++++++++++ - drivers/usb/host/xhci.c | 6 ++-- - include/linux/usb.h | 18 +++++++++++ + Documentation/ABI/testing/sysfs-bus-usb | 27 ++++++++++++++++ + drivers/usb/core/sysfs.c | 54 ++++++++++++++++++++++++++++++++ + drivers/usb/host/xhci.c | 6 ++- + include/linux/usb.h | 18 ++++++++++ 4 files changed, 103 insertions(+), 2 deletions(-) -diff --git a/Documentation/ABI/testing/sysfs-bus-usb b/Documentation/ABI/testing/sysfs-bus-usb -index f093e59cbe5f..9759b8c91332 100644 --- a/Documentation/ABI/testing/sysfs-bus-usb +++ b/Documentation/ABI/testing/sysfs-bus-usb @@ -236,3 +236,30 @@ Description: @@ -62,11 +60,9 @@ index f093e59cbe5f..9759b8c91332 100644 + Supported values are 0 - 15. + More information on how besl values map to microseconds can be found in + USB 2.0 ECN Errata for Link Power Management, section 4.10) -diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c -index aa38db44818a..d9284b998bd7 100644 --- a/drivers/usb/core/sysfs.c +++ b/drivers/usb/core/sysfs.c -@@ -497,8 +497,62 @@ set_usb2_hardware_lpm(struct device *dev, struct device_attribute *attr, +@@ -497,8 +497,62 @@ set_usb2_hardware_lpm(struct device *dev static DEVICE_ATTR(usb2_hardware_lpm, S_IRUGO | S_IWUSR, show_usb2_hardware_lpm, set_usb2_hardware_lpm); @@ -129,11 +125,9 @@ index aa38db44818a..d9284b998bd7 100644 NULL, }; static struct attribute_group usb2_hardware_lpm_attr_group = { -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 0ea9df4df4b4..a228b796c300 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -3929,7 +3929,7 @@ static int xhci_calculate_usb2_hw_lpm_params(struct usb_device *udev) +@@ -3932,7 +3932,7 @@ static int xhci_calculate_usb2_hw_lpm_pa field = le32_to_cpu(udev->bos->ext_cap->bmAttributes); /* xHCI l1 is set in steps of 256us, xHCI 1.0 section 5.4.11.2 */ @@ -142,7 +136,7 @@ index 0ea9df4df4b4..a228b796c300 100644 /* device has preferred BESLD */ if (field & USB_BESL_DEEP_VALID) { -@@ -4113,7 +4113,7 @@ int xhci_set_usb2_hardware_lpm(struct usb_hcd *hcd, +@@ -4116,7 +4116,7 @@ int xhci_set_usb2_hardware_lpm(struct us (field & USB_BESL_BASELINE_VALID)) hird = USB_GET_BESL_BASELINE(field); else @@ -151,7 +145,7 @@ index 0ea9df4df4b4..a228b796c300 100644 exit_latency = xhci_besl_encoding[hird]; spin_unlock_irqrestore(&xhci->lock, flags); -@@ -4203,6 +4203,8 @@ int xhci_update_device(struct usb_hcd *hcd, struct usb_device *udev) +@@ -4206,6 +4206,8 @@ int xhci_update_device(struct usb_hcd *h if (xhci->hw_lpm_support == 1 && xhci_check_usb2_port_capability(xhci, portnum, XHCI_HLC)) { udev->usb2_hw_lpm_capable = 1; @@ -160,8 +154,6 @@ index 0ea9df4df4b4..a228b796c300 100644 if (xhci_check_usb2_port_capability(xhci, portnum, XHCI_BLC)) udev->usb2_hw_lpm_besl_capable = 1; -diff --git a/include/linux/usb.h b/include/linux/usb.h -index 3a1b864ad541..1f7d63f3ab8b 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h @@ -394,6 +394,22 @@ enum usb_port_connect_type { @@ -203,6 +195,3 @@ index 3a1b864ad541..1f7d63f3ab8b 100644 struct usb3_lpm_parameters u1_params; struct usb3_lpm_parameters u2_params; unsigned lpm_disable_count; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0008-usb-Don-t-enable-USB-2.0-Link-PM-by-default.patch b/patches.baytrail/0008-usb-Don-t-enable-USB-2.0-Link-PM-by-default.patch index 333541c21de79..e890a9501dfef 100644 --- a/patches.baytrail/0008-usb-Don-t-enable-USB-2.0-Link-PM-by-default.patch +++ b/patches.baytrail/0008-usb-Don-t-enable-USB-2.0-Link-PM-by-default.patch @@ -97,7 +97,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> if (!ret) --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -5187,6 +5187,7 @@ static int usb_reset_and_verify_device(s +@@ -5165,6 +5165,7 @@ static int usb_reset_and_verify_device(s done: /* Now that the alt settings are re-installed, enable LTM and LPM. */ @@ -164,7 +164,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> page_size = xhci_readl(xhci, &xhci->op_regs->page_size); --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -3940,133 +3940,6 @@ static int xhci_calculate_usb2_hw_lpm_pa +@@ -3943,133 +3943,6 @@ static int xhci_calculate_usb2_hw_lpm_pa return PORT_BESLD(besld) | PORT_L1_TIMEOUT(l1) | PORT_HIRDM(hirdm); } @@ -298,7 +298,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> int xhci_set_usb2_hardware_lpm(struct usb_hcd *hcd, struct usb_device *udev, int enable) { -@@ -4194,24 +4067,26 @@ static int xhci_check_usb2_port_capabili +@@ -4197,24 +4070,26 @@ static int xhci_check_usb2_port_capabili int xhci_update_device(struct usb_hcd *hcd, struct usb_device *udev) { struct xhci_hcd *xhci = hcd_to_xhci(hcd); diff --git a/patches.baytrail/0021-drm-i915-turbo-RC6-support-for-VLV-v7.patch b/patches.baytrail/0021-drm-i915-turbo-RC6-support-for-VLV-v7.patch index 37aba6da53560..9fd23dfae9c91 100644 --- a/patches.baytrail/0021-drm-i915-turbo-RC6-support-for-VLV-v7.patch +++ b/patches.baytrail/0021-drm-i915-turbo-RC6-support-for-VLV-v7.patch @@ -30,19 +30,17 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 0a073b843bcd9a660f76e497182aac97cafddc4c) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_debugfs.c | 58 +++++++++-- - drivers/gpu/drm/i915/i915_drv.h | 5 + - drivers/gpu/drm/i915/i915_irq.c | 5 +- - drivers/gpu/drm/i915/i915_reg.h | 21 ++++ - drivers/gpu/drm/i915/i915_sysfs.c | 71 +++++++++---- - drivers/gpu/drm/i915/intel_pm.c | 199 ++++++++++++++++++++++++++++++++++-- + drivers/gpu/drm/i915/i915_debugfs.c | 58 ++++++++-- + drivers/gpu/drm/i915/i915_drv.h | 5 + drivers/gpu/drm/i915/i915_irq.c | 5 + drivers/gpu/drm/i915/i915_reg.h | 21 +++ + drivers/gpu/drm/i915/i915_sysfs.c | 71 +++++++++--- + drivers/gpu/drm/i915/intel_pm.c | 199 ++++++++++++++++++++++++++++++++++-- 6 files changed, 320 insertions(+), 39 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c -index e913d325d5b8..367b534d2260 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c -@@ -941,7 +941,7 @@ static int i915_cur_delayinfo(struct seq_file *m, void *unused) +@@ -941,7 +941,7 @@ static int i915_cur_delayinfo(struct seq MEMSTAT_VID_SHIFT); seq_printf(m, "Current P-state: %d\n", (rgvstat & MEMSTAT_PSTATE_MASK) >> MEMSTAT_PSTATE_SHIFT); @@ -51,7 +49,7 @@ index e913d325d5b8..367b534d2260 100644 u32 gt_perf_status = I915_READ(GEN6_GT_PERF_STATUS); u32 rp_state_limits = I915_READ(GEN6_RP_STATE_LIMITS); u32 rp_state_cap = I915_READ(GEN6_RP_STATE_CAP); -@@ -1009,6 +1009,25 @@ static int i915_cur_delayinfo(struct seq_file *m, void *unused) +@@ -1009,6 +1009,25 @@ static int i915_cur_delayinfo(struct seq seq_printf(m, "Max overclocked frequency: %dMHz\n", dev_priv->rps.hw_max * GT_FREQUENCY_MULTIPLIER); @@ -142,11 +140,9 @@ index e913d325d5b8..367b534d2260 100644 mutex_unlock(&dev_priv->rps.hw_lock); return 0; -diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h -index 3be035a8a7b1..b32a0b18f003 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h -@@ -1860,6 +1860,9 @@ extern void intel_disable_fbc(struct drm_device *dev); +@@ -1860,6 +1860,9 @@ extern void intel_disable_fbc(struct drm extern bool ironlake_set_drps(struct drm_device *dev, u8 val); extern void intel_init_pch_refclk(struct drm_device *dev); extern void gen6_set_rps(struct drm_device *dev, u8 val); @@ -156,7 +152,7 @@ index 3be035a8a7b1..b32a0b18f003 100644 extern void intel_detect_pch(struct drm_device *dev); extern int intel_trans_dp_port_sel(struct drm_crtc *crtc); extern int intel_enable_rc6(const struct drm_device *dev); -@@ -1891,6 +1894,8 @@ int sandybridge_pcode_read(struct drm_i915_private *dev_priv, u8 mbox, u32 *val) +@@ -1891,6 +1894,8 @@ int sandybridge_pcode_read(struct drm_i9 int sandybridge_pcode_write(struct drm_i915_private *dev_priv, u8 mbox, u32 val); int valleyview_punit_read(struct drm_i915_private *dev_priv, u8 addr, u32 *val); int valleyview_punit_write(struct drm_i915_private *dev_priv, u8 addr, u32 val); @@ -165,11 +161,9 @@ index 3be035a8a7b1..b32a0b18f003 100644 int vlv_gpu_freq(int ddr_freq, int val); int vlv_freq_opcode(int ddr_freq, int val); -diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index c939df03b229..11a8f81a7fd1 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -473,7 +473,10 @@ static void gen6_pm_rps_work(struct work_struct *work) +@@ -473,7 +473,10 @@ static void gen6_pm_rps_work(struct work */ if (!(new_delay > dev_priv->rps.max_delay || new_delay < dev_priv->rps.min_delay)) { @@ -181,11 +175,9 @@ index c939df03b229..11a8f81a7fd1 100644 } mutex_unlock(&dev_priv->rps.hw_lock); -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index b1a0cdba59e7..acf0608cc761 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4315,6 +4315,7 @@ +@@ -4319,6 +4319,7 @@ #define GEN6_RC_CTL_RC6_ENABLE (1<<18) #define GEN6_RC_CTL_RC1e_ENABLE (1<<20) #define GEN6_RC_CTL_RC7_ENABLE (1<<22) @@ -193,7 +185,7 @@ index b1a0cdba59e7..acf0608cc761 100644 #define GEN6_RC_CTL_EI_MODE(x) ((x)<<27) #define GEN6_RC_CTL_HW_ENABLE (1<<31) #define GEN6_RP_DOWN_TIMEOUT 0xA010 -@@ -4406,12 +4407,32 @@ +@@ -4410,12 +4411,32 @@ #define IOSF_BAR_SHIFT 1 #define IOSF_SB_BUSY (1<<0) #define IOSF_PORT_PUNIT 0x4 @@ -226,11 +218,9 @@ index b1a0cdba59e7..acf0608cc761 100644 #define GEN6_GT_CORE_STATUS 0x138060 #define GEN6_CORE_CPD_STATE_MASK (7<<4) #define GEN6_RCn_MASK 7 -diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c -index d5e1890678f9..ca00df2de07b 100644 --- a/drivers/gpu/drm/i915/i915_sysfs.c +++ b/drivers/gpu/drm/i915/i915_sysfs.c -@@ -212,7 +212,10 @@ static ssize_t gt_cur_freq_mhz_show(struct device *kdev, +@@ -212,7 +212,10 @@ static ssize_t gt_cur_freq_mhz_show(stru int ret; mutex_lock(&dev_priv->rps.hw_lock); @@ -242,7 +232,7 @@ index d5e1890678f9..ca00df2de07b 100644 mutex_unlock(&dev_priv->rps.hw_lock); return snprintf(buf, PAGE_SIZE, "%d\n", ret); -@@ -226,7 +229,10 @@ static ssize_t gt_max_freq_mhz_show(struct device *kdev, struct device_attribute +@@ -226,7 +229,10 @@ static ssize_t gt_max_freq_mhz_show(stru int ret; mutex_lock(&dev_priv->rps.hw_lock); @@ -254,7 +244,7 @@ index d5e1890678f9..ca00df2de07b 100644 mutex_unlock(&dev_priv->rps.hw_lock); return snprintf(buf, PAGE_SIZE, "%d\n", ret); -@@ -246,16 +252,25 @@ static ssize_t gt_max_freq_mhz_store(struct device *kdev, +@@ -246,16 +252,25 @@ static ssize_t gt_max_freq_mhz_store(str if (ret) return ret; @@ -274,20 +264,20 @@ index d5e1890678f9..ca00df2de07b 100644 + non_oc_max = hw_max; + } else { + val /= GT_FREQUENCY_MULTIPLIER; - -- if (val < hw_min || val > hw_max || val < dev_priv->rps.min_delay) { ++ + rp_state_cap = I915_READ(GEN6_RP_STATE_CAP); + hw_max = dev_priv->rps.hw_max; + non_oc_max = (rp_state_cap & 0xff); + hw_min = ((rp_state_cap & 0xff0000) >> 16); + } -+ + +- if (val < hw_min || val > hw_max || val < dev_priv->rps.min_delay) { + if (val < hw_min || val > hw_max || + val < dev_priv->rps.min_delay) { mutex_unlock(&dev_priv->rps.hw_lock); return -EINVAL; } -@@ -264,8 +279,12 @@ static ssize_t gt_max_freq_mhz_store(struct device *kdev, +@@ -264,8 +279,12 @@ static ssize_t gt_max_freq_mhz_store(str DRM_DEBUG("User requested overclocking to %d\n", val * GT_FREQUENCY_MULTIPLIER); @@ -302,7 +292,7 @@ index d5e1890678f9..ca00df2de07b 100644 dev_priv->rps.max_delay = val; -@@ -282,7 +301,10 @@ static ssize_t gt_min_freq_mhz_show(struct device *kdev, struct device_attribute +@@ -282,7 +301,10 @@ static ssize_t gt_min_freq_mhz_show(stru int ret; mutex_lock(&dev_priv->rps.hw_lock); @@ -314,7 +304,7 @@ index d5e1890678f9..ca00df2de07b 100644 mutex_unlock(&dev_priv->rps.hw_lock); return snprintf(buf, PAGE_SIZE, "%d\n", ret); -@@ -302,21 +324,32 @@ static ssize_t gt_min_freq_mhz_store(struct device *kdev, +@@ -302,21 +324,32 @@ static ssize_t gt_min_freq_mhz_store(str if (ret) return ret; @@ -354,11 +344,9 @@ index d5e1890678f9..ca00df2de07b 100644 dev_priv->rps.min_delay = val; -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index 746990fd1bd4..ca43c4e33c45 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -2481,6 +2481,52 @@ void gen6_set_rps(struct drm_device *dev, u8 val) +@@ -2481,6 +2481,52 @@ void gen6_set_rps(struct drm_device *dev trace_intel_gpu_freq_change(val * 50); } @@ -411,7 +399,7 @@ index 746990fd1bd4..ca43c4e33c45 100644 static void gen6_disable_rps(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; -@@ -2742,6 +2788,127 @@ static void gen6_update_ring_freq(struct drm_device *dev) +@@ -2742,6 +2788,127 @@ static void gen6_update_ring_freq(struct } } @@ -539,7 +527,7 @@ index 746990fd1bd4..ca43c4e33c45 100644 void ironlake_teardown_rc6(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; -@@ -3468,7 +3635,7 @@ void intel_disable_gt_powersave(struct drm_device *dev) +@@ -3468,7 +3635,7 @@ void intel_disable_gt_powersave(struct d if (IS_IRONLAKE_M(dev)) { ironlake_disable_drps(dev); ironlake_disable_rc6(dev); @@ -548,7 +536,7 @@ index 746990fd1bd4..ca43c4e33c45 100644 cancel_delayed_work_sync(&dev_priv->rps.delayed_resume_work); mutex_lock(&dev_priv->rps.hw_lock); gen6_disable_rps(dev); -@@ -3484,8 +3651,13 @@ static void intel_gen6_powersave_work(struct work_struct *work) +@@ -3484,8 +3651,13 @@ static void intel_gen6_powersave_work(st struct drm_device *dev = dev_priv->dev; mutex_lock(&dev_priv->rps.hw_lock); @@ -564,7 +552,7 @@ index 746990fd1bd4..ca43c4e33c45 100644 mutex_unlock(&dev_priv->rps.hw_lock); } -@@ -3497,7 +3669,7 @@ void intel_enable_gt_powersave(struct drm_device *dev) +@@ -3497,7 +3669,7 @@ void intel_enable_gt_powersave(struct dr ironlake_enable_drps(dev); ironlake_enable_rc6(dev); intel_init_emon(dev); @@ -573,7 +561,7 @@ index 746990fd1bd4..ca43c4e33c45 100644 /* * PCU communication is slow and this doesn't need to be * done at any specific time, so do this out of our fast path -@@ -4603,14 +4775,13 @@ int sandybridge_pcode_write(struct drm_i915_private *dev_priv, u8 mbox, u32 val) +@@ -4603,14 +4775,13 @@ int sandybridge_pcode_write(struct drm_i return 0; } @@ -590,7 +578,7 @@ index 746990fd1bd4..ca43c4e33c45 100644 devfn = PCI_DEVFN(2, 0); cmd = (devfn << IOSF_DEVFN_SHIFT) | (opcode << IOSF_OPCODE_SHIFT) | -@@ -4632,7 +4803,7 @@ static int vlv_punit_rw(struct drm_i915_private *dev_priv, u8 opcode, +@@ -4632,7 +4803,7 @@ static int vlv_punit_rw(struct drm_i915_ I915_WRITE(VLV_IOSF_DOORBELL_REQ, cmd); if (wait_for((I915_READ(VLV_IOSF_DOORBELL_REQ) & IOSF_SB_BUSY) == 0, @@ -599,7 +587,7 @@ index 746990fd1bd4..ca43c4e33c45 100644 DRM_ERROR("timeout waiting for pcode %s (%d) to finish\n", opcode == PUNIT_OPCODE_REG_READ ? "read" : "write", addr); -@@ -4648,12 +4819,20 @@ static int vlv_punit_rw(struct drm_i915_private *dev_priv, u8 opcode, +@@ -4648,12 +4819,20 @@ static int vlv_punit_rw(struct drm_i915_ int valleyview_punit_read(struct drm_i915_private *dev_priv, u8 addr, u32 *val) { @@ -622,6 +610,3 @@ index 746990fd1bd4..ca43c4e33c45 100644 } int vlv_gpu_freq(int ddr_freq, int val) --- -1.8.5.rc3 - diff --git a/patches.baytrail/0026-drm-i915-update-VLV-PLL-and-DPIO-code-v11.patch b/patches.baytrail/0026-drm-i915-update-VLV-PLL-and-DPIO-code-v11.patch index 416046abc41dd..cb9531237e044 100644 --- a/patches.baytrail/0026-drm-i915-update-VLV-PLL-and-DPIO-code-v11.patch +++ b/patches.baytrail/0026-drm-i915-update-VLV-PLL-and-DPIO-code-v11.patch @@ -53,17 +53,15 @@ Conflicts: drivers/gpu/drm/i915/intel_display.c Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_display.c | 235 +++++++++++++++++++++++++++-------- - drivers/gpu/drm/i915/intel_dp.c | 69 +++++++++- - drivers/gpu/drm/i915/intel_drv.h | 14 +++ - drivers/gpu/drm/i915/intel_hdmi.c | 108 ++++++++++++++++ + drivers/gpu/drm/i915/intel_display.c | 235 ++++++++++++++++++++++++++--------- + drivers/gpu/drm/i915/intel_dp.c | 69 +++++++++- + drivers/gpu/drm/i915/intel_drv.h | 14 ++ + drivers/gpu/drm/i915/intel_hdmi.c | 108 ++++++++++++++++ 4 files changed, 369 insertions(+), 57 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 9a284ac81c34..913860931245 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -1576,6 +1576,20 @@ intel_sbi_read(struct drm_i915_private *dev_priv, u16 reg, +@@ -1576,6 +1576,20 @@ intel_sbi_read(struct drm_i915_private * return I915_READ(SBI_DATA); } @@ -84,7 +82,7 @@ index 9a284ac81c34..913860931245 100644 /** * ironlake_enable_pch_pll - enable PCH PLL * @dev_priv: i915 private structure -@@ -3678,6 +3692,52 @@ g4x_fixup_plane(struct drm_i915_private *dev_priv, enum pipe pipe) +@@ -3678,6 +3692,52 @@ g4x_fixup_plane(struct drm_i915_private } } @@ -137,7 +135,7 @@ index 9a284ac81c34..913860931245 100644 static void i9xx_crtc_enable(struct drm_crtc *crtc) { struct drm_device *dev = crtc->dev; -@@ -3766,6 +3826,10 @@ static void i9xx_crtc_disable(struct drm_crtc *crtc) +@@ -3766,6 +3826,10 @@ static void i9xx_crtc_disable(struct drm i9xx_pfit_disable(intel_crtc); @@ -148,7 +146,7 @@ index 9a284ac81c34..913860931245 100644 intel_disable_pll(dev_priv, pipe); intel_crtc->active = false; -@@ -4214,6 +4278,34 @@ static void i9xx_update_pll_dividers(struct intel_crtc *crtc, +@@ -4214,6 +4278,34 @@ static void i9xx_update_pll_dividers(str } } @@ -183,7 +181,7 @@ index 9a284ac81c34..913860931245 100644 static void intel_dp_set_m_n(struct intel_crtc *crtc) { if (crtc->config.has_pch_encoder) -@@ -4226,24 +4318,18 @@ static void vlv_update_pll(struct intel_crtc *crtc) +@@ -4226,24 +4318,18 @@ static void vlv_update_pll(struct intel_ { struct drm_device *dev = crtc->base.dev; struct drm_i915_private *dev_priv = dev->dev_private; @@ -215,7 +213,7 @@ index 9a284ac81c34..913860931245 100644 bestn = crtc->config.dpll.n; bestm1 = crtc->config.dpll.m1; -@@ -4251,71 +4337,105 @@ static void vlv_update_pll(struct intel_crtc *crtc) +@@ -4251,72 +4337,106 @@ static void vlv_update_pll(struct intel_ bestp1 = crtc->config.dpll.p1; bestp2 = crtc->config.dpll.p2; @@ -246,22 +244,16 @@ index 9a284ac81c34..913860931245 100644 mdiv |= ((bestn << DPIO_N_SHIFT)); - mdiv |= (1 << DPIO_POST_DIV_SHIFT); mdiv |= (1 << DPIO_K_SHIFT); -- mdiv |= DPIO_ENABLE_CALIBRATION; + if (intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_HDMI) || + intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_EDP) || + intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_DISPLAYPORT)) + mdiv |= (DPIO_POST_DIV_HDMIDP << DPIO_POST_DIV_SHIFT); ++ intel_dpio_write(dev_priv, DPIO_DIV(pipe), mdiv); ++ + mdiv |= DPIO_ENABLE_CALIBRATION; intel_dpio_write(dev_priv, DPIO_DIV(pipe), mdiv); - intel_dpio_write(dev_priv, DPIO_CORE_CLK(pipe), 0x01000000); -+ mdiv |= DPIO_ENABLE_CALIBRATION; -+ intel_dpio_write(dev_priv, DPIO_DIV(pipe), mdiv); - -- pdiv = (1 << DPIO_REFSEL_OVERRIDE) | (5 << DPIO_PLL_MODESEL_SHIFT) | -- (3 << DPIO_BIAS_CURRENT_CTL_SHIFT) | (1<<20) | -- (7 << DPIO_PLL_REFCLK_SEL_SHIFT) | (8 << DPIO_DRIVER_CTL_SHIFT) | -- (5 << DPIO_CLK_BIAS_CTL_SHIFT); -- intel_dpio_write(dev_priv, DPIO_REFSFR(pipe), pdiv); + /* Set HBR and RBR LPF coefficients */ + if (adjusted_mode->clock == 162000 || + intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_HDMI)) @@ -270,7 +262,12 @@ index 9a284ac81c34..913860931245 100644 + else + intel_dpio_write(dev_priv, DPIO_LFP_COEFF(pipe), + 0x00d0000f); -+ + +- pdiv = (1 << DPIO_REFSEL_OVERRIDE) | (5 << DPIO_PLL_MODESEL_SHIFT) | +- (3 << DPIO_BIAS_CURRENT_CTL_SHIFT) | (1<<20) | +- (7 << DPIO_PLL_REFCLK_SEL_SHIFT) | (8 << DPIO_DRIVER_CTL_SHIFT) | +- (5 << DPIO_CLK_BIAS_CTL_SHIFT); +- intel_dpio_write(dev_priv, DPIO_REFSFR(pipe), pdiv); + if (intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_EDP) || + intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_DISPLAYPORT)) { + /* Use SSC source */ @@ -347,22 +344,24 @@ index 9a284ac81c34..913860931245 100644 - if(pipe == 1) - temp |= (1 << 21); - intel_dpio_write(dev_priv, DPIO_DATA_CHANNEL1, temp); -+ I915_WRITE(DPLL_MD(pipe), temp); -+ POSTING_READ(DPLL_MD(pipe)); - } - +- } +- - if(intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_EDP)) { - temp = 0x1000C4; - if(pipe == 1) - temp |= (1 << 21); - intel_dpio_write(dev_priv, DPIO_DATA_CHANNEL2, temp); -- } ++ I915_WRITE(DPLL_MD(pipe), temp); ++ POSTING_READ(DPLL_MD(pipe)); + } + + if (crtc->config.has_dp_encoder) + intel_dp_set_m_n(crtc); - ++ mutex_unlock(&dev_priv->dpio_lock); } -@@ -8792,6 +8912,13 @@ static void intel_init_display(struct drm_device *dev) + +@@ -8792,6 +8912,13 @@ static void intel_init_display(struct dr dev_priv->display.crtc_disable = ironlake_crtc_disable; dev_priv->display.off = ironlake_crtc_off; dev_priv->display.update_plane = ironlake_update_plane; @@ -376,11 +375,9 @@ index 9a284ac81c34..913860931245 100644 } else { dev_priv->display.get_pipe_config = i9xx_get_pipe_config; dev_priv->display.crtc_mode_set = i9xx_crtc_mode_set; -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index cd460c90e4aa..415caad2b10f 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -1392,15 +1392,77 @@ static void intel_enable_dp(struct intel_encoder *encoder) +@@ -1392,15 +1392,77 @@ static void intel_enable_dp(struct intel intel_dp_complete_link_train(intel_dp); intel_dp_stop_link_train(intel_dp); ironlake_edp_backlight_on(intel_dp); @@ -458,7 +455,7 @@ index cd460c90e4aa..415caad2b10f 100644 } /* -@@ -1544,6 +1606,8 @@ static uint32_t intel_vlv_signal_levels(struct intel_dp *intel_dp) +@@ -1544,6 +1606,8 @@ static uint32_t intel_vlv_signal_levels( else BUG(); @@ -467,7 +464,7 @@ index cd460c90e4aa..415caad2b10f 100644 switch (train_set & DP_TRAIN_PRE_EMPHASIS_MASK) { case DP_TRAIN_PRE_EMPHASIS_0: preemph_reg_value = 0x0004000; -@@ -1617,8 +1681,6 @@ static uint32_t intel_vlv_signal_levels(struct intel_dp *intel_dp) +@@ -1617,8 +1681,6 @@ static uint32_t intel_vlv_signal_levels( return 0; } @@ -476,7 +473,7 @@ index cd460c90e4aa..415caad2b10f 100644 intel_dpio_write(dev_priv, DPIO_TX_OCALINIT(port), 0x00000000); intel_dpio_write(dev_priv, DPIO_TX_SWING_CTL4(port), demph_reg_value); intel_dpio_write(dev_priv, DPIO_TX_SWING_CTL2(port), -@@ -1627,7 +1689,6 @@ static uint32_t intel_vlv_signal_levels(struct intel_dp *intel_dp) +@@ -1627,7 +1689,6 @@ static uint32_t intel_vlv_signal_levels( intel_dpio_write(dev_priv, DPIO_PCS_STAGGER0(port), 0x00030000); intel_dpio_write(dev_priv, DPIO_PCS_CTL_OVER1(port), preemph_reg_value); intel_dpio_write(dev_priv, DPIO_TX_OCALINIT(port), 0x80000000); @@ -484,7 +481,7 @@ index cd460c90e4aa..415caad2b10f 100644 return 0; } -@@ -3119,6 +3180,8 @@ intel_dp_init(struct drm_device *dev, int output_reg, enum port port) +@@ -3135,6 +3196,8 @@ intel_dp_init(struct drm_device *dev, in intel_encoder->disable = intel_disable_dp; intel_encoder->post_disable = intel_post_disable_dp; intel_encoder->get_hw_state = intel_dp_get_hw_state; @@ -493,8 +490,6 @@ index cd460c90e4aa..415caad2b10f 100644 intel_dig_port->port = port; intel_dig_port->dp.output_reg = output_reg; -diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h -index 4b8bec2ca2ab..310899f4c3b5 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -431,6 +431,19 @@ struct intel_digital_port { @@ -517,7 +512,7 @@ index 4b8bec2ca2ab..310899f4c3b5 100644 static inline struct drm_crtc * intel_get_crtc_for_pipe(struct drm_device *dev, int pipe) { -@@ -607,6 +620,7 @@ intel_pipe_to_cpu_transcoder(struct drm_i915_private *dev_priv, +@@ -607,6 +620,7 @@ intel_pipe_to_cpu_transcoder(struct drm_ extern void intel_wait_for_vblank(struct drm_device *dev, int pipe); extern void intel_wait_for_pipe_off(struct drm_device *dev, int pipe); extern int ironlake_get_lanes_required(int target_clock, int link_bw, int bpp); @@ -525,11 +520,9 @@ index 4b8bec2ca2ab..310899f4c3b5 100644 struct intel_load_detect_pipe { struct drm_framebuffer *release_fb; -diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c -index a9057930f2b2..075b7d83d9f5 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c -@@ -697,6 +697,14 @@ static void intel_enable_hdmi(struct intel_encoder *encoder) +@@ -697,6 +697,14 @@ static void intel_enable_hdmi(struct int I915_WRITE(intel_hdmi->hdmi_reg, temp); POSTING_READ(intel_hdmi->hdmi_reg); } @@ -646,7 +639,7 @@ index a9057930f2b2..075b7d83d9f5 100644 static void intel_hdmi_destroy(struct drm_connector *connector) { drm_sysfs_connector_remove(connector); -@@ -1094,6 +1197,11 @@ void intel_hdmi_init(struct drm_device *dev, int hdmi_reg, enum port port) +@@ -1094,6 +1197,11 @@ void intel_hdmi_init(struct drm_device * intel_encoder->enable = intel_enable_hdmi; intel_encoder->disable = intel_disable_hdmi; intel_encoder->get_hw_state = intel_hdmi_get_hw_state; @@ -658,6 +651,3 @@ index a9057930f2b2..075b7d83d9f5 100644 intel_encoder->type = INTEL_OUTPUT_HDMI; intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0027-drm-i915-report-Gen5-CPU-and-PCH-FIFO-underruns.patch b/patches.baytrail/0027-drm-i915-report-Gen5-CPU-and-PCH-FIFO-underruns.patch index e3edcade2883f..f191d475a1ff0 100644 --- a/patches.baytrail/0027-drm-i915-report-Gen5-CPU-and-PCH-FIFO-underruns.patch +++ b/patches.baytrail/0027-drm-i915-report-Gen5-CPU-and-PCH-FIFO-underruns.patch @@ -31,17 +31,15 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 8664281b64c457705db72fc60143d03827e75ca9) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_irq.c | 315 ++++++++++++++++++++++++++++++++++- - drivers/gpu/drm/i915/i915_reg.h | 13 +- - drivers/gpu/drm/i915/intel_display.c | 14 ++ - drivers/gpu/drm/i915/intel_drv.h | 11 ++ + drivers/gpu/drm/i915/i915_irq.c | 315 ++++++++++++++++++++++++++++++++++- + drivers/gpu/drm/i915/i915_reg.h | 13 + + drivers/gpu/drm/i915/intel_display.c | 14 + + drivers/gpu/drm/i915/intel_drv.h | 11 + 4 files changed, 342 insertions(+), 11 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index 11a8f81a7fd1..859727d34c2c 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -103,6 +103,213 @@ ironlake_disable_display_irq(drm_i915_private_t *dev_priv, u32 mask) +@@ -103,6 +103,213 @@ ironlake_disable_display_irq(drm_i915_pr } } @@ -255,7 +253,7 @@ index 11a8f81a7fd1..859727d34c2c 100644 void i915_enable_pipestat(drm_i915_private_t *dev_priv, int pipe, u32 mask) { -@@ -791,10 +998,58 @@ static void ibx_irq_handler(struct drm_device *dev, u32 pch_iir) +@@ -791,10 +998,58 @@ static void ibx_irq_handler(struct drm_d if (pch_iir & (SDE_TRANSB_CRC_ERR | SDE_TRANSA_CRC_ERR)) DRM_DEBUG_DRIVER("PCH transcoder CRC error interrupt\n"); @@ -317,7 +315,7 @@ index 11a8f81a7fd1..859727d34c2c 100644 } static void cpt_irq_handler(struct drm_device *dev, u32 pch_iir) -@@ -832,6 +1087,9 @@ static void cpt_irq_handler(struct drm_device *dev, u32 pch_iir) +@@ -832,6 +1087,9 @@ static void cpt_irq_handler(struct drm_d DRM_DEBUG_DRIVER(" pipe %c FDI IIR: 0x%08x\n", pipe_name(pipe), I915_READ(FDI_RX_IIR(pipe))); @@ -327,7 +325,7 @@ index 11a8f81a7fd1..859727d34c2c 100644 } static irqreturn_t ivybridge_irq_handler(int irq, void *arg) -@@ -844,6 +1102,14 @@ static irqreturn_t ivybridge_irq_handler(int irq, void *arg) +@@ -844,6 +1102,14 @@ static irqreturn_t ivybridge_irq_handler atomic_inc(&dev_priv->irq_received); @@ -342,7 +340,7 @@ index 11a8f81a7fd1..859727d34c2c 100644 /* disable master interrupt before clearing iir */ de_ier = I915_READ(DEIER); I915_WRITE(DEIER, de_ier & ~DE_MASTER_IRQ_CONTROL); -@@ -859,6 +1125,12 @@ static irqreturn_t ivybridge_irq_handler(int irq, void *arg) +@@ -859,6 +1125,12 @@ static irqreturn_t ivybridge_irq_handler POSTING_READ(SDEIER); } @@ -355,7 +353,7 @@ index 11a8f81a7fd1..859727d34c2c 100644 gt_iir = I915_READ(GTIIR); if (gt_iir) { snb_gt_irq_handler(dev, dev_priv, gt_iir); -@@ -868,6 +1140,9 @@ static irqreturn_t ivybridge_irq_handler(int irq, void *arg) +@@ -868,6 +1140,9 @@ static irqreturn_t ivybridge_irq_handler de_iir = I915_READ(DEIIR); if (de_iir) { @@ -365,7 +363,7 @@ index 11a8f81a7fd1..859727d34c2c 100644 if (de_iir & DE_AUX_CHANNEL_A_IVB) dp_aux_irq_handler(dev); -@@ -905,6 +1180,9 @@ static irqreturn_t ivybridge_irq_handler(int irq, void *arg) +@@ -905,6 +1180,9 @@ static irqreturn_t ivybridge_irq_handler ret = IRQ_HANDLED; } @@ -375,7 +373,7 @@ index 11a8f81a7fd1..859727d34c2c 100644 I915_WRITE(DEIER, de_ier); POSTING_READ(DEIER); if (!HAS_PCH_NOP(dev)) { -@@ -974,6 +1252,14 @@ static irqreturn_t ironlake_irq_handler(int irq, void *arg) +@@ -974,6 +1252,14 @@ static irqreturn_t ironlake_irq_handler( if (de_iir & DE_PIPEB_VBLANK) drm_handle_vblank(dev, 1); @@ -390,7 +388,7 @@ index 11a8f81a7fd1..859727d34c2c 100644 if (de_iir & DE_PLANEA_FLIP_DONE) { intel_prepare_page_flip(dev, 0); intel_finish_page_flip_plane(dev, 0); -@@ -2245,10 +2531,14 @@ static void ibx_irq_postinstall(struct drm_device *dev) +@@ -2245,10 +2531,14 @@ static void ibx_irq_postinstall(struct d drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; u32 mask; @@ -409,7 +407,7 @@ index 11a8f81a7fd1..859727d34c2c 100644 if (HAS_PCH_NOP(dev)) return; -@@ -2263,7 +2553,8 @@ static int ironlake_irq_postinstall(struct drm_device *dev) +@@ -2263,7 +2553,8 @@ static int ironlake_irq_postinstall(stru /* enable kind of interrupts always enabled */ u32 display_mask = DE_MASTER_IRQ_CONTROL | DE_GSE | DE_PCH_EVENT | DE_PLANEA_FLIP_DONE | DE_PLANEB_FLIP_DONE | @@ -419,7 +417,7 @@ index 11a8f81a7fd1..859727d34c2c 100644 u32 render_irqs; dev_priv->irq_mask = ~display_mask; -@@ -2313,12 +2604,14 @@ static int ivybridge_irq_postinstall(struct drm_device *dev) +@@ -2313,12 +2604,14 @@ static int ivybridge_irq_postinstall(str DE_PLANEC_FLIP_DONE_IVB | DE_PLANEB_FLIP_DONE_IVB | DE_PLANEA_FLIP_DONE_IVB | @@ -435,7 +433,7 @@ index 11a8f81a7fd1..859727d34c2c 100644 I915_WRITE(DEIIR, I915_READ(DEIIR)); I915_WRITE(DEIMR, dev_priv->irq_mask); I915_WRITE(DEIER, -@@ -2446,6 +2739,8 @@ static void ironlake_irq_uninstall(struct drm_device *dev) +@@ -2446,6 +2739,8 @@ static void ironlake_irq_uninstall(struc I915_WRITE(DEIMR, 0xffffffff); I915_WRITE(DEIER, 0x0); I915_WRITE(DEIIR, I915_READ(DEIIR)); @@ -444,7 +442,7 @@ index 11a8f81a7fd1..859727d34c2c 100644 I915_WRITE(GTIMR, 0xffffffff); I915_WRITE(GTIER, 0x0); -@@ -2457,6 +2752,8 @@ static void ironlake_irq_uninstall(struct drm_device *dev) +@@ -2457,6 +2752,8 @@ static void ironlake_irq_uninstall(struc I915_WRITE(SDEIMR, 0xffffffff); I915_WRITE(SDEIER, 0x0); I915_WRITE(SDEIIR, I915_READ(SDEIIR)); @@ -453,8 +451,6 @@ index 11a8f81a7fd1..859727d34c2c 100644 } static void i8xx_irq_preinstall(struct drm_device * dev) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index a5fe3ba7d00d..b76679e401d2 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -638,7 +638,10 @@ @@ -469,7 +465,7 @@ index a5fe3ba7d00d..b76679e401d2 100644 #define FPGA_DBG 0x42300 #define FPGA_DBG_RM_NOCLAIM (1<<31) -@@ -3622,7 +3625,7 @@ +@@ -3626,7 +3629,7 @@ #define DE_PIPEA_FIFO_UNDERRUN (1 << 0) /* More Ivybridge lolz */ @@ -478,7 +474,7 @@ index a5fe3ba7d00d..b76679e401d2 100644 #define DE_GSE_IVB (1<<29) #define DE_PCH_EVENT_IVB (1<<28) #define DE_DP_A_HOTPLUG_IVB (1<<27) -@@ -3781,6 +3784,7 @@ +@@ -3785,6 +3788,7 @@ SDE_PORTC_HOTPLUG_CPT | \ SDE_PORTB_HOTPLUG_CPT) #define SDE_GMBUS_CPT (1 << 17) @@ -486,7 +482,7 @@ index a5fe3ba7d00d..b76679e401d2 100644 #define SDE_AUDIO_CP_REQ_C_CPT (1 << 10) #define SDE_AUDIO_CP_CHG_C_CPT (1 << 9) #define SDE_FDI_RXC_CPT (1 << 8) -@@ -3805,6 +3809,11 @@ +@@ -3809,6 +3813,11 @@ #define SDEIIR 0xc4008 #define SDEIER 0xc400c @@ -498,11 +494,9 @@ index a5fe3ba7d00d..b76679e401d2 100644 /* digital port hotplug */ #define PCH_PORT_HOTPLUG 0xc4030 /* SHOTPLUG_CTL */ #define PORTD_HOTPLUG_ENABLE (1 << 20) -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 913860931245..212fb82e0f31 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -3346,6 +3346,10 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc) +@@ -3346,6 +3346,10 @@ static void ironlake_crtc_enable(struct return; intel_crtc->active = true; @@ -513,7 +507,7 @@ index 913860931245..212fb82e0f31 100644 intel_update_watermarks(dev); if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) { -@@ -3437,6 +3441,11 @@ static void haswell_crtc_enable(struct drm_crtc *crtc) +@@ -3437,6 +3441,11 @@ static void haswell_crtc_enable(struct d return; intel_crtc->active = true; @@ -525,7 +519,7 @@ index 913860931245..212fb82e0f31 100644 intel_update_watermarks(dev); if (intel_crtc->config.has_pch_encoder) -@@ -3523,6 +3532,7 @@ static void ironlake_crtc_disable(struct drm_crtc *crtc) +@@ -3523,6 +3532,7 @@ static void ironlake_crtc_disable(struct if (dev_priv->cfb_plane == plane) intel_disable_fbc(dev); @@ -533,7 +527,7 @@ index 913860931245..212fb82e0f31 100644 intel_disable_pipe(dev_priv, pipe); /* Disable PF */ -@@ -3536,6 +3546,7 @@ static void ironlake_crtc_disable(struct drm_crtc *crtc) +@@ -3536,6 +3546,7 @@ static void ironlake_crtc_disable(struct ironlake_fdi_disable(crtc); ironlake_disable_pch_transcoder(dev_priv, pipe); @@ -541,7 +535,7 @@ index 913860931245..212fb82e0f31 100644 if (HAS_PCH_CPT(dev)) { /* disable TRANS_DP_CTL */ -@@ -3602,6 +3613,8 @@ static void haswell_crtc_disable(struct drm_crtc *crtc) +@@ -3602,6 +3613,8 @@ static void haswell_crtc_disable(struct if (dev_priv->cfb_plane == plane) intel_disable_fbc(dev); @@ -550,7 +544,7 @@ index 913860931245..212fb82e0f31 100644 intel_disable_pipe(dev_priv, pipe); intel_ddi_disable_transcoder_func(dev_priv, cpu_transcoder); -@@ -3622,6 +3635,7 @@ static void haswell_crtc_disable(struct drm_crtc *crtc) +@@ -3622,6 +3635,7 @@ static void haswell_crtc_disable(struct if (intel_crtc->config.has_pch_encoder) { lpt_disable_pch_transcoder(dev_priv); @@ -558,8 +552,6 @@ index 913860931245..212fb82e0f31 100644 intel_ddi_fdi_disable(crtc); } -diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h -index 310899f4c3b5..3976eadbb4b6 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -265,6 +265,10 @@ struct intel_crtc { @@ -573,7 +565,7 @@ index 310899f4c3b5..3976eadbb4b6 100644 }; struct intel_plane { -@@ -487,6 +491,7 @@ int intel_ddc_get_modes(struct drm_connector *c, struct i2c_adapter *adapter); +@@ -487,6 +491,7 @@ int intel_ddc_get_modes(struct drm_conne extern void intel_attach_force_audio_property(struct drm_connector *connector); extern void intel_attach_broadcast_rgb_property(struct drm_connector *connector); @@ -581,7 +573,7 @@ index 310899f4c3b5..3976eadbb4b6 100644 extern void intel_crt_init(struct drm_device *dev); extern void intel_hdmi_init(struct drm_device *dev, int hdmi_reg, enum port port); -@@ -744,5 +749,11 @@ intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector); +@@ -744,5 +749,11 @@ intel_ddi_connector_get_hw_state(struct extern void intel_ddi_fdi_disable(struct drm_crtc *crtc); extern void intel_display_handle_reset(struct drm_device *dev); @@ -593,6 +585,3 @@ index 310899f4c3b5..3976eadbb4b6 100644 + bool enable); #endif /* __INTEL_DRV_H__ */ --- -1.8.5.rc3 - diff --git a/patches.baytrail/0028-drm-i915-print-Gen5-CPU-PCH-poison-interrupts.patch b/patches.baytrail/0028-drm-i915-print-Gen5-CPU-PCH-poison-interrupts.patch index 219286d5ba6e7..3cb65f9f08a81 100644 --- a/patches.baytrail/0028-drm-i915-print-Gen5-CPU-PCH-poison-interrupts.patch +++ b/patches.baytrail/0028-drm-i915-print-Gen5-CPU-PCH-poison-interrupts.patch @@ -13,15 +13,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit de032bf40a52dbbada11e071d150d2c062b5527e) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_irq.c | 13 +++++++++++-- - drivers/gpu/drm/i915/i915_reg.h | 2 ++ + drivers/gpu/drm/i915/i915_irq.c | 13 +++++++++++-- + drivers/gpu/drm/i915/i915_reg.h | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index 859727d34c2c..450a03c6f945 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -1014,6 +1014,9 @@ static void ivb_err_int_handler(struct drm_device *dev) +@@ -1014,6 +1014,9 @@ static void ivb_err_int_handler(struct d struct drm_i915_private *dev_priv = dev->dev_private; u32 err_int = I915_READ(GEN7_ERR_INT); @@ -31,7 +29,7 @@ index 859727d34c2c..450a03c6f945 100644 if (err_int & ERR_INT_FIFO_UNDERRUN_A) if (intel_set_cpu_fifo_underrun_reporting(dev, PIPE_A, false)) DRM_DEBUG_DRIVER("Pipe A FIFO underrun\n"); -@@ -1034,6 +1037,9 @@ static void cpt_serr_int_handler(struct drm_device *dev) +@@ -1034,6 +1037,9 @@ static void cpt_serr_int_handler(struct struct drm_i915_private *dev_priv = dev->dev_private; u32 serr_int = I915_READ(SERR_INT); @@ -41,7 +39,7 @@ index 859727d34c2c..450a03c6f945 100644 if (serr_int & SERR_INT_TRANS_A_FIFO_UNDERRUN) if (intel_set_pch_fifo_underrun_reporting(dev, TRANSCODER_A, false)) -@@ -1252,6 +1258,9 @@ static irqreturn_t ironlake_irq_handler(int irq, void *arg) +@@ -1252,6 +1258,9 @@ static irqreturn_t ironlake_irq_handler( if (de_iir & DE_PIPEB_VBLANK) drm_handle_vblank(dev, 1); @@ -51,7 +49,7 @@ index 859727d34c2c..450a03c6f945 100644 if (de_iir & DE_PIPEA_FIFO_UNDERRUN) if (intel_set_cpu_fifo_underrun_reporting(dev, PIPE_A, false)) DRM_DEBUG_DRIVER("Pipe A FIFO underrun\n"); -@@ -2533,7 +2542,7 @@ static void ibx_irq_postinstall(struct drm_device *dev) +@@ -2533,7 +2542,7 @@ static void ibx_irq_postinstall(struct d if (HAS_PCH_IBX(dev)) { mask = SDE_GMBUS | SDE_AUX_MASK | SDE_TRANSB_FIFO_UNDER | @@ -60,7 +58,7 @@ index 859727d34c2c..450a03c6f945 100644 } else { mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT | SDE_ERROR_CPT; -@@ -2554,7 +2563,7 @@ static int ironlake_irq_postinstall(struct drm_device *dev) +@@ -2554,7 +2563,7 @@ static int ironlake_irq_postinstall(stru u32 display_mask = DE_MASTER_IRQ_CONTROL | DE_GSE | DE_PCH_EVENT | DE_PLANEA_FLIP_DONE | DE_PLANEB_FLIP_DONE | DE_AUX_CHANNEL_A | DE_PIPEB_FIFO_UNDERRUN | @@ -69,8 +67,6 @@ index 859727d34c2c..450a03c6f945 100644 u32 render_irqs; dev_priv->irq_mask = ~display_mask; -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index b76679e401d2..5a7a694121ec 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -638,6 +638,7 @@ @@ -81,7 +77,7 @@ index b76679e401d2..5a7a694121ec 100644 #define ERR_INT_MMIO_UNCLAIMED (1<<13) #define ERR_INT_FIFO_UNDERRUN_C (1<<6) #define ERR_INT_FIFO_UNDERRUN_B (1<<3) -@@ -3810,6 +3811,7 @@ +@@ -3814,6 +3815,7 @@ #define SDEIER 0xc400c #define SERR_INT 0xc4040 @@ -89,6 +85,3 @@ index b76679e401d2..5a7a694121ec 100644 #define SERR_INT_TRANS_C_FIFO_UNDERRUN (1<<6) #define SERR_INT_TRANS_B_FIFO_UNDERRUN (1<<3) #define SERR_INT_TRANS_A_FIFO_UNDERRUN (1<<0) --- -1.8.5.rc3 - diff --git a/patches.baytrail/0031-drm-i915-Move-the-CSC_MODE-bits-next-to-the-register.patch b/patches.baytrail/0031-drm-i915-Move-the-CSC_MODE-bits-next-to-the-register.patch index b2462ad5e1ad9..39fbf7f8a1d40 100644 --- a/patches.baytrail/0031-drm-i915-Move-the-CSC_MODE-bits-next-to-the-register.patch +++ b/patches.baytrail/0031-drm-i915-Move-the-CSC_MODE-bits-next-to-the-register.patch @@ -14,14 +14,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 29a397ba7a4bded235c79f050753637cad3409ff) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 7 +++---- + drivers/gpu/drm/i915/i915_reg.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 5a7a694121ec..14cd707265b9 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4939,6 +4939,9 @@ +@@ -4943,6 +4943,9 @@ #define _PIPE_A_CSC_COEFF_RV_GV 0x49020 #define _PIPE_A_CSC_COEFF_BV 0x49024 #define _PIPE_A_CSC_MODE 0x49028 @@ -31,7 +29,7 @@ index 5a7a694121ec..14cd707265b9 100644 #define _PIPE_A_CSC_PREOFF_HI 0x49030 #define _PIPE_A_CSC_PREOFF_ME 0x49034 #define _PIPE_A_CSC_PREOFF_LO 0x49038 -@@ -4960,10 +4963,6 @@ +@@ -4964,10 +4967,6 @@ #define _PIPE_B_CSC_POSTOFF_ME 0x49144 #define _PIPE_B_CSC_POSTOFF_LO 0x49148 @@ -42,6 +40,3 @@ index 5a7a694121ec..14cd707265b9 100644 #define PIPE_CSC_COEFF_RY_GY(pipe) _PIPE(pipe, _PIPE_A_CSC_COEFF_RY_GY, _PIPE_B_CSC_COEFF_RY_GY) #define PIPE_CSC_COEFF_BY(pipe) _PIPE(pipe, _PIPE_A_CSC_COEFF_BY, _PIPE_B_CSC_COEFF_BY) #define PIPE_CSC_COEFF_RU_GU(pipe) _PIPE(pipe, _PIPE_A_CSC_COEFF_RU_GU, _PIPE_B_CSC_COEFF_RU_GU) --- -1.8.5.rc3 - diff --git a/patches.baytrail/0058-drm-i915-hsw-backlight-registers-need-transcoder-ins.patch b/patches.baytrail/0058-drm-i915-hsw-backlight-registers-need-transcoder-ins.patch index ee89afa63921a..70bf8f08ebd4a 100644 --- a/patches.baytrail/0058-drm-i915-hsw-backlight-registers-need-transcoder-ins.patch +++ b/patches.baytrail/0058-drm-i915-hsw-backlight-registers-need-transcoder-ins.patch @@ -11,15 +11,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 35ffda4883a8d3f75632d7389dc96a25640033f0) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 4 ++++ - drivers/gpu/drm/i915/intel_panel.c | 7 ++++++- + drivers/gpu/drm/i915/i915_reg.h | 4 ++++ + drivers/gpu/drm/i915/intel_panel.c | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 14cd707265b9..8fff456c1c87 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -2091,6 +2091,10 @@ +@@ -2095,6 +2095,10 @@ #define BLM_PIPE_A (0 << 29) #define BLM_PIPE_B (1 << 29) #define BLM_PIPE_C (2 << 29) /* ivb + */ @@ -30,11 +28,9 @@ index 14cd707265b9..8fff456c1c87 100644 #define BLM_PIPE(pipe) ((pipe) << 29) #define BLM_POLARITY_I965 (1 << 28) /* gen4 only */ #define BLM_PHASE_IN_INTERUPT_STATUS (1 << 26) -diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c -index 4c49b3f77455..317d2bc15049 100644 --- a/drivers/gpu/drm/i915/intel_panel.c +++ b/drivers/gpu/drm/i915/intel_panel.c -@@ -344,6 +344,8 @@ void intel_panel_enable_backlight(struct drm_device *dev, +@@ -344,6 +344,8 @@ void intel_panel_enable_backlight(struct enum pipe pipe) { struct drm_i915_private *dev_priv = dev->dev_private; @@ -43,7 +39,7 @@ index 4c49b3f77455..317d2bc15049 100644 unsigned long flags; spin_lock_irqsave(&dev_priv->backlight.lock, flags); -@@ -374,7 +376,10 @@ void intel_panel_enable_backlight(struct drm_device *dev, +@@ -374,7 +376,10 @@ void intel_panel_enable_backlight(struct else tmp &= ~BLM_PIPE_SELECT; @@ -55,6 +51,3 @@ index 4c49b3f77455..317d2bc15049 100644 tmp &= ~BLM_PWM_ENABLE; I915_WRITE(reg, tmp); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0078-drm-i915-hw-state-readout-support-for-pipe_config-fd.patch b/patches.baytrail/0078-drm-i915-hw-state-readout-support-for-pipe_config-fd.patch index c65d3b933820c..7874df637d91e 100644 --- a/patches.baytrail/0078-drm-i915-hw-state-readout-support-for-pipe_config-fd.patch +++ b/patches.baytrail/0078-drm-i915-hw-state-readout-support-for-pipe_config-fd.patch @@ -19,16 +19,14 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 627eb5a318a6caca2145d3c7195b084c59b291d9) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 11 +++-------- - drivers/gpu/drm/i915/intel_ddi.c | 2 +- - drivers/gpu/drm/i915/intel_display.c | 38 ++++++++++++++++++++++++++---------- + drivers/gpu/drm/i915/i915_reg.h | 11 ++-------- + drivers/gpu/drm/i915/intel_ddi.c | 2 - + drivers/gpu/drm/i915/intel_display.c | 38 +++++++++++++++++++++++++---------- 3 files changed, 32 insertions(+), 19 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 8fff456c1c87..efdc01b17c5c 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4146,10 +4146,9 @@ +@@ -4150,10 +4150,9 @@ #define FDI_LINK_TRAIN_600MV_3_5DB_SNB_B (0x39<<22) #define FDI_LINK_TRAIN_800MV_0DB_SNB_B (0x38<<22) #define FDI_LINK_TRAIN_VOL_EMP_MASK (0x3f<<22) @@ -42,7 +40,7 @@ index 8fff456c1c87..efdc01b17c5c 100644 #define FDI_TX_ENHANCE_FRAME_ENABLE (1<<18) /* Ironlake: hardwired to 1 */ #define FDI_TX_PLL_ENABLE (1<<14) -@@ -4174,7 +4173,6 @@ +@@ -4178,7 +4177,6 @@ /* train, dp width same as FDI_TX */ #define FDI_FS_ERRC_ENABLE (1<<27) #define FDI_FE_ERRC_ENABLE (1<<26) @@ -50,7 +48,7 @@ index 8fff456c1c87..efdc01b17c5c 100644 #define FDI_RX_POLARITY_REVERSED_LPT (1<<16) #define FDI_8BPC (0<<16) #define FDI_10BPC (1<<16) -@@ -4196,9 +4194,6 @@ +@@ -4200,9 +4198,6 @@ #define FDI_LINK_TRAIN_PATTERN_IDLE_CPT (2<<8) #define FDI_LINK_TRAIN_NORMAL_CPT (3<<8) #define FDI_LINK_TRAIN_PATTERN_MASK_CPT (3<<8) @@ -60,11 +58,9 @@ index 8fff456c1c87..efdc01b17c5c 100644 #define _FDI_RXA_MISC 0xf0010 #define _FDI_RXB_MISC 0xf1010 -diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c -index 79c2af486dbb..2a84a5edbf45 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c -@@ -182,7 +182,7 @@ void hsw_fdi_link_train(struct drm_crtc *crtc) +@@ -182,7 +182,7 @@ void hsw_fdi_link_train(struct drm_crtc /* Enable the PCH Receiver FDI PLL */ rx_ctl_val = dev_priv->fdi_rx_config | FDI_RX_ENHANCE_FRAME_ENABLE | FDI_RX_PLL_ENABLE | @@ -73,11 +69,9 @@ index 79c2af486dbb..2a84a5edbf45 100644 I915_WRITE(_FDI_RXA_CTL, rx_ctl_val); POSTING_READ(_FDI_RXA_CTL); udelay(220); -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 1a257d5bc8a9..d3c2d5c1e72a 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -2419,8 +2419,8 @@ static void ironlake_fdi_link_train(struct drm_crtc *crtc) +@@ -2419,8 +2419,8 @@ static void ironlake_fdi_link_train(stru /* enable CPU FDI TX and PCH FDI RX */ reg = FDI_TX_CTL(pipe); temp = I915_READ(reg); @@ -88,7 +82,7 @@ index 1a257d5bc8a9..d3c2d5c1e72a 100644 temp &= ~FDI_LINK_TRAIN_NONE; temp |= FDI_LINK_TRAIN_PATTERN_1; I915_WRITE(reg, temp | FDI_TX_ENABLE); -@@ -2517,8 +2517,8 @@ static void gen6_fdi_link_train(struct drm_crtc *crtc) +@@ -2517,8 +2517,8 @@ static void gen6_fdi_link_train(struct d /* enable CPU FDI TX and PCH FDI RX */ reg = FDI_TX_CTL(pipe); temp = I915_READ(reg); @@ -99,7 +93,7 @@ index 1a257d5bc8a9..d3c2d5c1e72a 100644 temp &= ~FDI_LINK_TRAIN_NONE; temp |= FDI_LINK_TRAIN_PATTERN_1; temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; -@@ -2652,8 +2652,8 @@ static void ivb_manual_fdi_link_train(struct drm_crtc *crtc) +@@ -2652,8 +2652,8 @@ static void ivb_manual_fdi_link_train(st /* enable CPU FDI TX and PCH FDI RX */ reg = FDI_TX_CTL(pipe); temp = I915_READ(reg); @@ -110,7 +104,7 @@ index 1a257d5bc8a9..d3c2d5c1e72a 100644 temp &= ~(FDI_LINK_TRAIN_AUTO | FDI_LINK_TRAIN_NONE_IVB); temp |= FDI_LINK_TRAIN_PATTERN_1_IVB; temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK; -@@ -2754,8 +2754,8 @@ static void ironlake_fdi_pll_enable(struct intel_crtc *intel_crtc) +@@ -2754,8 +2754,8 @@ static void ironlake_fdi_pll_enable(stru /* enable PCH FDI RX PLL, wait warmup plus DMI latency */ reg = FDI_RX_CTL(pipe); temp = I915_READ(reg); @@ -121,7 +115,7 @@ index 1a257d5bc8a9..d3c2d5c1e72a 100644 temp |= (I915_READ(PIPECONF(pipe)) & PIPECONF_BPC_MASK) << 11; I915_WRITE(reg, temp | FDI_RX_PLL_ENABLE); -@@ -5796,9 +5796,14 @@ static bool ironlake_get_pipe_config(struct intel_crtc *crtc, +@@ -5796,9 +5796,14 @@ static bool ironlake_get_pipe_config(str if (!(tmp & PIPECONF_ENABLE)) return false; @@ -137,7 +131,7 @@ index 1a257d5bc8a9..d3c2d5c1e72a 100644 return true; } -@@ -5934,9 +5939,14 @@ static bool haswell_get_pipe_config(struct intel_crtc *crtc, +@@ -5934,9 +5939,14 @@ static bool haswell_get_pipe_config(stru */ tmp = I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder)); if ((tmp & TRANS_DDI_PORT_MASK) == TRANS_DDI_SELECT_PORT(PORT_E) && @@ -153,7 +147,7 @@ index 1a257d5bc8a9..d3c2d5c1e72a 100644 return true; } -@@ -7902,6 +7912,14 @@ intel_pipe_config_compare(struct intel_crtc_config *current_config, +@@ -7902,6 +7912,14 @@ intel_pipe_config_compare(struct intel_c return false; } @@ -168,6 +162,3 @@ index 1a257d5bc8a9..d3c2d5c1e72a 100644 return true; } --- -1.8.5.rc3 - diff --git a/patches.baytrail/0088-drm-i915-hw-state-readout-support-for-fdi-m-n.patch b/patches.baytrail/0088-drm-i915-hw-state-readout-support-for-fdi-m-n.patch index 911285d6acbc8..9f87b58b3a6a7 100644 --- a/patches.baytrail/0088-drm-i915-hw-state-readout-support-for-fdi-m-n.patch +++ b/patches.baytrail/0088-drm-i915-hw-state-readout-support-for-fdi-m-n.patch @@ -19,15 +19,13 @@ Conflicts: drivers/gpu/drm/i915/i915_reg.h Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 1 + - drivers/gpu/drm/i915/intel_display.c | 25 +++++++++++++++++++++++++ + drivers/gpu/drm/i915/i915_reg.h | 1 + + drivers/gpu/drm/i915/intel_display.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index efdc01b17c5c..1782b0c8a743 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -2779,6 +2779,7 @@ +@@ -2783,6 +2783,7 @@ /* Transfer unit size for display port - 1, default is 0x3f (for TU size 64) */ #define TU_SIZE(x) (((x)-1) << 25) /* default size 64 */ @@ -35,11 +33,9 @@ index efdc01b17c5c..1782b0c8a743 100644 #define TU_SIZE_MASK (0x3f << 25) #define DATA_LINK_M_N_MASK (0xffffff) -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 759034dfe617..4882893a9fbd 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -5829,6 +5829,22 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc, +@@ -5829,6 +5829,22 @@ static int ironlake_crtc_mode_set(struct return ret; } @@ -62,7 +58,7 @@ index 759034dfe617..4882893a9fbd 100644 static bool ironlake_get_pipe_config(struct intel_crtc *crtc, struct intel_crtc_config *pipe_config) { -@@ -5846,6 +5862,8 @@ static bool ironlake_get_pipe_config(struct intel_crtc *crtc, +@@ -5846,6 +5862,8 @@ static bool ironlake_get_pipe_config(str tmp = I915_READ(FDI_RX_CTL(crtc->pipe)); pipe_config->fdi_lanes = ((FDI_DP_PORT_WIDTH_MASK & tmp) >> FDI_DP_PORT_WIDTH_SHIFT) + 1; @@ -71,7 +67,7 @@ index 759034dfe617..4882893a9fbd 100644 } return true; -@@ -5991,6 +6009,8 @@ static bool haswell_get_pipe_config(struct intel_crtc *crtc, +@@ -5991,6 +6009,8 @@ static bool haswell_get_pipe_config(stru tmp = I915_READ(FDI_RX_CTL(PIPE_A)); pipe_config->fdi_lanes = ((FDI_DP_PORT_WIDTH_MASK & tmp) >> FDI_DP_PORT_WIDTH_SHIFT) + 1; @@ -80,7 +76,7 @@ index 759034dfe617..4882893a9fbd 100644 } return true; -@@ -7976,6 +7996,11 @@ intel_pipe_config_compare(struct intel_crtc_config *current_config, +@@ -7976,6 +7996,11 @@ intel_pipe_config_compare(struct intel_c PIPE_CONF_CHECK_I(has_pch_encoder); PIPE_CONF_CHECK_I(fdi_lanes); @@ -92,6 +88,3 @@ index 759034dfe617..4882893a9fbd 100644 #undef PIPE_CONF_CHECK_I --- -1.8.5.rc3 - diff --git a/patches.baytrail/0089-drm-i915-hw-state-readout-support-for-pipe-timings.patch b/patches.baytrail/0089-drm-i915-hw-state-readout-support-for-pipe-timings.patch index 60cff1eb2d3fb..257e0edc4d382 100644 --- a/patches.baytrail/0089-drm-i915-hw-state-readout-support-for-pipe-timings.patch +++ b/patches.baytrail/0089-drm-i915-hw-state-readout-support-for-pipe-timings.patch @@ -25,15 +25,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 1bd1bd806037af04dd1d7bdd39b2b04090c10d2c) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 1 + - drivers/gpu/drm/i915/intel_display.c | 75 ++++++++++++++++++++++++++++++++++++ + drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_display.c | 75 +++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 1782b0c8a743..ded019718295 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -2844,6 +2844,7 @@ +@@ -2848,6 +2848,7 @@ #define PIPECONF_INTERLACED_ILK (3 << 21) #define PIPECONF_INTERLACED_DBL_ILK (4 << 21) /* ilk/snb only */ #define PIPECONF_PFIT_PF_INTERLACED_DBL_ILK (5 << 21) /* ilk/snb only */ @@ -41,11 +39,9 @@ index 1782b0c8a743..ded019718295 100644 #define PIPECONF_CXSR_DOWNCLOCK (1<<16) #define PIPECONF_COLOR_RANGE_SELECT (1 << 13) #define PIPECONF_BPC_MASK (0x7 << 5) -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 4882893a9fbd..f1b6ca3fe82a 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -4728,6 +4728,45 @@ static void intel_set_pipe_timings(struct intel_crtc *intel_crtc, +@@ -4728,6 +4728,45 @@ static void intel_set_pipe_timings(struc ((mode->hdisplay - 1) << 16) | (mode->vdisplay - 1)); } @@ -91,7 +87,7 @@ index 4882893a9fbd..f1b6ca3fe82a 100644 static void i9xx_set_pipeconf(struct intel_crtc *intel_crtc) { struct drm_device *dev = intel_crtc->base.dev; -@@ -4949,6 +4988,8 @@ static bool i9xx_get_pipe_config(struct intel_crtc *crtc, +@@ -4949,6 +4988,8 @@ static bool i9xx_get_pipe_config(struct if (!(tmp & PIPECONF_ENABLE)) return false; @@ -100,7 +96,7 @@ index 4882893a9fbd..f1b6ca3fe82a 100644 return true; } -@@ -5866,6 +5907,8 @@ static bool ironlake_get_pipe_config(struct intel_crtc *crtc, +@@ -5866,6 +5907,8 @@ static bool ironlake_get_pipe_config(str ironlake_get_fdi_m_n_config(crtc, pipe_config); } @@ -109,7 +105,7 @@ index 4882893a9fbd..f1b6ca3fe82a 100644 return true; } -@@ -6013,6 +6056,8 @@ static bool haswell_get_pipe_config(struct intel_crtc *crtc, +@@ -6013,6 +6056,8 @@ static bool haswell_get_pipe_config(stru ironlake_get_fdi_m_n_config(crtc, pipe_config); } @@ -118,7 +114,7 @@ index 4882893a9fbd..f1b6ca3fe82a 100644 return true; } -@@ -7994,6 +8039,15 @@ intel_pipe_config_compare(struct intel_crtc_config *current_config, +@@ -7994,6 +8039,15 @@ intel_pipe_config_compare(struct intel_c return false; \ } @@ -134,7 +130,7 @@ index 4882893a9fbd..f1b6ca3fe82a 100644 PIPE_CONF_CHECK_I(has_pch_encoder); PIPE_CONF_CHECK_I(fdi_lanes); PIPE_CONF_CHECK_I(fdi_m_n.gmch_m); -@@ -8002,7 +8056,28 @@ intel_pipe_config_compare(struct intel_crtc_config *current_config, +@@ -8002,7 +8056,28 @@ intel_pipe_config_compare(struct intel_c PIPE_CONF_CHECK_I(fdi_m_n.link_n); PIPE_CONF_CHECK_I(fdi_m_n.tu); @@ -163,6 +159,3 @@ index 4882893a9fbd..f1b6ca3fe82a 100644 return true; } --- -1.8.5.rc3 - diff --git a/patches.baytrail/0105-drm-i915-simplify-DP-DDI-port-width-macros.patch b/patches.baytrail/0105-drm-i915-simplify-DP-DDI-port-width-macros.patch index 9258ba8994b3d..fc323d6c45bf1 100644 --- a/patches.baytrail/0105-drm-i915-simplify-DP-DDI-port-width-macros.patch +++ b/patches.baytrail/0105-drm-i915-simplify-DP-DDI-port-width-macros.patch @@ -19,16 +19,14 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 17aa6be9579eb204b426eeae146a43bf3dd05078) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 11 ++--------- - drivers/gpu/drm/i915/intel_ddi.c | 34 ++-------------------------------- - drivers/gpu/drm/i915/intel_dp.c | 12 +----------- + drivers/gpu/drm/i915/i915_reg.h | 11 ++--------- + drivers/gpu/drm/i915/intel_ddi.c | 34 ++-------------------------------- + drivers/gpu/drm/i915/intel_dp.c | 12 +----------- 3 files changed, 5 insertions(+), 52 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index ded019718295..fe029b6f70bf 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -2668,9 +2668,7 @@ +@@ -2672,9 +2672,7 @@ #define DP_PRE_EMPHASIS_SHIFT 22 /* How many wires to use. I guess 3 was too hard */ @@ -39,7 +37,7 @@ index ded019718295..fe029b6f70bf 100644 #define DP_PORT_WIDTH_MASK (7 << 19) /* Mystic DPCD version 1.1 special mode */ -@@ -4755,9 +4753,6 @@ +@@ -4759,9 +4757,6 @@ #define TRANS_DDI_EDP_INPUT_B_ONOFF (5<<12) #define TRANS_DDI_EDP_INPUT_C_ONOFF (6<<12) #define TRANS_DDI_BFI_ENABLE (1<<4) @@ -49,7 +47,7 @@ index ded019718295..fe029b6f70bf 100644 /* DisplayPort Transport Control */ #define DP_TP_CTL_A 0x64040 -@@ -4801,9 +4796,7 @@ +@@ -4805,9 +4800,7 @@ #define DDI_BUF_PORT_REVERSAL (1<<16) #define DDI_BUF_IS_IDLE (1<<7) #define DDI_A_4_LANES (1<<4) @@ -60,11 +58,9 @@ index ded019718295..fe029b6f70bf 100644 #define DDI_INIT_DISPLAY_DETECTED (1<<0) /* DDI Buffer Translations */ -diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c -index 2a84a5edbf45..832401312630 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c -@@ -687,22 +687,7 @@ static void intel_ddi_mode_set(struct drm_encoder *encoder, +@@ -687,22 +687,7 @@ static void intel_ddi_mode_set(struct dr intel_dp->DP = intel_dig_port->saved_port_bits | DDI_BUF_CTL_ENABLE | DDI_BUF_EMP_400MV_0DB_HSW; @@ -88,7 +84,7 @@ index 2a84a5edbf45..832401312630 100644 if (intel_dp->has_audio) { DRM_DEBUG_DRIVER("DP audio on pipe %c on DDI\n", -@@ -1031,22 +1016,7 @@ void intel_ddi_enable_transcoder_func(struct drm_crtc *crtc) +@@ -1031,22 +1016,7 @@ void intel_ddi_enable_transcoder_func(st temp |= TRANS_DDI_MODE_SELECT_DP_SST; @@ -112,11 +108,9 @@ index 2a84a5edbf45..832401312630 100644 } else { WARN(1, "Invalid encoder type %d for pipe %c\n", intel_encoder->type, pipe_name(pipe)); -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 98c871d1084c..f0159cc5159a 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -901,18 +901,8 @@ intel_dp_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, +@@ -901,18 +901,8 @@ intel_dp_mode_set(struct drm_encoder *en /* Handle DP bits in common between all three register formats */ intel_dp->DP |= DP_VOLTAGE_0_4 | DP_PRE_EMPHASIS_0; @@ -136,6 +130,3 @@ index 98c871d1084c..f0159cc5159a 100644 if (intel_dp->has_audio) { DRM_DEBUG_DRIVER("Enabling DP audio on pipe %c\n", pipe_name(intel_crtc->pipe)); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0112-drm-i915-s-TRANSCONF-PCH_TRANSCONF.patch b/patches.baytrail/0112-drm-i915-s-TRANSCONF-PCH_TRANSCONF.patch index 3a1734c6fc082..6e824555d4970 100644 --- a/patches.baytrail/0112-drm-i915-s-TRANSCONF-PCH_TRANSCONF.patch +++ b/patches.baytrail/0112-drm-i915-s-TRANSCONF-PCH_TRANSCONF.patch @@ -16,16 +16,14 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit ab9412ba06484cdfd82bdb748689024efe2221fe) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 7 ++++--- - drivers/gpu/drm/i915/i915_ums.c | 8 ++++---- - drivers/gpu/drm/i915/intel_display.c | 30 +++++++++++++++--------------- + drivers/gpu/drm/i915/i915_reg.h | 7 ++++--- + drivers/gpu/drm/i915/i915_ums.c | 8 ++++---- + drivers/gpu/drm/i915/intel_display.c | 30 +++++++++++++++--------------- 3 files changed, 23 insertions(+), 22 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index fe029b6f70bf..1ddd724094f5 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4060,9 +4060,10 @@ +@@ -4064,9 +4064,10 @@ #define TRANSDPLINK_M2(pipe) _PIPE(pipe, _TRANSA_DP_LINK_M2, _TRANSB_DP_LINK_M2) #define TRANSDPLINK_N2(pipe) _PIPE(pipe, _TRANSA_DP_LINK_N2, _TRANSB_DP_LINK_N2) @@ -39,11 +37,9 @@ index fe029b6f70bf..1ddd724094f5 100644 #define TRANS_DISABLE (0<<31) #define TRANS_ENABLE (1<<31) #define TRANS_STATE_MASK (1<<30) -diff --git a/drivers/gpu/drm/i915/i915_ums.c b/drivers/gpu/drm/i915/i915_ums.c -index 985a09716237..75960dd81b5a 100644 --- a/drivers/gpu/drm/i915/i915_ums.c +++ b/drivers/gpu/drm/i915/i915_ums.c -@@ -148,7 +148,7 @@ void i915_save_display_reg(struct drm_device *dev) +@@ -148,7 +148,7 @@ void i915_save_display_reg(struct drm_de dev_priv->regfile.savePFA_WIN_SZ = I915_READ(_PFA_WIN_SZ); dev_priv->regfile.savePFA_WIN_POS = I915_READ(_PFA_WIN_POS); @@ -52,7 +48,7 @@ index 985a09716237..75960dd81b5a 100644 dev_priv->regfile.saveTRANS_HTOTAL_A = I915_READ(_TRANS_HTOTAL_A); dev_priv->regfile.saveTRANS_HBLANK_A = I915_READ(_TRANS_HBLANK_A); dev_priv->regfile.saveTRANS_HSYNC_A = I915_READ(_TRANS_HSYNC_A); -@@ -205,7 +205,7 @@ void i915_save_display_reg(struct drm_device *dev) +@@ -205,7 +205,7 @@ void i915_save_display_reg(struct drm_de dev_priv->regfile.savePFB_WIN_SZ = I915_READ(_PFB_WIN_SZ); dev_priv->regfile.savePFB_WIN_POS = I915_READ(_PFB_WIN_POS); @@ -61,7 +57,7 @@ index 985a09716237..75960dd81b5a 100644 dev_priv->regfile.saveTRANS_HTOTAL_B = I915_READ(_TRANS_HTOTAL_B); dev_priv->regfile.saveTRANS_HBLANK_B = I915_READ(_TRANS_HBLANK_B); dev_priv->regfile.saveTRANS_HSYNC_B = I915_READ(_TRANS_HSYNC_B); -@@ -379,7 +379,7 @@ void i915_restore_display_reg(struct drm_device *dev) +@@ -379,7 +379,7 @@ void i915_restore_display_reg(struct drm I915_WRITE(_PFA_WIN_SZ, dev_priv->regfile.savePFA_WIN_SZ); I915_WRITE(_PFA_WIN_POS, dev_priv->regfile.savePFA_WIN_POS); @@ -70,7 +66,7 @@ index 985a09716237..75960dd81b5a 100644 I915_WRITE(_TRANS_HTOTAL_A, dev_priv->regfile.saveTRANS_HTOTAL_A); I915_WRITE(_TRANS_HBLANK_A, dev_priv->regfile.saveTRANS_HBLANK_A); I915_WRITE(_TRANS_HSYNC_A, dev_priv->regfile.saveTRANS_HSYNC_A); -@@ -448,7 +448,7 @@ void i915_restore_display_reg(struct drm_device *dev) +@@ -448,7 +448,7 @@ void i915_restore_display_reg(struct drm I915_WRITE(_PFB_WIN_SZ, dev_priv->regfile.savePFB_WIN_SZ); I915_WRITE(_PFB_WIN_POS, dev_priv->regfile.savePFB_WIN_POS); @@ -79,11 +75,9 @@ index 985a09716237..75960dd81b5a 100644 I915_WRITE(_TRANS_HTOTAL_B, dev_priv->regfile.saveTRANS_HTOTAL_B); I915_WRITE(_TRANS_HBLANK_B, dev_priv->regfile.saveTRANS_HBLANK_B); I915_WRITE(_TRANS_HSYNC_B, dev_priv->regfile.saveTRANS_HSYNC_B); -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index dbef6715aa86..a9386819ed19 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -1206,14 +1206,14 @@ static void assert_pch_refclk_enabled(struct drm_i915_private *dev_priv) +@@ -1206,14 +1206,14 @@ static void assert_pch_refclk_enabled(st WARN(!enabled, "PCH refclk assertion failure, should be active but is disabled\n"); } @@ -101,7 +95,7 @@ index dbef6715aa86..a9386819ed19 100644 val = I915_READ(reg); enabled = !!(val & TRANS_ENABLE); WARN(enabled, -@@ -1565,7 +1565,7 @@ static void intel_disable_pch_pll(struct intel_crtc *intel_crtc) +@@ -1565,7 +1565,7 @@ static void intel_disable_pch_pll(struct DRM_DEBUG_KMS("disabling PCH PLL %x\n", pll->pll_reg); /* Make sure transcoder isn't still depending on us */ @@ -110,7 +104,7 @@ index dbef6715aa86..a9386819ed19 100644 reg = pll->pll_reg; val = I915_READ(reg); -@@ -1605,7 +1605,7 @@ static void ironlake_enable_pch_transcoder(struct drm_i915_private *dev_priv, +@@ -1605,7 +1605,7 @@ static void ironlake_enable_pch_transcod I915_WRITE(reg, val); } @@ -119,7 +113,7 @@ index dbef6715aa86..a9386819ed19 100644 val = I915_READ(reg); pipeconf_val = I915_READ(PIPECONF(pipe)); -@@ -1659,8 +1659,8 @@ static void lpt_enable_pch_transcoder(struct drm_i915_private *dev_priv, +@@ -1659,8 +1659,8 @@ static void lpt_enable_pch_transcoder(st else val |= TRANS_PROGRESSIVE; @@ -130,7 +124,7 @@ index dbef6715aa86..a9386819ed19 100644 DRM_ERROR("Failed to enable PCH transcoder\n"); } -@@ -1677,7 +1677,7 @@ static void ironlake_disable_pch_transcoder(struct drm_i915_private *dev_priv, +@@ -1677,7 +1677,7 @@ static void ironlake_disable_pch_transco /* Ports must be off as well */ assert_pch_ports_disabled(dev_priv, pipe); @@ -139,7 +133,7 @@ index dbef6715aa86..a9386819ed19 100644 val = I915_READ(reg); val &= ~TRANS_ENABLE; I915_WRITE(reg, val); -@@ -1698,11 +1698,11 @@ static void lpt_disable_pch_transcoder(struct drm_i915_private *dev_priv) +@@ -1698,11 +1698,11 @@ static void lpt_disable_pch_transcoder(s { u32 val; @@ -154,7 +148,7 @@ index dbef6715aa86..a9386819ed19 100644 DRM_ERROR("Failed to disable PCH transcoder\n"); /* Workaround: clear timing override bit. */ -@@ -3011,7 +3011,7 @@ static void ironlake_pch_enable(struct drm_crtc *crtc) +@@ -3011,7 +3011,7 @@ static void ironlake_pch_enable(struct d int pipe = intel_crtc->pipe; u32 reg, temp; @@ -163,7 +157,7 @@ index dbef6715aa86..a9386819ed19 100644 /* Write the TU size bits before fdi link training, so that error * detection works. */ -@@ -3115,7 +3115,7 @@ static void lpt_pch_enable(struct drm_crtc *crtc) +@@ -3115,7 +3115,7 @@ static void lpt_pch_enable(struct drm_cr struct intel_crtc *intel_crtc = to_intel_crtc(crtc); enum transcoder cpu_transcoder = intel_crtc->config.cpu_transcoder; @@ -172,7 +166,7 @@ index dbef6715aa86..a9386819ed19 100644 lpt_program_iclkip(crtc); -@@ -5906,7 +5906,7 @@ static bool ironlake_get_pipe_config(struct intel_crtc *crtc, +@@ -5906,7 +5906,7 @@ static bool ironlake_get_pipe_config(str if (!(tmp & PIPECONF_ENABLE)) return false; @@ -181,7 +175,7 @@ index dbef6715aa86..a9386819ed19 100644 pipe_config->has_pch_encoder = true; tmp = I915_READ(FDI_RX_CTL(crtc->pipe)); -@@ -6054,7 +6054,7 @@ static bool haswell_get_pipe_config(struct intel_crtc *crtc, +@@ -6054,7 +6054,7 @@ static bool haswell_get_pipe_config(stru */ tmp = I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder)); if ((tmp & TRANS_DDI_PORT_MASK) == TRANS_DDI_SELECT_PORT(PORT_E) && @@ -190,6 +184,3 @@ index dbef6715aa86..a9386819ed19 100644 pipe_config->has_pch_encoder = true; tmp = I915_READ(FDI_RX_CTL(PIPE_A)); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0113-drm-i915-PCH_-prefix-for-transcoder-timings.patch b/patches.baytrail/0113-drm-i915-PCH_-prefix-for-transcoder-timings.patch index 5bd3d5005b7dd..9a4649e23a900 100644 --- a/patches.baytrail/0113-drm-i915-PCH_-prefix-for-transcoder-timings.patch +++ b/patches.baytrail/0113-drm-i915-PCH_-prefix-for-transcoder-timings.patch @@ -22,16 +22,14 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 275f01b2694a52d13c32358d17d594ec9aba55e3) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 70 ++++++++++++++++++------------------ - drivers/gpu/drm/i915/i915_ums.c | 48 ++++++++++++------------- - drivers/gpu/drm/i915/intel_display.c | 42 +++++++++++++--------- + drivers/gpu/drm/i915/i915_reg.h | 70 +++++++++++++++++------------------ + drivers/gpu/drm/i915/i915_ums.c | 48 ++++++++++++------------ + drivers/gpu/drm/i915/intel_display.c | 42 +++++++++++++-------- 3 files changed, 85 insertions(+), 75 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 1ddd724094f5..b8ac1810b753 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -3929,25 +3929,25 @@ +@@ -3933,25 +3933,25 @@ /* transcoder */ @@ -76,7 +74,7 @@ index 1ddd724094f5..b8ac1810b753 100644 #define _TRANSA_DATA_M1 0xe0030 #define _TRANSA_DATA_N1 0xe0034 -@@ -4025,22 +4025,22 @@ +@@ -4029,22 +4029,22 @@ #define HSW_TVIDEO_DIP_VSC_DATA(trans) \ _TRANSCODER(trans, HSW_VIDEO_DIP_VSC_DATA_A, HSW_VIDEO_DIP_VSC_DATA_B) @@ -115,11 +113,9 @@ index 1ddd724094f5..b8ac1810b753 100644 #define _TRANSB_DATA_M1 0xe1030 #define _TRANSB_DATA_N1 0xe1034 -diff --git a/drivers/gpu/drm/i915/i915_ums.c b/drivers/gpu/drm/i915/i915_ums.c -index 75960dd81b5a..4168d2b6b4f1 100644 --- a/drivers/gpu/drm/i915/i915_ums.c +++ b/drivers/gpu/drm/i915/i915_ums.c -@@ -149,12 +149,12 @@ void i915_save_display_reg(struct drm_device *dev) +@@ -149,12 +149,12 @@ void i915_save_display_reg(struct drm_de dev_priv->regfile.savePFA_WIN_POS = I915_READ(_PFA_WIN_POS); dev_priv->regfile.saveTRANSACONF = I915_READ(_PCH_TRANSACONF); @@ -138,7 +134,7 @@ index 75960dd81b5a..4168d2b6b4f1 100644 } dev_priv->regfile.saveDSPACNTR = I915_READ(_DSPACNTR); -@@ -206,12 +206,12 @@ void i915_save_display_reg(struct drm_device *dev) +@@ -206,12 +206,12 @@ void i915_save_display_reg(struct drm_de dev_priv->regfile.savePFB_WIN_POS = I915_READ(_PFB_WIN_POS); dev_priv->regfile.saveTRANSBCONF = I915_READ(_PCH_TRANSBCONF); @@ -157,7 +153,7 @@ index 75960dd81b5a..4168d2b6b4f1 100644 } dev_priv->regfile.saveDSPBCNTR = I915_READ(_DSPBCNTR); -@@ -380,12 +380,12 @@ void i915_restore_display_reg(struct drm_device *dev) +@@ -380,12 +380,12 @@ void i915_restore_display_reg(struct drm I915_WRITE(_PFA_WIN_POS, dev_priv->regfile.savePFA_WIN_POS); I915_WRITE(_PCH_TRANSACONF, dev_priv->regfile.saveTRANSACONF); @@ -176,7 +172,7 @@ index 75960dd81b5a..4168d2b6b4f1 100644 } /* Restore plane info */ -@@ -449,12 +449,12 @@ void i915_restore_display_reg(struct drm_device *dev) +@@ -449,12 +449,12 @@ void i915_restore_display_reg(struct drm I915_WRITE(_PFB_WIN_POS, dev_priv->regfile.savePFB_WIN_POS); I915_WRITE(_PCH_TRANSBCONF, dev_priv->regfile.saveTRANSBCONF); @@ -195,11 +191,9 @@ index 75960dd81b5a..4168d2b6b4f1 100644 } /* Restore plane info */ -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index a9386819ed19..e051ca86248e 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -2995,6 +2995,30 @@ static void lpt_program_iclkip(struct drm_crtc *crtc) +@@ -2995,6 +2995,30 @@ static void lpt_program_iclkip(struct dr mutex_unlock(&dev_priv->dpio_lock); } @@ -230,7 +224,7 @@ index a9386819ed19..e051ca86248e 100644 /* * Enable PCH resources required for PCH ports: * - PCH PLLs -@@ -3058,14 +3082,7 @@ static void ironlake_pch_enable(struct drm_crtc *crtc) +@@ -3058,14 +3082,7 @@ static void ironlake_pch_enable(struct d /* set transcoder timing, panel must allow it */ assert_panel_unlocked(dev_priv, pipe); @@ -246,7 +240,7 @@ index a9386819ed19..e051ca86248e 100644 intel_fdi_normal_train(crtc); -@@ -3120,14 +3137,7 @@ static void lpt_pch_enable(struct drm_crtc *crtc) +@@ -3120,14 +3137,7 @@ static void lpt_pch_enable(struct drm_cr lpt_program_iclkip(crtc); /* Set transcoder timing. */ @@ -262,6 +256,3 @@ index a9386819ed19..e051ca86248e 100644 lpt_enable_pch_transcoder(dev_priv, cpu_transcoder); } --- -1.8.5.rc3 - diff --git a/patches.baytrail/0115-drm-i915-Apply-OCD-to-data-link-m-n-register-defines.patch b/patches.baytrail/0115-drm-i915-Apply-OCD-to-data-link-m-n-register-defines.patch index 613c91c814dd7..74542e26f83fe 100644 --- a/patches.baytrail/0115-drm-i915-Apply-OCD-to-data-link-m-n-register-defines.patch +++ b/patches.baytrail/0115-drm-i915-Apply-OCD-to-data-link-m-n-register-defines.patch @@ -19,16 +19,14 @@ Conflicts: drivers/gpu/drm/i915/i915_reg.h Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 77 +++++++++++++++++++----------------- - drivers/gpu/drm/i915/i915_ums.c | 32 +++++++-------- - drivers/gpu/drm/i915/intel_display.c | 16 ++++---- - 3 files changed, 64 insertions(+), 61 deletions(-) + drivers/gpu/drm/i915/i915_reg.h | 81 ++++++++++++++++++----------------- + drivers/gpu/drm/i915/i915_ums.c | 32 ++++++------- + drivers/gpu/drm/i915/intel_display.c | 16 +++--- + 3 files changed, 66 insertions(+), 63 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index b8ac1810b753..325534eb7fd2 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -2772,8 +2772,8 @@ +@@ -2776,8 +2776,8 @@ * which is after the LUTs, so we want the bytes for our color format. * For our current usage, this is always 3, one byte for R, G and B. */ @@ -39,7 +37,7 @@ index b8ac1810b753..325534eb7fd2 100644 /* Transfer unit size for display port - 1, default is 0x3f (for TU size 64) */ #define TU_SIZE(x) (((x)-1) << 25) /* default size 64 */ -@@ -2783,8 +2783,9 @@ +@@ -2787,8 +2787,9 @@ #define DATA_LINK_M_N_MASK (0xffffff) #define DATA_LINK_N_MAX (0x800000) @@ -51,26 +49,28 @@ index b8ac1810b753..325534eb7fd2 100644 /* * Computing Link M and N values for the Display Port link -@@ -2797,16 +2798,18 @@ +@@ -2801,16 +2802,18 @@ * Attributes and VB-ID. */ -#define _PIPEA_DP_LINK_M 0x70060 -#define _PIPEB_DP_LINK_M 0x71060 -+#define _PIPEA_LINK_M_G4X 0x70060 -+#define _PIPEB_LINK_M_G4X 0x71060 -+#define PIPEA_DP_LINK_M_MASK (0xffffff) - +- -#define _PIPEA_DP_LINK_N 0x70064 -#define _PIPEB_DP_LINK_N 0x71064 -+#define _PIPEA_LINK_N_G4X 0x70064 -+#define _PIPEB_LINK_N_G4X 0x71064 -+#define PIPEA_DP_LINK_N_MASK (0xffffff) - +- -#define PIPE_GMCH_DATA_M(pipe) _PIPE(pipe, _PIPEA_GMCH_DATA_M, _PIPEB_GMCH_DATA_M) -#define PIPE_GMCH_DATA_N(pipe) _PIPE(pipe, _PIPEA_GMCH_DATA_N, _PIPEB_GMCH_DATA_N) -#define PIPE_DP_LINK_M(pipe) _PIPE(pipe, _PIPEA_DP_LINK_M, _PIPEB_DP_LINK_M) -#define PIPE_DP_LINK_N(pipe) _PIPE(pipe, _PIPEA_DP_LINK_N, _PIPEB_DP_LINK_N) ++#define _PIPEA_LINK_M_G4X 0x70060 ++#define _PIPEB_LINK_M_G4X 0x71060 ++#define PIPEA_DP_LINK_M_MASK (0xffffff) ++ ++#define _PIPEA_LINK_N_G4X 0x70064 ++#define _PIPEB_LINK_N_G4X 0x71064 ++#define PIPEA_DP_LINK_N_MASK (0xffffff) ++ +#define PIPE_DATA_M_G4X(pipe) _PIPE(pipe, _PIPEA_DATA_M_G4X, _PIPEB_DATA_M_G4X) +#define PIPE_DATA_N_G4X(pipe) _PIPE(pipe, _PIPEA_DATA_N_G4X, _PIPEB_DATA_N_G4X) +#define PIPE_LINK_M_G4X(pipe) _PIPE(pipe, _PIPEA_LINK_M_G4X, _PIPEB_LINK_M_G4X) @@ -78,7 +78,7 @@ index b8ac1810b753..325534eb7fd2 100644 /* Display & cursor control */ -@@ -3949,14 +3952,14 @@ +@@ -3953,14 +3956,14 @@ #define TRANS_VSYNC_START_SHIFT 0 #define _PCH_TRANS_VSYNCSHIFT_A 0xe0028 @@ -101,7 +101,7 @@ index b8ac1810b753..325534eb7fd2 100644 /* Per-transcoder DIP controls */ -@@ -4042,23 +4045,23 @@ +@@ -4046,23 +4049,23 @@ #define PCH_TRANS_VSYNCSHIFT(pipe) _PIPE(pipe, _PCH_TRANS_VSYNCSHIFT_A, \ _PCH_TRANS_VSYNCSHIFT_B) @@ -142,11 +142,9 @@ index b8ac1810b753..325534eb7fd2 100644 #define _PCH_TRANSACONF 0xf0008 #define _PCH_TRANSBCONF 0xf1008 -diff --git a/drivers/gpu/drm/i915/i915_ums.c b/drivers/gpu/drm/i915/i915_ums.c -index 4168d2b6b4f1..5ef30b2e6bc6 100644 --- a/drivers/gpu/drm/i915/i915_ums.c +++ b/drivers/gpu/drm/i915/i915_ums.c -@@ -259,14 +259,14 @@ void i915_save_display_reg(struct drm_device *dev) +@@ -259,14 +259,14 @@ void i915_save_display_reg(struct drm_de dev_priv->regfile.saveDP_B = I915_READ(DP_B); dev_priv->regfile.saveDP_C = I915_READ(DP_C); dev_priv->regfile.saveDP_D = I915_READ(DP_D); @@ -169,7 +167,7 @@ index 4168d2b6b4f1..5ef30b2e6bc6 100644 } /* FIXME: regfile.save TV & SDVO state */ -@@ -282,14 +282,14 @@ void i915_restore_display_reg(struct drm_device *dev) +@@ -282,14 +282,14 @@ void i915_restore_display_reg(struct drm /* Display port ratios (must be done before clock is set) */ if (SUPPORTS_INTEGRATED_DP(dev)) { @@ -192,11 +190,9 @@ index 4168d2b6b4f1..5ef30b2e6bc6 100644 } /* Fences */ -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 27da171b6411..3915973ca2df 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -4395,10 +4395,10 @@ static void intel_pch_transcoder_set_m_n(struct intel_crtc *crtc, +@@ -4395,10 +4395,10 @@ static void intel_pch_transcoder_set_m_n struct drm_i915_private *dev_priv = dev->dev_private; int pipe = crtc->pipe; @@ -211,7 +207,7 @@ index 27da171b6411..3915973ca2df 100644 } static void intel_cpu_transcoder_set_m_n(struct intel_crtc *crtc, -@@ -4415,10 +4415,10 @@ static void intel_cpu_transcoder_set_m_n(struct intel_crtc *crtc, +@@ -4415,10 +4415,10 @@ static void intel_cpu_transcoder_set_m_n I915_WRITE(PIPE_LINK_M1(transcoder), m_n->link_m); I915_WRITE(PIPE_LINK_N1(transcoder), m_n->link_n); } else { @@ -226,6 +222,3 @@ index 27da171b6411..3915973ca2df 100644 } } --- -1.8.5.rc3 - diff --git a/patches.baytrail/0141-drm-i915-stop-using-is_pch_edp-in-intel_dp_init_conn.patch b/patches.baytrail/0141-drm-i915-stop-using-is_pch_edp-in-intel_dp_init_conn.patch index 7466cc9abeeb9..0d1814d59b736 100644 --- a/patches.baytrail/0141-drm-i915-stop-using-is_pch_edp-in-intel_dp_init_conn.patch +++ b/patches.baytrail/0141-drm-i915-stop-using-is_pch_edp-in-intel_dp_init_conn.patch @@ -17,14 +17,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit f7d24902e197824eee717e4c3f406eb8623e67e0) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_dp.c | 33 ++++++++++++++++++++++----------- + drivers/gpu/drm/i915/intel_dp.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index f0159cc5159a..76c4f114674b 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -3030,24 +3030,35 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, +@@ -3046,24 +3046,35 @@ intel_dp_init_connector(struct intel_dig if (intel_dpd_is_edp(dev)) intel_dp->is_pch_edp = true; @@ -34,13 +32,13 @@ index f0159cc5159a..76c4f114674b 100644 * For X0, DP_C is fixed as eDP. Revisit this as part of VLV eDP cleanup */ - if (IS_VALLEYVIEW(dev) && port == PORT_C) { -- type = DRM_MODE_CONNECTOR_eDP; -- intel_encoder->type = INTEL_OUTPUT_EDP; -- } else if (port == PORT_A || is_pch_edp(intel_dp)) { + switch (port) { + case PORT_A: type = DRM_MODE_CONNECTOR_eDP; - intel_encoder->type = INTEL_OUTPUT_EDP; +- } else if (port == PORT_A || is_pch_edp(intel_dp)) { +- type = DRM_MODE_CONNECTOR_eDP; +- intel_encoder->type = INTEL_OUTPUT_EDP; - } else { - /* The intel_encoder->type value may be INTEL_OUTPUT_UNKNOWN for - * DDI or INTEL_OUTPUT_DISPLAYPORT for the older gens, so don't @@ -71,6 +69,3 @@ index f0159cc5159a..76c4f114674b 100644 drm_connector_init(dev, connector, &intel_dp_connector_funcs, type); drm_connector_helper_add(connector, &intel_dp_connector_helper_funcs); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0143-drm-i915-remove-is_pch_edp-helpers-and-state-variabl.patch b/patches.baytrail/0143-drm-i915-remove-is_pch_edp-helpers-and-state-variabl.patch index 630a917f9f6dd..7d60830917b25 100644 --- a/patches.baytrail/0143-drm-i915-remove-is_pch_edp-helpers-and-state-variabl.patch +++ b/patches.baytrail/0143-drm-i915-remove-is_pch_edp-helpers-and-state-variabl.patch @@ -10,15 +10,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 15e6bf74b660c2e7aecc200ac77eb19eb6628240) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_dp.c | 36 ------------------------------------ - drivers/gpu/drm/i915/intel_drv.h | 2 -- + drivers/gpu/drm/i915/intel_dp.c | 36 ------------------------------------ + drivers/gpu/drm/i915/intel_drv.h | 2 -- 2 files changed, 38 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index e69c84b6838b..a9a2ca201fa8 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -52,19 +52,6 @@ static bool is_edp(struct intel_dp *intel_dp) +@@ -52,19 +52,6 @@ static bool is_edp(struct intel_dp *inte return intel_dig_port->base.type == INTEL_OUTPUT_EDP; } @@ -38,7 +36,7 @@ index e69c84b6838b..a9a2ca201fa8 100644 static struct drm_device *intel_dp_to_dev(struct intel_dp *intel_dp) { struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); -@@ -93,25 +80,6 @@ static struct intel_dp *intel_attached_dp(struct drm_connector *connector) +@@ -93,25 +80,6 @@ static struct intel_dp *intel_attached_d return enc_to_intel_dp(&intel_attached_encoder(connector)->base); } @@ -64,7 +62,7 @@ index e69c84b6838b..a9a2ca201fa8 100644 static void intel_dp_link_down(struct intel_dp *intel_dp); static int -@@ -3031,10 +2999,6 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, +@@ -3047,10 +3015,6 @@ intel_dp_init_connector(struct intel_dig intel_dp->DP = I915_READ(intel_dp->output_reg); intel_dp->attached_connector = intel_connector; @@ -75,8 +73,6 @@ index e69c84b6838b..a9a2ca201fa8 100644 type = DRM_MODE_CONNECTOR_DisplayPort; /* * FIXME : We need to initialize built-in panels before external panels. -diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h -index ba12b5b47257..7744595b07e2 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -451,7 +451,6 @@ struct intel_dp { @@ -87,7 +83,7 @@ index ba12b5b47257..7744595b07e2 100644 uint8_t train_set[4]; int panel_power_up_delay; int panel_power_down_delay; -@@ -566,7 +565,6 @@ extern void ironlake_edp_panel_on(struct intel_dp *intel_dp); +@@ -566,7 +565,6 @@ extern void ironlake_edp_panel_on(struct extern void ironlake_edp_panel_off(struct intel_dp *intel_dp); extern void ironlake_edp_panel_vdd_on(struct intel_dp *intel_dp); extern void ironlake_edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync); @@ -95,6 +91,3 @@ index ba12b5b47257..7744595b07e2 100644 extern int intel_plane_init(struct drm_device *dev, enum pipe pipe, int plane); extern void intel_flush_display_plane(struct drm_i915_private *dev_priv, enum plane plane); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0144-drm-i915-print-DP-init-debug-messages-from-a-single-.patch b/patches.baytrail/0144-drm-i915-print-DP-init-debug-messages-from-a-single-.patch index aa250264b38f8..c4bccb427723f 100644 --- a/patches.baytrail/0144-drm-i915-print-DP-init-debug-messages-from-a-single-.patch +++ b/patches.baytrail/0144-drm-i915-print-DP-init-debug-messages-from-a-single-.patch @@ -8,15 +8,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit e7281eab0bb4a5265593866d6f7acea2812fe0ec) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_display.c | 12 +++--------- - drivers/gpu/drm/i915/intel_dp.c | 4 ++++ + drivers/gpu/drm/i915/intel_display.c | 12 +++--------- + drivers/gpu/drm/i915/intel_dp.c | 4 ++++ 2 files changed, 7 insertions(+), 9 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index b93b2407ab57..66e8ba541084 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -8860,10 +8860,8 @@ static void intel_setup_outputs(struct drm_device *dev) +@@ -8860,10 +8860,8 @@ static void intel_setup_outputs(struct d intel_hdmi_init(dev, GEN4_HDMIB, PORT_B); } @@ -28,7 +26,7 @@ index b93b2407ab57..66e8ba541084 100644 } /* Before G4X SDVOC doesn't have its own detect register */ -@@ -8879,17 +8877,13 @@ static void intel_setup_outputs(struct drm_device *dev) +@@ -8879,17 +8877,13 @@ static void intel_setup_outputs(struct d DRM_DEBUG_KMS("probing HDMI on SDVOC\n"); intel_hdmi_init(dev, GEN4_HDMIC, PORT_C); } @@ -48,11 +46,9 @@ index b93b2407ab57..66e8ba541084 100644 } else if (IS_GEN2(dev)) intel_dvo_init(dev); -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index a9a2ca201fa8..58186ba367d1 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -3028,6 +3028,10 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, +@@ -3044,6 +3044,10 @@ intel_dp_init_connector(struct intel_dig if (type == DRM_MODE_CONNECTOR_eDP) intel_encoder->type = INTEL_OUTPUT_EDP; @@ -63,6 +59,3 @@ index a9a2ca201fa8..58186ba367d1 100644 drm_connector_init(dev, connector, &intel_dp_connector_funcs, type); drm_connector_helper_add(connector, &intel_dp_connector_helper_funcs); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0150-drm-i915-Organize-VBT-stuff-inside-drm_i915_private.patch b/patches.baytrail/0150-drm-i915-Organize-VBT-stuff-inside-drm_i915_private.patch index 1dedd067edbc9..26d011478412d 100644 --- a/patches.baytrail/0150-drm-i915-Organize-VBT-stuff-inside-drm_i915_private.patch +++ b/patches.baytrail/0150-drm-i915-Organize-VBT-stuff-inside-drm_i915_private.patch @@ -32,7 +32,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c -@@ -1752,10 +1752,10 @@ int i915_driver_unload(struct drm_device +@@ -1753,10 +1753,10 @@ int i915_driver_unload(struct drm_device * free the memory space allocated for the child device * config parsed from VBT */ @@ -468,7 +468,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> } for (; bpp >= 6*3; bpp -= 2*3) { -@@ -2795,11 +2795,11 @@ bool intel_dpd_is_edp(struct drm_device +@@ -2811,11 +2811,11 @@ bool intel_dpd_is_edp(struct drm_device struct child_device_config *p_child; int i; @@ -483,7 +483,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> if (p_child->dvo_port == PORT_IDPD && p_child->device_type == DEVICE_TYPE_eDP) -@@ -2877,7 +2877,7 @@ intel_dp_init_panel_power_sequencer(stru +@@ -2893,7 +2893,7 @@ intel_dp_init_panel_power_sequencer(stru DRM_DEBUG_KMS("cur t1_t3 %d t8 %d t9 %d t10 %d t11_t12 %d\n", cur.t1_t3, cur.t8, cur.t9, cur.t10, cur.t11_t12); @@ -492,7 +492,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> /* Upper limits from eDP 1.3 spec. Note that we use the clunky units of * our hw here, which are all in 100usec. */ -@@ -3147,8 +3147,8 @@ intel_dp_init_connector(struct intel_dig +@@ -3163,8 +3163,8 @@ intel_dp_init_connector(struct intel_dig } /* fallback to VBT if available for eDP */ diff --git a/patches.baytrail/0166-i915-Use-arch_phys_wc_-add-del.patch b/patches.baytrail/0166-i915-Use-arch_phys_wc_-add-del.patch index 8ed8881275efa..41659dc458d5b 100644 --- a/patches.baytrail/0166-i915-Use-arch_phys_wc_-add-del.patch +++ b/patches.baytrail/0166-i915-Use-arch_phys_wc_-add-del.patch @@ -65,8 +65,8 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> /* The i915 workqueue is primarily used for batched retirement of * requests (and thus managing bo) once the task has been completed -@@ -1694,12 +1670,7 @@ out_gem_unload: - intel_teardown_mchbar(dev); +@@ -1695,12 +1671,7 @@ out_gem_unload: + pm_qos_remove_request(&dev_priv->pm_qos); destroy_workqueue(dev_priv->wq); out_mtrrfree: - if (dev_priv->mm.gtt_mtrr >= 0) { @@ -79,7 +79,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> io_mapping_free(dev_priv->gtt.mappable); dev_priv->gtt.gtt_remove(dev); out_rmmap: -@@ -1734,12 +1705,7 @@ int i915_driver_unload(struct drm_device +@@ -1735,12 +1706,7 @@ int i915_driver_unload(struct drm_device cancel_delayed_work_sync(&dev_priv->mm.retire_work); io_mapping_free(dev_priv->gtt.mappable); diff --git a/patches.baytrail/0169-drm-i915-add-encoder-get_config-function-v5.patch b/patches.baytrail/0169-drm-i915-add-encoder-get_config-function-v5.patch index d2d52ec2415c9..e7168a57f376c 100644 --- a/patches.baytrail/0169-drm-i915-add-encoder-get_config-function-v5.patch +++ b/patches.baytrail/0169-drm-i915-add-encoder-get_config-function-v5.patch @@ -204,7 +204,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> static void intel_disable_dp(struct intel_encoder *encoder) { struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); -@@ -3204,6 +3226,7 @@ intel_dp_init(struct drm_device *dev, in +@@ -3220,6 +3242,7 @@ intel_dp_init(struct drm_device *dev, in intel_encoder->disable = intel_disable_dp; intel_encoder->post_disable = intel_post_disable_dp; intel_encoder->get_hw_state = intel_dp_get_hw_state; diff --git a/patches.baytrail/0177-drm-i915-set-FORCE_ARB_IDLE_PLANES-workaround.patch b/patches.baytrail/0177-drm-i915-set-FORCE_ARB_IDLE_PLANES-workaround.patch index 9ac18963d6dd6..996086a1cd477 100644 --- a/patches.baytrail/0177-drm-i915-set-FORCE_ARB_IDLE_PLANES-workaround.patch +++ b/patches.baytrail/0177-drm-i915-set-FORCE_ARB_IDLE_PLANES-workaround.patch @@ -28,15 +28,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 90a8864320b2a9f91e5b5d561924a4bb70b90dcc) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 3 +++ - drivers/gpu/drm/i915/intel_pm.c | 11 +++-------- + drivers/gpu/drm/i915/i915_reg.h | 3 +++ + drivers/gpu/drm/i915/intel_pm.c | 11 +++-------- 2 files changed, 6 insertions(+), 8 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 83cc2e5dbd79..669da48ecca8 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -3717,6 +3717,9 @@ +@@ -3721,6 +3721,9 @@ # define CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE (1 << 5) # define CHICKEN3_DGMG_DONE_FIX_DISABLE (1 << 2) @@ -46,11 +44,9 @@ index 83cc2e5dbd79..669da48ecca8 100644 #define DISP_ARB_CTL 0x45000 #define DISP_TILE_SURFACE_SWIZZLING (1<<13) #define DISP_FBC_WM_DIS (1<<15) -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index 42bc0a36caac..f016998ca83c 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -4172,14 +4172,9 @@ static void haswell_init_clock_gating(struct drm_device *dev) +@@ -4172,14 +4172,9 @@ static void haswell_init_clock_gating(st /* WaSwitchSolVfFArbitrationPriority:hsw */ I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL); @@ -68,6 +64,3 @@ index 42bc0a36caac..f016998ca83c 100644 lpt_init_clock_gating(dev); } --- -1.8.5.rc3 - diff --git a/patches.baytrail/0181-drm-i915-Cocci-spatch-memdup.spatch.patch b/patches.baytrail/0181-drm-i915-Cocci-spatch-memdup.spatch.patch index 3d0a1d9dbaff2..9af4e738f39fe 100644 --- a/patches.baytrail/0181-drm-i915-Cocci-spatch-memdup.spatch.patch +++ b/patches.baytrail/0181-drm-i915-Cocci-spatch-memdup.spatch.patch @@ -8,14 +8,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit edbe1581c5f94f7fba39cd9a5b2facd624aab661) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_dp.c | 3 +-- + drivers/gpu/drm/i915/intel_dp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 73b97a1b2143..093138c2f080 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -2531,11 +2531,10 @@ intel_dp_get_edid(struct drm_connector *connector, struct i2c_adapter *adapter) +@@ -2547,11 +2547,10 @@ intel_dp_get_edid(struct drm_connector * return NULL; size = (intel_connector->edid->extensions + 1) * EDID_LENGTH; @@ -28,6 +26,3 @@ index 73b97a1b2143..093138c2f080 100644 return edid; } --- -1.8.5.rc3 - diff --git a/patches.baytrail/0184-drm-i915-refactor-VLV-IOSF-sideband-accessors-to-use.patch b/patches.baytrail/0184-drm-i915-refactor-VLV-IOSF-sideband-accessors-to-use.patch index 62f28978374e7..7b5cbe1ceec44 100644 --- a/patches.baytrail/0184-drm-i915-refactor-VLV-IOSF-sideband-accessors-to-use.patch +++ b/patches.baytrail/0184-drm-i915-refactor-VLV-IOSF-sideband-accessors-to-use.patch @@ -24,12 +24,10 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 5a09ae9fd509d7dded34e0d599e1afa5142c6987) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 93 ++++++++++++++----------------- - drivers/gpu/drm/i915/intel_sideband.c | 102 +++++++++++++++++----------------- + drivers/gpu/drm/i915/i915_reg.h | 93 ++++++++++++++----------------- + drivers/gpu/drm/i915/intel_sideband.c | 102 ++++++++++++++++------------------ 2 files changed, 93 insertions(+), 102 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 669da48ecca8..e29e9b17690c 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -342,27 +342,54 @@ @@ -103,7 +101,7 @@ index 669da48ecca8..e29e9b17690c 100644 #define DPIO_CTL (VLV_DISPLAY_BASE + 0x2110) #define DPIO_MODSEL1 (1<<3) /* if ref clk b == 27 */ #define DPIO_MODSEL0 (1<<2) /* if ref clk a == 27 */ -@@ -4547,40 +4574,6 @@ +@@ -4551,40 +4578,6 @@ #define GEN6_PCODE_FREQ_IA_RATIO_SHIFT 8 #define GEN6_PCODE_FREQ_RING_RATIO_SHIFT 16 @@ -144,8 +142,6 @@ index 669da48ecca8..e29e9b17690c 100644 #define GEN6_GT_CORE_STATUS 0x138060 #define GEN6_CORE_CPD_STATE_MASK (7<<4) #define GEN6_RCn_MASK 7 -diff --git a/drivers/gpu/drm/i915/intel_sideband.c b/drivers/gpu/drm/i915/intel_sideband.c -index 81af8857857d..a7c4b61e9c30 100644 --- a/drivers/gpu/drm/i915/intel_sideband.c +++ b/drivers/gpu/drm/i915/intel_sideband.c @@ -26,42 +26,37 @@ @@ -205,7 +201,7 @@ index 81af8857857d..a7c4b61e9c30 100644 *val = I915_READ(VLV_IOSF_DATA); I915_WRITE(VLV_IOSF_DATA, 0); -@@ -70,57 +65,60 @@ static int vlv_punit_rw(struct drm_i915_private *dev_priv, u32 port, u8 opcode, +@@ -70,57 +65,60 @@ static int vlv_punit_rw(struct drm_i915_ int valleyview_punit_read(struct drm_i915_private *dev_priv, u8 addr, u32 *val) { @@ -299,6 +295,3 @@ index 81af8857857d..a7c4b61e9c30 100644 } /* SBI access */ --- -1.8.5.rc3 - diff --git a/patches.baytrail/0191-drm-i915-track-ring-progression-using-seqnos.patch b/patches.baytrail/0191-drm-i915-track-ring-progression-using-seqnos.patch index 99eb266ee3458..3a6065191a66c 100644 --- a/patches.baytrail/0191-drm-i915-track-ring-progression-using-seqnos.patch +++ b/patches.baytrail/0191-drm-i915-track-ring-progression-using-seqnos.patch @@ -16,14 +16,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 92cab7345131db7af18f630a799ce6b2e8e624c5) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_drv.h | 2 -- - drivers/gpu/drm/i915/i915_irq.c | 30 +++++++++++++----------------- - drivers/gpu/drm/i915/intel_ringbuffer.c | 1 + - drivers/gpu/drm/i915/intel_ringbuffer.h | 6 ++++++ + drivers/gpu/drm/i915/i915_drv.h | 2 -- + drivers/gpu/drm/i915/i915_irq.c | 30 +++++++++++++----------------- + drivers/gpu/drm/i915/intel_ringbuffer.c | 1 + + drivers/gpu/drm/i915/intel_ringbuffer.h | 6 ++++++ 4 files changed, 20 insertions(+), 19 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h -index db0a41cf0d49..16a69b82e865 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -843,8 +843,6 @@ struct i915_gpu_error { @@ -35,11 +33,9 @@ index db0a41cf0d49..16a69b82e865 100644 /* For reset and error_state handling. */ spinlock_t lock; -diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index 3920c26d56ca..ef31d00fbf1e 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -2421,22 +2421,19 @@ void i915_hangcheck_elapsed(unsigned long data) +@@ -2421,22 +2421,19 @@ void i915_hangcheck_elapsed(unsigned lon { struct drm_device *dev = (struct drm_device *)data; drm_i915_private_t *dev_priv = dev->dev_private; @@ -66,7 +62,7 @@ index 3920c26d56ca..ef31d00fbf1e 100644 } /* If all work is done then ACTHD clearly hasn't advanced. */ -@@ -2452,20 +2449,19 @@ void i915_hangcheck_elapsed(unsigned long data) +@@ -2452,20 +2449,19 @@ void i915_hangcheck_elapsed(unsigned lon return; } @@ -96,11 +92,9 @@ index 3920c26d56ca..ef31d00fbf1e 100644 } repeat: -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index d99ff99b07b2..df0b7c7ac166 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -1513,6 +1513,7 @@ void intel_ring_init_seqno(struct intel_ring_buffer *ring, u32 seqno) +@@ -1517,6 +1517,7 @@ void intel_ring_init_seqno(struct intel_ } ring->set_seqno(ring, seqno); @@ -108,8 +102,6 @@ index d99ff99b07b2..df0b7c7ac166 100644 } void intel_ring_advance(struct intel_ring_buffer *ring) -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h -index dac1614a1bca..ef374a892105 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h @@ -37,6 +37,10 @@ struct intel_hw_status_page { @@ -132,6 +124,3 @@ index dac1614a1bca..ef374a892105 100644 void *private; }; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0196-drm-i915-use-drm_mm_takedown.patch b/patches.baytrail/0196-drm-i915-use-drm_mm_takedown.patch index 4a6531de60519..a437000231996 100644 --- a/patches.baytrail/0196-drm-i915-use-drm_mm_takedown.patch +++ b/patches.baytrail/0196-drm-i915-use-drm_mm_takedown.patch @@ -24,7 +24,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> cleanup_irq: drm_irq_uninstall(dev); cleanup_gem_stolen: -@@ -1754,6 +1755,7 @@ int i915_driver_unload(struct drm_device +@@ -1755,6 +1756,7 @@ int i915_driver_unload(struct drm_device i915_free_hws(dev); } diff --git a/patches.baytrail/0199-drm-i915-release-scratch-page-at-module-unload.patch b/patches.baytrail/0199-drm-i915-release-scratch-page-at-module-unload.patch index fe1d00b46e33f..34817fc16e52d 100644 --- a/patches.baytrail/0199-drm-i915-release-scratch-page-at-module-unload.patch +++ b/patches.baytrail/0199-drm-i915-release-scratch-page-at-module-unload.patch @@ -14,7 +14,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c -@@ -1766,6 +1766,8 @@ int i915_driver_unload(struct drm_device +@@ -1767,6 +1767,8 @@ int i915_driver_unload(struct drm_device destroy_workqueue(dev_priv->wq); pm_qos_remove_request(&dev_priv->pm_qos); diff --git a/patches.baytrail/0202-drm-i915-replace-is_cpu_edp-with-a-check-for-port-A.patch b/patches.baytrail/0202-drm-i915-replace-is_cpu_edp-with-a-check-for-port-A.patch index 7f83d54ebec6e..6ab2430aa9cc9 100644 --- a/patches.baytrail/0202-drm-i915-replace-is_cpu_edp-with-a-check-for-port-A.patch +++ b/patches.baytrail/0202-drm-i915-replace-is_cpu_edp-with-a-check-for-port-A.patch @@ -13,14 +13,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit bc7d38a43ab1af4cad1c235c3aa30426b6c7d6c5) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_dp.c | 49 +++++++++++++++++++++++------------------ + drivers/gpu/drm/i915/intel_dp.c | 49 ++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 22 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index e1d39f2c70fe..63fa72d4a4c6 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -696,6 +696,7 @@ intel_dp_compute_config(struct intel_encoder *encoder, +@@ -696,6 +696,7 @@ intel_dp_compute_config(struct intel_enc struct drm_i915_private *dev_priv = dev->dev_private; struct drm_display_mode *adjusted_mode = &pipe_config->adjusted_mode; struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); @@ -28,7 +26,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 struct intel_crtc *intel_crtc = encoder->new_crtc; struct intel_connector *intel_connector = intel_dp->attached_connector; int lane_count, clock; -@@ -705,7 +706,7 @@ intel_dp_compute_config(struct intel_encoder *encoder, +@@ -705,7 +706,7 @@ intel_dp_compute_config(struct intel_enc static int bws[2] = { DP_LINK_BW_1_62, DP_LINK_BW_2_7 }; int target_clock, link_avail, link_clock; @@ -37,7 +35,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 pipe_config->has_pch_encoder = true; pipe_config->has_dp_encoder = true; -@@ -848,6 +849,7 @@ intel_dp_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, +@@ -848,6 +849,7 @@ intel_dp_mode_set(struct drm_encoder *en struct drm_device *dev = encoder->dev; struct drm_i915_private *dev_priv = dev->dev_private; struct intel_dp *intel_dp = enc_to_intel_dp(encoder); @@ -45,7 +43,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 struct drm_crtc *crtc = encoder->crtc; struct intel_crtc *intel_crtc = to_intel_crtc(crtc); -@@ -888,7 +890,7 @@ intel_dp_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, +@@ -888,7 +890,7 @@ intel_dp_mode_set(struct drm_encoder *en /* Split out the IBX/CPU vs CPT settings */ @@ -54,7 +52,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 if (adjusted_mode->flags & DRM_MODE_FLAG_PHSYNC) intel_dp->DP |= DP_SYNC_HS_HIGH; if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC) -@@ -905,7 +907,7 @@ intel_dp_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, +@@ -905,7 +907,7 @@ intel_dp_mode_set(struct drm_encoder *en intel_dp->DP |= DP_PLL_FREQ_160MHZ; else intel_dp->DP |= DP_PLL_FREQ_270MHZ; @@ -63,7 +61,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 if (!HAS_PCH_SPLIT(dev) && !IS_VALLEYVIEW(dev)) intel_dp->DP |= intel_dp->color_range; -@@ -921,7 +923,7 @@ intel_dp_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, +@@ -921,7 +923,7 @@ intel_dp_mode_set(struct drm_encoder *en if (intel_crtc->pipe == 1) intel_dp->DP |= DP_PIPEB_SELECT; @@ -72,7 +70,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 /* don't miss out required setting for eDP */ if (adjusted_mode->clock < 200000) intel_dp->DP |= DP_PLL_FREQ_160MHZ; -@@ -932,7 +934,7 @@ intel_dp_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, +@@ -932,7 +934,7 @@ intel_dp_mode_set(struct drm_encoder *en intel_dp->DP |= DP_LINK_TRAIN_OFF_CPT; } @@ -81,7 +79,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 ironlake_set_pll_edp(crtc, adjusted_mode->clock); } -@@ -1322,6 +1324,7 @@ static bool intel_dp_get_hw_state(struct intel_encoder *encoder, +@@ -1322,6 +1324,7 @@ static bool intel_dp_get_hw_state(struct enum pipe *pipe) { struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); @@ -89,7 +87,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 struct drm_device *dev = encoder->base.dev; struct drm_i915_private *dev_priv = dev->dev_private; u32 tmp = I915_READ(intel_dp->output_reg); -@@ -1329,9 +1332,9 @@ static bool intel_dp_get_hw_state(struct intel_encoder *encoder, +@@ -1329,9 +1332,9 @@ static bool intel_dp_get_hw_state(struct if (!(tmp & DP_PORT_EN)) return false; @@ -101,7 +99,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 *pipe = PORT_TO_PIPE(tmp); } else { u32 trans_sel; -@@ -1451,14 +1454,14 @@ static void intel_enable_dp(struct intel_encoder *encoder) +@@ -1451,14 +1454,14 @@ static void intel_enable_dp(struct intel static void intel_pre_enable_dp(struct intel_encoder *encoder) { struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); @@ -142,7 +140,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 if (HAS_DDI(dev)) { switch (voltage_swing & DP_TRAIN_VOLTAGE_SWING_MASK) { -@@ -1606,7 +1611,7 @@ intel_dp_pre_emphasis_max(struct intel_dp *intel_dp, uint8_t voltage_swing) +@@ -1606,7 +1611,7 @@ intel_dp_pre_emphasis_max(struct intel_d default: return DP_TRAIN_PRE_EMPHASIS_0; } @@ -159,7 +157,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 struct drm_device *dev = intel_dig_port->base.base.dev; uint32_t signal_levels, mask; uint8_t train_set = intel_dp->train_set[0]; -@@ -1903,10 +1909,10 @@ intel_dp_set_signal_levels(struct intel_dp *intel_dp, uint32_t *DP) +@@ -1903,10 +1909,10 @@ intel_dp_set_signal_levels(struct intel_ } else if (IS_VALLEYVIEW(dev)) { signal_levels = intel_vlv_signal_levels(intel_dp); mask = 0; @@ -172,7 +170,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 signal_levels = intel_gen6_edp_signal_levels(train_set); mask = EDP_LINK_TRAIN_VOL_EMP_MASK_SNB; } else { -@@ -1956,8 +1962,7 @@ intel_dp_set_link_train(struct intel_dp *intel_dp, +@@ -1956,8 +1962,7 @@ intel_dp_set_link_train(struct intel_dp } I915_WRITE(DP_TP_CTL(port), temp); @@ -190,7 +188,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 struct drm_device *dev = intel_dig_port->base.base.dev; struct drm_i915_private *dev_priv = dev->dev_private; struct intel_crtc *intel_crtc = -@@ -2237,7 +2243,7 @@ intel_dp_link_down(struct intel_dp *intel_dp) +@@ -2237,7 +2243,7 @@ intel_dp_link_down(struct intel_dp *inte DRM_DEBUG_KMS("\n"); @@ -199,7 +197,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 DP &= ~DP_LINK_TRAIN_MASK_CPT; I915_WRITE(intel_dp->output_reg, DP | DP_LINK_TRAIN_PAT_IDLE_CPT); } else { -@@ -2964,9 +2970,6 @@ intel_dp_init_panel_power_sequencer_registers(struct drm_device *dev, +@@ -2980,9 +2986,6 @@ intel_dp_init_panel_power_sequencer_regi pp_div_reg = PIPEA_PP_DIVISOR; } @@ -209,7 +207,7 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 /* And finally store the new values in the power sequencer. */ pp_on = (seq->t1_t3 << PANEL_POWER_UP_DELAY_SHIFT) | (seq->t8 << PANEL_LIGHT_ON_DELAY_SHIFT); -@@ -2980,8 +2983,10 @@ intel_dp_init_panel_power_sequencer_registers(struct drm_device *dev, +@@ -2996,8 +2999,10 @@ intel_dp_init_panel_power_sequencer_regi /* Haswell doesn't have any port selection bits for the panel * power sequencer any more. */ @@ -222,6 +220,3 @@ index e1d39f2c70fe..63fa72d4a4c6 100644 port_sel = PANEL_POWER_PORT_DP_A; else port_sel = PANEL_POWER_PORT_DP_D; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0212-drm-i915-Comments-for-semaphore-clarification.patch b/patches.baytrail/0212-drm-i915-Comments-for-semaphore-clarification.patch index cda2ca5645e38..878c930cf24fc 100644 --- a/patches.baytrail/0212-drm-i915-Comments-for-semaphore-clarification.patch +++ b/patches.baytrail/0212-drm-i915-Comments-for-semaphore-clarification.patch @@ -20,13 +20,11 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 5586181fce2b2e89a0e281d78ffbdfa103bb0dde) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 12 ++++++------ - drivers/gpu/drm/i915/intel_ringbuffer.c | 18 +++++++++--------- - drivers/gpu/drm/i915/intel_ringbuffer.h | 4 ++-- + drivers/gpu/drm/i915/i915_reg.h | 12 ++++++------ + drivers/gpu/drm/i915/intel_ringbuffer.c | 18 +++++++++--------- + drivers/gpu/drm/i915/intel_ringbuffer.h | 4 ++-- 3 files changed, 17 insertions(+), 17 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index e29e9b17690c..f56c30ef40c8 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -265,12 +265,12 @@ @@ -48,11 +46,9 @@ index e29e9b17690c..f56c30ef40c8 100644 #define MI_SEMAPHORE_SYNC_INVALID (1<<0) /* * 3D instructions used by the kernel -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index 4295400a39ac..ef64bb3e847c 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -1682,9 +1682,9 @@ int intel_init_render_ring_buffer(struct drm_device *dev) +@@ -1686,9 +1686,9 @@ int intel_init_render_ring_buffer(struct ring->get_seqno = gen6_ring_get_seqno; ring->set_seqno = ring_set_seqno; ring->sync_to = gen6_ring_sync; @@ -65,7 +61,7 @@ index 4295400a39ac..ef64bb3e847c 100644 ring->signal_mbox[0] = GEN6_VRSYNC; ring->signal_mbox[1] = GEN6_BRSYNC; } else if (IS_GEN5(dev)) { -@@ -1841,9 +1841,9 @@ int intel_init_bsd_ring_buffer(struct drm_device *dev) +@@ -1845,9 +1845,9 @@ int intel_init_bsd_ring_buffer(struct dr ring->irq_put = gen6_ring_put_irq; ring->dispatch_execbuffer = gen6_ring_dispatch_execbuffer; ring->sync_to = gen6_ring_sync; @@ -78,7 +74,7 @@ index 4295400a39ac..ef64bb3e847c 100644 ring->signal_mbox[0] = GEN6_RVSYNC; ring->signal_mbox[1] = GEN6_BVSYNC; } else { -@@ -1887,9 +1887,9 @@ int intel_init_blt_ring_buffer(struct drm_device *dev) +@@ -1891,9 +1891,9 @@ int intel_init_blt_ring_buffer(struct dr ring->irq_put = gen6_ring_put_irq; ring->dispatch_execbuffer = gen6_ring_dispatch_execbuffer; ring->sync_to = gen6_ring_sync; @@ -91,8 +87,6 @@ index 4295400a39ac..ef64bb3e847c 100644 ring->signal_mbox[0] = GEN6_RBSYNC; ring->signal_mbox[1] = GEN6_VBSYNC; ring->init = init_ring_common; -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h -index ef374a892105..24268fbe6855 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h @@ -105,8 +105,8 @@ struct intel_ring_buffer { @@ -106,6 +100,3 @@ index ef374a892105..24268fbe6855 100644 u32 signal_mbox[2]; /* mboxes this ring signals to */ /** * List of objects currently involved in rendering from the --- -1.8.5.rc3 - diff --git a/patches.baytrail/0213-drm-i915-Semaphore-MBOX-update-generalization.patch b/patches.baytrail/0213-drm-i915-Semaphore-MBOX-update-generalization.patch index 3f8028dfcceef..1ecd1896fb5f4 100644 --- a/patches.baytrail/0213-drm-i915-Semaphore-MBOX-update-generalization.patch +++ b/patches.baytrail/0213-drm-i915-Semaphore-MBOX-update-generalization.patch @@ -21,13 +21,11 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit ad776f8b09d66e0145479fdbde2a710e5892441f) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 1 + - drivers/gpu/drm/i915/intel_ringbuffer.c | 43 ++++++++++++++++++++++----------- - drivers/gpu/drm/i915/intel_ringbuffer.h | 5 +++- + drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_ringbuffer.c | 43 +++++++++++++++++++++----------- + drivers/gpu/drm/i915/intel_ringbuffer.h | 5 ++- 3 files changed, 34 insertions(+), 15 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index f56c30ef40c8..77e201b7bfda 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -593,6 +593,7 @@ @@ -38,8 +36,6 @@ index f56c30ef40c8..77e201b7bfda 100644 #define GEN6_BVSYNC (RING_SYNC_1(BLT_RING_BASE)) #define RING_MAX_IDLE(base) ((base)+0x54) #define RING_HWS_PGA(base) ((base)+0x80) -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index ef64bb3e847c..97555b7d4d0c 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -581,9 +581,16 @@ static void @@ -59,7 +55,7 @@ index ef64bb3e847c..97555b7d4d0c 100644 } /** -@@ -598,19 +605,24 @@ update_mboxes(struct intel_ring_buffer *ring, +@@ -598,19 +605,24 @@ update_mboxes(struct intel_ring_buffer * static int gen6_add_request(struct intel_ring_buffer *ring) { @@ -92,7 +88,7 @@ index ef64bb3e847c..97555b7d4d0c 100644 intel_ring_emit(ring, MI_STORE_DWORD_INDEX); intel_ring_emit(ring, I915_GEM_HWS_INDEX << MI_STORE_DWORD_INDEX_SHIFT); intel_ring_emit(ring, ring->outstanding_lazy_request); -@@ -1685,8 +1697,9 @@ int intel_init_render_ring_buffer(struct drm_device *dev) +@@ -1689,8 +1701,9 @@ int intel_init_render_ring_buffer(struct ring->semaphore_register[RCS] = MI_SEMAPHORE_SYNC_INVALID; ring->semaphore_register[VCS] = MI_SEMAPHORE_SYNC_RV; ring->semaphore_register[BCS] = MI_SEMAPHORE_SYNC_RB; @@ -104,7 +100,7 @@ index ef64bb3e847c..97555b7d4d0c 100644 } else if (IS_GEN5(dev)) { ring->add_request = pc_render_add_request; ring->flush = gen4_render_ring_flush; -@@ -1844,8 +1857,9 @@ int intel_init_bsd_ring_buffer(struct drm_device *dev) +@@ -1848,8 +1861,9 @@ int intel_init_bsd_ring_buffer(struct dr ring->semaphore_register[RCS] = MI_SEMAPHORE_SYNC_VR; ring->semaphore_register[VCS] = MI_SEMAPHORE_SYNC_INVALID; ring->semaphore_register[BCS] = MI_SEMAPHORE_SYNC_VB; @@ -116,7 +112,7 @@ index ef64bb3e847c..97555b7d4d0c 100644 } else { ring->mmio_base = BSD_RING_BASE; ring->flush = bsd_ring_flush; -@@ -1890,8 +1904,9 @@ int intel_init_blt_ring_buffer(struct drm_device *dev) +@@ -1894,8 +1908,9 @@ int intel_init_blt_ring_buffer(struct dr ring->semaphore_register[RCS] = MI_SEMAPHORE_SYNC_BR; ring->semaphore_register[VCS] = MI_SEMAPHORE_SYNC_BV; ring->semaphore_register[BCS] = MI_SEMAPHORE_SYNC_INVALID; @@ -128,8 +124,6 @@ index ef64bb3e847c..97555b7d4d0c 100644 ring->init = init_ring_common; return intel_init_ring_buffer(dev, ring); -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h -index 24268fbe6855..f55d92eb6c2a 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h @@ -105,9 +105,12 @@ struct intel_ring_buffer { @@ -146,6 +140,3 @@ index 24268fbe6855..f55d92eb6c2a 100644 /** * List of objects currently involved in rendering from the * ringbuffer. --- -1.8.5.rc3 - diff --git a/patches.baytrail/0215-drm-i915-Add-VECS-semaphore-bits.patch b/patches.baytrail/0215-drm-i915-Add-VECS-semaphore-bits.patch index 8574c03bda777..dc596e4db5091 100644 --- a/patches.baytrail/0215-drm-i915-Add-VECS-semaphore-bits.patch +++ b/patches.baytrail/0215-drm-i915-Add-VECS-semaphore-bits.patch @@ -19,12 +19,10 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 1950de14fd1b8ea27a411929156c7eccee2ad7c3) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 40 ++++++++++++++++++++++----------- - drivers/gpu/drm/i915/intel_ringbuffer.c | 6 +++++ + drivers/gpu/drm/i915/i915_reg.h | 40 +++++++++++++++++++++----------- + drivers/gpu/drm/i915/intel_ringbuffer.c | 6 ++++ 2 files changed, 33 insertions(+), 13 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 77e201b7bfda..cad62c893fa9 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -265,13 +265,19 @@ @@ -89,11 +87,9 @@ index 77e201b7bfda..cad62c893fa9 100644 #define RING_MAX_IDLE(base) ((base)+0x54) #define RING_HWS_PGA(base) ((base)+0x80) #define RING_HWS_PGA_GEN6(base) ((base)+0x2080) -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index 4f51e8da8dfe..7a716ec8695d 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -1699,9 +1699,11 @@ int intel_init_render_ring_buffer(struct drm_device *dev) +@@ -1703,9 +1703,11 @@ int intel_init_render_ring_buffer(struct ring->semaphore_register[RCS] = MI_SEMAPHORE_SYNC_INVALID; ring->semaphore_register[VCS] = MI_SEMAPHORE_SYNC_RV; ring->semaphore_register[BCS] = MI_SEMAPHORE_SYNC_RB; @@ -105,7 +101,7 @@ index 4f51e8da8dfe..7a716ec8695d 100644 } else if (IS_GEN5(dev)) { ring->add_request = pc_render_add_request; ring->flush = gen4_render_ring_flush; -@@ -1859,9 +1861,11 @@ int intel_init_bsd_ring_buffer(struct drm_device *dev) +@@ -1863,9 +1865,11 @@ int intel_init_bsd_ring_buffer(struct dr ring->semaphore_register[RCS] = MI_SEMAPHORE_SYNC_VR; ring->semaphore_register[VCS] = MI_SEMAPHORE_SYNC_INVALID; ring->semaphore_register[BCS] = MI_SEMAPHORE_SYNC_VB; @@ -117,7 +113,7 @@ index 4f51e8da8dfe..7a716ec8695d 100644 } else { ring->mmio_base = BSD_RING_BASE; ring->flush = bsd_ring_flush; -@@ -1906,9 +1910,11 @@ int intel_init_blt_ring_buffer(struct drm_device *dev) +@@ -1910,9 +1914,11 @@ int intel_init_blt_ring_buffer(struct dr ring->semaphore_register[RCS] = MI_SEMAPHORE_SYNC_BR; ring->semaphore_register[VCS] = MI_SEMAPHORE_SYNC_BV; ring->semaphore_register[BCS] = MI_SEMAPHORE_SYNC_INVALID; @@ -129,6 +125,3 @@ index 4f51e8da8dfe..7a716ec8695d 100644 ring->init = init_ring_common; return intel_init_ring_buffer(dev, ring); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0216-drm-i915-Rename-ring-flush-functions.patch b/patches.baytrail/0216-drm-i915-Rename-ring-flush-functions.patch index 31b58a5fe45f9..f542c7535c290 100644 --- a/patches.baytrail/0216-drm-i915-Rename-ring-flush-functions.patch +++ b/patches.baytrail/0216-drm-i915-Rename-ring-flush-functions.patch @@ -19,14 +19,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit ea251324cac6c1e0402db073e5193f33aedd94f3) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_ringbuffer.c | 12 ++++++------ + drivers/gpu/drm/i915/intel_ringbuffer.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index 7a716ec8695d..40bf9e699599 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -1576,8 +1576,8 @@ static void gen6_bsd_ring_write_tail(struct intel_ring_buffer *ring, +@@ -1580,8 +1580,8 @@ static void gen6_bsd_ring_write_tail(str _MASKED_BIT_DISABLE(GEN6_BSD_SLEEP_MSG_DISABLE)); } @@ -37,7 +35,7 @@ index 7a716ec8695d..40bf9e699599 100644 { uint32_t cmd; int ret; -@@ -1648,8 +1648,8 @@ gen6_ring_dispatch_execbuffer(struct intel_ring_buffer *ring, +@@ -1652,8 +1652,8 @@ gen6_ring_dispatch_execbuffer(struct int /* Blitter support (SandyBridge+) */ @@ -48,7 +46,7 @@ index 7a716ec8695d..40bf9e699599 100644 { uint32_t cmd; int ret; -@@ -1849,7 +1849,7 @@ int intel_init_bsd_ring_buffer(struct drm_device *dev) +@@ -1853,7 +1853,7 @@ int intel_init_bsd_ring_buffer(struct dr /* gen6 bsd needs a special wa for tail updates */ if (IS_GEN6(dev)) ring->write_tail = gen6_bsd_ring_write_tail; @@ -57,7 +55,7 @@ index 7a716ec8695d..40bf9e699599 100644 ring->add_request = gen6_add_request; ring->get_seqno = gen6_ring_get_seqno; ring->set_seqno = ring_set_seqno; -@@ -1898,7 +1898,7 @@ int intel_init_blt_ring_buffer(struct drm_device *dev) +@@ -1902,7 +1902,7 @@ int intel_init_blt_ring_buffer(struct dr ring->mmio_base = BLT_RING_BASE; ring->write_tail = ring_write_tail; @@ -66,6 +64,3 @@ index 7a716ec8695d..40bf9e699599 100644 ring->add_request = gen6_add_request; ring->get_seqno = gen6_ring_get_seqno; ring->set_seqno = ring_set_seqno; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0218-drm-i915-Vebox-ringbuffer-init.patch b/patches.baytrail/0218-drm-i915-Vebox-ringbuffer-init.patch index 3979fa93a613e..bddad734a0124 100644 --- a/patches.baytrail/0218-drm-i915-Vebox-ringbuffer-init.patch +++ b/patches.baytrail/0218-drm-i915-Vebox-ringbuffer-init.patch @@ -12,17 +12,15 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 9a8a2213a778509b724c8fda04be70528a1f7130) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_gem.c | 11 ++++++++++- - drivers/gpu/drm/i915/i915_reg.h | 1 + - drivers/gpu/drm/i915/intel_ringbuffer.c | 35 ++++++++++++++++++++++++++++++++- - drivers/gpu/drm/i915/intel_ringbuffer.h | 1 + + drivers/gpu/drm/i915/i915_gem.c | 11 +++++++++- + drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_ringbuffer.c | 35 +++++++++++++++++++++++++++++++- + drivers/gpu/drm/i915/intel_ringbuffer.h | 1 4 files changed, 46 insertions(+), 2 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c -index 03103eb57e32..25f327cc1127 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c -@@ -4043,12 +4043,21 @@ static int i915_gem_init_rings(struct drm_device *dev) +@@ -4043,12 +4043,21 @@ static int i915_gem_init_rings(struct dr goto cleanup_bsd_ring; } @@ -45,8 +43,6 @@ index 03103eb57e32..25f327cc1127 100644 cleanup_blt_ring: intel_cleanup_ring_buffer(&dev_priv->ring[BCS]); cleanup_bsd_ring: -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index cad62c893fa9..4b25cbafc4f2 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -620,6 +620,7 @@ @@ -57,11 +53,9 @@ index cad62c893fa9..4b25cbafc4f2 100644 #define RING_ACTHD(base) ((base)+0x74) #define RING_NOPID(base) ((base)+0x94) #define RING_IMR(base) ((base)+0xa8) -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index 40bf9e699599..c626a943d9c2 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -915,7 +915,8 @@ void intel_ring_setup_status_page(struct intel_ring_buffer *ring) +@@ -915,7 +915,8 @@ void intel_ring_setup_status_page(struct mmio = BSD_HWS_PGA_GEN7; break; case VECS: @@ -71,10 +65,12 @@ index 40bf9e699599..c626a943d9c2 100644 } } else if (IS_GEN6(ring->dev)) { mmio = RING_HWS_PGA_GEN6(ring->mmio_base); -@@ -1920,6 +1921,38 @@ int intel_init_blt_ring_buffer(struct drm_device *dev) - return intel_init_ring_buffer(dev, ring); - } +@@ -1922,6 +1923,38 @@ int intel_init_blt_ring_buffer(struct dr + ring->init = init_ring_common; + return intel_init_ring_buffer(dev, ring); ++} ++ +int intel_init_vebox_ring_buffer(struct drm_device *dev) +{ + drm_i915_private_t *dev_priv = dev->dev_private; @@ -105,16 +101,12 @@ index 40bf9e699599..c626a943d9c2 100644 + ring->init = init_ring_common; + + return intel_init_ring_buffer(dev, ring); -+} -+ + } + int - intel_ring_flush_all_caches(struct intel_ring_buffer *ring) - { -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h -index 73619cb34631..1c79520c7e45 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h -@@ -234,6 +234,7 @@ int intel_ring_invalidate_all_caches(struct intel_ring_buffer *ring); +@@ -234,6 +234,7 @@ int intel_ring_invalidate_all_caches(str int intel_init_render_ring_buffer(struct drm_device *dev); int intel_init_bsd_ring_buffer(struct drm_device *dev); int intel_init_blt_ring_buffer(struct drm_device *dev); @@ -122,6 +114,3 @@ index 73619cb34631..1c79520c7e45 100644 u32 intel_ring_get_active_head(struct intel_ring_buffer *ring); void intel_ring_setup_status_page(struct intel_ring_buffer *ring); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0220-drm-i915-properly-set-HSW-WM_PIPE-registers.patch b/patches.baytrail/0220-drm-i915-properly-set-HSW-WM_PIPE-registers.patch index dcef57249e38b..26867115d3722 100644 --- a/patches.baytrail/0220-drm-i915-properly-set-HSW-WM_PIPE-registers.patch +++ b/patches.baytrail/0220-drm-i915-properly-set-HSW-WM_PIPE-registers.patch @@ -32,15 +32,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 801bcfffbb0721d7131e930f9a46103e539c43a4) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 3 + - drivers/gpu/drm/i915/intel_pm.c | 342 +++++++++++++++++++++++++++++++++++++--- + drivers/gpu/drm/i915/i915_reg.h | 3 + drivers/gpu/drm/i915/intel_pm.c | 342 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 327 insertions(+), 18 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 4b25cbafc4f2..a2a4bc6dfe57 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4953,6 +4953,9 @@ +@@ -4957,6 +4957,9 @@ #define SFUSE_STRAP_DDIC_DETECTED (1<<1) #define SFUSE_STRAP_DDID_DETECTED (1<<0) @@ -50,11 +48,9 @@ index 4b25cbafc4f2..a2a4bc6dfe57 100644 #define WM_DBG 0x45280 #define WM_DBG_DISALLOW_MULTIPLE_LP (1<<0) #define WM_DBG_DISALLOW_MAXFIFO (1<<1) -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index 6d189cde8591..bbd2a06718b1 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -2072,19 +2072,170 @@ static void ivybridge_update_wm(struct drm_device *dev) +@@ -2072,19 +2072,170 @@ static void ivybridge_update_wm(struct d cursor_wm); } @@ -232,7 +228,7 @@ index 6d189cde8591..bbd2a06718b1 100644 /* The WM are computed with base on how long it takes to fill a single * row at the given clock rate, multiplied by 8. -@@ -2093,29 +2244,184 @@ haswell_update_linetime_wm(struct drm_device *dev, struct drm_crtc *crtc) +@@ -2093,29 +2244,184 @@ haswell_update_linetime_wm(struct drm_de ips_linetime = DIV_ROUND_CLOSEST(mode->htotal * 1000 * 8, intel_ddi_get_cdclk_freq(dev_priv)); @@ -247,18 +243,13 @@ index 6d189cde8591..bbd2a06718b1 100644 +static void hsw_compute_wm_parameters(struct drm_device *dev, + struct hsw_pipe_wm_parameters *params, + uint32_t *wm) - { - struct drm_i915_private *dev_priv = dev->dev_private; - struct drm_crtc *crtc; ++{ ++ struct drm_i915_private *dev_priv = dev->dev_private; ++ struct drm_crtc *crtc; + struct drm_plane *plane; + uint64_t sskpd = I915_READ64(MCH_SSKPD); - enum pipe pipe; - -- /* Disable the LP WMs before changine the linetime registers. This is -- * just a temporary code that will be replaced soon. */ -- I915_WRITE(WM3_LP_ILK, 0); -- I915_WRITE(WM2_LP_ILK, 0); -- I915_WRITE(WM1_LP_ILK, 0); ++ enum pipe pipe; ++ + if ((sskpd >> 56) & 0xFF) + wm[0] = (sskpd >> 56) & 0xFF; + else @@ -305,11 +296,16 @@ index 6d189cde8591..bbd2a06718b1 100644 + struct hsw_pipe_wm_parameters *params, + uint32_t *wm, + struct hsw_wm_values *results) -+{ -+ struct drm_i915_private *dev_priv = dev->dev_private; -+ struct drm_crtc *crtc; -+ enum pipe pipe; -+ + { + struct drm_i915_private *dev_priv = dev->dev_private; + struct drm_crtc *crtc; + enum pipe pipe; + +- /* Disable the LP WMs before changine the linetime registers. This is +- * just a temporary code that will be replaced soon. */ +- I915_WRITE(WM3_LP_ILK, 0); +- I915_WRITE(WM2_LP_ILK, 0); +- I915_WRITE(WM1_LP_ILK, 0); + /* No support for LP WMs yet. */ + results->wm_lp[2] = 0; + results->wm_lp[1] = 0; @@ -327,7 +323,7 @@ index 6d189cde8591..bbd2a06718b1 100644 crtc = dev_priv->pipe_to_crtc_mapping[pipe]; - haswell_update_linetime_wm(dev, crtc); + results->wm_linetime[pipe] = hsw_compute_linetime_wm(dev, crtc); - } ++ } +} + +/* @@ -397,8 +393,9 @@ index 6d189cde8591..bbd2a06718b1 100644 + else + val |= WM_MISC_DATA_PARTITION_5_6; + I915_WRITE(WM_MISC, val); -+ } -+ + } + +- sandybridge_update_wm(dev); + if (previous.wm_lp_spr[0] != results->wm_lp_spr[0]) + I915_WRITE(WM1S_LP_ILK, results->wm_lp_spr[0]); + if (previous.wm_lp_spr[1] != results->wm_lp_spr[1]) @@ -420,14 +417,10 @@ index 6d189cde8591..bbd2a06718b1 100644 + struct hsw_pipe_wm_parameters params[3]; + struct hsw_wm_values results; + uint32_t wm[5]; - -- sandybridge_update_wm(dev); ++ + hsw_compute_wm_parameters(dev, params, wm); + hsw_compute_wm_results(dev, params, wm, &results); + hsw_write_wm_values(dev_priv, &results, HSW_DATA_BUF_PART_1_2); } static void haswell_update_sprite_wm(struct drm_device *dev, int pipe, --- -1.8.5.rc3 - diff --git a/patches.baytrail/0221-drm-i915-properly-set-HSW-WM_LP-watermarks.patch b/patches.baytrail/0221-drm-i915-properly-set-HSW-WM_LP-watermarks.patch index b72c5f47d4e2f..5294d86db3843 100644 --- a/patches.baytrail/0221-drm-i915-properly-set-HSW-WM_LP-watermarks.patch +++ b/patches.baytrail/0221-drm-i915-properly-set-HSW-WM_LP-watermarks.patch @@ -23,15 +23,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit cca32e9ad372172c808b93eebff536459ce37d85) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 4 + - drivers/gpu/drm/i915/intel_pm.c | 179 ++++++++++++++++++++++++++++++++++++---- + drivers/gpu/drm/i915/i915_reg.h | 4 + drivers/gpu/drm/i915/intel_pm.c | 179 +++++++++++++++++++++++++++++++++++----- 2 files changed, 165 insertions(+), 18 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index a2a4bc6dfe57..8fdafd4619ae 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -3106,6 +3106,10 @@ +@@ -3110,6 +3110,10 @@ #define WM3S_LP_IVB 0x45128 #define WM1S_LP_EN (1<<31) @@ -42,11 +40,9 @@ index a2a4bc6dfe57..8fdafd4619ae 100644 /* Memory latency timer register */ #define MLTR_ILK 0x11222 #define MLTR_WM1_SHIFT 0 -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index bbd2a06718b1..bc476bc15916 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -2129,6 +2129,12 @@ static uint32_t hsw_wm_method2(uint32_t pixel_rate, uint32_t pipe_htotal, +@@ -2129,6 +2129,12 @@ static uint32_t hsw_wm_method2(uint32_t return ret; } @@ -126,7 +122,7 @@ index bbd2a06718b1..bc476bc15916 100644 } /* For both WM_PIPE and WM_LP. */ -@@ -2201,13 +2238,60 @@ static uint32_t hsw_compute_cur_wm(struct hsw_pipe_wm_parameters *params, +@@ -2201,13 +2238,60 @@ static uint32_t hsw_compute_cur_wm(struc mem_value); } @@ -188,7 +184,7 @@ index bbd2a06718b1..bc476bc15916 100644 spr_val = hsw_compute_spr_wm(params, mem_value); cur_val = hsw_compute_cur_wm(params, mem_value); -@@ -2250,13 +2334,15 @@ hsw_compute_linetime_wm(struct drm_device *dev, struct drm_crtc *crtc) +@@ -2250,13 +2334,15 @@ hsw_compute_linetime_wm(struct drm_devic static void hsw_compute_wm_parameters(struct drm_device *dev, struct hsw_pipe_wm_parameters *params, @@ -205,7 +201,7 @@ index bbd2a06718b1..bc476bc15916 100644 if ((sskpd >> 56) & 0xFF) wm[0] = (sskpd >> 56) & 0xFF; -@@ -2278,6 +2364,8 @@ static void hsw_compute_wm_parameters(struct drm_device *dev, +@@ -2278,6 +2364,8 @@ static void hsw_compute_wm_parameters(st if (!p->active) continue; @@ -214,14 +210,14 @@ index bbd2a06718b1..bc476bc15916 100644 p->pipe_htotal = intel_crtc->config.adjusted_mode.htotal; p->pixel_rate = hsw_wm_get_pixel_rate(dev, crtc); p->pri_bytes_per_pixel = crtc->fb->bits_per_pixel / 8; -@@ -2297,25 +2385,66 @@ static void hsw_compute_wm_parameters(struct drm_device *dev, +@@ -2297,25 +2385,66 @@ static void hsw_compute_wm_parameters(st p->sprite_enabled = intel_plane->wm.enable; p->spr_bytes_per_pixel = intel_plane->wm.bytes_per_pixel; p->spr_horiz_pixels = intel_plane->wm.horiz_pixels; + + if (p->sprite_enabled) + sprites_enabled++; -+ } + } + + if (pipes_active > 1) { + lp_max_1_2->pri = sprites_enabled ? 128 : 256; @@ -231,7 +227,7 @@ index bbd2a06718b1..bc476bc15916 100644 + lp_max_1_2->pri = sprites_enabled ? 384 : 768; + lp_max_1_2->spr = 384; + lp_max_1_2->cur = 255; - } ++ } + lp_max_1_2->fbc = 15; } @@ -262,10 +258,6 @@ index bbd2a06718b1..bc476bc15916 100644 + break; + } + } -+ -+ memset(results, 0, sizeof(*results)); -+ for (wm_lp = 1; wm_lp <= 3; wm_lp++) { -+ const struct hsw_lp_wm_result *r; - /* No support for LP WMs yet. */ - results->wm_lp[2] = 0; @@ -274,6 +266,10 @@ index bbd2a06718b1..bc476bc15916 100644 - results->wm_lp_spr[2] = 0; - results->wm_lp_spr[1] = 0; - results->wm_lp_spr[0] = 0; ++ memset(results, 0, sizeof(*results)); ++ for (wm_lp = 1; wm_lp <= 3; wm_lp++) { ++ const struct hsw_lp_wm_result *r; ++ + level = (max_level == 4 && wm_lp > 1) ? wm_lp + 1 : wm_lp; + if (level > max_level) + break; @@ -288,7 +284,7 @@ index bbd2a06718b1..bc476bc15916 100644 for_each_pipe(pipe) results->wm_pipe[pipe] = hsw_compute_wm_pipe(dev_priv, wm[0], -@@ -2339,6 +2468,7 @@ static void hsw_write_wm_values(struct drm_i915_private *dev_priv, +@@ -2339,6 +2468,7 @@ static void hsw_write_wm_values(struct d struct hsw_wm_values previous; uint32_t val; enum hsw_data_buf_partitioning prev_partitioning; @@ -296,7 +292,7 @@ index bbd2a06718b1..bc476bc15916 100644 previous.wm_pipe[0] = I915_READ(WM0_PIPEA_ILK); previous.wm_pipe[1] = I915_READ(WM0_PIPEB_ILK); -@@ -2356,6 +2486,8 @@ static void hsw_write_wm_values(struct drm_i915_private *dev_priv, +@@ -2356,6 +2486,8 @@ static void hsw_write_wm_values(struct d prev_partitioning = (I915_READ(WM_MISC) & WM_MISC_DATA_PARTITION_5_6) ? HSW_DATA_BUF_PART_5_6 : HSW_DATA_BUF_PART_1_2; @@ -305,7 +301,7 @@ index bbd2a06718b1..bc476bc15916 100644 if (memcmp(results->wm_pipe, previous.wm_pipe, sizeof(results->wm_pipe)) == 0 && memcmp(results->wm_lp, previous.wm_lp, -@@ -2364,7 +2496,8 @@ static void hsw_write_wm_values(struct drm_i915_private *dev_priv, +@@ -2364,7 +2496,8 @@ static void hsw_write_wm_values(struct d sizeof(results->wm_lp_spr)) == 0 && memcmp(results->wm_linetime, previous.wm_linetime, sizeof(results->wm_linetime)) == 0 && @@ -315,7 +311,7 @@ index bbd2a06718b1..bc476bc15916 100644 return; if (previous.wm_lp[2] != 0) -@@ -2397,6 +2530,15 @@ static void hsw_write_wm_values(struct drm_i915_private *dev_priv, +@@ -2397,6 +2530,15 @@ static void hsw_write_wm_values(struct d I915_WRITE(WM_MISC, val); } @@ -331,7 +327,7 @@ index bbd2a06718b1..bc476bc15916 100644 if (previous.wm_lp_spr[0] != results->wm_lp_spr[0]) I915_WRITE(WM1S_LP_ILK, results->wm_lp_spr[0]); if (previous.wm_lp_spr[1] != results->wm_lp_spr[1]) -@@ -2415,12 +2557,13 @@ static void hsw_write_wm_values(struct drm_i915_private *dev_priv, +@@ -2415,12 +2557,13 @@ static void hsw_write_wm_values(struct d static void haswell_update_wm(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; @@ -347,6 +343,3 @@ index bbd2a06718b1..bc476bc15916 100644 hsw_write_wm_values(dev_priv, &results, HSW_DATA_BUF_PART_1_2); } --- -1.8.5.rc3 - diff --git a/patches.baytrail/0226-drm-i915-make-PM-interrupt-writes-non-destructive.patch b/patches.baytrail/0226-drm-i915-make-PM-interrupt-writes-non-destructive.patch index 07446d483d247..6ed25279fb87c 100644 --- a/patches.baytrail/0226-drm-i915-make-PM-interrupt-writes-non-destructive.patch +++ b/patches.baytrail/0226-drm-i915-make-PM-interrupt-writes-non-destructive.patch @@ -46,16 +46,14 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 4848405cced3b46f4ec7d404b8ed5873171ae10a) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_irq.c | 21 +++++++++++---------- - drivers/gpu/drm/i915/i915_reg.h | 2 +- - drivers/gpu/drm/i915/intel_pm.c | 13 +++++++------ + drivers/gpu/drm/i915/i915_irq.c | 21 +++++++++++---------- + drivers/gpu/drm/i915/i915_reg.h | 2 +- + drivers/gpu/drm/i915/intel_pm.c | 13 +++++++------ 3 files changed, 19 insertions(+), 17 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index c150f90b5770..19734c719ef8 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -691,10 +691,11 @@ static void gen6_pm_rps_work(struct work_struct *work) +@@ -691,10 +691,11 @@ static void gen6_pm_rps_work(struct work pm_iir = dev_priv->rps.pm_iir; dev_priv->rps.pm_iir = 0; pm_imr = I915_READ(GEN6_PMIMR); @@ -69,7 +67,7 @@ index c150f90b5770..19734c719ef8 100644 return; mutex_lock(&dev_priv->rps.hw_lock); -@@ -924,17 +925,17 @@ static void hsw_pm_irq_handler(struct drm_i915_private *dev_priv, +@@ -924,17 +925,17 @@ static void hsw_pm_irq_handler(struct dr unsigned long flags; spin_lock_irqsave(&dev_priv->rps.lock, flags); @@ -90,7 +88,7 @@ index c150f90b5770..19734c719ef8 100644 DRM_ERROR("Unexpected PM interrupted\n"); } -@@ -1009,7 +1010,7 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg) +@@ -1009,7 +1010,7 @@ static irqreturn_t valleyview_irq_handle if (pipe_stats[0] & PIPE_GMBUS_INTERRUPT_STATUS) gmbus_irq_handler(dev); @@ -99,7 +97,7 @@ index c150f90b5770..19734c719ef8 100644 gen6_queue_rps_work(dev_priv, pm_iir); I915_WRITE(GTIIR, gt_iir); -@@ -1250,7 +1251,7 @@ static irqreturn_t ivybridge_irq_handler(int irq, void *arg) +@@ -1250,7 +1251,7 @@ static irqreturn_t ivybridge_irq_handler if (pm_iir) { if (IS_HASWELL(dev)) hsw_pm_irq_handler(dev_priv, pm_iir); @@ -108,7 +106,7 @@ index c150f90b5770..19734c719ef8 100644 gen6_queue_rps_work(dev_priv, pm_iir); I915_WRITE(GEN6_PMIIR, pm_iir); ret = IRQ_HANDLED; -@@ -1365,7 +1366,7 @@ static irqreturn_t ironlake_irq_handler(int irq, void *arg) +@@ -1365,7 +1366,7 @@ static irqreturn_t ironlake_irq_handler( if (IS_GEN5(dev) && de_iir & DE_PCU_EVENT) ironlake_handle_rps_change(dev); @@ -117,7 +115,7 @@ index c150f90b5770..19734c719ef8 100644 gen6_queue_rps_work(dev_priv, pm_iir); I915_WRITE(GTIIR, gt_iir); -@@ -2753,8 +2754,8 @@ static int ivybridge_irq_postinstall(struct drm_device *dev) +@@ -2753,8 +2754,8 @@ static int ivybridge_irq_postinstall(str POSTING_READ(GTIER); /* Power management */ @@ -128,11 +126,9 @@ index c150f90b5770..19734c719ef8 100644 POSTING_READ(GEN6_PMIMR); ibx_irq_postinstall(dev); -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 8fdafd4619ae..30f6cfe91d1b 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4572,7 +4572,7 @@ +@@ -4576,7 +4576,7 @@ #define GEN6_PM_RP_DOWN_THRESHOLD (1<<4) #define GEN6_PM_RP_UP_EI_EXPIRED (1<<2) #define GEN6_PM_RP_DOWN_EI_EXPIRED (1<<1) @@ -141,11 +137,9 @@ index 8fdafd4619ae..30f6cfe91d1b 100644 GEN6_PM_RP_DOWN_THRESHOLD | \ GEN6_PM_RP_DOWN_TIMEOUT) -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index 5890c610db3c..8af5c12e944d 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -3116,7 +3116,7 @@ static void gen6_disable_rps(struct drm_device *dev) +@@ -3116,7 +3116,7 @@ static void gen6_disable_rps(struct drm_ I915_WRITE(GEN6_RC_CONTROL, 0); I915_WRITE(GEN6_RPNSWREQ, 1 << 31); I915_WRITE(GEN6_PMINTRMSK, 0xffffffff); @@ -154,7 +148,7 @@ index 5890c610db3c..8af5c12e944d 100644 /* Complete PM interrupt masking here doesn't race with the rps work * item again unmasking PM interrupts because that is using a different * register (PMIMR) to mask PM interrupts. The only risk is in leaving -@@ -3126,7 +3126,7 @@ static void gen6_disable_rps(struct drm_device *dev) +@@ -3126,7 +3126,7 @@ static void gen6_disable_rps(struct drm_ dev_priv->rps.pm_iir = 0; spin_unlock_irq(&dev_priv->rps.lock); @@ -163,7 +157,7 @@ index 5890c610db3c..8af5c12e944d 100644 } static void valleyview_disable_rps(struct drm_device *dev) -@@ -3307,14 +3307,15 @@ static void gen6_enable_rps(struct drm_device *dev) +@@ -3307,14 +3307,15 @@ static void gen6_enable_rps(struct drm_d gen6_set_rps(dev_priv->dev, (gt_perf_status & 0xff00) >> 8); /* requires MSI enabled */ @@ -182,7 +176,7 @@ index 5890c610db3c..8af5c12e944d 100644 I915_WRITE(GEN6_PMINTRMSK, 0); rc6vids = 0; -@@ -3577,7 +3578,7 @@ static void valleyview_enable_rps(struct drm_device *dev) +@@ -3577,7 +3578,7 @@ static void valleyview_enable_rps(struct valleyview_set_rps(dev_priv->dev, rpe); /* requires MSI enabled */ @@ -191,6 +185,3 @@ index 5890c610db3c..8af5c12e944d 100644 spin_lock_irq(&dev_priv->rps.lock); WARN_ON(dev_priv->rps.pm_iir != 0); I915_WRITE(GEN6_PMIMR, 0); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0228-drm-i915-consolidate-interrupt-naming-scheme.patch b/patches.baytrail/0228-drm-i915-consolidate-interrupt-naming-scheme.patch index 0be817f8ee79f..44419f5de0f45 100644 --- a/patches.baytrail/0228-drm-i915-consolidate-interrupt-naming-scheme.patch +++ b/patches.baytrail/0228-drm-i915-consolidate-interrupt-naming-scheme.patch @@ -26,16 +26,14 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit cc609d5da5c78c92a2e2565604b2603a0965b494) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_irq.c | 61 ++++++++++--------- - drivers/gpu/drm/i915/i915_reg.h | 101 ++++++++++++++------------------ - drivers/gpu/drm/i915/intel_ringbuffer.c | 21 ++++--- + drivers/gpu/drm/i915/i915_irq.c | 61 +++++++++---------- + drivers/gpu/drm/i915/i915_reg.h | 101 +++++++++++++------------------- + drivers/gpu/drm/i915/intel_ringbuffer.c | 21 +++--- 3 files changed, 85 insertions(+), 98 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index 19734c719ef8..7eabe79680c7 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -771,7 +771,7 @@ static void ivybridge_parity_work(struct work_struct *work) +@@ -771,7 +771,7 @@ static void ivybridge_parity_work(struct I915_WRITE(GEN7_MISCCPCTL, misccpctl); spin_lock_irqsave(&dev_priv->irq_lock, flags); @@ -44,7 +42,7 @@ index 19734c719ef8..7eabe79680c7 100644 I915_WRITE(GTIMR, dev_priv->gt_irq_mask); spin_unlock_irqrestore(&dev_priv->irq_lock, flags); -@@ -803,7 +803,7 @@ static void ivybridge_handle_parity_error(struct drm_device *dev) +@@ -803,7 +803,7 @@ static void ivybridge_handle_parity_erro return; spin_lock_irqsave(&dev_priv->irq_lock, flags); @@ -53,7 +51,7 @@ index 19734c719ef8..7eabe79680c7 100644 I915_WRITE(GTIMR, dev_priv->gt_irq_mask); spin_unlock_irqrestore(&dev_priv->irq_lock, flags); -@@ -815,22 +815,22 @@ static void snb_gt_irq_handler(struct drm_device *dev, +@@ -815,22 +815,22 @@ static void snb_gt_irq_handler(struct dr u32 gt_iir) { @@ -84,7 +82,7 @@ index 19734c719ef8..7eabe79680c7 100644 ivybridge_handle_parity_error(dev); } -@@ -1274,9 +1274,10 @@ static void ilk_gt_irq_handler(struct drm_device *dev, +@@ -1274,9 +1274,10 @@ static void ilk_gt_irq_handler(struct dr struct drm_i915_private *dev_priv, u32 gt_iir) { @@ -97,7 +95,7 @@ index 19734c719ef8..7eabe79680c7 100644 notify_ring(dev, &dev_priv->ring[VCS]); } -@@ -2677,7 +2678,7 @@ static int ironlake_irq_postinstall(struct drm_device *dev) +@@ -2677,7 +2678,7 @@ static int ironlake_irq_postinstall(stru DE_PLANEA_FLIP_DONE | DE_PLANEB_FLIP_DONE | DE_AUX_CHANNEL_A | DE_PIPEB_FIFO_UNDERRUN | DE_PIPEA_FIFO_UNDERRUN | DE_POISON; @@ -106,7 +104,7 @@ index 19734c719ef8..7eabe79680c7 100644 dev_priv->irq_mask = ~display_mask; -@@ -2692,17 +2693,15 @@ static int ironlake_irq_postinstall(struct drm_device *dev) +@@ -2692,17 +2693,15 @@ static int ironlake_irq_postinstall(stru I915_WRITE(GTIIR, I915_READ(GTIIR)); I915_WRITE(GTIMR, dev_priv->gt_irq_mask); @@ -131,7 +129,7 @@ index 19734c719ef8..7eabe79680c7 100644 POSTING_READ(GTIER); ibx_irq_postinstall(dev); -@@ -2728,7 +2727,7 @@ static int ivybridge_irq_postinstall(struct drm_device *dev) +@@ -2728,7 +2727,7 @@ static int ivybridge_irq_postinstall(str DE_PLANEA_FLIP_DONE_IVB | DE_AUX_CHANNEL_A_IVB | DE_ERR_INT_IVB; @@ -140,7 +138,7 @@ index 19734c719ef8..7eabe79680c7 100644 dev_priv->irq_mask = ~display_mask; -@@ -2743,14 +2742,14 @@ static int ivybridge_irq_postinstall(struct drm_device *dev) +@@ -2743,14 +2742,14 @@ static int ivybridge_irq_postinstall(str DE_PIPEA_VBLANK_IVB); POSTING_READ(DEIER); @@ -159,7 +157,7 @@ index 19734c719ef8..7eabe79680c7 100644 POSTING_READ(GTIER); /* Power management */ -@@ -2766,9 +2765,9 @@ static int ivybridge_irq_postinstall(struct drm_device *dev) +@@ -2766,9 +2765,9 @@ static int ivybridge_irq_postinstall(str static int valleyview_irq_postinstall(struct drm_device *dev) { drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; @@ -170,7 +168,7 @@ index 19734c719ef8..7eabe79680c7 100644 enable_mask = I915_DISPLAY_PORT_INTERRUPT; enable_mask |= I915_DISPLAY_PIPE_A_EVENT_INTERRUPT | -@@ -2804,9 +2803,9 @@ static int valleyview_irq_postinstall(struct drm_device *dev) +@@ -2804,9 +2803,9 @@ static int valleyview_irq_postinstall(st I915_WRITE(GTIIR, I915_READ(GTIIR)); I915_WRITE(GTIMR, dev_priv->gt_irq_mask); @@ -183,8 +181,6 @@ index 19734c719ef8..7eabe79680c7 100644 POSTING_READ(GTIER); /* ack & enable invalid PTE error interrupts */ -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 30f6cfe91d1b..ef1c471b1909 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -742,24 +742,6 @@ @@ -294,7 +290,7 @@ index 30f6cfe91d1b..ef1c471b1909 100644 #define GEN6_BSD_RNCID 0x12198 -@@ -3720,21 +3720,6 @@ +@@ -3724,21 +3724,6 @@ #define DEIIR 0x44008 #define DEIER 0x4400c @@ -316,11 +312,9 @@ index 30f6cfe91d1b..ef1c471b1909 100644 #define GTISR 0x44010 #define GTIMR 0x44014 #define GTIIR 0x44018 -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index 8246213ffada..5ce12be4faeb 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -556,7 +556,7 @@ static int init_render_ring(struct intel_ring_buffer *ring) +@@ -556,7 +556,7 @@ static int init_render_ring(struct intel I915_WRITE(INSTPM, _MASKED_BIT_ENABLE(INSTPM_FORCE_ORDERING)); if (HAS_L3_GPU_CACHE(dev)) @@ -329,7 +323,7 @@ index 8246213ffada..5ce12be4faeb 100644 return ret; } -@@ -993,8 +993,9 @@ gen6_ring_get_irq(struct intel_ring_buffer *ring) +@@ -993,8 +993,9 @@ gen6_ring_get_irq(struct intel_ring_buff spin_lock_irqsave(&dev_priv->irq_lock, flags); if (ring->irq_refcount.gt++ == 0) { if (HAS_L3_GPU_CACHE(dev) && ring->id == RCS) @@ -341,7 +335,7 @@ index 8246213ffada..5ce12be4faeb 100644 else I915_WRITE_IMR(ring, ~ring->irq_enable_mask); dev_priv->gt_irq_mask &= ~ring->irq_enable_mask; -@@ -1016,7 +1017,8 @@ gen6_ring_put_irq(struct intel_ring_buffer *ring) +@@ -1016,7 +1017,8 @@ gen6_ring_put_irq(struct intel_ring_buff spin_lock_irqsave(&dev_priv->irq_lock, flags); if (--ring->irq_refcount.gt == 0) { if (HAS_L3_GPU_CACHE(dev) && ring->id == RCS) @@ -351,7 +345,7 @@ index 8246213ffada..5ce12be4faeb 100644 else I915_WRITE_IMR(ring, ~0); dev_priv->gt_irq_mask |= ring->irq_enable_mask; -@@ -1693,7 +1695,7 @@ int intel_init_render_ring_buffer(struct drm_device *dev) +@@ -1697,7 +1699,7 @@ int intel_init_render_ring_buffer(struct ring->flush = gen6_render_ring_flush; ring->irq_get = gen6_ring_get_irq; ring->irq_put = gen6_ring_put_irq; @@ -360,7 +354,7 @@ index 8246213ffada..5ce12be4faeb 100644 ring->get_seqno = gen6_ring_get_seqno; ring->set_seqno = ring_set_seqno; ring->sync_to = gen6_ring_sync; -@@ -1712,7 +1714,8 @@ int intel_init_render_ring_buffer(struct drm_device *dev) +@@ -1716,7 +1718,8 @@ int intel_init_render_ring_buffer(struct ring->set_seqno = pc_render_set_seqno; ring->irq_get = gen5_ring_get_irq; ring->irq_put = gen5_ring_put_irq; @@ -370,7 +364,7 @@ index 8246213ffada..5ce12be4faeb 100644 } else { ring->add_request = i9xx_add_request; if (INTEL_INFO(dev)->gen < 4) -@@ -1854,7 +1857,7 @@ int intel_init_bsd_ring_buffer(struct drm_device *dev) +@@ -1858,7 +1861,7 @@ int intel_init_bsd_ring_buffer(struct dr ring->add_request = gen6_add_request; ring->get_seqno = gen6_ring_get_seqno; ring->set_seqno = ring_set_seqno; @@ -379,7 +373,7 @@ index 8246213ffada..5ce12be4faeb 100644 ring->irq_get = gen6_ring_get_irq; ring->irq_put = gen6_ring_put_irq; ring->dispatch_execbuffer = gen6_ring_dispatch_execbuffer; -@@ -1874,7 +1877,7 @@ int intel_init_bsd_ring_buffer(struct drm_device *dev) +@@ -1878,7 +1881,7 @@ int intel_init_bsd_ring_buffer(struct dr ring->get_seqno = ring_get_seqno; ring->set_seqno = ring_set_seqno; if (IS_GEN5(dev)) { @@ -388,7 +382,7 @@ index 8246213ffada..5ce12be4faeb 100644 ring->irq_get = gen5_ring_get_irq; ring->irq_put = gen5_ring_put_irq; } else { -@@ -1903,7 +1906,7 @@ int intel_init_blt_ring_buffer(struct drm_device *dev) +@@ -1907,7 +1910,7 @@ int intel_init_blt_ring_buffer(struct dr ring->add_request = gen6_add_request; ring->get_seqno = gen6_ring_get_seqno; ring->set_seqno = ring_set_seqno; @@ -397,6 +391,3 @@ index 8246213ffada..5ce12be4faeb 100644 ring->irq_get = gen6_ring_get_irq; ring->irq_put = gen6_ring_put_irq; ring->dispatch_execbuffer = gen6_ring_dispatch_execbuffer; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0229-drm-i915-vebox-interrupt-get-put.patch b/patches.baytrail/0229-drm-i915-vebox-interrupt-get-put.patch index f57b076a1dd28..43aaedd8e169a 100644 --- a/patches.baytrail/0229-drm-i915-vebox-interrupt-get-put.patch +++ b/patches.baytrail/0229-drm-i915-vebox-interrupt-get-put.patch @@ -13,15 +13,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit a19d2933cbc4c7b8e3d72e9fd2d48847c25bb41d) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_ringbuffer.c | 46 +++++++++++++++++++++++++++++++-- - drivers/gpu/drm/i915/intel_ringbuffer.h | 5 ++-- + drivers/gpu/drm/i915/intel_ringbuffer.c | 46 ++++++++++++++++++++++++++++++-- + drivers/gpu/drm/i915/intel_ringbuffer.h | 5 ++- 2 files changed, 47 insertions(+), 4 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index 5ce12be4faeb..81a397bb2424 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -1030,6 +1030,48 @@ gen6_ring_put_irq(struct intel_ring_buffer *ring) +@@ -1030,6 +1030,48 @@ gen6_ring_put_irq(struct intel_ring_buff gen6_gt_force_wake_put(dev_priv); } @@ -70,7 +68,7 @@ index 5ce12be4faeb..81a397bb2424 100644 static int i965_dispatch_execbuffer(struct intel_ring_buffer *ring, u32 offset, u32 length, -@@ -1939,8 +1981,8 @@ int intel_init_vebox_ring_buffer(struct drm_device *dev) +@@ -1943,8 +1985,8 @@ int intel_init_vebox_ring_buffer(struct ring->get_seqno = gen6_ring_get_seqno; ring->set_seqno = ring_set_seqno; ring->irq_enable_mask = 0; @@ -81,8 +79,6 @@ index 5ce12be4faeb..81a397bb2424 100644 ring->dispatch_execbuffer = gen6_ring_dispatch_execbuffer; ring->sync_to = gen6_ring_sync; ring->semaphore_register[RCS] = MI_SEMAPHORE_SYNC_VER; -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h -index 153b87f67aae..022d07e43d12 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h @@ -73,8 +73,9 @@ struct intel_ring_buffer { @@ -97,6 +93,3 @@ index 153b87f67aae..022d07e43d12 100644 u32 irq_enable_mask; /* bitmask to enable ring interrupt */ u32 trace_irq_seqno; u32 sync_seqno[I915_NUM_RINGS-1]; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0230-drm-i915-Enable-vebox-interrupts.patch b/patches.baytrail/0230-drm-i915-Enable-vebox-interrupts.patch index 66cf2db00d292..a9fe609331d97 100644 --- a/patches.baytrail/0230-drm-i915-Enable-vebox-interrupts.patch +++ b/patches.baytrail/0230-drm-i915-Enable-vebox-interrupts.patch @@ -19,16 +19,14 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 12638c57f31952127c734c26315e1348fa1334c2) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_irq.c | 31 +++++++++++++++++++++++++------ - drivers/gpu/drm/i915/i915_reg.h | 3 +++ - drivers/gpu/drm/i915/intel_ringbuffer.c | 3 ++- + drivers/gpu/drm/i915/i915_irq.c | 31 +++++++++++++++++++++++++------ + drivers/gpu/drm/i915/i915_reg.h | 3 +++ + drivers/gpu/drm/i915/intel_ringbuffer.c | 3 ++- 3 files changed, 30 insertions(+), 7 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index 7eabe79680c7..ea396518baab 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -935,8 +935,15 @@ static void hsw_pm_irq_handler(struct drm_i915_private *dev_priv, +@@ -935,8 +935,15 @@ static void hsw_pm_irq_handler(struct dr } spin_unlock_irqrestore(&dev_priv->rps.lock, flags); @@ -46,7 +44,7 @@ index 7eabe79680c7..ea396518baab 100644 } static irqreturn_t valleyview_irq_handler(int irq, void *arg) -@@ -2727,6 +2734,7 @@ static int ivybridge_irq_postinstall(struct drm_device *dev) +@@ -2727,6 +2734,7 @@ static int ivybridge_irq_postinstall(str DE_PLANEA_FLIP_DONE_IVB | DE_AUX_CHANNEL_A_IVB | DE_ERR_INT_IVB; @@ -54,7 +52,7 @@ index 7eabe79680c7..ea396518baab 100644 u32 gt_irqs; dev_priv->irq_mask = ~display_mask; -@@ -2752,10 +2760,21 @@ static int ivybridge_irq_postinstall(struct drm_device *dev) +@@ -2752,10 +2760,21 @@ static int ivybridge_irq_postinstall(str I915_WRITE(GTIER, gt_irqs); POSTING_READ(GTIER); @@ -80,8 +78,6 @@ index 7eabe79680c7..ea396518baab 100644 ibx_irq_postinstall(dev); -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index ef1c471b1909..aabc67104272 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -888,6 +888,9 @@ @@ -94,11 +90,9 @@ index ef1c471b1909..aabc67104272 100644 /* These are all the "old" interrupts */ #define ILK_BSD_USER_INTERRUPT (1<<5) #define I915_PIPE_CONTROL_NOTIFY_INTERRUPT (1<<18) -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index 81a397bb2424..cd2daf2f5dd7 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -1980,7 +1980,8 @@ int intel_init_vebox_ring_buffer(struct drm_device *dev) +@@ -1984,7 +1984,8 @@ int intel_init_vebox_ring_buffer(struct ring->add_request = gen6_add_request; ring->get_seqno = gen6_ring_get_seqno; ring->set_seqno = ring_set_seqno; @@ -108,6 +102,3 @@ index 81a397bb2424..cd2daf2f5dd7 100644 ring->irq_get = hsw_vebox_get_irq; ring->irq_put = hsw_vebox_put_irq; ring->dispatch_execbuffer = gen6_ring_dispatch_execbuffer; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0235-drm-i915-implement-IPS-feature.patch b/patches.baytrail/0235-drm-i915-implement-IPS-feature.patch index 54864070847d4..da190d9e46778 100644 --- a/patches.baytrail/0235-drm-i915-implement-IPS-feature.patch +++ b/patches.baytrail/0235-drm-i915-implement-IPS-feature.patch @@ -26,13 +26,11 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 42db64efcd95014570835c7b0a08277c60486f07) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 11 +++++ - drivers/gpu/drm/i915/intel_display.c | 78 ++++++++++++++++++++++++++++++++++-- - drivers/gpu/drm/i915/intel_drv.h | 2 + + drivers/gpu/drm/i915/i915_reg.h | 11 ++++ + drivers/gpu/drm/i915/intel_display.c | 78 +++++++++++++++++++++++++++++++++-- + drivers/gpu/drm/i915/intel_drv.h | 2 3 files changed, 88 insertions(+), 3 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index aabc67104272..13d4d5e21ce0 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -1025,6 +1025,8 @@ @@ -44,7 +42,7 @@ index aabc67104272..13d4d5e21ce0 100644 #define _HSW_PIPE_SLICE_CHICKEN_1_A 0x420B0 #define _HSW_PIPE_SLICE_CHICKEN_1_B 0x420B4 -@@ -3672,6 +3674,15 @@ +@@ -3676,6 +3678,15 @@ #define _LGC_PALETTE_B 0x4a800 #define LGC_PALETTE(pipe) _PIPE(pipe, _LGC_PALETTE_A, _LGC_PALETTE_B) @@ -60,11 +58,9 @@ index aabc67104272..13d4d5e21ce0 100644 /* interrupts */ #define DE_MASTER_IRQ_CONTROL (1 << 31) #define DE_SPRITEB_FLIP_DONE (1 << 29) -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index b16c95720f7b..20fa85137060 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -3242,6 +3242,42 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc) +@@ -3242,6 +3242,42 @@ static void ironlake_crtc_enable(struct intel_wait_for_vblank(dev, intel_crtc->pipe); } @@ -107,7 +103,7 @@ index b16c95720f7b..20fa85137060 100644 static void haswell_crtc_enable(struct drm_crtc *crtc) { struct drm_device *dev = crtc->dev; -@@ -3289,6 +3325,8 @@ static void haswell_crtc_enable(struct drm_crtc *crtc) +@@ -3289,6 +3325,8 @@ static void haswell_crtc_enable(struct d intel_crtc->config.has_pch_encoder); intel_enable_plane(dev_priv, plane, pipe); @@ -116,7 +112,7 @@ index b16c95720f7b..20fa85137060 100644 if (intel_crtc->config.has_pch_encoder) lpt_pch_enable(crtc); -@@ -3431,6 +3469,8 @@ static void haswell_crtc_disable(struct drm_crtc *crtc) +@@ -3431,6 +3469,8 @@ static void haswell_crtc_disable(struct if (dev_priv->cfb_plane == plane) intel_disable_fbc(dev); @@ -145,7 +141,7 @@ index b16c95720f7b..20fa85137060 100644 if (HAS_PCH_SPLIT(dev)) { /* FDI link clock is fixed at 2.7G */ -@@ -4021,8 +4069,11 @@ static int intel_crtc_compute_config(struct drm_crtc *crtc, +@@ -4021,8 +4069,11 @@ static int intel_crtc_compute_config(str pipe_config->pipe_bpp = 8*3; } @@ -158,7 +154,7 @@ index b16c95720f7b..20fa85137060 100644 return 0; } -@@ -5932,6 +5983,9 @@ static bool haswell_get_pipe_config(struct intel_crtc *crtc, +@@ -5932,6 +5983,9 @@ static bool haswell_get_pipe_config(stru if (intel_display_power_enabled(dev, pfit_domain)) ironlake_get_pfit_config(crtc, pipe_config); @@ -168,7 +164,7 @@ index b16c95720f7b..20fa85137060 100644 return true; } -@@ -6236,8 +6290,10 @@ void intel_crtc_load_lut(struct drm_crtc *crtc) +@@ -6236,8 +6290,10 @@ void intel_crtc_load_lut(struct drm_crtc struct drm_device *dev = crtc->dev; struct drm_i915_private *dev_priv = dev->dev_private; struct intel_crtc *intel_crtc = to_intel_crtc(crtc); @@ -180,7 +176,7 @@ index b16c95720f7b..20fa85137060 100644 /* The clocks have to be on to load the palette. */ if (!crtc->enabled || !intel_crtc->active) -@@ -6245,7 +6301,17 @@ void intel_crtc_load_lut(struct drm_crtc *crtc) +@@ -6245,7 +6301,17 @@ void intel_crtc_load_lut(struct drm_crtc /* use legacy palette for Ironlake */ if (HAS_PCH_SPLIT(dev)) @@ -199,7 +195,7 @@ index b16c95720f7b..20fa85137060 100644 for (i = 0; i < 256; i++) { I915_WRITE(palreg + 4 * i, -@@ -6253,6 +6319,9 @@ void intel_crtc_load_lut(struct drm_crtc *crtc) +@@ -6253,6 +6319,9 @@ void intel_crtc_load_lut(struct drm_crtc (intel_crtc->lut_g[i] << 8) | intel_crtc->lut_b[i]); } @@ -209,7 +205,7 @@ index b16c95720f7b..20fa85137060 100644 } static void i845_update_cursor(struct drm_crtc *crtc, u32 base) -@@ -7684,6 +7753,7 @@ static void intel_dump_pipe_config(struct intel_crtc *crtc, +@@ -7684,6 +7753,7 @@ static void intel_dump_pipe_config(struc DRM_DEBUG_KMS("pch pfit: pos: 0x%08x, size: 0x%08x\n", pipe_config->pch_pfit.pos, pipe_config->pch_pfit.size); @@ -217,7 +213,7 @@ index b16c95720f7b..20fa85137060 100644 } static struct intel_crtc_config * -@@ -8000,6 +8070,8 @@ intel_pipe_config_compare(struct drm_device *dev, +@@ -8000,6 +8070,8 @@ intel_pipe_config_compare(struct drm_dev PIPE_CONF_CHECK_I(pch_pfit.pos); PIPE_CONF_CHECK_I(pch_pfit.size); @@ -226,8 +222,6 @@ index b16c95720f7b..20fa85137060 100644 #undef PIPE_CONF_CHECK_I #undef PIPE_CONF_CHECK_FLAGS -diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h -index c02bc97e350d..b81cc4512c0a 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -268,6 +268,8 @@ struct intel_crtc_config { @@ -239,6 +233,3 @@ index c02bc97e350d..b81cc4512c0a 100644 }; struct intel_crtc { --- -1.8.5.rc3 - diff --git a/patches.baytrail/0278-i915-drm-Add-private-api-for-power-well-usage.patch b/patches.baytrail/0278-i915-drm-Add-private-api-for-power-well-usage.patch index 0365257596799..0c60d0692f3a9 100644 --- a/patches.baytrail/0278-i915-drm-Add-private-api-for-power-well-usage.patch +++ b/patches.baytrail/0278-i915-drm-Add-private-api-for-power-well-usage.patch @@ -36,7 +36,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> if (drm_core_check_feature(dev, DRIVER_MODESET)) { ret = i915_load_modeset_init(dev); if (ret < 0) { -@@ -1693,6 +1696,9 @@ int i915_driver_unload(struct drm_device +@@ -1694,6 +1697,9 @@ int i915_driver_unload(struct drm_device intel_gpu_ips_teardown(); diff --git a/patches.baytrail/0286-drm-i915-WA-FBC-Render-Nuke.patch b/patches.baytrail/0286-drm-i915-WA-FBC-Render-Nuke.patch index cf36c5897702c..5b2f633262104 100644 --- a/patches.baytrail/0286-drm-i915-WA-FBC-Render-Nuke.patch +++ b/patches.baytrail/0286-drm-i915-WA-FBC-Render-Nuke.patch @@ -37,13 +37,11 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit fd3da6c95b6d865446fa9b29df6edff4343e385a) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 4 ++++ - drivers/gpu/drm/i915/intel_pm.c | 2 +- - drivers/gpu/drm/i915/intel_ringbuffer.c | 29 +++++++++++++++++++++++++++++ + drivers/gpu/drm/i915/i915_reg.h | 4 ++++ + drivers/gpu/drm/i915/intel_pm.c | 2 +- + drivers/gpu/drm/i915/intel_ringbuffer.c | 29 +++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 65547c1f1001..225a28d67060 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -1022,6 +1022,10 @@ @@ -57,11 +55,9 @@ index 65547c1f1001..225a28d67060 100644 #define _HSW_PIPE_SLICE_CHICKEN_1_A 0x420B0 #define _HSW_PIPE_SLICE_CHICKEN_1_B 0x420B4 #define HSW_BYPASS_FBC_QUEUE (1<<22) -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index b5959c49a6f4..681699671893 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -274,7 +274,7 @@ static void gen7_enable_fbc(struct drm_crtc *crtc, unsigned long interval) +@@ -274,7 +274,7 @@ static void gen7_enable_fbc(struct drm_c struct drm_i915_gem_object *obj = intel_fb->obj; struct intel_crtc *intel_crtc = to_intel_crtc(crtc); @@ -70,11 +66,9 @@ index b5959c49a6f4..681699671893 100644 I915_WRITE(ILK_DPFC_CONTROL, DPFC_CTL_EN | DPFC_CTL_LIMIT_1X | IVB_DPFC_CTL_FENCE_EN | -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index cd2daf2f5dd7..07a949c042f2 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -280,6 +280,27 @@ gen7_render_ring_cs_stall_wa(struct intel_ring_buffer *ring) +@@ -280,6 +280,27 @@ gen7_render_ring_cs_stall_wa(struct inte return 0; } @@ -102,7 +96,7 @@ index cd2daf2f5dd7..07a949c042f2 100644 static int gen7_render_ring_flush(struct intel_ring_buffer *ring, u32 invalidate_domains, u32 flush_domains) -@@ -336,6 +357,9 @@ gen7_render_ring_flush(struct intel_ring_buffer *ring, +@@ -336,6 +357,9 @@ gen7_render_ring_flush(struct intel_ring intel_ring_emit(ring, 0); intel_ring_advance(ring); @@ -112,7 +106,7 @@ index cd2daf2f5dd7..07a949c042f2 100644 return 0; } -@@ -1696,6 +1720,7 @@ gen6_ring_dispatch_execbuffer(struct intel_ring_buffer *ring, +@@ -1700,6 +1724,7 @@ gen6_ring_dispatch_execbuffer(struct int static int gen6_ring_flush(struct intel_ring_buffer *ring, u32 invalidate, u32 flush) { @@ -120,7 +114,7 @@ index cd2daf2f5dd7..07a949c042f2 100644 uint32_t cmd; int ret; -@@ -1718,6 +1743,10 @@ static int gen6_ring_flush(struct intel_ring_buffer *ring, +@@ -1722,6 +1747,10 @@ static int gen6_ring_flush(struct intel_ intel_ring_emit(ring, 0); intel_ring_emit(ring, MI_NOOP); intel_ring_advance(ring); @@ -131,6 +125,3 @@ index cd2daf2f5dd7..07a949c042f2 100644 return 0; } --- -1.8.5.rc3 - diff --git a/patches.baytrail/0296-drm-i915-refactor-PCH_DPLL_SEL-defines.patch b/patches.baytrail/0296-drm-i915-refactor-PCH_DPLL_SEL-defines.patch index b6c986b7e1c45..bb8d94edcf42d 100644 --- a/patches.baytrail/0296-drm-i915-refactor-PCH_DPLL_SEL-defines.patch +++ b/patches.baytrail/0296-drm-i915-refactor-PCH_DPLL_SEL-defines.patch @@ -15,15 +15,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 1188739757d0e78810de5fe83dbe0128f624b9e8) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 12 +++--------- - drivers/gpu/drm/i915/intel_display.c | 32 +++----------------------------- + drivers/gpu/drm/i915/i915_reg.h | 12 +++--------- + drivers/gpu/drm/i915/intel_display.c | 32 +++----------------------------- 2 files changed, 6 insertions(+), 38 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 225a28d67060..776ef89cda14 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -3984,15 +3984,9 @@ +@@ -3988,15 +3988,9 @@ #define PCH_SSC4_AUX_PARMS 0xc6214 #define PCH_DPLL_SEL 0xc7000 @@ -42,11 +40,9 @@ index 225a28d67060..776ef89cda14 100644 /* transcoder */ -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 0fdb80517545..887b7e6f5025 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -2986,21 +2986,8 @@ static void ironlake_pch_enable(struct drm_crtc *crtc) +@@ -2986,21 +2986,8 @@ static void ironlake_pch_enable(struct d u32 sel; temp = I915_READ(PCH_DPLL_SEL); @@ -70,7 +66,7 @@ index 0fdb80517545..887b7e6f5025 100644 if (intel_crtc->config.shared_dpll == DPLL_ID_PCH_PLL_B) temp |= sel; else -@@ -3480,20 +3467,7 @@ static void ironlake_crtc_disable(struct drm_crtc *crtc) +@@ -3480,20 +3467,7 @@ static void ironlake_crtc_disable(struct /* disable DPLL_SEL */ temp = I915_READ(PCH_DPLL_SEL); @@ -92,6 +88,3 @@ index 0fdb80517545..887b7e6f5025 100644 I915_WRITE(PCH_DPLL_SEL, temp); } --- -1.8.5.rc3 - diff --git a/patches.baytrail/0300-drm-i915-scrap-register-address-storage.patch b/patches.baytrail/0300-drm-i915-scrap-register-address-storage.patch index 7f1dbf6b965ec..99a2bf045760f 100644 --- a/patches.baytrail/0300-drm-i915-scrap-register-address-storage.patch +++ b/patches.baytrail/0300-drm-i915-scrap-register-address-storage.patch @@ -14,14 +14,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit e9a632a578e0205c1fb015bb01af49c2ae71d6f2) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_drv.h | 3 --- - drivers/gpu/drm/i915/i915_reg.h | 6 +++--- - drivers/gpu/drm/i915/i915_ums.c | 2 +- - drivers/gpu/drm/i915/intel_display.c | 35 ++++++++++++++++------------------- + drivers/gpu/drm/i915/i915_drv.h | 3 --- + drivers/gpu/drm/i915/i915_reg.h | 6 +++--- + drivers/gpu/drm/i915/i915_ums.c | 2 +- + drivers/gpu/drm/i915/intel_display.c | 35 ++++++++++++++++------------------- 4 files changed, 20 insertions(+), 26 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h -index 7e3d3b349bf6..c0779fe39576 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -147,9 +147,6 @@ struct intel_shared_dpll { @@ -34,11 +32,9 @@ index 7e3d3b349bf6..c0779fe39576 100644 }; /* Used by dp and fdi links */ -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 776ef89cda14..f21d0f5dc9f2 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -3936,15 +3936,15 @@ +@@ -3940,15 +3940,15 @@ #define _PCH_DPLL_A 0xc6014 #define _PCH_DPLL_B 0xc6018 @@ -57,11 +53,9 @@ index 776ef89cda14..f21d0f5dc9f2 100644 #define PCH_DPLL_TEST 0xc606c -diff --git a/drivers/gpu/drm/i915/i915_ums.c b/drivers/gpu/drm/i915/i915_ums.c -index 5ef30b2e6bc6..967da4772c44 100644 --- a/drivers/gpu/drm/i915/i915_ums.c +++ b/drivers/gpu/drm/i915/i915_ums.c -@@ -41,7 +41,7 @@ static bool i915_pipe_enabled(struct drm_device *dev, enum pipe pipe) +@@ -41,7 +41,7 @@ static bool i915_pipe_enabled(struct drm return false; if (HAS_PCH_SPLIT(dev)) @@ -70,11 +64,9 @@ index 5ef30b2e6bc6..967da4772c44 100644 else dpll_reg = (pipe == PIPE_A) ? _DPLL_A : _DPLL_B; -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 3e5eeb0b5dec..cbe2a077a822 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -938,7 +938,7 @@ static void assert_shared_dpll(struct drm_i915_private *dev_priv, +@@ -938,7 +938,7 @@ static void assert_shared_dpll(struct dr "asserting DPLL %s with no DPLL\n", state_string(state))) return; @@ -83,7 +75,7 @@ index 3e5eeb0b5dec..cbe2a077a822 100644 cur_state = !!(val & DPLL_VCO_ENABLE); WARN(cur_state != state, "%s assertion failure (expected %s, current %s), val=%08x\n", -@@ -949,14 +949,14 @@ static void assert_shared_dpll(struct drm_i915_private *dev_priv, +@@ -949,14 +949,14 @@ static void assert_shared_dpll(struct dr u32 pch_dpll; pch_dpll = I915_READ(PCH_DPLL_SEL); @@ -100,7 +92,7 @@ index 3e5eeb0b5dec..cbe2a077a822 100644 state_string(state), pipe_name(crtc->pipe), val); -@@ -1446,7 +1446,7 @@ static void ironlake_enable_shared_dpll(struct intel_crtc *crtc) +@@ -1446,7 +1446,7 @@ static void ironlake_enable_shared_dpll( DRM_DEBUG_KMS("enabling %s\n", pll->name); @@ -109,7 +101,7 @@ index 3e5eeb0b5dec..cbe2a077a822 100644 val = I915_READ(reg); val |= DPLL_VCO_ENABLE; I915_WRITE(reg, val); -@@ -1490,7 +1490,7 @@ static void intel_disable_shared_dpll(struct intel_crtc *crtc) +@@ -1490,7 +1490,7 @@ static void intel_disable_shared_dpll(st /* Make sure transcoder isn't still depending on us */ assert_pch_transcoder_disabled(dev_priv, crtc->pipe); @@ -118,7 +110,7 @@ index 3e5eeb0b5dec..cbe2a077a822 100644 val = I915_READ(reg); val &= ~DPLL_VCO_ENABLE; I915_WRITE(reg, val); -@@ -3107,8 +3107,8 @@ static struct intel_shared_dpll *intel_get_shared_dpll(struct intel_crtc *crtc, +@@ -3107,8 +3107,8 @@ static struct intel_shared_dpll *intel_g if (pll->refcount == 0) continue; @@ -146,7 +138,7 @@ index 3e5eeb0b5dec..cbe2a077a822 100644 } pll->refcount++; -@@ -5785,10 +5785,10 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc, +@@ -5785,10 +5785,10 @@ static int ironlake_crtc_mode_set(struct if (intel_crtc->config.has_pch_encoder) { pll = intel_crtc_to_shared_dpll(intel_crtc); @@ -159,7 +151,7 @@ index 3e5eeb0b5dec..cbe2a077a822 100644 udelay(150); /* The pixel multiplier can only be updated once the -@@ -5796,13 +5796,13 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc, +@@ -5796,13 +5796,13 @@ static int ironlake_crtc_mode_set(struct * * So write it again. */ @@ -176,7 +168,7 @@ index 3e5eeb0b5dec..cbe2a077a822 100644 } } -@@ -8771,9 +8771,6 @@ static void ibx_pch_dpll_init(struct drm_device *dev) +@@ -8771,9 +8771,6 @@ static void ibx_pch_dpll_init(struct drm for (i = 0; i < dev_priv->num_shared_dpll; i++) { dev_priv->shared_dplls[i].id = i; dev_priv->shared_dplls[i].name = ibx_pch_dpll_names[i]; @@ -186,6 +178,3 @@ index 3e5eeb0b5dec..cbe2a077a822 100644 } } --- -1.8.5.rc3 - diff --git a/patches.baytrail/0319-drm-i915-add-struct-i915_ctx_hang_stats.patch b/patches.baytrail/0319-drm-i915-add-struct-i915_ctx_hang_stats.patch index 98406176eb939..469939d6dc936 100644 --- a/patches.baytrail/0319-drm-i915-add-struct-i915_ctx_hang_stats.patch +++ b/patches.baytrail/0319-drm-i915-add-struct-i915_ctx_hang_stats.patch @@ -22,7 +22,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c -@@ -1790,7 +1790,7 @@ int i915_driver_open(struct drm_device * +@@ -1791,7 +1791,7 @@ int i915_driver_open(struct drm_device * struct drm_i915_file_private *file_priv; DRM_DEBUG_DRIVER("\n"); diff --git a/patches.baytrail/0327-drm-i915-explicitly-set-up-PIPECONF-and-gamma-table-.patch b/patches.baytrail/0327-drm-i915-explicitly-set-up-PIPECONF-and-gamma-table-.patch index caef9d4002aff..0de913e4224e6 100644 --- a/patches.baytrail/0327-drm-i915-explicitly-set-up-PIPECONF-and-gamma-table-.patch +++ b/patches.baytrail/0327-drm-i915-explicitly-set-up-PIPECONF-and-gamma-table-.patch @@ -22,15 +22,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 3eff4faa9f59c581538663e3f42b9e16210cafd0) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 6 +++--- - drivers/gpu/drm/i915/intel_display.c | 7 ++++--- + drivers/gpu/drm/i915/i915_reg.h | 6 +++--- + drivers/gpu/drm/i915/intel_display.c | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index da456bc4c35a..a2fe7efe0701 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -3678,9 +3678,9 @@ +@@ -3682,9 +3682,9 @@ #define _GAMMA_MODE_B 0x4ac80 #define GAMMA_MODE(pipe) _PIPE(pipe, _GAMMA_MODE_A, _GAMMA_MODE_B) #define GAMMA_MODE_MODE_MASK (3 << 0) @@ -43,11 +41,9 @@ index da456bc4c35a..a2fe7efe0701 100644 #define GAMMA_MODE_MODE_SPLIT (3 << 0) /* interrupts */ -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 0d23d7bfc884..24c8384228b6 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -5437,13 +5437,11 @@ static void haswell_set_pipeconf(struct drm_crtc *crtc) +@@ -5437,13 +5437,11 @@ static void haswell_set_pipeconf(struct enum transcoder cpu_transcoder = intel_crtc->config.cpu_transcoder; uint32_t val; @@ -62,7 +58,7 @@ index 0d23d7bfc884..24c8384228b6 100644 if (intel_crtc->config.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE) val |= PIPECONF_INTERLACED_ILK; else -@@ -5451,6 +5449,9 @@ static void haswell_set_pipeconf(struct drm_crtc *crtc) +@@ -5451,6 +5449,9 @@ static void haswell_set_pipeconf(struct I915_WRITE(PIPECONF(cpu_transcoder), val); POSTING_READ(PIPECONF(cpu_transcoder)); @@ -72,6 +68,3 @@ index 0d23d7bfc884..24c8384228b6 100644 } static bool ironlake_compute_clocks(struct drm_crtc *crtc, --- -1.8.5.rc3 - diff --git a/patches.baytrail/0334-drm-i915-don-t-check-encoder-at-DP-connector-destroy.patch b/patches.baytrail/0334-drm-i915-don-t-check-encoder-at-DP-connector-destroy.patch index 6944195b85edf..f3c87de3adbaf 100644 --- a/patches.baytrail/0334-drm-i915-don-t-check-encoder-at-DP-connector-destroy.patch +++ b/patches.baytrail/0334-drm-i915-don-t-check-encoder-at-DP-connector-destroy.patch @@ -18,14 +18,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit acd8db100ed5220fe8043f91cdc20155325542a9) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_dp.c | 5 +++-- + drivers/gpu/drm/i915/intel_dp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 0066c2314e1f..532197981bd7 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -2694,13 +2694,14 @@ done: +@@ -2710,13 +2710,14 @@ done: static void intel_dp_destroy(struct drm_connector *connector) { @@ -42,6 +40,3 @@ index 0066c2314e1f..532197981bd7 100644 intel_panel_fini(&intel_connector->panel); drm_sysfs_connector_remove(connector); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0335-drm-i915-extract-intel_edp_init_connector.patch b/patches.baytrail/0335-drm-i915-extract-intel_edp_init_connector.patch index d5048a42b4138..18b7c810991a3 100644 --- a/patches.baytrail/0335-drm-i915-extract-intel_edp_init_connector.patch +++ b/patches.baytrail/0335-drm-i915-extract-intel_edp_init_connector.patch @@ -12,14 +12,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit ed92f0b239ac971edc509169ae3d6955fbe0a188) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_dp.c | 151 ++++++++++++++++++++++------------------ + drivers/gpu/drm/i915/intel_dp.c | 151 +++++++++++++++++++++------------------- 1 file changed, 82 insertions(+), 69 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 532197981bd7..b307befdbdb0 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -2966,6 +2966,86 @@ intel_dp_init_panel_power_sequencer_registers(struct drm_device *dev, +@@ -2982,6 +2982,86 @@ intel_dp_init_panel_power_sequencer_regi I915_READ(pp_div_reg)); } @@ -106,7 +104,7 @@ index 532197981bd7..b307befdbdb0 100644 void intel_dp_init_connector(struct intel_digital_port *intel_dig_port, struct intel_connector *intel_connector) -@@ -2975,8 +3055,6 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, +@@ -2991,8 +3071,6 @@ intel_dp_init_connector(struct intel_dig struct intel_encoder *intel_encoder = &intel_dig_port->base; struct drm_device *dev = intel_encoder->base.dev; struct drm_i915_private *dev_priv = dev->dev_private; @@ -115,7 +113,7 @@ index 532197981bd7..b307befdbdb0 100644 enum port port = intel_dig_port->port; const char *name = NULL; int type; -@@ -3077,75 +3155,10 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, +@@ -3093,75 +3171,10 @@ intel_dp_init_connector(struct intel_dig BUG(); } @@ -193,6 +191,3 @@ index 532197981bd7..b307befdbdb0 100644 intel_dp_add_properties(intel_dp, connector); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0336-drm-i915-propagate-errors-from-intel_dp_init_connect.patch b/patches.baytrail/0336-drm-i915-propagate-errors-from-intel_dp_init_connect.patch index 9a40f34287ca0..01723dc760c0c 100644 --- a/patches.baytrail/0336-drm-i915-propagate-errors-from-intel_dp_init_connect.patch +++ b/patches.baytrail/0336-drm-i915-propagate-errors-from-intel_dp_init_connect.patch @@ -42,7 +42,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> hdmi_connector = kzalloc(sizeof(struct intel_connector), --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -3046,7 +3046,7 @@ static bool intel_edp_init_connector(str +@@ -3062,7 +3062,7 @@ static bool intel_edp_init_connector(str return true; } @@ -51,7 +51,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> intel_dp_init_connector(struct intel_digital_port *intel_dig_port, struct intel_connector *intel_connector) { -@@ -3158,7 +3158,7 @@ intel_dp_init_connector(struct intel_dig +@@ -3174,7 +3174,7 @@ intel_dp_init_connector(struct intel_dig intel_dp_i2c_init(intel_dp, intel_connector, name); if (!intel_edp_init_connector(intel_dp, intel_connector)) @@ -60,7 +60,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> intel_dp_add_properties(intel_dp, connector); -@@ -3170,6 +3170,8 @@ intel_dp_init_connector(struct intel_dig +@@ -3186,6 +3186,8 @@ intel_dp_init_connector(struct intel_dig u32 temp = I915_READ(PEG_BAND_GAP_DATA); I915_WRITE(PEG_BAND_GAP_DATA, (temp & ~0xf) | 0xd); } diff --git a/patches.baytrail/0337-drm-i915-fix-the-ghost-eDP-connector-unwind-path.patch b/patches.baytrail/0337-drm-i915-fix-the-ghost-eDP-connector-unwind-path.patch index 7d01f5b68d509..530798721622f 100644 --- a/patches.baytrail/0337-drm-i915-fix-the-ghost-eDP-connector-unwind-path.patch +++ b/patches.baytrail/0337-drm-i915-fix-the-ghost-eDP-connector-unwind-path.patch @@ -47,7 +47,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> hdmi_connector = kzalloc(sizeof(struct intel_connector), --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -2998,7 +2998,6 @@ static bool intel_edp_init_connector(str +@@ -3014,7 +3014,6 @@ static bool intel_edp_init_connector(str /* if this fails, presume the device is a ghost */ DRM_INFO("failed to retrieve link info, disabling eDP\n"); intel_dp_encoder_destroy(&intel_dig_port->base.base); @@ -55,7 +55,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> return false; } -@@ -3157,8 +3156,11 @@ intel_dp_init_connector(struct intel_dig +@@ -3173,8 +3172,11 @@ intel_dp_init_connector(struct intel_dig intel_dp_i2c_init(intel_dp, intel_connector, name); @@ -68,7 +68,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> intel_dp_add_properties(intel_dp, connector); -@@ -3217,5 +3219,6 @@ intel_dp_init(struct drm_device *dev, in +@@ -3233,5 +3235,6 @@ intel_dp_init(struct drm_device *dev, in intel_encoder->cloneable = false; intel_encoder->hot_plug = intel_dp_hot_plug; diff --git a/patches.baytrail/0338-drm-i915-fix-the-ghost-eDP-encoder-unwind-path.patch b/patches.baytrail/0338-drm-i915-fix-the-ghost-eDP-encoder-unwind-path.patch index 0bae0607b510a..c127a2e10e645 100644 --- a/patches.baytrail/0338-drm-i915-fix-the-ghost-eDP-encoder-unwind-path.patch +++ b/patches.baytrail/0338-drm-i915-fix-the-ghost-eDP-encoder-unwind-path.patch @@ -47,7 +47,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> } --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -2997,7 +2997,6 @@ static bool intel_edp_init_connector(str +@@ -3013,7 +3013,6 @@ static bool intel_edp_init_connector(str } else { /* if this fails, presume the device is a ghost */ DRM_INFO("failed to retrieve link info, disabling eDP\n"); @@ -55,7 +55,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> return false; } -@@ -3157,6 +3156,13 @@ intel_dp_init_connector(struct intel_dig +@@ -3173,6 +3172,13 @@ intel_dp_init_connector(struct intel_dig intel_dp_i2c_init(intel_dp, intel_connector, name); if (!intel_edp_init_connector(intel_dp, intel_connector)) { @@ -69,7 +69,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); return false; -@@ -3219,6 +3225,9 @@ intel_dp_init(struct drm_device *dev, in +@@ -3235,6 +3241,9 @@ intel_dp_init(struct drm_device *dev, in intel_encoder->cloneable = false; intel_encoder->hot_plug = intel_dp_hot_plug; diff --git a/patches.baytrail/0339-drm-i915-check-the-return-value-of-intel_dp_i2c_init.patch b/patches.baytrail/0339-drm-i915-check-the-return-value-of-intel_dp_i2c_init.patch index c079d1b392132..2b601d7f17a02 100644 --- a/patches.baytrail/0339-drm-i915-check-the-return-value-of-intel_dp_i2c_init.patch +++ b/patches.baytrail/0339-drm-i915-check-the-return-value-of-intel_dp_i2c_init.patch @@ -12,14 +12,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit b2a1475561d59e8d182ba8cc4b7e78b662a3f533) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_dp.c | 6 ++++-- + drivers/gpu/drm/i915/intel_dp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 0cd390ef6f0e..ddc06bef70e5 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -3055,7 +3055,7 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, +@@ -3071,7 +3071,7 @@ intel_dp_init_connector(struct intel_dig struct drm_i915_private *dev_priv = dev->dev_private; enum port port = intel_dig_port->port; const char *name = NULL; @@ -28,7 +26,7 @@ index 0cd390ef6f0e..ddc06bef70e5 100644 /* Preserve the current hw state. */ intel_dp->DP = I915_READ(intel_dp->output_reg); -@@ -3153,7 +3153,9 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, +@@ -3169,7 +3169,9 @@ intel_dp_init_connector(struct intel_dig BUG(); } @@ -39,6 +37,3 @@ index 0cd390ef6f0e..ddc06bef70e5 100644 if (!intel_edp_init_connector(intel_dp, intel_connector)) { i2c_del_adapter(&intel_dp->adapter); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0340-drm-i915-rename-intel_dp_destroy-to-intel_dp_connect.patch b/patches.baytrail/0340-drm-i915-rename-intel_dp_destroy-to-intel_dp_connect.patch index 0c6157f7dd1b6..e7658e2066d1f 100644 --- a/patches.baytrail/0340-drm-i915-rename-intel_dp_destroy-to-intel_dp_connect.patch +++ b/patches.baytrail/0340-drm-i915-rename-intel_dp_destroy-to-intel_dp_connect.patch @@ -14,14 +14,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 73845adf3357c3c71da25e18f44e5a9924d666d5) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_dp.c | 4 ++-- + drivers/gpu/drm/i915/intel_dp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index ddc06bef70e5..0f7e9094098d 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -2692,7 +2692,7 @@ done: +@@ -2708,7 +2708,7 @@ done: } static void @@ -30,7 +28,7 @@ index ddc06bef70e5..0f7e9094098d 100644 { struct intel_connector *intel_connector = to_intel_connector(connector); -@@ -2735,7 +2735,7 @@ static const struct drm_connector_funcs intel_dp_connector_funcs = { +@@ -2751,7 +2751,7 @@ static const struct drm_connector_funcs .detect = intel_dp_detect, .fill_modes = drm_helper_probe_single_connector_modes, .set_property = intel_dp_set_property, @@ -39,6 +37,3 @@ index ddc06bef70e5..0f7e9094098d 100644 }; static const struct drm_connector_helper_funcs intel_dp_connector_helper_funcs = { --- -1.8.5.rc3 - diff --git a/patches.baytrail/0357-drm-i915-Fix-VLV-sprite-register-offsets.patch b/patches.baytrail/0357-drm-i915-Fix-VLV-sprite-register-offsets.patch index 7954c8ee110ff..984272a5f679a 100644 --- a/patches.baytrail/0357-drm-i915-Fix-VLV-sprite-register-offsets.patch +++ b/patches.baytrail/0357-drm-i915-Fix-VLV-sprite-register-offsets.patch @@ -15,14 +15,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 921c3b677bf6340cd92800fb99350532674dea29) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 50 ++++++++++++++++++++--------------------- - 1 file changed, 25 insertions(+), 25 deletions(-) + drivers/gpu/drm/i915/i915_reg.h | 48 ++++++++++++++++++++-------------------- + 1 file changed, 24 insertions(+), 24 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 13dd0731dbd7..342f1f336168 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -3494,7 +3494,7 @@ +@@ -3498,7 +3498,7 @@ #define SPRGAMC(pipe) _PIPE(pipe, _SPRA_GAMC, _SPRB_GAMC) #define SPRSURFLIVE(pipe) _PIPE(pipe, _SPRA_SURFLIVE, _SPRB_SURFLIVE) @@ -31,7 +29,7 @@ index 13dd0731dbd7..342f1f336168 100644 #define SP_ENABLE (1<<31) #define SP_GEAMMA_ENABLE (1<<30) #define SP_PIXFORMAT_MASK (0xf<<26) -@@ -3513,30 +3513,30 @@ +@@ -3517,30 +3517,30 @@ #define SP_YUV_ORDER_YVYU (2<<16) #define SP_YUV_ORDER_VYUY (3<<16) #define SP_TILED (1<<10) @@ -46,7 +44,18 @@ index 13dd0731dbd7..342f1f336168 100644 -#define _SPATILEOFF 0x721a4 -#define _SPACONSTALPHA 0x721a8 -#define _SPAGAMC 0x721f4 -- ++#define _SPALINOFF (VLV_DISPLAY_BASE + 0x72184) ++#define _SPASTRIDE (VLV_DISPLAY_BASE + 0x72188) ++#define _SPAPOS (VLV_DISPLAY_BASE + 0x7218c) ++#define _SPASIZE (VLV_DISPLAY_BASE + 0x72190) ++#define _SPAKEYMINVAL (VLV_DISPLAY_BASE + 0x72194) ++#define _SPAKEYMSK (VLV_DISPLAY_BASE + 0x72198) ++#define _SPASURF (VLV_DISPLAY_BASE + 0x7219c) ++#define _SPAKEYMAXVAL (VLV_DISPLAY_BASE + 0x721a0) ++#define _SPATILEOFF (VLV_DISPLAY_BASE + 0x721a4) ++#define _SPACONSTALPHA (VLV_DISPLAY_BASE + 0x721a8) ++#define _SPAGAMC (VLV_DISPLAY_BASE + 0x721f4) + -#define _SPBCNTR 0x72280 -#define _SPBLINOFF 0x72284 -#define _SPBSTRIDE 0x72288 @@ -59,18 +68,6 @@ index 13dd0731dbd7..342f1f336168 100644 -#define _SPBTILEOFF 0x722a4 -#define _SPBCONSTALPHA 0x722a8 -#define _SPBGAMC 0x722f4 -+#define _SPALINOFF (VLV_DISPLAY_BASE + 0x72184) -+#define _SPASTRIDE (VLV_DISPLAY_BASE + 0x72188) -+#define _SPAPOS (VLV_DISPLAY_BASE + 0x7218c) -+#define _SPASIZE (VLV_DISPLAY_BASE + 0x72190) -+#define _SPAKEYMINVAL (VLV_DISPLAY_BASE + 0x72194) -+#define _SPAKEYMSK (VLV_DISPLAY_BASE + 0x72198) -+#define _SPASURF (VLV_DISPLAY_BASE + 0x7219c) -+#define _SPAKEYMAXVAL (VLV_DISPLAY_BASE + 0x721a0) -+#define _SPATILEOFF (VLV_DISPLAY_BASE + 0x721a4) -+#define _SPACONSTALPHA (VLV_DISPLAY_BASE + 0x721a8) -+#define _SPAGAMC (VLV_DISPLAY_BASE + 0x721f4) -+ +#define _SPBCNTR (VLV_DISPLAY_BASE + 0x72280) +#define _SPBLINOFF (VLV_DISPLAY_BASE + 0x72284) +#define _SPBSTRIDE (VLV_DISPLAY_BASE + 0x72288) @@ -86,6 +83,3 @@ index 13dd0731dbd7..342f1f336168 100644 #define SPCNTR(pipe, plane) _PIPE(pipe * 2 + plane, _SPACNTR, _SPBCNTR) #define SPLINOFF(pipe, plane) _PIPE(pipe * 2 + plane, _SPALINOFF, _SPBLINOFF) --- -1.8.5.rc3 - diff --git a/patches.baytrail/0369-drm-i915-reinit-status-page-registers-after-gpu-rese.patch b/patches.baytrail/0369-drm-i915-reinit-status-page-registers-after-gpu-rese.patch index 4f3a57528ce7f..88855cba560bf 100644 --- a/patches.baytrail/0369-drm-i915-reinit-status-page-registers-after-gpu-rese.patch +++ b/patches.baytrail/0369-drm-i915-reinit-status-page-registers-after-gpu-rese.patch @@ -29,14 +29,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 035dc1e0f9008b48630e02bf0eaa7cc547416d1d) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_ringbuffer.c | 29 +++++++++++++++++++---------- + drivers/gpu/drm/i915/intel_ringbuffer.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index a81647023139..079ef0129e74 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -379,6 +379,17 @@ u32 intel_ring_get_active_head(struct intel_ring_buffer *ring) +@@ -379,6 +379,17 @@ u32 intel_ring_get_active_head(struct in return I915_READ(acthd_reg); } @@ -54,7 +52,7 @@ index a81647023139..079ef0129e74 100644 static int init_ring_common(struct intel_ring_buffer *ring) { struct drm_device *dev = ring->dev; -@@ -390,6 +401,11 @@ static int init_ring_common(struct intel_ring_buffer *ring) +@@ -390,6 +401,11 @@ static int init_ring_common(struct intel if (HAS_FORCE_WAKE(dev)) gen6_gt_force_wake_get(dev_priv); @@ -66,7 +64,7 @@ index a81647023139..079ef0129e74 100644 /* Stop the ring if it's running. */ I915_WRITE_CTL(ring, 0); I915_WRITE_HEAD(ring, 0); -@@ -1234,7 +1250,6 @@ static int init_status_page(struct intel_ring_buffer *ring) +@@ -1234,7 +1250,6 @@ static int init_status_page(struct intel ring->status_page.obj = obj; memset(ring->status_page.page_addr, 0, PAGE_SIZE); @@ -86,7 +84,7 @@ index a81647023139..079ef0129e74 100644 if (!dev_priv->status_page_dmah) { dev_priv->status_page_dmah = -@@ -1260,11 +1274,6 @@ static int init_phys_hws_pga(struct intel_ring_buffer *ring) +@@ -1260,11 +1274,6 @@ static int init_phys_hws_pga(struct inte return -ENOMEM; } @@ -98,7 +96,7 @@ index a81647023139..079ef0129e74 100644 ring->status_page.page_addr = dev_priv->status_page_dmah->vaddr; memset(ring->status_page.page_addr, 0, PAGE_SIZE); -@@ -1292,7 +1301,7 @@ static int intel_init_ring_buffer(struct drm_device *dev, +@@ -1292,7 +1301,7 @@ static int intel_init_ring_buffer(struct return ret; } else { BUG_ON(ring->id != RCS); @@ -107,7 +105,7 @@ index a81647023139..079ef0129e74 100644 if (ret) return ret; } -@@ -1904,7 +1913,7 @@ int intel_render_ring_init_dri(struct drm_device *dev, u64 start, u32 size) +@@ -1908,7 +1917,7 @@ int intel_render_ring_init_dri(struct dr } if (!I915_NEED_GFX_HWS(dev)) { @@ -116,6 +114,3 @@ index a81647023139..079ef0129e74 100644 if (ret) return ret; } --- -1.8.5.rc3 - diff --git a/patches.baytrail/0411-drm-i915-Move-gtt_mtrr-to-i915_gtt.patch b/patches.baytrail/0411-drm-i915-Move-gtt_mtrr-to-i915_gtt.patch index 4c5edbcb50dfd..cbf11a078629a 100644 --- a/patches.baytrail/0411-drm-i915-Move-gtt_mtrr-to-i915_gtt.patch +++ b/patches.baytrail/0411-drm-i915-Move-gtt_mtrr-to-i915_gtt.patch @@ -30,8 +30,8 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> /* The i915 workqueue is primarily used for batched retirement of * requests (and thus managing bo) once the task has been completed -@@ -1677,7 +1677,7 @@ out_gem_unload: - intel_teardown_mchbar(dev); +@@ -1678,7 +1678,7 @@ out_gem_unload: + pm_qos_remove_request(&dev_priv->pm_qos); destroy_workqueue(dev_priv->wq); out_mtrrfree: - arch_phys_wc_del(dev_priv->mm.gtt_mtrr); @@ -39,7 +39,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> io_mapping_free(dev_priv->gtt.mappable); dev_priv->gtt.gtt_remove(dev); out_rmmap: -@@ -1715,7 +1715,7 @@ int i915_driver_unload(struct drm_device +@@ -1716,7 +1716,7 @@ int i915_driver_unload(struct drm_device cancel_delayed_work_sync(&dev_priv->mm.retire_work); io_mapping_free(dev_priv->gtt.mappable); diff --git a/patches.baytrail/0444-drm-i915-improve-SERR_INT-clearing-for-fifo-underrun.patch b/patches.baytrail/0444-drm-i915-improve-SERR_INT-clearing-for-fifo-underrun.patch index eb1aa1f390018..9d7797a7312cd 100644 --- a/patches.baytrail/0444-drm-i915-improve-SERR_INT-clearing-for-fifo-underrun.patch +++ b/patches.baytrail/0444-drm-i915-improve-SERR_INT-clearing-for-fifo-underrun.patch @@ -48,15 +48,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 1dd246fb165819d31119e988c2887934c255fadc) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_irq.c | 17 +++++++++++++---- - drivers/gpu/drm/i915/i915_reg.h | 1 + + drivers/gpu/drm/i915/i915_irq.c | 17 +++++++++++++---- + drivers/gpu/drm/i915/i915_reg.h | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index 079408a56c4e..d41b7a87c129 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -217,16 +217,25 @@ static void cpt_set_fifo_underrun_reporting(struct drm_device *dev, +@@ -217,16 +217,25 @@ static void cpt_set_fifo_underrun_report struct drm_i915_private *dev_priv = dev->dev_private; if (enable) { @@ -86,11 +84,9 @@ index 079408a56c4e..d41b7a87c129 100644 } } -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 0f604881a3b4..beb5d119b7e6 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -3890,6 +3890,7 @@ +@@ -3894,6 +3894,7 @@ #define SERR_INT_TRANS_C_FIFO_UNDERRUN (1<<6) #define SERR_INT_TRANS_B_FIFO_UNDERRUN (1<<3) #define SERR_INT_TRANS_A_FIFO_UNDERRUN (1<<0) @@ -98,6 +94,3 @@ index 0f604881a3b4..beb5d119b7e6 100644 /* digital port hotplug */ #define PCH_PORT_HOTPLUG 0xc4030 /* SHOTPLUG_CTL */ --- -1.8.5.rc3 - diff --git a/patches.baytrail/0452-drm-i915-don-t-enable-PM_VEBOX_CS_ERROR_INTERRUPT.patch b/patches.baytrail/0452-drm-i915-don-t-enable-PM_VEBOX_CS_ERROR_INTERRUPT.patch index dffb21cacb39b..c81899eab2160 100644 --- a/patches.baytrail/0452-drm-i915-don-t-enable-PM_VEBOX_CS_ERROR_INTERRUPT.patch +++ b/patches.baytrail/0452-drm-i915-don-t-enable-PM_VEBOX_CS_ERROR_INTERRUPT.patch @@ -25,15 +25,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit c0d6a3dd61d46a640ead0a9d38b78ca22d37a304) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_irq.c | 3 +-- - drivers/gpu/drm/i915/intel_ringbuffer.c | 3 +-- + drivers/gpu/drm/i915/i915_irq.c | 3 +-- + drivers/gpu/drm/i915/intel_ringbuffer.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index 2da9e68db4f3..f77e87365480 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -2860,8 +2860,7 @@ static int ivybridge_irq_postinstall(struct drm_device *dev) +@@ -2860,8 +2860,7 @@ static int ivybridge_irq_postinstall(str I915_WRITE(GEN6_PMIIR, I915_READ(GEN6_PMIIR)); if (HAS_VEBOX(dev)) @@ -43,11 +41,9 @@ index 2da9e68db4f3..f77e87365480 100644 /* Our enable/disable rps functions may touch these registers so * make sure to set a known state for only the non-RPS bits. -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index e97a7a0455c2..bc78c794ae81 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -2020,8 +2020,7 @@ int intel_init_vebox_ring_buffer(struct drm_device *dev) +@@ -2024,8 +2024,7 @@ int intel_init_vebox_ring_buffer(struct ring->add_request = gen6_add_request; ring->get_seqno = gen6_ring_get_seqno; ring->set_seqno = ring_set_seqno; @@ -57,6 +53,3 @@ index e97a7a0455c2..bc78c794ae81 100644 ring->irq_get = hsw_vebox_get_irq; ring->irq_put = hsw_vebox_put_irq; ring->dispatch_execbuffer = gen6_ring_dispatch_execbuffer; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0460-drm-i915-Define-some-of-the-eLLC-magic.patch b/patches.baytrail/0460-drm-i915-Define-some-of-the-eLLC-magic.patch index 215603f8a54d6..98a00e201ab43 100644 --- a/patches.baytrail/0460-drm-i915-Define-some-of-the-eLLC-magic.patch +++ b/patches.baytrail/0460-drm-i915-Define-some-of-the-eLLC-magic.patch @@ -12,12 +12,10 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 05e21cc43da5a1a58b34a2cfad13d22bcfeb1f2b) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_gem.c | 4 ++-- - drivers/gpu/drm/i915/i915_reg.h | 4 ++++ + drivers/gpu/drm/i915/i915_gem.c | 4 ++-- + drivers/gpu/drm/i915/i915_reg.h | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c -index 5846134574f1..a7039e69395b 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -4131,8 +4131,8 @@ i915_gem_init_hw(struct drm_device *dev) @@ -31,11 +29,9 @@ index 5846134574f1..a7039e69395b 100644 if (HAS_PCH_NOP(dev)) { u32 temp = I915_READ(GEN7_MSG_CTL); -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index b131773190f3..9fb32dfbfeb9 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4480,6 +4480,10 @@ +@@ -4484,6 +4484,10 @@ #define GT_FIFO_FREE_ENTRIES 0x120008 #define GT_FIFO_NUM_RESERVED_ENTRIES 20 @@ -46,6 +42,3 @@ index b131773190f3..9fb32dfbfeb9 100644 #define GEN6_UCGCTL1 0x9400 # define GEN6_BLBUNIT_CLOCK_GATE_DISABLE (1 << 5) # define GEN6_CSUNIT_CLOCK_GATE_DISABLE (1 << 7) --- -1.8.5.rc3 - diff --git a/patches.baytrail/0476-drm-i915-Move-gtt-and-ppgtt-under-address-space-umbr.patch b/patches.baytrail/0476-drm-i915-Move-gtt-and-ppgtt-under-address-space-umbr.patch index 239a4f438c636..3673d62a21f7f 100644 --- a/patches.baytrail/0476-drm-i915-Move-gtt-and-ppgtt-under-address-space-umbr.patch +++ b/patches.baytrail/0476-drm-i915-Move-gtt-and-ppgtt-under-address-space-umbr.patch @@ -52,7 +52,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> list_for_each_entry_reverse(file, &dev->filelist, lhead) { --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c -@@ -1683,7 +1683,7 @@ out_gem_unload: +@@ -1684,7 +1684,7 @@ out_gem_unload: out_mtrrfree: arch_phys_wc_del(dev_priv->gtt.mtrr); io_mapping_free(dev_priv->gtt.mappable); @@ -61,7 +61,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> out_rmmap: pci_iounmap(dev->pdev, dev_priv->regs); put_bridge: -@@ -1778,7 +1778,7 @@ int i915_driver_unload(struct drm_device +@@ -1779,7 +1779,7 @@ int i915_driver_unload(struct drm_device destroy_workqueue(dev_priv->wq); pm_qos_remove_request(&dev_priv->pm_qos); diff --git a/patches.baytrail/0477-drm-i915-Put-the-mm-in-the-parent-address-space.patch b/patches.baytrail/0477-drm-i915-Put-the-mm-in-the-parent-address-space.patch index 03de74b708998..6da9ed5732370 100644 --- a/patches.baytrail/0477-drm-i915-Put-the-mm-in-the-parent-address-space.patch +++ b/patches.baytrail/0477-drm-i915-Put-the-mm-in-the-parent-address-space.patch @@ -38,7 +38,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> cleanup_irq: drm_irq_uninstall(dev); cleanup_gem_stolen: -@@ -1768,7 +1768,7 @@ int i915_driver_unload(struct drm_device +@@ -1769,7 +1769,7 @@ int i915_driver_unload(struct drm_device i915_free_hws(dev); } diff --git a/patches.baytrail/0478-drm-i915-Create-a-global-list-of-vms.patch b/patches.baytrail/0478-drm-i915-Create-a-global-list-of-vms.patch index b56569b0856aa..c0801df0c9ef3 100644 --- a/patches.baytrail/0478-drm-i915-Create-a-global-list-of-vms.patch +++ b/patches.baytrail/0478-drm-i915-Create-a-global-list-of-vms.patch @@ -35,7 +35,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> if (i915_get_bridge_dev(dev)) { ret = -EIO; goto free_priv; -@@ -1768,6 +1772,8 @@ int i915_driver_unload(struct drm_device +@@ -1769,6 +1773,8 @@ int i915_driver_unload(struct drm_device i915_free_hws(dev); } diff --git a/patches.baytrail/0485-drm-i915-Enable-Disable-PSR.patch b/patches.baytrail/0485-drm-i915-Enable-Disable-PSR.patch index fd2b56012c68b..a96d1e2c40dc9 100644 --- a/patches.baytrail/0485-drm-i915-Enable-Disable-PSR.patch +++ b/patches.baytrail/0485-drm-i915-Enable-Disable-PSR.patch @@ -41,13 +41,11 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 2b28bb1b6440fadececc4cf8f29c55d510c6db09) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 42 +++++++++++ - drivers/gpu/drm/i915/intel_dp.c | 149 +++++++++++++++++++++++++++++++++++++++ - drivers/gpu/drm/i915/intel_drv.h | 4 ++ + drivers/gpu/drm/i915/i915_reg.h | 42 ++++++++++ + drivers/gpu/drm/i915/intel_dp.c | 149 +++++++++++++++++++++++++++++++++++++++ + drivers/gpu/drm/i915/intel_drv.h | 4 + 3 files changed, 195 insertions(+) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 9fb32dfbfeb9..780a5dc9c131 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -1781,6 +1781,47 @@ @@ -98,7 +96,7 @@ index 9fb32dfbfeb9..780a5dc9c131 100644 /* VGA port control */ #define ADPA 0x61100 #define PCH_ADPA 0xe1100 -@@ -2056,6 +2097,7 @@ +@@ -2060,6 +2101,7 @@ * (Haswell and newer) to see which VIDEO_DIP_DATA byte corresponds to each byte * of the infoframe structure specified by CEA-861. */ #define VIDEO_DIP_DATA_SIZE 32 @@ -106,11 +104,9 @@ index 9fb32dfbfeb9..780a5dc9c131 100644 #define VIDEO_DIP_CTL 0x61170 /* Pre HSW: */ #define VIDEO_DIP_ENABLE (1 << 31) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index be6b47140e09..6f2e558b475c 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -1394,6 +1394,153 @@ static bool is_edp_psr(struct intel_dp *intel_dp) +@@ -1394,6 +1394,153 @@ static bool is_edp_psr(struct intel_dp * intel_dp->psr_dpcd[0] & DP_PSR_IS_SUPPORTED; } @@ -264,7 +260,7 @@ index be6b47140e09..6f2e558b475c 100644 static void intel_disable_dp(struct intel_encoder *encoder) { struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); -@@ -3205,6 +3352,8 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, +@@ -3221,6 +3368,8 @@ intel_dp_init_connector(struct intel_dig WARN(error, "intel_dp_i2c_init failed with error %d for port %c\n", error, port_name(port)); @@ -273,8 +269,6 @@ index be6b47140e09..6f2e558b475c 100644 if (!intel_edp_init_connector(intel_dp, intel_connector)) { i2c_del_adapter(&intel_dp->adapter); if (is_edp(intel_dp)) { -diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h -index fdb71b445bf9..9b0ac47a565e 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -499,6 +499,7 @@ struct intel_dp { @@ -285,7 +279,7 @@ index fdb71b445bf9..9b0ac47a565e 100644 struct intel_connector *attached_connector; }; -@@ -834,4 +835,7 @@ extern bool intel_set_pch_fifo_underrun_reporting(struct drm_device *dev, +@@ -834,4 +835,7 @@ extern bool intel_set_pch_fifo_underrun_ enum transcoder pch_transcoder, bool enable); @@ -293,6 +287,3 @@ index fdb71b445bf9..9b0ac47a565e 100644 +extern void intel_edp_psr_disable(struct intel_dp *intel_dp); + #endif /* __INTEL_DRV_H__ */ --- -1.8.5.rc3 - diff --git a/patches.baytrail/0487-drm-i915-Match-all-PSR-mode-entry-conditions-before-.patch b/patches.baytrail/0487-drm-i915-Match-all-PSR-mode-entry-conditions-before-.patch index ad1644525fb39..1679a8476a3ac 100644 --- a/patches.baytrail/0487-drm-i915-Match-all-PSR-mode-entry-conditions-before-.patch +++ b/patches.baytrail/0487-drm-i915-Match-all-PSR-mode-entry-conditions-before-.patch @@ -24,17 +24,15 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 3f51e4713fc57ab0fc225c3f0e67578a53c24a11) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_debugfs.c | 42 ++++++++++++++++++++--- - drivers/gpu/drm/i915/i915_drv.h | 13 +++++++ - drivers/gpu/drm/i915/i915_reg.h | 7 ++++ - drivers/gpu/drm/i915/intel_dp.c | 67 ++++++++++++++++++++++++++++++++++++- + drivers/gpu/drm/i915/i915_debugfs.c | 42 +++++++++++++++++++--- + drivers/gpu/drm/i915/i915_drv.h | 13 ++++++ + drivers/gpu/drm/i915/i915_reg.h | 7 +++ + drivers/gpu/drm/i915/intel_dp.c | 67 +++++++++++++++++++++++++++++++++++- 4 files changed, 123 insertions(+), 6 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c -index 65619e6fde86..973f2727d703 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c -@@ -1550,17 +1550,49 @@ static int i915_edp_psr_status(struct seq_file *m, void *data) +@@ -1550,17 +1550,49 @@ static int i915_edp_psr_status(struct se struct drm_info_node *node = m->private; struct drm_device *dev = node->minor->dev; struct drm_i915_private *dev_priv = dev->dev_private; @@ -89,8 +87,6 @@ index 65619e6fde86..973f2727d703 100644 psrstat = I915_READ(EDP_PSR_STATUS_CTL); seq_puts(m, "PSR Current State: "); -diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h -index d972025bff14..6d8dc7475536 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -593,6 +593,17 @@ struct i915_fbc { @@ -120,11 +116,9 @@ index d972025bff14..6d8dc7475536 100644 struct i915_gpu_error gpu_error; struct drm_i915_gem_object *vlv_pctx; -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 918597035b62..6f2df01d8562 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4158,6 +4158,13 @@ +@@ -4162,6 +4162,13 @@ #define HSW_TVIDEO_DIP_VSC_DATA(trans) \ _TRANSCODER(trans, HSW_VIDEO_DIP_VSC_DATA_A, HSW_VIDEO_DIP_VSC_DATA_B) @@ -138,11 +132,9 @@ index 918597035b62..6f2df01d8562 100644 #define _PCH_TRANS_HTOTAL_B 0xe1000 #define _PCH_TRANS_HBLANK_B 0xe1004 #define _PCH_TRANS_HSYNC_B 0xe1008 -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 6f2e558b475c..070dc55c10d4 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -1508,11 +1508,76 @@ static void intel_edp_psr_enable_source(struct intel_dp *intel_dp) +@@ -1508,11 +1508,76 @@ static void intel_edp_psr_enable_source( EDP_PSR_ENABLE); } @@ -220,6 +212,3 @@ index 6f2e558b475c..070dc55c10d4 100644 return; /* Setup PSR once */ --- -1.8.5.rc3 - diff --git a/patches.baytrail/0505-drm-i915-kill-Ivybridge-vblank-irq-vfuncs.patch b/patches.baytrail/0505-drm-i915-kill-Ivybridge-vblank-irq-vfuncs.patch index 38223b274d22c..16ab2cda08eb6 100644 --- a/patches.baytrail/0505-drm-i915-kill-Ivybridge-vblank-irq-vfuncs.patch +++ b/patches.baytrail/0505-drm-i915-kill-Ivybridge-vblank-irq-vfuncs.patch @@ -14,15 +14,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit b518421f5f91365a08ebe55497b32fe6d90ef4df) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_irq.c | 41 ++++++++--------------------------------- - drivers/gpu/drm/i915/i915_reg.h | 3 +++ + drivers/gpu/drm/i915/i915_irq.c | 41 +++++++--------------------------------- + drivers/gpu/drm/i915/i915_reg.h | 3 ++ 2 files changed, 11 insertions(+), 33 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index a2bcfa2908ab..31a13fdec7a7 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -1704,29 +1704,14 @@ static int ironlake_enable_vblank(struct drm_device *dev, int pipe) +@@ -1704,29 +1704,14 @@ static int ironlake_enable_vblank(struct { drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; unsigned long irqflags; @@ -55,7 +53,7 @@ index a2bcfa2908ab..31a13fdec7a7 100644 spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags); return 0; -@@ -1777,21 +1762,11 @@ static void ironlake_disable_vblank(struct drm_device *dev, int pipe) +@@ -1777,21 +1762,11 @@ static void ironlake_disable_vblank(stru { drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; unsigned long irqflags; @@ -80,7 +78,7 @@ index a2bcfa2908ab..31a13fdec7a7 100644 spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags); } -@@ -3117,8 +3092,8 @@ void intel_irq_init(struct drm_device *dev) +@@ -3117,8 +3092,8 @@ void intel_irq_init(struct drm_device *d dev->driver->irq_preinstall = ironlake_irq_preinstall; dev->driver->irq_postinstall = ivybridge_irq_postinstall; dev->driver->irq_uninstall = ironlake_irq_uninstall; @@ -91,11 +89,9 @@ index a2bcfa2908ab..31a13fdec7a7 100644 dev_priv->display.hpd_irq_setup = ibx_hpd_irq_setup; } else if (HAS_PCH_SPLIT(dev)) { dev->driver->irq_handler = ironlake_irq_handler; -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 6f2df01d8562..1fa35798a94d 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -3795,6 +3795,9 @@ +@@ -3799,6 +3799,9 @@ #define DE_PLANEA_FLIP_DONE_IVB (1<<3) #define DE_PIPEA_VBLANK_IVB (1<<0) @@ -105,6 +101,3 @@ index 6f2df01d8562..1fa35798a94d 100644 #define VLV_MASTER_IER 0x4400c /* Gunit master IER */ #define MASTER_INTERRUPT_ENABLE (1<<31) --- -1.8.5.rc3 - diff --git a/patches.baytrail/0510-drm-i915-Add-some-debug-breadcrumbs-to-connector-det.patch b/patches.baytrail/0510-drm-i915-Add-some-debug-breadcrumbs-to-connector-det.patch index d753e4bae61c2..6b31df46bee1c 100644 --- a/patches.baytrail/0510-drm-i915-Add-some-debug-breadcrumbs-to-connector-det.patch +++ b/patches.baytrail/0510-drm-i915-Add-some-debug-breadcrumbs-to-connector-det.patch @@ -14,20 +14,18 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 164c8598450657d01fa75d6c997e95eb35672eef) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_crt.c | 4 ++++ - drivers/gpu/drm/i915/intel_dp.c | 3 +++ - drivers/gpu/drm/i915/intel_dvo.c | 2 ++ - drivers/gpu/drm/i915/intel_hdmi.c | 3 +++ - drivers/gpu/drm/i915/intel_lvds.c | 3 +++ - drivers/gpu/drm/i915/intel_sdvo.c | 3 +++ - drivers/gpu/drm/i915/intel_tv.c | 4 ++++ + drivers/gpu/drm/i915/intel_crt.c | 4 ++++ + drivers/gpu/drm/i915/intel_dp.c | 3 +++ + drivers/gpu/drm/i915/intel_dvo.c | 2 ++ + drivers/gpu/drm/i915/intel_hdmi.c | 3 +++ + drivers/gpu/drm/i915/intel_lvds.c | 3 +++ + drivers/gpu/drm/i915/intel_sdvo.c | 3 +++ + drivers/gpu/drm/i915/intel_tv.c | 4 ++++ 7 files changed, 22 insertions(+) -diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c -index 3acec8c48166..0c0d4e8d768e 100644 --- a/drivers/gpu/drm/i915/intel_crt.c +++ b/drivers/gpu/drm/i915/intel_crt.c -@@ -613,6 +613,10 @@ intel_crt_detect(struct drm_connector *connector, bool force) +@@ -613,6 +613,10 @@ intel_crt_detect(struct drm_connector *c enum drm_connector_status status; struct intel_load_detect_pipe tmp; @@ -38,11 +36,9 @@ index 3acec8c48166..0c0d4e8d768e 100644 if (I915_HAS_HOTPLUG(dev)) { /* We can not rely on the HPD pin always being correctly wired * up, for example many KVM do not pass it through, and so -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index db9cb317f5ce..ccf3b6f0c9a9 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -2831,6 +2831,9 @@ intel_dp_detect(struct drm_connector *connector, bool force) +@@ -2847,6 +2847,9 @@ intel_dp_detect(struct drm_connector *co enum drm_connector_status status; struct edid *edid = NULL; @@ -52,8 +48,6 @@ index db9cb317f5ce..ccf3b6f0c9a9 100644 intel_dp->has_audio = false; if (HAS_PCH_SPLIT(dev)) -diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c -index cbbc49dc03be..8b4ad27791f3 100644 --- a/drivers/gpu/drm/i915/intel_dvo.c +++ b/drivers/gpu/drm/i915/intel_dvo.c @@ -332,6 +332,8 @@ static enum drm_connector_status @@ -65,11 +59,9 @@ index cbbc49dc03be..8b4ad27791f3 100644 return intel_dvo->dev.dev_ops->detect(&intel_dvo->dev); } -diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c -index 2fd3fd5b943e..044d11d05944 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c -@@ -879,6 +879,9 @@ intel_hdmi_detect(struct drm_connector *connector, bool force) +@@ -879,6 +879,9 @@ intel_hdmi_detect(struct drm_connector * struct edid *edid; enum drm_connector_status status = connector_status_disconnected; @@ -79,11 +71,9 @@ index 2fd3fd5b943e..044d11d05944 100644 intel_hdmi->has_hdmi_sink = false; intel_hdmi->has_audio = false; intel_hdmi->rgb_quant_range_selectable = false; -diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c -index 57ecc57a6fa4..176891679ae9 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c -@@ -343,6 +343,9 @@ intel_lvds_detect(struct drm_connector *connector, bool force) +@@ -343,6 +343,9 @@ intel_lvds_detect(struct drm_connector * struct drm_device *dev = connector->dev; enum drm_connector_status status; @@ -93,11 +83,9 @@ index 57ecc57a6fa4..176891679ae9 100644 status = intel_panel_detect(dev); if (status != connector_status_unknown) return status; -diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c -index 798df114cfd3..c3b59b8593b9 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c -@@ -1696,6 +1696,9 @@ intel_sdvo_detect(struct drm_connector *connector, bool force) +@@ -1696,6 +1696,9 @@ intel_sdvo_detect(struct drm_connector * struct intel_sdvo_connector *intel_sdvo_connector = to_intel_sdvo_connector(connector); enum drm_connector_status ret; @@ -107,11 +95,9 @@ index 798df114cfd3..c3b59b8593b9 100644 if (!intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_ATTACHED_DISPLAYS, &response, 2)) -diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c -index d7fe4f89f7fc..685017000087 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c -@@ -1313,6 +1313,10 @@ intel_tv_detect(struct drm_connector *connector, bool force) +@@ -1313,6 +1313,10 @@ intel_tv_detect(struct drm_connector *co struct intel_tv *intel_tv = intel_attached_tv(connector); int type; @@ -122,6 +108,3 @@ index d7fe4f89f7fc..685017000087 100644 mode = reported_modes[0]; if (force) { --- -1.8.5.rc3 - diff --git a/patches.baytrail/0512-drm-i915-extend-lpt_enable_clkout_dp.patch b/patches.baytrail/0512-drm-i915-extend-lpt_enable_clkout_dp.patch index a62b7160ce735..3a6167c3e0193 100644 --- a/patches.baytrail/0512-drm-i915-extend-lpt_enable_clkout_dp.patch +++ b/patches.baytrail/0512-drm-i915-extend-lpt_enable_clkout_dp.patch @@ -18,15 +18,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 2fa86a1fea14c3019b2de16ea47e1a5363c60905) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 3 ++- - drivers/gpu/drm/i915/intel_display.c | 43 +++++++++++++++++++++++++----------- - 2 files changed, 32 insertions(+), 14 deletions(-) + drivers/gpu/drm/i915/i915_reg.h | 3 +- + drivers/gpu/drm/i915/intel_display.c | 45 ++++++++++++++++++++++++----------- + 2 files changed, 33 insertions(+), 15 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 1fa35798a94d..cf42bd61b420 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4950,7 +4950,8 @@ +@@ -4954,7 +4954,8 @@ #define SBI_SSCAUXDIV6 0x0610 #define SBI_SSCAUXDIV_FINALDIV2SEL(x) ((x)<<4) #define SBI_DBUFF0 0x2a00 @@ -36,11 +34,9 @@ index 1fa35798a94d..cf42bd61b420 100644 /* LPT PIXCLK_GATE */ #define PIXCLK_GATE 0xC6020 -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index bf450d725fc3..216de8639c70 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -5260,11 +5260,23 @@ static void lpt_program_fdi_mphy(struct drm_i915_private *dev_priv) +@@ -5260,11 +5260,23 @@ static void lpt_program_fdi_mphy(struct intel_sbi_write(dev_priv, 0x21EC, tmp, SBI_MPHY); } @@ -67,20 +63,21 @@ index bf450d725fc3..216de8639c70 100644 mutex_lock(&dev_priv->dpio_lock); -@@ -5275,17 +5287,22 @@ static void lpt_enable_clkout_dp(struct drm_device *dev) +@@ -5275,17 +5287,22 @@ static void lpt_enable_clkout_dp(struct udelay(24); - tmp = intel_sbi_read(dev_priv, SBI_SSCCTL, SBI_ICLK); - tmp &= ~SBI_SSCCTL_PATHALT; - intel_sbi_write(dev_priv, SBI_SSCCTL, tmp, SBI_ICLK); +- +- lpt_reset_fdi_mphy(dev_priv); +- lpt_program_fdi_mphy(dev_priv); + if (with_spread) { + tmp = intel_sbi_read(dev_priv, SBI_SSCCTL, SBI_ICLK); + tmp &= ~SBI_SSCCTL_PATHALT; + intel_sbi_write(dev_priv, SBI_SSCCTL, tmp, SBI_ICLK); - -- lpt_reset_fdi_mphy(dev_priv); -- lpt_program_fdi_mphy(dev_priv); ++ + if (with_fdi) { + lpt_reset_fdi_mphy(dev_priv); + lpt_program_fdi_mphy(dev_priv); @@ -99,7 +96,7 @@ index bf450d725fc3..216de8639c70 100644 mutex_unlock(&dev_priv->dpio_lock); } -@@ -5307,7 +5324,7 @@ static void lpt_init_pch_refclk(struct drm_device *dev) +@@ -5307,7 +5324,7 @@ static void lpt_init_pch_refclk(struct d if (!has_vga) return; @@ -108,6 +105,3 @@ index bf450d725fc3..216de8639c70 100644 } /* --- -1.8.5.rc3 - diff --git a/patches.baytrail/0514-drm-i915-add-functions-to-disable-and-restore-LCPLL.patch b/patches.baytrail/0514-drm-i915-add-functions-to-disable-and-restore-LCPLL.patch index 8d52a756e2d19..e4229e52f047d 100644 --- a/patches.baytrail/0514-drm-i915-add-functions-to-disable-and-restore-LCPLL.patch +++ b/patches.baytrail/0514-drm-i915-add-functions-to-disable-and-restore-LCPLL.patch @@ -35,16 +35,14 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit be256dc70284c028d0dd828b18b8f804e310507b) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 15 ++++ - drivers/gpu/drm/i915/intel_display.c | 136 +++++++++++++++++++++++++++++++++++ - drivers/gpu/drm/i915/intel_drv.h | 3 + + drivers/gpu/drm/i915/i915_reg.h | 15 +++ + drivers/gpu/drm/i915/intel_display.c | 136 +++++++++++++++++++++++++++++++++++ + drivers/gpu/drm/i915/intel_drv.h | 3 3 files changed, 154 insertions(+) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index cf42bd61b420..fbe585da44d9 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -2269,6 +2269,8 @@ +@@ -2273,6 +2273,8 @@ #define BLC_PWM_CPU_CTL2 0x48250 #define BLC_PWM_CPU_CTL 0x48254 @@ -53,7 +51,7 @@ index cf42bd61b420..fbe585da44d9 100644 /* PCH CTL1 is totally different, all but the below bits are reserved. CTL2 is * like the normal CTL from gen4 and earlier. Hooray for confusing naming. */ #define BLC_PWM_PCH_CTL1 0xc8250 -@@ -2277,6 +2279,12 @@ +@@ -2281,6 +2283,12 @@ #define BLM_PCH_POLARITY (1 << 29) #define BLC_PWM_PCH_CTL2 0xc8254 @@ -66,7 +64,7 @@ index cf42bd61b420..fbe585da44d9 100644 /* TV port control */ #define TV_CTL 0x68000 /** Enables the TV encoder */ -@@ -5017,7 +5025,14 @@ +@@ -5021,7 +5029,14 @@ #define LCPLL_CLK_FREQ_450 (0<<26) #define LCPLL_CD_CLOCK_DISABLE (1<<25) #define LCPLL_CD2X_CLOCK_DISABLE (1<<23) @@ -81,11 +79,9 @@ index cf42bd61b420..fbe585da44d9 100644 /* Pipe WM_LINETIME - watermark line time */ #define PIPE_WM_LINETIME_A 0x45270 -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 4da60eebdf96..73965dfbf149 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -5922,6 +5922,142 @@ static bool ironlake_get_pipe_config(struct intel_crtc *crtc, +@@ -5922,6 +5922,142 @@ static bool ironlake_get_pipe_config(str return true; } @@ -228,11 +224,9 @@ index 4da60eebdf96..73965dfbf149 100644 static void haswell_modeset_global_resources(struct drm_device *dev) { bool enable = false; -diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h -index 31087ff6d871..3fbe80bc36bb 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h -@@ -838,5 +838,8 @@ extern bool intel_set_pch_fifo_underrun_reporting(struct drm_device *dev, +@@ -838,5 +838,8 @@ extern bool intel_set_pch_fifo_underrun_ extern void intel_edp_psr_enable(struct intel_dp *intel_dp); extern void intel_edp_psr_disable(struct intel_dp *intel_dp); extern void intel_edp_psr_update(struct drm_device *dev); @@ -241,6 +235,3 @@ index 31087ff6d871..3fbe80bc36bb 100644 +extern void hsw_restore_lcpll(struct drm_i915_private *dev_priv); #endif /* __INTEL_DRV_H__ */ --- -1.8.5.rc3 - diff --git a/patches.baytrail/0545-drm-i915-dp-use-native-encoder-mode_set-callback.patch b/patches.baytrail/0545-drm-i915-dp-use-native-encoder-mode_set-callback.patch index cea739c564a97..7cf45b2791535 100644 --- a/patches.baytrail/0545-drm-i915-dp-use-native-encoder-mode_set-callback.patch +++ b/patches.baytrail/0545-drm-i915-dp-use-native-encoder-mode_set-callback.patch @@ -12,14 +12,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit b934223d7abae2f52d22b4734a02b9a0867eafe3) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_dp.c | 19 +++++++------------ + drivers/gpu/drm/i915/intel_dp.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 42ddfd457ca6..44972a679517 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -844,15 +844,14 @@ static void ironlake_set_pll_cpu_edp(struct intel_dp *intel_dp) +@@ -844,15 +844,14 @@ static void ironlake_set_pll_cpu_edp(str udelay(500); } @@ -40,7 +38,7 @@ index 42ddfd457ca6..44972a679517 100644 /* * There are four kinds of DP registers: -@@ -884,7 +883,7 @@ intel_dp_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, +@@ -884,7 +883,7 @@ intel_dp_mode_set(struct drm_encoder *en DRM_DEBUG_DRIVER("Enabling DP audio on pipe %c\n", pipe_name(crtc->pipe)); intel_dp->DP |= DP_AUDIO_OUTPUT_ENABLE; @@ -49,7 +47,7 @@ index 42ddfd457ca6..44972a679517 100644 } intel_dp_init_link_config(intel_dp); -@@ -3046,10 +3045,6 @@ void intel_dp_encoder_destroy(struct drm_encoder *encoder) +@@ -3062,10 +3061,6 @@ void intel_dp_encoder_destroy(struct drm kfree(intel_dig_port); } @@ -60,7 +58,7 @@ index 42ddfd457ca6..44972a679517 100644 static const struct drm_connector_funcs intel_dp_connector_funcs = { .dpms = intel_connector_dpms, .detect = intel_dp_detect, -@@ -3529,9 +3524,9 @@ intel_dp_init(struct drm_device *dev, int output_reg, enum port port) +@@ -3545,9 +3540,9 @@ intel_dp_init(struct drm_device *dev, in drm_encoder_init(dev, &intel_encoder->base, &intel_dp_enc_funcs, DRM_MODE_ENCODER_TMDS); @@ -71,6 +69,3 @@ index 42ddfd457ca6..44972a679517 100644 intel_encoder->enable = intel_enable_dp; intel_encoder->pre_enable = intel_pre_enable_dp; intel_encoder->disable = intel_disable_dp; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0566-drm-i915-rearrange-vlv-dp-enable-and-pre_enable-call.patch b/patches.baytrail/0566-drm-i915-rearrange-vlv-dp-enable-and-pre_enable-call.patch index 58c00fe5dc330..cccd123c9e093 100644 --- a/patches.baytrail/0566-drm-i915-rearrange-vlv-dp-enable-and-pre_enable-call.patch +++ b/patches.baytrail/0566-drm-i915-rearrange-vlv-dp-enable-and-pre_enable-call.patch @@ -29,14 +29,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit ab1f90f9662482021fddd0e7868005401f62866f) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_dp.c | 73 ++++++++++++++++++++++------------------- - 1 file changed, 39 insertions(+), 34 deletions(-) + drivers/gpu/drm/i915/intel_dp.c | 75 +++++++++++++++++++++------------------- + 1 file changed, 40 insertions(+), 35 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 57d9b979a846..9e22bfd850df 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -1711,49 +1711,50 @@ static void intel_enable_dp(struct intel_encoder *encoder) +@@ -1711,49 +1711,50 @@ static void intel_enable_dp(struct intel intel_dp_complete_link_train(intel_dp); intel_dp_stop_link_train(intel_dp); ironlake_edp_backlight_on(intel_dp); @@ -93,6 +91,13 @@ index 57d9b979a846..9e22bfd850df 100644 - val &= ~(1<<21); - val |= 0x001000c4; - vlv_dpio_write(dev_priv, DPIO_DATA_CHANNEL(port), val); +- +- vlv_dpio_write(dev_priv, DPIO_PCS_CLOCKBUF0(port), +- 0x00760018); +- vlv_dpio_write(dev_priv, DPIO_PCS_CLOCKBUF8(port), +- 0x00400888); +- mutex_unlock(&dev_priv->dpio_lock); +- } + val = vlv_dpio_read(dev_priv, DPIO_DATA_LANE_A(port)); + val = 0; + if (pipe) @@ -103,13 +108,7 @@ index 57d9b979a846..9e22bfd850df 100644 + vlv_dpio_write(dev_priv, DPIO_DATA_CHANNEL(port), val); + vlv_dpio_write(dev_priv, DPIO_PCS_CLOCKBUF0(port), 0x00760018); + vlv_dpio_write(dev_priv, DPIO_PCS_CLOCKBUF8(port), 0x00400888); - -- vlv_dpio_write(dev_priv, DPIO_PCS_CLOCKBUF0(port), -- 0x00760018); -- vlv_dpio_write(dev_priv, DPIO_PCS_CLOCKBUF8(port), -- 0x00400888); -- mutex_unlock(&dev_priv->dpio_lock); -- } ++ + mutex_unlock(&dev_priv->dpio_lock); + + intel_enable_dp(encoder); @@ -118,7 +117,7 @@ index 57d9b979a846..9e22bfd850df 100644 } static void intel_dp_pre_pll_enable(struct intel_encoder *encoder) -@@ -3533,14 +3534,18 @@ intel_dp_init(struct drm_device *dev, int output_reg, enum port port) +@@ -3549,14 +3550,18 @@ intel_dp_init(struct drm_device *dev, in intel_encoder->compute_config = intel_dp_compute_config; intel_encoder->mode_set = intel_dp_mode_set; @@ -140,6 +139,3 @@ index 57d9b979a846..9e22bfd850df 100644 intel_dig_port->port = port; intel_dig_port->dp.output_reg = output_reg; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0576-drm-i915-Add-VM-to-pin.patch b/patches.baytrail/0576-drm-i915-Add-VM-to-pin.patch index 9f5ccf1de15fb..50265e43f8962 100644 --- a/patches.baytrail/0576-drm-i915-Add-VM-to-pin.patch +++ b/patches.baytrail/0576-drm-i915-Add-VM-to-pin.patch @@ -183,7 +183,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> if (ret) goto err_unref; -@@ -1840,7 +1840,7 @@ int intel_init_render_ring_buffer(struct +@@ -1844,7 +1844,7 @@ int intel_init_render_ring_buffer(struct return -ENOMEM; } diff --git a/patches.baytrail/0588-drm-i915-Use-the-watermark-latency-values-from-dev_p.patch b/patches.baytrail/0588-drm-i915-Use-the-watermark-latency-values-from-dev_p.patch index e4804cd460490..760887cb46b69 100644 --- a/patches.baytrail/0588-drm-i915-Use-the-watermark-latency-values-from-dev_p.patch +++ b/patches.baytrail/0588-drm-i915-Use-the-watermark-latency-values-from-dev_p.patch @@ -17,15 +17,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit b0aea5dca064176a626dc2a83727c60ace31ee6d) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 9 ------- - drivers/gpu/drm/i915/intel_pm.c | 57 +++++++++++++++++++---------------------- + drivers/gpu/drm/i915/i915_reg.h | 9 ------ + drivers/gpu/drm/i915/intel_pm.c | 57 ++++++++++++++++++---------------------- 2 files changed, 27 insertions(+), 39 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 615d66717016..11800316799f 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -3204,9 +3204,6 @@ +@@ -3208,9 +3208,6 @@ #define MLTR_WM2_SHIFT 8 /* the unit of memory self-refresh latency time is 0.5us */ #define ILK_SRLT_MASK 0x3f @@ -35,7 +33,7 @@ index 615d66717016..11800316799f 100644 /* define the fifo size on Ironlake */ #define ILK_DISPLAY_FIFO 128 -@@ -3253,12 +3250,6 @@ +@@ -3257,12 +3254,6 @@ #define SSKPD_WM2_SHIFT 16 #define SSKPD_WM3_SHIFT 24 @@ -48,11 +46,9 @@ index 615d66717016..11800316799f 100644 /* * The two pipe frame counter registers are not synchronized, so * reading a stable value is somewhat tricky. The following code -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index 42f541671236..0254e620ba05 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -1680,9 +1680,6 @@ static void i830_update_wm(struct drm_device *dev) +@@ -1680,9 +1680,6 @@ static void i830_update_wm(struct drm_de I915_WRITE(FW_BLC, fwater_lo); } @@ -62,7 +58,7 @@ index 42f541671236..0254e620ba05 100644 /* * Check the wm result. * -@@ -1797,9 +1794,9 @@ static void ironlake_update_wm(struct drm_device *dev) +@@ -1797,9 +1794,9 @@ static void ironlake_update_wm(struct dr enabled = 0; if (g4x_compute_wm0(dev, PIPE_A, &ironlake_display_wm_info, @@ -74,7 +70,7 @@ index 42f541671236..0254e620ba05 100644 &plane_wm, &cursor_wm)) { I915_WRITE(WM0_PIPEA_ILK, (plane_wm << WM0_PIPE_PLANE_SHIFT) | cursor_wm); -@@ -1811,9 +1808,9 @@ static void ironlake_update_wm(struct drm_device *dev) +@@ -1811,9 +1808,9 @@ static void ironlake_update_wm(struct dr if (g4x_compute_wm0(dev, PIPE_B, &ironlake_display_wm_info, @@ -86,7 +82,7 @@ index 42f541671236..0254e620ba05 100644 &plane_wm, &cursor_wm)) { I915_WRITE(WM0_PIPEB_ILK, (plane_wm << WM0_PIPE_PLANE_SHIFT) | cursor_wm); -@@ -1837,7 +1834,7 @@ static void ironlake_update_wm(struct drm_device *dev) +@@ -1837,7 +1834,7 @@ static void ironlake_update_wm(struct dr /* WM1 */ if (!ironlake_compute_srwm(dev, 1, enabled, @@ -95,7 +91,7 @@ index 42f541671236..0254e620ba05 100644 &ironlake_display_srwm_info, &ironlake_cursor_srwm_info, &fbc_wm, &plane_wm, &cursor_wm)) -@@ -1845,14 +1842,14 @@ static void ironlake_update_wm(struct drm_device *dev) +@@ -1845,14 +1842,14 @@ static void ironlake_update_wm(struct dr I915_WRITE(WM1_LP_ILK, WM1_LP_SR_EN | @@ -112,7 +108,7 @@ index 42f541671236..0254e620ba05 100644 &ironlake_display_srwm_info, &ironlake_cursor_srwm_info, &fbc_wm, &plane_wm, &cursor_wm)) -@@ -1860,7 +1857,7 @@ static void ironlake_update_wm(struct drm_device *dev) +@@ -1860,7 +1857,7 @@ static void ironlake_update_wm(struct dr I915_WRITE(WM2_LP_ILK, WM2_LP_EN | @@ -121,7 +117,7 @@ index 42f541671236..0254e620ba05 100644 (fbc_wm << WM1_LP_FBC_SHIFT) | (plane_wm << WM1_LP_SR_SHIFT) | cursor_wm); -@@ -1874,7 +1871,7 @@ static void ironlake_update_wm(struct drm_device *dev) +@@ -1874,7 +1871,7 @@ static void ironlake_update_wm(struct dr static void sandybridge_update_wm(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; @@ -130,7 +126,7 @@ index 42f541671236..0254e620ba05 100644 u32 val; int fbc_wm, plane_wm, cursor_wm; unsigned int enabled; -@@ -1929,7 +1926,7 @@ static void sandybridge_update_wm(struct drm_device *dev) +@@ -1929,7 +1926,7 @@ static void sandybridge_update_wm(struct /* WM1 */ if (!ironlake_compute_srwm(dev, 1, enabled, @@ -139,7 +135,7 @@ index 42f541671236..0254e620ba05 100644 &sandybridge_display_srwm_info, &sandybridge_cursor_srwm_info, &fbc_wm, &plane_wm, &cursor_wm)) -@@ -1937,14 +1934,14 @@ static void sandybridge_update_wm(struct drm_device *dev) +@@ -1937,14 +1934,14 @@ static void sandybridge_update_wm(struct I915_WRITE(WM1_LP_ILK, WM1_LP_SR_EN | @@ -156,7 +152,7 @@ index 42f541671236..0254e620ba05 100644 &sandybridge_display_srwm_info, &sandybridge_cursor_srwm_info, &fbc_wm, &plane_wm, &cursor_wm)) -@@ -1952,14 +1949,14 @@ static void sandybridge_update_wm(struct drm_device *dev) +@@ -1952,14 +1949,14 @@ static void sandybridge_update_wm(struct I915_WRITE(WM2_LP_ILK, WM2_LP_EN | @@ -173,7 +169,7 @@ index 42f541671236..0254e620ba05 100644 &sandybridge_display_srwm_info, &sandybridge_cursor_srwm_info, &fbc_wm, &plane_wm, &cursor_wm)) -@@ -1967,7 +1964,7 @@ static void sandybridge_update_wm(struct drm_device *dev) +@@ -1967,7 +1964,7 @@ static void sandybridge_update_wm(struct I915_WRITE(WM3_LP_ILK, WM3_LP_EN | @@ -182,7 +178,7 @@ index 42f541671236..0254e620ba05 100644 (fbc_wm << WM1_LP_FBC_SHIFT) | (plane_wm << WM1_LP_SR_SHIFT) | cursor_wm); -@@ -1976,7 +1973,7 @@ static void sandybridge_update_wm(struct drm_device *dev) +@@ -1976,7 +1973,7 @@ static void sandybridge_update_wm(struct static void ivybridge_update_wm(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; @@ -191,7 +187,7 @@ index 42f541671236..0254e620ba05 100644 u32 val; int fbc_wm, plane_wm, cursor_wm; int ignore_fbc_wm, ignore_plane_wm, ignore_cursor_wm; -@@ -2046,7 +2043,7 @@ static void ivybridge_update_wm(struct drm_device *dev) +@@ -2046,7 +2043,7 @@ static void ivybridge_update_wm(struct d /* WM1 */ if (!ironlake_compute_srwm(dev, 1, enabled, @@ -200,7 +196,7 @@ index 42f541671236..0254e620ba05 100644 &sandybridge_display_srwm_info, &sandybridge_cursor_srwm_info, &fbc_wm, &plane_wm, &cursor_wm)) -@@ -2054,14 +2051,14 @@ static void ivybridge_update_wm(struct drm_device *dev) +@@ -2054,14 +2051,14 @@ static void ivybridge_update_wm(struct d I915_WRITE(WM1_LP_ILK, WM1_LP_SR_EN | @@ -217,7 +213,7 @@ index 42f541671236..0254e620ba05 100644 &sandybridge_display_srwm_info, &sandybridge_cursor_srwm_info, &fbc_wm, &plane_wm, &cursor_wm)) -@@ -2069,19 +2066,19 @@ static void ivybridge_update_wm(struct drm_device *dev) +@@ -2069,19 +2066,19 @@ static void ivybridge_update_wm(struct d I915_WRITE(WM2_LP_ILK, WM2_LP_EN | @@ -240,7 +236,7 @@ index 42f541671236..0254e620ba05 100644 &sandybridge_display_srwm_info, &sandybridge_cursor_srwm_info, &ignore_fbc_wm, &ignore_plane_wm, &cursor_wm)) -@@ -2089,7 +2086,7 @@ static void ivybridge_update_wm(struct drm_device *dev) +@@ -2089,7 +2086,7 @@ static void ivybridge_update_wm(struct d I915_WRITE(WM3_LP_ILK, WM3_LP_EN | @@ -249,7 +245,7 @@ index 42f541671236..0254e620ba05 100644 (fbc_wm << WM1_LP_FBC_SHIFT) | (plane_wm << WM1_LP_SR_SHIFT) | cursor_wm); -@@ -2833,7 +2830,7 @@ static void sandybridge_update_sprite_wm(struct drm_device *dev, int pipe, +@@ -2833,7 +2830,7 @@ static void sandybridge_update_sprite_wm bool enable, bool scaled) { struct drm_i915_private *dev_priv = dev->dev_private; @@ -258,7 +254,7 @@ index 42f541671236..0254e620ba05 100644 u32 val; int sprite_wm, reg; int ret; -@@ -2873,7 +2870,7 @@ static void sandybridge_update_sprite_wm(struct drm_device *dev, int pipe, +@@ -2873,7 +2870,7 @@ static void sandybridge_update_sprite_wm ret = sandybridge_compute_sprite_srwm(dev, pipe, sprite_width, pixel_size, &sandybridge_display_srwm_info, @@ -267,7 +263,7 @@ index 42f541671236..0254e620ba05 100644 &sprite_wm); if (!ret) { DRM_DEBUG_KMS("failed to compute sprite lp1 wm on pipe %c\n", -@@ -2889,7 +2886,7 @@ static void sandybridge_update_sprite_wm(struct drm_device *dev, int pipe, +@@ -2889,7 +2886,7 @@ static void sandybridge_update_sprite_wm ret = sandybridge_compute_sprite_srwm(dev, pipe, sprite_width, pixel_size, &sandybridge_display_srwm_info, @@ -276,7 +272,7 @@ index 42f541671236..0254e620ba05 100644 &sprite_wm); if (!ret) { DRM_DEBUG_KMS("failed to compute sprite lp2 wm on pipe %c\n", -@@ -2901,7 +2898,7 @@ static void sandybridge_update_sprite_wm(struct drm_device *dev, int pipe, +@@ -2901,7 +2898,7 @@ static void sandybridge_update_sprite_wm ret = sandybridge_compute_sprite_srwm(dev, pipe, sprite_width, pixel_size, &sandybridge_display_srwm_info, @@ -285,6 +281,3 @@ index 42f541671236..0254e620ba05 100644 &sprite_wm); if (!ret) { DRM_DEBUG_KMS("failed to compute sprite lp3 wm on pipe %c\n", --- -1.8.5.rc3 - diff --git a/patches.baytrail/0598-drm-const-ify-ioctls-table-v2.patch b/patches.baytrail/0598-drm-const-ify-ioctls-table-v2.patch index c632cec609bea..552984aade0f5 100644 --- a/patches.baytrail/0598-drm-const-ify-ioctls-table-v2.patch +++ b/patches.baytrail/0598-drm-const-ify-ioctls-table-v2.patch @@ -109,7 +109,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> #define I810_BASE(reg) ((unsigned long) \ --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c -@@ -1843,7 +1843,7 @@ void i915_driver_postclose(struct drm_de +@@ -1844,7 +1844,7 @@ void i915_driver_postclose(struct drm_de kfree(file_priv); } diff --git a/patches.baytrail/0684-drm-i915-Initialize-seqno-for-VECS-too.patch b/patches.baytrail/0684-drm-i915-Initialize-seqno-for-VECS-too.patch index 660815380d121..bf587ecdadb93 100644 --- a/patches.baytrail/0684-drm-i915-Initialize-seqno-for-VECS-too.patch +++ b/patches.baytrail/0684-drm-i915-Initialize-seqno-for-VECS-too.patch @@ -31,14 +31,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 5020150b3b8d2912466e28572f25b3cc56722aec) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_ringbuffer.c | 2 ++ + drivers/gpu/drm/i915/intel_ringbuffer.c | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index 89a9c908c99d..a1aa3bc48dcc 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -1606,6 +1606,8 @@ void intel_ring_init_seqno(struct intel_ring_buffer *ring, u32 seqno) +@@ -1610,6 +1610,8 @@ void intel_ring_init_seqno(struct intel_ if (INTEL_INFO(ring->dev)->gen >= 6) { I915_WRITE(RING_SYNC_0(ring->mmio_base), 0); I915_WRITE(RING_SYNC_1(ring->mmio_base), 0); @@ -47,6 +45,3 @@ index 89a9c908c99d..a1aa3bc48dcc 100644 } ring->set_seqno(ring, seqno); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0692-drm-i915-clarify-Haswell-power-well-bit-names.patch b/patches.baytrail/0692-drm-i915-clarify-Haswell-power-well-bit-names.patch index 850e53f457ce9..23b6318469ec5 100644 --- a/patches.baytrail/0692-drm-i915-clarify-Haswell-power-well-bit-names.patch +++ b/patches.baytrail/0692-drm-i915-clarify-Haswell-power-well-bit-names.patch @@ -13,16 +13,14 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 6aedd1f539f51b7b0c3d6be0088c3541f9d2c294) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 4 ++-- - drivers/gpu/drm/i915/intel_display.c | 2 +- - drivers/gpu/drm/i915/intel_pm.c | 13 +++++++------ + drivers/gpu/drm/i915/i915_reg.h | 4 ++-- + drivers/gpu/drm/i915/intel_display.c | 2 +- + drivers/gpu/drm/i915/intel_pm.c | 13 +++++++------ 3 files changed, 10 insertions(+), 9 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 11800316799f..019fd1f9d286 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4833,8 +4833,8 @@ +@@ -4837,8 +4837,8 @@ #define HSW_PWR_WELL_DRIVER 0x45404 /* CTL2 */ #define HSW_PWR_WELL_KVMR 0x45408 /* CTL3 */ #define HSW_PWR_WELL_DEBUG 0x4540C /* CTL4 */ @@ -33,11 +31,9 @@ index 11800316799f..019fd1f9d286 100644 #define HSW_PWR_WELL_CTL5 0x45410 #define HSW_PWR_WELL_ENABLE_SINGLE_STEP (1<<31) #define HSW_PWR_WELL_PWR_GATE_OVERRIDE (1<<20) -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 8f4dceef5480..cec940eb0147 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -10118,7 +10118,7 @@ void i915_redisable_vga(struct drm_device *dev) +@@ -10118,7 +10118,7 @@ void i915_redisable_vga(struct drm_devic * follow the "don't touch the power well if we don't need it" policy * the rest of the driver uses. */ if (HAS_POWER_WELL(dev) && @@ -46,11 +42,9 @@ index 8f4dceef5480..cec940eb0147 100644 return; if (I915_READ(vga_reg) != VGA_DISP_DISABLE) { -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index d593c2dd7031..d82d70588d11 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -5285,7 +5285,7 @@ bool intel_display_power_enabled(struct drm_device *dev, +@@ -5285,7 +5285,7 @@ bool intel_display_power_enabled(struct case POWER_DOMAIN_TRANSCODER_B: case POWER_DOMAIN_TRANSCODER_C: return I915_READ(HSW_PWR_WELL_DRIVER) == @@ -59,7 +53,7 @@ index d593c2dd7031..d82d70588d11 100644 default: BUG(); } -@@ -5298,17 +5298,18 @@ static void __intel_set_power_well(struct drm_device *dev, bool enable) +@@ -5298,17 +5298,18 @@ static void __intel_set_power_well(struc uint32_t tmp; tmp = I915_READ(HSW_PWR_WELL_DRIVER); @@ -82,7 +76,7 @@ index d593c2dd7031..d82d70588d11 100644 DRM_ERROR("Timeout enabling power well\n"); } } else { -@@ -5428,7 +5429,7 @@ void intel_init_power_well(struct drm_device *dev) +@@ -5428,7 +5429,7 @@ void intel_init_power_well(struct drm_de /* We're taking over the BIOS, so clear any requests made by it since * the driver is in charge now. */ @@ -91,6 +85,3 @@ index d593c2dd7031..d82d70588d11 100644 I915_WRITE(HSW_PWR_WELL_BIOS, 0); } --- -1.8.5.rc3 - diff --git a/patches.baytrail/0695-drm-i915-enable-the-power-well-before-module-unload.patch b/patches.baytrail/0695-drm-i915-enable-the-power-well-before-module-unload.patch index 96ee9ddb36267..5323666140c17 100644 --- a/patches.baytrail/0695-drm-i915-enable-the-power-well-before-module-unload.patch +++ b/patches.baytrail/0695-drm-i915-enable-the-power-well-before-module-unload.patch @@ -34,7 +34,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c -@@ -1696,8 +1696,13 @@ int i915_driver_unload(struct drm_device +@@ -1697,8 +1697,13 @@ int i915_driver_unload(struct drm_device intel_gpu_ips_teardown(); diff --git a/patches.baytrail/0720-drm-i915-allow-package-C8-states-on-Haswell-disabled.patch b/patches.baytrail/0720-drm-i915-allow-package-C8-states-on-Haswell-disabled.patch index db9afa6d1fd41..bc3d4f02a7265 100644 --- a/patches.baytrail/0720-drm-i915-allow-package-C8-states-on-Haswell-disabled.patch +++ b/patches.baytrail/0720-drm-i915-allow-package-C8-states-on-Haswell-disabled.patch @@ -73,7 +73,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> i915_dump_device_info(dev_priv); /* Not all pre-production machines fall into this category, only the -@@ -1748,6 +1756,8 @@ int i915_driver_unload(struct drm_device +@@ -1749,6 +1757,8 @@ int i915_driver_unload(struct drm_device cancel_work_sync(&dev_priv->gpu_error.work); i915_destroy_error_state(dev); diff --git a/patches.baytrail/0737-drm-i915-hdmi-Write-HDMI-vendor-specific-infoframes.patch b/patches.baytrail/0737-drm-i915-hdmi-Write-HDMI-vendor-specific-infoframes.patch index fc20f4a8588e3..3c676a838a2f1 100644 --- a/patches.baytrail/0737-drm-i915-hdmi-Write-HDMI-vendor-specific-infoframes.patch +++ b/patches.baytrail/0737-drm-i915-hdmi-Write-HDMI-vendor-specific-infoframes.patch @@ -16,15 +16,13 @@ Signed-off-by: Dave Airlie <airlied@gmail.com> (cherry picked from commit c8bb75afff8eaed89476a00f733c666e1b44115b) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 2 ++ - drivers/gpu/drm/i915/intel_hdmi.c | 28 ++++++++++++++++++++++++++++ + drivers/gpu/drm/i915/i915_reg.h | 2 ++ + drivers/gpu/drm/i915/intel_hdmi.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 8e51ecf2a6f9..b6a58f720f9a 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4168,6 +4168,8 @@ +@@ -4172,6 +4172,8 @@ _TRANSCODER(trans, HSW_VIDEO_DIP_CTL_A, HSW_VIDEO_DIP_CTL_B) #define HSW_TVIDEO_DIP_AVI_DATA(trans) \ _TRANSCODER(trans, HSW_VIDEO_DIP_AVI_DATA_A, HSW_VIDEO_DIP_AVI_DATA_B) @@ -33,11 +31,9 @@ index 8e51ecf2a6f9..b6a58f720f9a 100644 #define HSW_TVIDEO_DIP_SPD_DATA(trans) \ _TRANSCODER(trans, HSW_VIDEO_DIP_SPD_DATA_A, HSW_VIDEO_DIP_SPD_DATA_B) #define HSW_TVIDEO_DIP_GCP(trans) \ -diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c -index a619d9435107..4148cc85bf7f 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c -@@ -74,6 +74,8 @@ static u32 g4x_infoframe_index(enum hdmi_infoframe_type type) +@@ -74,6 +74,8 @@ static u32 g4x_infoframe_index(enum hdmi return VIDEO_DIP_SELECT_AVI; case HDMI_INFOFRAME_TYPE_SPD: return VIDEO_DIP_SELECT_SPD; @@ -46,7 +42,7 @@ index a619d9435107..4148cc85bf7f 100644 default: DRM_DEBUG_DRIVER("unknown info frame type %d\n", type); return 0; -@@ -87,6 +89,8 @@ static u32 g4x_infoframe_enable(enum hdmi_infoframe_type type) +@@ -87,6 +89,8 @@ static u32 g4x_infoframe_enable(enum hdm return VIDEO_DIP_ENABLE_AVI; case HDMI_INFOFRAME_TYPE_SPD: return VIDEO_DIP_ENABLE_SPD; @@ -55,7 +51,7 @@ index a619d9435107..4148cc85bf7f 100644 default: DRM_DEBUG_DRIVER("unknown info frame type %d\n", type); return 0; -@@ -100,6 +104,8 @@ static u32 hsw_infoframe_enable(enum hdmi_infoframe_type type) +@@ -100,6 +104,8 @@ static u32 hsw_infoframe_enable(enum hdm return VIDEO_DIP_ENABLE_AVI_HSW; case HDMI_INFOFRAME_TYPE_SPD: return VIDEO_DIP_ENABLE_SPD_HSW; @@ -64,7 +60,7 @@ index a619d9435107..4148cc85bf7f 100644 default: DRM_DEBUG_DRIVER("unknown info frame type %d\n", type); return 0; -@@ -114,6 +120,8 @@ static u32 hsw_infoframe_data_reg(enum hdmi_infoframe_type type, +@@ -114,6 +120,8 @@ static u32 hsw_infoframe_data_reg(enum h return HSW_TVIDEO_DIP_AVI_DATA(cpu_transcoder); case HDMI_INFOFRAME_TYPE_SPD: return HSW_TVIDEO_DIP_SPD_DATA(cpu_transcoder); @@ -73,7 +69,7 @@ index a619d9435107..4148cc85bf7f 100644 default: DRM_DEBUG_DRIVER("unknown info frame type %d\n", type); return 0; -@@ -392,6 +400,21 @@ static void intel_hdmi_set_spd_infoframe(struct drm_encoder *encoder) +@@ -392,6 +400,21 @@ static void intel_hdmi_set_spd_infoframe intel_write_infoframe(encoder, &frame); } @@ -95,7 +91,7 @@ index a619d9435107..4148cc85bf7f 100644 static void g4x_set_infoframes(struct drm_encoder *encoder, struct drm_display_mode *adjusted_mode) { -@@ -454,6 +477,7 @@ static void g4x_set_infoframes(struct drm_encoder *encoder, +@@ -454,6 +477,7 @@ static void g4x_set_infoframes(struct dr intel_hdmi_set_avi_infoframe(encoder, adjusted_mode); intel_hdmi_set_spd_infoframe(encoder); @@ -103,7 +99,7 @@ index a619d9435107..4148cc85bf7f 100644 } static void ibx_set_infoframes(struct drm_encoder *encoder, -@@ -515,6 +539,7 @@ static void ibx_set_infoframes(struct drm_encoder *encoder, +@@ -515,6 +539,7 @@ static void ibx_set_infoframes(struct dr intel_hdmi_set_avi_infoframe(encoder, adjusted_mode); intel_hdmi_set_spd_infoframe(encoder); @@ -111,7 +107,7 @@ index a619d9435107..4148cc85bf7f 100644 } static void cpt_set_infoframes(struct drm_encoder *encoder, -@@ -550,6 +575,7 @@ static void cpt_set_infoframes(struct drm_encoder *encoder, +@@ -550,6 +575,7 @@ static void cpt_set_infoframes(struct dr intel_hdmi_set_avi_infoframe(encoder, adjusted_mode); intel_hdmi_set_spd_infoframe(encoder); @@ -119,7 +115,7 @@ index a619d9435107..4148cc85bf7f 100644 } static void vlv_set_infoframes(struct drm_encoder *encoder, -@@ -584,6 +610,7 @@ static void vlv_set_infoframes(struct drm_encoder *encoder, +@@ -584,6 +610,7 @@ static void vlv_set_infoframes(struct dr intel_hdmi_set_avi_infoframe(encoder, adjusted_mode); intel_hdmi_set_spd_infoframe(encoder); @@ -127,7 +123,7 @@ index a619d9435107..4148cc85bf7f 100644 } static void hsw_set_infoframes(struct drm_encoder *encoder, -@@ -611,6 +638,7 @@ static void hsw_set_infoframes(struct drm_encoder *encoder, +@@ -611,6 +638,7 @@ static void hsw_set_infoframes(struct dr intel_hdmi_set_avi_infoframe(encoder, adjusted_mode); intel_hdmi_set_spd_infoframe(encoder); @@ -135,6 +131,3 @@ index a619d9435107..4148cc85bf7f 100644 } static void intel_hdmi_mode_set(struct intel_encoder *encoder) --- -1.8.5.rc3 - diff --git a/patches.baytrail/0740-drm-i915-Support-render-nodes.patch b/patches.baytrail/0740-drm-i915-Support-render-nodes.patch index bc88ec89337c2..c0e1647d5e9ab 100644 --- a/patches.baytrail/0740-drm-i915-Support-render-nodes.patch +++ b/patches.baytrail/0740-drm-i915-Support-render-nodes.patch @@ -24,7 +24,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c -@@ -1876,7 +1876,7 @@ const struct drm_ioctl_desc i915_ioctls[ +@@ -1877,7 +1877,7 @@ const struct drm_ioctl_desc i915_ioctls[ DRM_IOCTL_DEF_DRV(I915_BATCHBUFFER, i915_batchbuffer, DRM_AUTH), DRM_IOCTL_DEF_DRV(I915_IRQ_EMIT, i915_irq_emit, DRM_AUTH), DRM_IOCTL_DEF_DRV(I915_IRQ_WAIT, i915_irq_wait, DRM_AUTH), @@ -33,7 +33,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> DRM_IOCTL_DEF_DRV(I915_SETPARAM, i915_setparam, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), DRM_IOCTL_DEF_DRV(I915_ALLOC, drm_noop, DRM_AUTH), DRM_IOCTL_DEF_DRV(I915_FREE, drm_noop, DRM_AUTH), -@@ -1889,35 +1889,35 @@ const struct drm_ioctl_desc i915_ioctls[ +@@ -1890,35 +1890,35 @@ const struct drm_ioctl_desc i915_ioctls[ DRM_IOCTL_DEF_DRV(I915_HWS_ADDR, i915_set_status_page, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), DRM_IOCTL_DEF_DRV(I915_GEM_INIT, i915_gem_init_ioctl, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY|DRM_UNLOCKED), DRM_IOCTL_DEF_DRV(I915_GEM_EXECBUFFER, i915_gem_execbuffer, DRM_AUTH|DRM_UNLOCKED), diff --git a/patches.baytrail/0748-drm-i915-Embed-the-ring-private-within-the-struct-in.patch b/patches.baytrail/0748-drm-i915-Embed-the-ring-private-within-the-struct-in.patch index fce3fd8f0e1d6..2794875692324 100644 --- a/patches.baytrail/0748-drm-i915-Embed-the-ring-private-within-the-struct-in.patch +++ b/patches.baytrail/0748-drm-i915-Embed-the-ring-private-within-the-struct-in.patch @@ -14,16 +14,14 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 0d1aacac36530fce058d7a0db3da7befd5765417) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_gpu_error.c | 2 +- - drivers/gpu/drm/i915/intel_ringbuffer.c | 99 ++++++++++----------------------- - drivers/gpu/drm/i915/intel_ringbuffer.h | 6 +- + drivers/gpu/drm/i915/i915_gpu_error.c | 2 + drivers/gpu/drm/i915/intel_ringbuffer.c | 99 +++++++++----------------------- + drivers/gpu/drm/i915/intel_ringbuffer.h | 6 + 3 files changed, 35 insertions(+), 72 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c -index 558e568d5b45..aba9d7498996 100644 --- a/drivers/gpu/drm/i915/i915_gpu_error.c +++ b/drivers/gpu/drm/i915/i915_gpu_error.c -@@ -641,7 +641,7 @@ i915_error_first_batchbuffer(struct drm_i915_private *dev_priv, +@@ -641,7 +641,7 @@ i915_error_first_batchbuffer(struct drm_ if (WARN_ON(ring->id != RCS)) return NULL; @@ -32,8 +30,6 @@ index 558e568d5b45..aba9d7498996 100644 if (acthd >= i915_gem_obj_ggtt_offset(obj) && acthd < i915_gem_obj_ggtt_offset(obj) + obj->base.size) return i915_error_object_create(dev_priv, obj); -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index f05cceac5a52..460ee1026fca 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -33,16 +33,6 @@ @@ -53,7 +49,7 @@ index f05cceac5a52..460ee1026fca 100644 static inline int ring_space(struct intel_ring_buffer *ring) { int space = (ring->head & HEAD_ADDR) - (ring->tail + I915_RING_FREE_SPACE); -@@ -175,8 +165,7 @@ gen4_render_ring_flush(struct intel_ring_buffer *ring, +@@ -175,8 +165,7 @@ gen4_render_ring_flush(struct intel_ring static int intel_emit_post_sync_nonzero_flush(struct intel_ring_buffer *ring) { @@ -63,7 +59,7 @@ index f05cceac5a52..460ee1026fca 100644 int ret; -@@ -213,8 +202,7 @@ gen6_render_ring_flush(struct intel_ring_buffer *ring, +@@ -213,8 +202,7 @@ gen6_render_ring_flush(struct intel_ring u32 invalidate_domains, u32 flush_domains) { u32 flags = 0; @@ -73,7 +69,7 @@ index f05cceac5a52..460ee1026fca 100644 int ret; /* Force SNB workarounds for PIPE_CONTROL flushes */ -@@ -306,8 +294,7 @@ gen7_render_ring_flush(struct intel_ring_buffer *ring, +@@ -306,8 +294,7 @@ gen7_render_ring_flush(struct intel_ring u32 invalidate_domains, u32 flush_domains) { u32 flags = 0; @@ -163,7 +159,7 @@ index f05cceac5a52..460ee1026fca 100644 static int init_render_ring(struct intel_ring_buffer *ring) { struct drm_device *dev = ring->dev; -@@ -607,16 +569,16 @@ static void render_ring_cleanup(struct intel_ring_buffer *ring) +@@ -607,16 +569,16 @@ static void render_ring_cleanup(struct i { struct drm_device *dev = ring->dev; @@ -197,7 +193,7 @@ index f05cceac5a52..460ee1026fca 100644 int ret; /* For Ironlake, MI_USER_INTERRUPT was deprecated and apparently -@@ -761,7 +722,7 @@ pc_render_add_request(struct intel_ring_buffer *ring) +@@ -761,7 +722,7 @@ pc_render_add_request(struct intel_ring_ intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(4) | PIPE_CONTROL_QW_WRITE | PIPE_CONTROL_WRITE_FLUSH | PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE); @@ -206,7 +202,7 @@ index f05cceac5a52..460ee1026fca 100644 intel_ring_emit(ring, ring->outstanding_lazy_request); intel_ring_emit(ring, 0); PIPE_CONTROL_FLUSH(ring, scratch_addr); -@@ -780,7 +741,7 @@ pc_render_add_request(struct intel_ring_buffer *ring) +@@ -780,7 +741,7 @@ pc_render_add_request(struct intel_ring_ PIPE_CONTROL_WRITE_FLUSH | PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE | PIPE_CONTROL_NOTIFY); @@ -215,7 +211,7 @@ index f05cceac5a52..460ee1026fca 100644 intel_ring_emit(ring, ring->outstanding_lazy_request); intel_ring_emit(ring, 0); intel_ring_advance(ring); -@@ -814,15 +775,13 @@ ring_set_seqno(struct intel_ring_buffer *ring, u32 seqno) +@@ -814,15 +775,13 @@ ring_set_seqno(struct intel_ring_buffer static u32 pc_render_get_seqno(struct intel_ring_buffer *ring, bool lazy_coherency) { @@ -233,7 +229,7 @@ index f05cceac5a52..460ee1026fca 100644 } static bool -@@ -1141,8 +1100,7 @@ i830_dispatch_execbuffer(struct intel_ring_buffer *ring, +@@ -1141,8 +1100,7 @@ i830_dispatch_execbuffer(struct intel_ri intel_ring_emit(ring, MI_NOOP); intel_ring_advance(ring); } else { @@ -243,7 +239,7 @@ index f05cceac5a52..460ee1026fca 100644 if (len > I830_BATCH_LIMIT) return -ENOSPC; -@@ -1835,7 +1793,8 @@ int intel_init_render_ring_buffer(struct drm_device *dev) +@@ -1839,7 +1797,8 @@ int intel_init_render_ring_buffer(struct return ret; } @@ -253,8 +249,6 @@ index f05cceac5a52..460ee1026fca 100644 } return intel_init_ring_buffer(dev, ring); -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h -index 432ad5311ba6..68b1ca974d59 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h @@ -155,7 +155,11 @@ struct intel_ring_buffer { @@ -270,6 +264,3 @@ index 432ad5311ba6..68b1ca974d59 100644 }; static inline bool --- -1.8.5.rc3 - diff --git a/patches.baytrail/0753-drm-i915-enable-trickle-feed-on-Haswell.patch b/patches.baytrail/0753-drm-i915-enable-trickle-feed-on-Haswell.patch index 2131ba9559f2c..266cf4eb880f7 100644 --- a/patches.baytrail/0753-drm-i915-enable-trickle-feed-on-Haswell.patch +++ b/patches.baytrail/0753-drm-i915-enable-trickle-feed-on-Haswell.patch @@ -19,17 +19,15 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 1f5d76dbb636c73912c9ff1c90ff46dd2273f098) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 1 + - drivers/gpu/drm/i915/intel_display.c | 10 +++++++--- - drivers/gpu/drm/i915/intel_pm.c | 2 -- - drivers/gpu/drm/i915/intel_sprite.c | 7 +++++-- + drivers/gpu/drm/i915/i915_reg.h | 1 + + drivers/gpu/drm/i915/intel_display.c | 10 +++++++--- + drivers/gpu/drm/i915/intel_pm.c | 2 -- + drivers/gpu/drm/i915/intel_sprite.c | 7 +++++-- 4 files changed, 13 insertions(+), 7 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index dcc58ea157fe..c159e1a6810f 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -3313,6 +3313,7 @@ +@@ -3317,6 +3317,7 @@ #define MCURSOR_PIPE_A 0x00 #define MCURSOR_PIPE_B (1 << 28) #define MCURSOR_GAMMA_ENABLE (1 << 26) @@ -37,11 +35,9 @@ index dcc58ea157fe..c159e1a6810f 100644 #define _CURABASE (dev_priv->info->display_mmio_offset + 0x70084) #define _CURAPOS (dev_priv->info->display_mmio_offset + 0x70088) #define CURSOR_POS_MASK 0x007FF -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index b27738d0b49d..2fd611ac91ba 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -2077,8 +2077,10 @@ static int ironlake_update_plane(struct drm_crtc *crtc, +@@ -2077,8 +2077,10 @@ static int ironlake_update_plane(struct else dspcntr &= ~DISPPLANE_TILED; @@ -54,7 +50,7 @@ index b27738d0b49d..2fd611ac91ba 100644 I915_WRITE(reg, dspcntr); -@@ -6764,8 +6766,10 @@ static void ivb_update_cursor(struct drm_crtc *crtc, u32 base) +@@ -6764,8 +6766,10 @@ static void ivb_update_cursor(struct drm cntl &= ~(CURSOR_MODE | MCURSOR_GAMMA_ENABLE); cntl |= CURSOR_MODE_DISABLE; } @@ -66,11 +62,9 @@ index b27738d0b49d..2fd611ac91ba 100644 I915_WRITE(CURCNTR_IVB(pipe), cntl); intel_crtc->cursor_visible = visible; -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index 6b1d00389952..0c115cc4899f 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -4960,8 +4960,6 @@ static void haswell_init_clock_gating(struct drm_device *dev) +@@ -4960,8 +4960,6 @@ static void haswell_init_clock_gating(st I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) | GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB); @@ -79,11 +73,9 @@ index 6b1d00389952..0c115cc4899f 100644 /* WaVSRefCountFullforceMissDisable:hsw */ gen7_setup_fixed_func_scheduler(dev_priv); -diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c -index 78b621cdd108..ad6ec4b39005 100644 --- a/drivers/gpu/drm/i915/intel_sprite.c +++ b/drivers/gpu/drm/i915/intel_sprite.c -@@ -260,8 +260,11 @@ ivb_update_plane(struct drm_plane *plane, struct drm_crtc *crtc, +@@ -260,8 +260,11 @@ ivb_update_plane(struct drm_plane *plane if (obj->tiling_mode != I915_TILING_NONE) sprctl |= SPRITE_TILED; @@ -97,6 +89,3 @@ index 78b621cdd108..ad6ec4b39005 100644 sprctl |= SPRITE_ENABLE; if (IS_HASWELL(dev)) --- -1.8.5.rc3 - diff --git a/patches.baytrail/0768-drm-i915-add-VLV-pipeconf-bit-definition-for-DSI-PLL.patch b/patches.baytrail/0768-drm-i915-add-VLV-pipeconf-bit-definition-for-DSI-PLL.patch index 2ff25d1e10029..9bafe87a72b7d 100644 --- a/patches.baytrail/0768-drm-i915-add-VLV-pipeconf-bit-definition-for-DSI-PLL.patch +++ b/patches.baytrail/0768-drm-i915-add-VLV-pipeconf-bit-definition-for-DSI-PLL.patch @@ -14,14 +14,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit b6ec10b36566c3eb330f4c03c1b00a02c974fd21) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 1 + + drivers/gpu/drm/i915/i915_reg.h | 1 + 1 file changed, 1 insertion(+) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 8f4c8b69ebc1..7a7b9c2f84cb 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -2986,6 +2986,7 @@ +@@ -2990,6 +2990,7 @@ #define PIPECONF_DISABLE 0 #define PIPECONF_DOUBLE_WIDE (1<<30) #define I965_PIPECONF_ACTIVE (1<<30) @@ -29,6 +27,3 @@ index 8f4c8b69ebc1..7a7b9c2f84cb 100644 #define PIPECONF_FRAME_START_DELAY_MASK (3<<27) #define PIPECONF_SINGLE_WIDE 0 #define PIPECONF_PIPE_UNLOCKED 0 --- -1.8.5.rc3 - diff --git a/patches.baytrail/0772-drm-i915-add-MIPI-DSI-register-definitions.patch b/patches.baytrail/0772-drm-i915-add-MIPI-DSI-register-definitions.patch index 6b0e8090a5ad1..466ca90b22468 100644 --- a/patches.baytrail/0772-drm-i915-add-MIPI-DSI-register-definitions.patch +++ b/patches.baytrail/0772-drm-i915-add-MIPI-DSI-register-definitions.patch @@ -16,14 +16,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 3230bf14c14e04d49525d172db53a55e153447a7) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 410 ++++++++++++++++++++++++++++++++++++++++ + drivers/gpu/drm/i915/i915_reg.h | 410 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 410 insertions(+) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 7a7b9c2f84cb..b26cf9b5b1e4 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -5121,4 +5121,414 @@ +@@ -5125,4 +5125,414 @@ #define PIPE_CSC_POSTOFF_ME(pipe) _PIPE(pipe, _PIPE_A_CSC_POSTOFF_ME, _PIPE_B_CSC_POSTOFF_ME) #define PIPE_CSC_POSTOFF_LO(pipe) _PIPE(pipe, _PIPE_A_CSC_POSTOFF_LO, _PIPE_B_CSC_POSTOFF_LO) @@ -438,6 +436,3 @@ index 7a7b9c2f84cb..b26cf9b5b1e4 100644 +#define READ_DATA_VALID(n) (1 << (n)) + #endif /* _I915_REG_H_ */ --- -1.8.5.rc3 - diff --git a/patches.baytrail/0798-drm-i915-Rename-ring-outstanding_lazy_request.patch b/patches.baytrail/0798-drm-i915-Rename-ring-outstanding_lazy_request.patch index dc4c75491bcb5..9db5923344608 100644 --- a/patches.baytrail/0798-drm-i915-Rename-ring-outstanding_lazy_request.patch +++ b/patches.baytrail/0798-drm-i915-Rename-ring-outstanding_lazy_request.patch @@ -12,16 +12,14 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 1823521d2b2fa614e7ad95fdc8a0f59e571f37ce) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_gem.c | 4 ++-- - drivers/gpu/drm/i915/intel_ringbuffer.c | 18 +++++++++--------- - drivers/gpu/drm/i915/intel_ringbuffer.h | 6 +++--- + drivers/gpu/drm/i915/i915_gem.c | 4 ++-- + drivers/gpu/drm/i915/intel_ringbuffer.c | 18 +++++++++--------- + drivers/gpu/drm/i915/intel_ringbuffer.h | 6 +++--- 3 files changed, 14 insertions(+), 14 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c -index fdeecae058e1..858e78886637 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c -@@ -964,7 +964,7 @@ i915_gem_check_olr(struct intel_ring_buffer *ring, u32 seqno) +@@ -964,7 +964,7 @@ i915_gem_check_olr(struct intel_ring_buf BUG_ON(!mutex_is_locked(&ring->dev->struct_mutex)); ret = 0; @@ -30,7 +28,7 @@ index fdeecae058e1..858e78886637 100644 ret = i915_add_request(ring, NULL); return ret; -@@ -2094,7 +2094,7 @@ int __i915_add_request(struct intel_ring_buffer *ring, +@@ -2094,7 +2094,7 @@ int __i915_add_request(struct intel_ring } trace_i915_gem_request_add(ring, request->seqno); @@ -39,11 +37,9 @@ index fdeecae058e1..858e78886637 100644 if (!dev_priv->ums.mm_suspended) { i915_queue_hangcheck(ring->dev); -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index 460ee1026fca..a83ff1863a5e 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -593,7 +593,7 @@ update_mboxes(struct intel_ring_buffer *ring, +@@ -593,7 +593,7 @@ update_mboxes(struct intel_ring_buffer * #define MBOX_UPDATE_DWORDS 4 intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1)); intel_ring_emit(ring, mmio_offset); @@ -52,7 +48,7 @@ index 460ee1026fca..a83ff1863a5e 100644 intel_ring_emit(ring, MI_NOOP); } -@@ -629,7 +629,7 @@ gen6_add_request(struct intel_ring_buffer *ring) +@@ -629,7 +629,7 @@ gen6_add_request(struct intel_ring_buffe intel_ring_emit(ring, MI_STORE_DWORD_INDEX); intel_ring_emit(ring, I915_GEM_HWS_INDEX << MI_STORE_DWORD_INDEX_SHIFT); @@ -61,7 +57,7 @@ index 460ee1026fca..a83ff1863a5e 100644 intel_ring_emit(ring, MI_USER_INTERRUPT); intel_ring_advance(ring); -@@ -723,7 +723,7 @@ pc_render_add_request(struct intel_ring_buffer *ring) +@@ -723,7 +723,7 @@ pc_render_add_request(struct intel_ring_ PIPE_CONTROL_WRITE_FLUSH | PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE); intel_ring_emit(ring, ring->scratch.gtt_offset | PIPE_CONTROL_GLOBAL_GTT); @@ -70,7 +66,7 @@ index 460ee1026fca..a83ff1863a5e 100644 intel_ring_emit(ring, 0); PIPE_CONTROL_FLUSH(ring, scratch_addr); scratch_addr += 128; /* write to separate cachelines */ -@@ -742,7 +742,7 @@ pc_render_add_request(struct intel_ring_buffer *ring) +@@ -742,7 +742,7 @@ pc_render_add_request(struct intel_ring_ PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE | PIPE_CONTROL_NOTIFY); intel_ring_emit(ring, ring->scratch.gtt_offset | PIPE_CONTROL_GLOBAL_GTT); @@ -79,7 +75,7 @@ index 460ee1026fca..a83ff1863a5e 100644 intel_ring_emit(ring, 0); intel_ring_advance(ring); -@@ -963,7 +963,7 @@ i9xx_add_request(struct intel_ring_buffer *ring) +@@ -963,7 +963,7 @@ i9xx_add_request(struct intel_ring_buffe intel_ring_emit(ring, MI_STORE_DWORD_INDEX); intel_ring_emit(ring, I915_GEM_HWS_INDEX << MI_STORE_DWORD_INDEX_SHIFT); @@ -88,7 +84,7 @@ index 460ee1026fca..a83ff1863a5e 100644 intel_ring_emit(ring, MI_USER_INTERRUPT); intel_ring_advance(ring); -@@ -1475,7 +1475,7 @@ int intel_ring_idle(struct intel_ring_buffer *ring) +@@ -1475,7 +1475,7 @@ int intel_ring_idle(struct intel_ring_bu int ret; /* We need to add any requests required to flush the objects and ring */ @@ -97,7 +93,7 @@ index 460ee1026fca..a83ff1863a5e 100644 ret = i915_add_request(ring, NULL); if (ret) return ret; -@@ -1495,10 +1495,10 @@ int intel_ring_idle(struct intel_ring_buffer *ring) +@@ -1495,10 +1495,10 @@ int intel_ring_idle(struct intel_ring_bu static int intel_ring_alloc_seqno(struct intel_ring_buffer *ring) { @@ -109,8 +105,8 @@ index 460ee1026fca..a83ff1863a5e 100644 + return i915_gem_get_seqno(ring->dev, &ring->outstanding_lazy_seqno); } - static int __intel_ring_begin(struct intel_ring_buffer *ring, -@@ -1545,7 +1545,7 @@ void intel_ring_init_seqno(struct intel_ring_buffer *ring, u32 seqno) + static int __intel_ring_prepare(struct intel_ring_buffer *ring, +@@ -1549,7 +1549,7 @@ void intel_ring_init_seqno(struct intel_ { struct drm_i915_private *dev_priv = ring->dev->dev_private; @@ -119,8 +115,6 @@ index 460ee1026fca..a83ff1863a5e 100644 if (INTEL_INFO(ring->dev)->gen >= 6) { I915_WRITE(RING_SYNC_0(ring->mmio_base), 0); -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h -index 68b1ca974d59..c6aa2b3c8c26 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h @@ -140,7 +140,7 @@ struct intel_ring_buffer { @@ -132,7 +126,7 @@ index 68b1ca974d59..c6aa2b3c8c26 100644 bool gpu_caches_dirty; bool fbc_dirty; -@@ -258,8 +258,8 @@ static inline u32 intel_ring_get_tail(struct intel_ring_buffer *ring) +@@ -258,8 +258,8 @@ static inline u32 intel_ring_get_tail(st static inline u32 intel_ring_get_seqno(struct intel_ring_buffer *ring) { @@ -143,6 +137,3 @@ index 68b1ca974d59..c6aa2b3c8c26 100644 } static inline void i915_trace_irq_get(struct intel_ring_buffer *ring, u32 seqno) --- -1.8.5.rc3 - diff --git a/patches.baytrail/0806-drm-i915-name-intel-dp-hooks-per-platform.patch b/patches.baytrail/0806-drm-i915-name-intel-dp-hooks-per-platform.patch index 1b283562f49ed..c033511945bb7 100644 --- a/patches.baytrail/0806-drm-i915-name-intel-dp-hooks-per-platform.patch +++ b/patches.baytrail/0806-drm-i915-name-intel-dp-hooks-per-platform.patch @@ -16,14 +16,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit ecff4f3bafaf4ce814b491f580bdc1221b07a85b) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_dp.c | 18 ++++++++++-------- + drivers/gpu/drm/i915/intel_dp.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index a210160f7eb1..8d0389745aff 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -1731,11 +1731,16 @@ static void intel_enable_dp(struct intel_encoder *encoder) +@@ -1731,11 +1731,16 @@ static void intel_enable_dp(struct intel ironlake_edp_backlight_on(intel_dp); } @@ -41,7 +39,7 @@ index a210160f7eb1..8d0389745aff 100644 { struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); struct intel_digital_port *dport = dp_to_dig_port(intel_dp); -@@ -1775,7 +1780,7 @@ static void vlv_pre_enable_dp(struct intel_encoder *encoder) +@@ -1775,7 +1780,7 @@ static void vlv_pre_enable_dp(struct int vlv_wait_port_ready(dev_priv, port); } @@ -50,7 +48,7 @@ index a210160f7eb1..8d0389745aff 100644 { struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); struct drm_device *dev = encoder->base.dev; -@@ -1785,9 +1790,6 @@ static void intel_dp_pre_pll_enable(struct intel_encoder *encoder) +@@ -1785,9 +1790,6 @@ static void intel_dp_pre_pll_enable(stru int port = vlv_dport_to_channel(dport); int pipe = intel_crtc->pipe; @@ -60,7 +58,7 @@ index a210160f7eb1..8d0389745aff 100644 /* Program Tx lane resets to default */ mutex_lock(&dev_priv->dpio_lock); vlv_dpio_write(dev_priv, pipe, DPIO_PCS_TX(port), -@@ -3560,12 +3562,12 @@ intel_dp_init(struct drm_device *dev, int output_reg, enum port port) +@@ -3576,12 +3578,12 @@ intel_dp_init(struct drm_device *dev, in intel_encoder->get_hw_state = intel_dp_get_hw_state; intel_encoder->get_config = intel_dp_get_config; if (IS_VALLEYVIEW(dev)) { @@ -76,6 +74,3 @@ index a210160f7eb1..8d0389745aff 100644 } intel_dig_port->port = port; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0808-drm-i915-clean-up-power-sequencing-register-port-sel.patch b/patches.baytrail/0808-drm-i915-clean-up-power-sequencing-register-port-sel.patch index d92407a11e579..cbeaf7a0fb7ef 100644 --- a/patches.baytrail/0808-drm-i915-clean-up-power-sequencing-register-port-sel.patch +++ b/patches.baytrail/0808-drm-i915-clean-up-power-sequencing-register-port-sel.patch @@ -16,15 +16,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit a24c144cc92c0cb573677ebb67c2fb946562242e) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 8 ++------ - drivers/gpu/drm/i915/intel_dp.c | 4 ++-- + drivers/gpu/drm/i915/i915_reg.h | 8 ++------ + drivers/gpu/drm/i915/intel_dp.c | 4 ++-- 2 files changed, 4 insertions(+), 8 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index c7f2da36f4a8..bcee89b7c43e 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4449,6 +4449,8 @@ +@@ -4453,6 +4453,8 @@ #define PIPEA_PP_STATUS (VLV_DISPLAY_BASE + 0x61200) #define PIPEA_PP_CONTROL (VLV_DISPLAY_BASE + 0x61204) #define PIPEA_PP_ON_DELAYS (VLV_DISPLAY_BASE + 0x61208) @@ -33,7 +31,7 @@ index c7f2da36f4a8..bcee89b7c43e 100644 #define PIPEA_PP_OFF_DELAYS (VLV_DISPLAY_BASE + 0x6120c) #define PIPEA_PP_DIVISOR (VLV_DISPLAY_BASE + 0x61210) -@@ -4480,7 +4482,6 @@ +@@ -4484,7 +4486,6 @@ #define PANEL_PORT_SELECT_MASK (3 << 30) #define PANEL_PORT_SELECT_LVDS (0 << 30) #define PANEL_PORT_SELECT_DPA (1 << 30) @@ -41,7 +39,7 @@ index c7f2da36f4a8..bcee89b7c43e 100644 #define PANEL_PORT_SELECT_DPC (2 << 30) #define PANEL_PORT_SELECT_DPD (3 << 30) #define PANEL_POWER_UP_DELAY_MASK (0x1fff0000) -@@ -4489,11 +4490,6 @@ +@@ -4493,11 +4494,6 @@ #define PANEL_LIGHT_ON_DELAY_SHIFT 0 #define PCH_PP_OFF_DELAYS 0xc720c @@ -53,11 +51,9 @@ index c7f2da36f4a8..bcee89b7c43e 100644 #define PANEL_POWER_DOWN_DELAY_MASK (0x1fff0000) #define PANEL_POWER_DOWN_DELAY_SHIFT 16 #define PANEL_LIGHT_OFF_DELAY_MASK (0x1fff) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index e8ee1df1463a..7a66f4125fac 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -3299,9 +3299,9 @@ intel_dp_init_panel_power_sequencer_registers(struct drm_device *dev, +@@ -3315,9 +3315,9 @@ intel_dp_init_panel_power_sequencer_regi port_sel = I915_READ(pp_on_reg) & 0xc0000000; } else if (HAS_PCH_IBX(dev) || HAS_PCH_CPT(dev)) { if (dp_to_dig_port(intel_dp)->port == PORT_A) @@ -69,6 +65,3 @@ index e8ee1df1463a..7a66f4125fac 100644 } pp_on |= port_sel; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0809-drm-i915-add-support-for-per-pipe-power-sequencing-o.patch b/patches.baytrail/0809-drm-i915-add-support-for-per-pipe-power-sequencing-o.patch index ba22402d48038..9e43b0e727948 100644 --- a/patches.baytrail/0809-drm-i915-add-support-for-per-pipe-power-sequencing-o.patch +++ b/patches.baytrail/0809-drm-i915-add-support-for-per-pipe-power-sequencing-o.patch @@ -24,11 +24,9 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit bf13e81b904a37d94d83dd6c3b53a147719a3ead) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_dp.c | 142 ++++++++++++++++++++++++++++------------ + drivers/gpu/drm/i915/intel_dp.c | 142 ++++++++++++++++++++++++++++------------ 1 file changed, 100 insertions(+), 42 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 7a66f4125fac..61e5c76c2376 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -237,24 +237,77 @@ intel_hrawclk(struct drm_device *dev) @@ -115,7 +113,7 @@ index 7a66f4125fac..61e5c76c2376 100644 } static void -@@ -262,19 +315,15 @@ intel_dp_check_edp(struct intel_dp *intel_dp) +@@ -262,19 +315,15 @@ intel_dp_check_edp(struct intel_dp *inte { struct drm_device *dev = intel_dp_to_dev(intel_dp); struct drm_i915_private *dev_priv = dev->dev_private; @@ -137,7 +135,7 @@ index 7a66f4125fac..61e5c76c2376 100644 } } -@@ -959,8 +1008,8 @@ static void ironlake_wait_panel_status(struct intel_dp *intel_dp, +@@ -959,8 +1008,8 @@ static void ironlake_wait_panel_status(s struct drm_i915_private *dev_priv = dev->dev_private; u32 pp_stat_reg, pp_ctrl_reg; @@ -148,7 +146,7 @@ index 7a66f4125fac..61e5c76c2376 100644 DRM_DEBUG_KMS("mask %08x value %08x status %08x control %08x\n", mask, value, -@@ -1002,11 +1051,8 @@ static u32 ironlake_get_pp_control(struct intel_dp *intel_dp) +@@ -1002,11 +1051,8 @@ static u32 ironlake_get_pp_control(stru struct drm_device *dev = intel_dp_to_dev(intel_dp); struct drm_i915_private *dev_priv = dev->dev_private; u32 control; @@ -161,7 +159,7 @@ index 7a66f4125fac..61e5c76c2376 100644 control &= ~PANEL_UNLOCK_MASK; control |= PANEL_UNLOCK_REGS; return control; -@@ -1039,8 +1085,8 @@ void ironlake_edp_panel_vdd_on(struct intel_dp *intel_dp) +@@ -1039,8 +1085,8 @@ void ironlake_edp_panel_vdd_on(struct in pp = ironlake_get_pp_control(intel_dp); pp |= EDP_FORCE_VDD; @@ -172,7 +170,7 @@ index 7a66f4125fac..61e5c76c2376 100644 I915_WRITE(pp_ctrl_reg, pp); POSTING_READ(pp_ctrl_reg); -@@ -1068,8 +1114,8 @@ static void ironlake_panel_vdd_off_sync(struct intel_dp *intel_dp) +@@ -1068,8 +1114,8 @@ static void ironlake_panel_vdd_off_sync( pp = ironlake_get_pp_control(intel_dp); pp &= ~EDP_FORCE_VDD; @@ -183,7 +181,7 @@ index 7a66f4125fac..61e5c76c2376 100644 I915_WRITE(pp_ctrl_reg, pp); POSTING_READ(pp_ctrl_reg); -@@ -1134,20 +1180,19 @@ void ironlake_edp_panel_on(struct intel_dp *intel_dp) +@@ -1134,20 +1180,19 @@ void ironlake_edp_panel_on(struct intel_ ironlake_wait_panel_power_cycle(intel_dp); @@ -207,7 +205,7 @@ index 7a66f4125fac..61e5c76c2376 100644 I915_WRITE(pp_ctrl_reg, pp); POSTING_READ(pp_ctrl_reg); -@@ -1155,8 +1200,8 @@ void ironlake_edp_panel_on(struct intel_dp *intel_dp) +@@ -1155,8 +1200,8 @@ void ironlake_edp_panel_on(struct intel_ if (IS_GEN5(dev)) { pp |= PANEL_POWER_RESET; /* restore panel reset bit */ @@ -218,7 +216,7 @@ index 7a66f4125fac..61e5c76c2376 100644 } } -@@ -1179,7 +1224,7 @@ void ironlake_edp_panel_off(struct intel_dp *intel_dp) +@@ -1179,7 +1224,7 @@ void ironlake_edp_panel_off(struct intel * panels get very unhappy and cease to work. */ pp &= ~(POWER_TARGET_ON | EDP_FORCE_VDD | PANEL_POWER_RESET | EDP_BLC_ENABLE); @@ -227,7 +225,7 @@ index 7a66f4125fac..61e5c76c2376 100644 I915_WRITE(pp_ctrl_reg, pp); POSTING_READ(pp_ctrl_reg); -@@ -1212,7 +1257,7 @@ void ironlake_edp_backlight_on(struct intel_dp *intel_dp) +@@ -1212,7 +1257,7 @@ void ironlake_edp_backlight_on(struct in pp = ironlake_get_pp_control(intel_dp); pp |= EDP_BLC_ENABLE; @@ -236,7 +234,7 @@ index 7a66f4125fac..61e5c76c2376 100644 I915_WRITE(pp_ctrl_reg, pp); POSTING_READ(pp_ctrl_reg); -@@ -1236,7 +1281,7 @@ void ironlake_edp_backlight_off(struct intel_dp *intel_dp) +@@ -1236,7 +1281,7 @@ void ironlake_edp_backlight_off(struct i pp = ironlake_get_pp_control(intel_dp); pp &= ~EDP_BLC_ENABLE; @@ -245,7 +243,7 @@ index 7a66f4125fac..61e5c76c2376 100644 I915_WRITE(pp_ctrl_reg, pp); POSTING_READ(pp_ctrl_reg); -@@ -1763,6 +1808,7 @@ static void vlv_pre_enable_dp(struct intel_encoder *encoder) +@@ -1763,6 +1808,7 @@ static void vlv_pre_enable_dp(struct int struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); int port = vlv_dport_to_channel(dport); int pipe = intel_crtc->pipe; @@ -253,7 +251,7 @@ index 7a66f4125fac..61e5c76c2376 100644 u32 val; mutex_lock(&dev_priv->dpio_lock); -@@ -1780,6 +1826,11 @@ static void vlv_pre_enable_dp(struct intel_encoder *encoder) +@@ -1780,6 +1826,11 @@ static void vlv_pre_enable_dp(struct int mutex_unlock(&dev_priv->dpio_lock); @@ -265,7 +263,7 @@ index 7a66f4125fac..61e5c76c2376 100644 intel_enable_dp(encoder); vlv_wait_port_ready(dev_priv, port); -@@ -3172,24 +3223,26 @@ intel_dp_init_panel_power_sequencer(struct drm_device *dev, +@@ -3188,24 +3239,26 @@ intel_dp_init_panel_power_sequencer(stru struct drm_i915_private *dev_priv = dev->dev_private; struct edp_power_seq cur, vbt, spec, final; u32 pp_on, pp_off, pp_div, pp; @@ -299,7 +297,7 @@ index 7a66f4125fac..61e5c76c2376 100644 pp_on = I915_READ(pp_on_reg); pp_off = I915_READ(pp_off_reg); -@@ -3277,9 +3330,11 @@ intel_dp_init_panel_power_sequencer_registers(struct drm_device *dev, +@@ -3293,9 +3346,11 @@ intel_dp_init_panel_power_sequencer_regi pp_off_reg = PCH_PP_OFF_DELAYS; pp_div_reg = PCH_PP_DIVISOR; } else { @@ -314,7 +312,7 @@ index 7a66f4125fac..61e5c76c2376 100644 } /* And finally store the new values in the power sequencer. */ -@@ -3296,7 +3351,10 @@ intel_dp_init_panel_power_sequencer_registers(struct drm_device *dev, +@@ -3312,7 +3367,10 @@ intel_dp_init_panel_power_sequencer_regi /* Haswell doesn't have any port selection bits for the panel * power sequencer any more. */ if (IS_VALLEYVIEW(dev)) { @@ -326,6 +324,3 @@ index 7a66f4125fac..61e5c76c2376 100644 } else if (HAS_PCH_IBX(dev) || HAS_PCH_CPT(dev)) { if (dp_to_dig_port(intel_dp)->port == PORT_A) port_sel = PANEL_PORT_SELECT_DPA; --- -1.8.5.rc3 - diff --git a/patches.baytrail/0821-drm-i915-Write-RING_TAIL-once-per-request.patch b/patches.baytrail/0821-drm-i915-Write-RING_TAIL-once-per-request.patch index 2f4db0b06d856..3fcc713320aab 100644 --- a/patches.baytrail/0821-drm-i915-Write-RING_TAIL-once-per-request.patch +++ b/patches.baytrail/0821-drm-i915-Write-RING_TAIL-once-per-request.patch @@ -30,14 +30,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 092467327c45edbfce6c2bb71ee842bec16b9a60) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_dma.c | 2 +- - drivers/gpu/drm/i915/intel_display.c | 10 +++++----- - drivers/gpu/drm/i915/intel_ringbuffer.c | 30 ++++++++++++++++-------------- - drivers/gpu/drm/i915/intel_ringbuffer.h | 7 ++++++- + drivers/gpu/drm/i915/i915_dma.c | 2 +- + drivers/gpu/drm/i915/intel_display.c | 10 +++++----- + drivers/gpu/drm/i915/intel_ringbuffer.c | 30 ++++++++++++++++-------------- + drivers/gpu/drm/i915/intel_ringbuffer.h | 7 ++++++- 4 files changed, 28 insertions(+), 21 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c -index 9b265a4c6a3d..be5120f702cc 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -52,7 +52,7 @@ @@ -49,11 +47,9 @@ index 9b265a4c6a3d..be5120f702cc 100644 /** * Lock test for when it's just for synchronization of ring access. -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index c3fa87bf0175..6fb975ea2bee 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -7703,7 +7703,7 @@ static int intel_gen2_queue_flip(struct drm_device *dev, +@@ -7703,7 +7703,7 @@ static int intel_gen2_queue_flip(struct intel_ring_emit(ring, 0); /* aux display base address, unused */ intel_mark_page_flip_active(intel_crtc); @@ -62,7 +58,7 @@ index c3fa87bf0175..6fb975ea2bee 100644 return 0; err_unpin: -@@ -7745,7 +7745,7 @@ static int intel_gen3_queue_flip(struct drm_device *dev, +@@ -7745,7 +7745,7 @@ static int intel_gen3_queue_flip(struct intel_ring_emit(ring, MI_NOOP); intel_mark_page_flip_active(intel_crtc); @@ -71,7 +67,7 @@ index c3fa87bf0175..6fb975ea2bee 100644 return 0; err_unpin: -@@ -7794,7 +7794,7 @@ static int intel_gen4_queue_flip(struct drm_device *dev, +@@ -7794,7 +7794,7 @@ static int intel_gen4_queue_flip(struct intel_ring_emit(ring, pf | pipesrc); intel_mark_page_flip_active(intel_crtc); @@ -80,7 +76,7 @@ index c3fa87bf0175..6fb975ea2bee 100644 return 0; err_unpin: -@@ -7839,7 +7839,7 @@ static int intel_gen6_queue_flip(struct drm_device *dev, +@@ -7839,7 +7839,7 @@ static int intel_gen6_queue_flip(struct intel_ring_emit(ring, pf | pipesrc); intel_mark_page_flip_active(intel_crtc); @@ -89,7 +85,7 @@ index c3fa87bf0175..6fb975ea2bee 100644 return 0; err_unpin: -@@ -7918,7 +7918,7 @@ static int intel_gen7_queue_flip(struct drm_device *dev, +@@ -7918,7 +7918,7 @@ static int intel_gen7_queue_flip(struct intel_ring_emit(ring, (MI_NOOP)); intel_mark_page_flip_active(intel_crtc); @@ -98,11 +94,9 @@ index c3fa87bf0175..6fb975ea2bee 100644 return 0; err_unpin: -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index 284afaf5d6ff..686e5b23481d 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -41,6 +41,16 @@ static inline int ring_space(struct intel_ring_buffer *ring) +@@ -41,6 +41,16 @@ static inline int ring_space(struct inte return space; } @@ -119,7 +113,7 @@ index 284afaf5d6ff..686e5b23481d 100644 static int gen2_render_ring_flush(struct intel_ring_buffer *ring, u32 invalidate_domains, -@@ -631,7 +641,7 @@ gen6_add_request(struct intel_ring_buffer *ring) +@@ -631,7 +641,7 @@ gen6_add_request(struct intel_ring_buffe intel_ring_emit(ring, I915_GEM_HWS_INDEX << MI_STORE_DWORD_INDEX_SHIFT); intel_ring_emit(ring, ring->outstanding_lazy_seqno); intel_ring_emit(ring, MI_USER_INTERRUPT); @@ -128,7 +122,7 @@ index 284afaf5d6ff..686e5b23481d 100644 return 0; } -@@ -744,7 +754,7 @@ pc_render_add_request(struct intel_ring_buffer *ring) +@@ -744,7 +754,7 @@ pc_render_add_request(struct intel_ring_ intel_ring_emit(ring, ring->scratch.gtt_offset | PIPE_CONTROL_GLOBAL_GTT); intel_ring_emit(ring, ring->outstanding_lazy_seqno); intel_ring_emit(ring, 0); @@ -137,7 +131,7 @@ index 284afaf5d6ff..686e5b23481d 100644 return 0; } -@@ -965,7 +975,7 @@ i9xx_add_request(struct intel_ring_buffer *ring) +@@ -965,7 +975,7 @@ i9xx_add_request(struct intel_ring_buffe intel_ring_emit(ring, I915_GEM_HWS_INDEX << MI_STORE_DWORD_INDEX_SHIFT); intel_ring_emit(ring, ring->outstanding_lazy_seqno); intel_ring_emit(ring, MI_USER_INTERRUPT); @@ -146,7 +140,7 @@ index 284afaf5d6ff..686e5b23481d 100644 return 0; } -@@ -1414,6 +1424,9 @@ static int ring_wait_for_space(struct intel_ring_buffer *ring, int n) +@@ -1414,6 +1424,9 @@ static int ring_wait_for_space(struct in if (ret != -ENOSPC) return ret; @@ -156,7 +150,7 @@ index 284afaf5d6ff..686e5b23481d 100644 trace_i915_ring_wait_begin(ring); /* With GEM the hangcheck timer should kick us out of the loop, * leaving it early runs the risk of corrupting GEM state (due -@@ -1568,17 +1581,6 @@ void intel_ring_init_seqno(struct intel_ring_buffer *ring, u32 seqno) +@@ -1572,17 +1585,6 @@ void intel_ring_init_seqno(struct intel_ ring->hangcheck.seqno = seqno; } @@ -174,11 +168,9 @@ index 284afaf5d6ff..686e5b23481d 100644 static void gen6_bsd_ring_write_tail(struct intel_ring_buffer *ring, u32 value) { -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h -index b5aac5702085..71a73f4fe252 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h -@@ -239,7 +239,12 @@ static inline void intel_ring_emit(struct intel_ring_buffer *ring, +@@ -239,7 +239,12 @@ static inline void intel_ring_emit(struc iowrite32(data, ring->virtual_start + ring->tail); ring->tail += 4; } @@ -192,6 +184,3 @@ index b5aac5702085..71a73f4fe252 100644 int __must_check intel_ring_idle(struct intel_ring_buffer *ring); void intel_ring_init_seqno(struct intel_ring_buffer *ring, u32 seqno); int intel_ring_flush_all_caches(struct intel_ring_buffer *ring); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0846-drm-i915-Fix-port_clock-and-adjusted_mode.clock-read.patch b/patches.baytrail/0846-drm-i915-Fix-port_clock-and-adjusted_mode.clock-read.patch index a6a7a5e3df54a..69413e65306c1 100644 --- a/patches.baytrail/0846-drm-i915-Fix-port_clock-and-adjusted_mode.clock-read.patch +++ b/patches.baytrail/0846-drm-i915-Fix-port_clock-and-adjusted_mode.clock-read.patch @@ -43,20 +43,18 @@ Conflicts: (context changes) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_drv.h | 1 - - drivers/gpu/drm/i915/i915_reg.h | 1 + - drivers/gpu/drm/i915/intel_crt.c | 8 ++++ - drivers/gpu/drm/i915/intel_display.c | 74 ++++++++++++++++++------------------ - drivers/gpu/drm/i915/intel_dp.c | 11 +++++- - drivers/gpu/drm/i915/intel_drv.h | 2 + - drivers/gpu/drm/i915/intel_dvo.c | 2 + - drivers/gpu/drm/i915/intel_hdmi.c | 11 ++++++ - drivers/gpu/drm/i915/intel_lvds.c | 8 ++++ - drivers/gpu/drm/i915/intel_sdvo.c | 8 ++++ - 10 files changed, 86 insertions(+), 40 deletions(-) + drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_crt.c | 8 +++ + drivers/gpu/drm/i915/intel_display.c | 76 +++++++++++++++++------------------ + drivers/gpu/drm/i915/intel_dp.c | 11 ++++- + drivers/gpu/drm/i915/intel_drv.h | 2 + drivers/gpu/drm/i915/intel_dvo.c | 2 + drivers/gpu/drm/i915/intel_hdmi.c | 11 +++++ + drivers/gpu/drm/i915/intel_lvds.c | 8 +++ + drivers/gpu/drm/i915/intel_sdvo.c | 8 +++ + 10 files changed, 87 insertions(+), 41 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h -index 7caf71d52abe..8b16d47280f9 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -371,7 +371,6 @@ struct drm_i915_display_funcs { @@ -67,11 +65,9 @@ index 7caf71d52abe..8b16d47280f9 100644 int (*crtc_mode_set)(struct drm_crtc *crtc, int x, int y, struct drm_framebuffer *old_fb); -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index bcee89b7c43e..384adfba3983 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -2071,6 +2071,7 @@ +@@ -2075,6 +2075,7 @@ /* Gen 4 SDVO/HDMI bits: */ #define SDVO_COLOR_FORMAT_8bpc (0 << 26) @@ -79,11 +75,9 @@ index bcee89b7c43e..384adfba3983 100644 #define SDVO_ENCODING_SDVO (0 << 10) #define SDVO_ENCODING_HDMI (2 << 10) #define HDMI_MODE_SELECT_HDMI (1 << 9) /* HDMI only */ -diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c -index f5f89c31d71e..6f101d5620e4 100644 --- a/drivers/gpu/drm/i915/intel_crt.c +++ b/drivers/gpu/drm/i915/intel_crt.c -@@ -89,6 +89,7 @@ static void intel_crt_get_config(struct intel_encoder *encoder, +@@ -89,6 +89,7 @@ static void intel_crt_get_config(struct struct drm_i915_private *dev_priv = encoder->base.dev->dev_private; struct intel_crt *crt = intel_encoder_to_crt(encoder); u32 tmp, flags = 0; @@ -91,7 +85,7 @@ index f5f89c31d71e..6f101d5620e4 100644 tmp = I915_READ(crt->adpa_reg); -@@ -103,6 +104,13 @@ static void intel_crt_get_config(struct intel_encoder *encoder, +@@ -103,6 +104,13 @@ static void intel_crt_get_config(struct flags |= DRM_MODE_FLAG_NVSYNC; pipe_config->adjusted_mode.flags |= flags; @@ -105,11 +99,9 @@ index f5f89c31d71e..6f101d5620e4 100644 } /* Note: The caller is required to filter out dpms modes not supported by the -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index dfc021de2eed..0a3cc984ba35 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -47,8 +47,8 @@ static void intel_crtc_update_cursor(struct drm_crtc *crtc, bool on); +@@ -47,8 +47,8 @@ static void intel_crtc_update_cursor(str static void i9xx_crtc_clock_get(struct intel_crtc *crtc, struct intel_crtc_config *pipe_config); @@ -120,7 +112,7 @@ index dfc021de2eed..0a3cc984ba35 100644 static int intel_set_mode(struct drm_crtc *crtc, struct drm_display_mode *mode, int x, int y, struct drm_framebuffer *old_fb); -@@ -5068,6 +5068,8 @@ static bool i9xx_get_pipe_config(struct intel_crtc *crtc, +@@ -5068,6 +5068,8 @@ static bool i9xx_get_pipe_config(struct DPLL_PORTB_READY_MASK); } @@ -129,7 +121,7 @@ index dfc021de2eed..0a3cc984ba35 100644 return true; } -@@ -6027,6 +6029,8 @@ static bool ironlake_get_pipe_config(struct intel_crtc *crtc, +@@ -6027,6 +6029,8 @@ static bool ironlake_get_pipe_config(str pipe_config->pixel_multiplier = ((tmp & PLL_REF_SDVO_HDMI_MULTIPLIER_MASK) >> PLL_REF_SDVO_HDMI_MULTIPLIER_SHIFT) + 1; @@ -138,7 +130,7 @@ index dfc021de2eed..0a3cc984ba35 100644 } else { pipe_config->pixel_multiplier = 1; } -@@ -7438,7 +7442,12 @@ static void i9xx_crtc_clock_get(struct intel_crtc *crtc, +@@ -7438,7 +7442,12 @@ static void i9xx_crtc_clock_get(struct i i9xx_clock(refclk, &clock); } @@ -152,7 +144,7 @@ index dfc021de2eed..0a3cc984ba35 100644 } int intel_dotclock_calculate(int link_freq, -@@ -7460,31 +7469,23 @@ int intel_dotclock_calculate(int link_freq, +@@ -7460,31 +7469,23 @@ int intel_dotclock_calculate(int link_fr return div_u64((u64)m_n->link_m * link_freq, m_n->link_n); } @@ -163,25 +155,20 @@ index dfc021de2eed..0a3cc984ba35 100644 { struct drm_device *dev = crtc->base.dev; - int link_freq; -+ -+ /* read out port_clock from the DPLL */ -+ i9xx_crtc_clock_get(crtc, pipe_config); - /* +- /* - * We need to get the FDI or DP link clock here to derive - * the M/N dividers. - * - * For FDI, we read it from the BIOS or use a fixed 2.7GHz. - * For DP, it's either 1.62GHz or 2.7GHz. - * We do our calculations in 10*MHz since we don't need much precison. -+ * This value does not include pixel_multiplier. -+ * We will check that port_clock and adjusted_mode.clock -+ * agree once we know their relationship in the encoder's -+ * get_config() function. - */ +- */ - if (pipe_config->has_pch_encoder) { - link_freq = intel_fdi_link_freq(dev) * 10000; -- ++ /* read out port_clock from the DPLL */ ++ i9xx_crtc_clock_get(crtc, pipe_config); + - pipe_config->adjusted_mode.clock = - intel_dotclock_calculate(link_freq, &pipe_config->fdi_m_n); - } else { @@ -190,6 +177,12 @@ index dfc021de2eed..0a3cc984ba35 100644 - pipe_config->adjusted_mode.clock = - intel_dotclock_calculate(link_freq, &pipe_config->dp_m_n); - } ++ /* ++ * This value does not include pixel_multiplier. ++ * We will check that port_clock and adjusted_mode.clock ++ * agree once we know their relationship in the encoder's ++ * get_config() function. ++ */ + pipe_config->adjusted_mode.clock = + intel_dotclock_calculate(intel_fdi_link_freq(dev) * 10000, + &pipe_config->fdi_m_n); @@ -206,7 +199,7 @@ index dfc021de2eed..0a3cc984ba35 100644 WARN(crtc->active != active, "crtc active state doesn't match with hw state " "(expected %i, found %i)\n", crtc->active, active); -@@ -8981,6 +8979,18 @@ intel_modeset_check_state(struct drm_device *dev) +@@ -8981,6 +8979,18 @@ intel_modeset_check_state(struct drm_dev check_shared_dpll_state(dev); } @@ -225,7 +218,7 @@ index dfc021de2eed..0a3cc984ba35 100644 static int __intel_set_mode(struct drm_crtc *crtc, struct drm_display_mode *mode, int x, int y, struct drm_framebuffer *fb) -@@ -9932,7 +9942,6 @@ static void intel_init_display(struct drm_device *dev) +@@ -9932,7 +9942,6 @@ static void intel_init_display(struct dr dev_priv->display.update_plane = ironlake_update_plane; } else if (HAS_PCH_SPLIT(dev)) { dev_priv->display.get_pipe_config = ironlake_get_pipe_config; @@ -233,7 +226,7 @@ index dfc021de2eed..0a3cc984ba35 100644 dev_priv->display.crtc_mode_set = ironlake_crtc_mode_set; dev_priv->display.crtc_enable = ironlake_crtc_enable; dev_priv->display.crtc_disable = ironlake_crtc_disable; -@@ -9940,7 +9949,6 @@ static void intel_init_display(struct drm_device *dev) +@@ -9940,7 +9949,6 @@ static void intel_init_display(struct dr dev_priv->display.update_plane = ironlake_update_plane; } else if (IS_VALLEYVIEW(dev)) { dev_priv->display.get_pipe_config = i9xx_get_pipe_config; @@ -241,7 +234,7 @@ index dfc021de2eed..0a3cc984ba35 100644 dev_priv->display.crtc_mode_set = i9xx_crtc_mode_set; dev_priv->display.crtc_enable = valleyview_crtc_enable; dev_priv->display.crtc_disable = i9xx_crtc_disable; -@@ -9948,7 +9956,6 @@ static void intel_init_display(struct drm_device *dev) +@@ -9948,7 +9956,6 @@ static void intel_init_display(struct dr dev_priv->display.update_plane = i9xx_update_plane; } else { dev_priv->display.get_pipe_config = i9xx_get_pipe_config; @@ -249,7 +242,7 @@ index dfc021de2eed..0a3cc984ba35 100644 dev_priv->display.crtc_mode_set = i9xx_crtc_mode_set; dev_priv->display.crtc_enable = i9xx_crtc_enable; dev_priv->display.crtc_disable = i9xx_crtc_disable; -@@ -10567,15 +10574,6 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev) +@@ -10567,15 +10574,6 @@ static void intel_modeset_readout_hw_sta pipe); } @@ -265,11 +258,9 @@ index dfc021de2eed..0a3cc984ba35 100644 list_for_each_entry(connector, &dev->mode_config.connector_list, base.head) { if (connector->get_hw_state(connector)) { -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index afd055e21b90..16337f752ecb 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -1428,6 +1428,7 @@ static void intel_dp_get_config(struct intel_encoder *encoder, +@@ -1428,6 +1428,7 @@ static void intel_dp_get_config(struct i struct drm_i915_private *dev_priv = dev->dev_private; enum port port = dp_to_dig_port(intel_dp)->port; struct intel_crtc *crtc = to_intel_crtc(encoder->base.crtc); @@ -277,7 +268,7 @@ index afd055e21b90..16337f752ecb 100644 if ((port == PORT_A) || !HAS_PCH_CPT(dev)) { tmp = I915_READ(intel_dp->output_reg); -@@ -1459,12 +1460,20 @@ static void intel_dp_get_config(struct intel_encoder *encoder, +@@ -1459,12 +1460,20 @@ static void intel_dp_get_config(struct i intel_dp_get_m_n(crtc, pipe_config); @@ -299,11 +290,9 @@ index afd055e21b90..16337f752ecb 100644 } static bool is_edp_psr(struct intel_dp *intel_dp) -diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h -index 494c2fa007fd..2597027001db 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h -@@ -806,6 +806,8 @@ extern void intel_dp_get_m_n(struct intel_crtc *crtc, +@@ -806,6 +806,8 @@ extern void intel_dp_get_m_n(struct inte struct intel_crtc_config *pipe_config); extern int intel_dotclock_calculate(int link_freq, const struct intel_link_m_n *m_n); @@ -312,11 +301,9 @@ index 494c2fa007fd..2597027001db 100644 extern void i915_disable_vga_mem(struct drm_device *dev); #endif /* __INTEL_DRV_H__ */ -diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c -index 55cec3871b04..ff86c366218c 100644 --- a/drivers/gpu/drm/i915/intel_dvo.c +++ b/drivers/gpu/drm/i915/intel_dvo.c -@@ -153,6 +153,8 @@ static void intel_dvo_get_config(struct intel_encoder *encoder, +@@ -153,6 +153,8 @@ static void intel_dvo_get_config(struct flags |= DRM_MODE_FLAG_NVSYNC; pipe_config->adjusted_mode.flags |= flags; @@ -325,11 +312,9 @@ index 55cec3871b04..ff86c366218c 100644 } static void intel_disable_dvo(struct intel_encoder *encoder) -diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c -index 70c716ed8350..17b2d7e948b6 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c -@@ -713,6 +713,7 @@ static void intel_hdmi_get_config(struct intel_encoder *encoder, +@@ -713,6 +713,7 @@ static void intel_hdmi_get_config(struct struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base); struct drm_i915_private *dev_priv = encoder->base.dev->dev_private; u32 tmp, flags = 0; @@ -337,7 +322,7 @@ index 70c716ed8350..17b2d7e948b6 100644 tmp = I915_READ(intel_hdmi->hdmi_reg); -@@ -727,6 +728,16 @@ static void intel_hdmi_get_config(struct intel_encoder *encoder, +@@ -727,6 +728,16 @@ static void intel_hdmi_get_config(struct flags |= DRM_MODE_FLAG_NVSYNC; pipe_config->adjusted_mode.flags |= flags; @@ -354,11 +339,9 @@ index 70c716ed8350..17b2d7e948b6 100644 } static void intel_enable_hdmi(struct intel_encoder *encoder) -diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c -index b8af94a5be39..1ba9998add08 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c -@@ -92,6 +92,7 @@ static void intel_lvds_get_config(struct intel_encoder *encoder, +@@ -92,6 +92,7 @@ static void intel_lvds_get_config(struct struct drm_device *dev = encoder->base.dev; struct drm_i915_private *dev_priv = dev->dev_private; u32 lvds_reg, tmp, flags = 0; @@ -366,7 +349,7 @@ index b8af94a5be39..1ba9998add08 100644 if (HAS_PCH_SPLIT(dev)) lvds_reg = PCH_LVDS; -@@ -116,6 +117,13 @@ static void intel_lvds_get_config(struct intel_encoder *encoder, +@@ -116,6 +117,13 @@ static void intel_lvds_get_config(struct pipe_config->gmch_pfit.control |= tmp & PANEL_8TO6_DITHER_ENABLE; } @@ -380,11 +363,9 @@ index b8af94a5be39..1ba9998add08 100644 } /* The LVDS pin pair needs to be on before the DPLLs are enabled. -diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c -index ebfd5138178f..91aea9e1ab6f 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c -@@ -1325,6 +1325,7 @@ static void intel_sdvo_get_config(struct intel_encoder *encoder, +@@ -1325,6 +1325,7 @@ static void intel_sdvo_get_config(struct struct intel_sdvo *intel_sdvo = to_sdvo(encoder); struct intel_sdvo_dtd dtd; int encoder_pixel_multiplier = 0; @@ -392,7 +373,7 @@ index ebfd5138178f..91aea9e1ab6f 100644 u32 flags = 0, sdvox; u8 val; bool ret; -@@ -1363,6 +1364,13 @@ static void intel_sdvo_get_config(struct intel_encoder *encoder, +@@ -1363,6 +1364,13 @@ static void intel_sdvo_get_config(struct >> SDVO_PORT_MULTIPLY_SHIFT) + 1; } @@ -406,6 +387,3 @@ index ebfd5138178f..91aea9e1ab6f 100644 /* Cross check the port pixel multiplier with the sdvo encoder state. */ if (intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_CLOCK_RATE_MULT, &val, 1)) { --- -1.8.5.rc3 - diff --git a/patches.baytrail/0876-drm-i915-write-D_COMP-using-the-mailbox.patch b/patches.baytrail/0876-drm-i915-write-D_COMP-using-the-mailbox.patch index c4ca3a620b3d2..6b7576a183178 100644 --- a/patches.baytrail/0876-drm-i915-write-D_COMP-using-the-mailbox.patch +++ b/patches.baytrail/0876-drm-i915-write-D_COMP-using-the-mailbox.patch @@ -18,12 +18,10 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 515b239269fb67fd167676d335a56ef0c13e53d5) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 4 ++++ - drivers/gpu/drm/i915/intel_display.c | 10 ++++++++-- + drivers/gpu/drm/i915/i915_reg.h | 4 ++++ + drivers/gpu/drm/i915/intel_display.c | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 384adfba3983..af6f93ca7296 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -1441,6 +1441,8 @@ @@ -35,7 +33,7 @@ index 384adfba3983..af6f93ca7296 100644 */ #define MCHBAR_MIRROR_BASE 0x10000 -@@ -4724,6 +4726,8 @@ +@@ -4728,6 +4730,8 @@ #define GEN6_PCODE_READ_MIN_FREQ_TABLE 0x9 #define GEN6_PCODE_WRITE_RC6VIDS 0x4 #define GEN6_PCODE_READ_RC6VIDS 0x5 @@ -44,11 +42,9 @@ index 384adfba3983..af6f93ca7296 100644 #define GEN6_ENCODE_RC6_VID(mv) (((mv) - 245) / 5) #define GEN6_DECODE_RC6_VID(vids) (((vids) * 5) + 245) #define GEN6_PCODE_DATA 0x138128 -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 1e3c14b5a891..07f26a9e6957 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c -@@ -6135,7 +6135,10 @@ void hsw_disable_lcpll(struct drm_i915_private *dev_priv, +@@ -6135,7 +6135,10 @@ void hsw_disable_lcpll(struct drm_i915_p val = I915_READ(D_COMP); val |= D_COMP_COMP_DISABLE; @@ -60,7 +56,7 @@ index 1e3c14b5a891..07f26a9e6957 100644 POSTING_READ(D_COMP); ndelay(100); -@@ -6177,7 +6180,10 @@ void hsw_restore_lcpll(struct drm_i915_private *dev_priv) +@@ -6177,7 +6180,10 @@ void hsw_restore_lcpll(struct drm_i915_p val = I915_READ(D_COMP); val |= D_COMP_COMP_FORCE; val &= ~D_COMP_COMP_DISABLE; @@ -72,6 +68,3 @@ index 1e3c14b5a891..07f26a9e6957 100644 POSTING_READ(D_COMP); val = I915_READ(LCPLL_CTL); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0880-drm-i915-Add-second-slice-l3-remapping.patch b/patches.baytrail/0880-drm-i915-Add-second-slice-l3-remapping.patch index 55dd4437781f6..729bbf261a52b 100644 --- a/patches.baytrail/0880-drm-i915-Add-second-slice-l3-remapping.patch +++ b/patches.baytrail/0880-drm-i915-Add-second-slice-l3-remapping.patch @@ -31,17 +31,15 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 35a85ac60618521d41cfdb14f3fbfc8ad7329e9e) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_drv.h | 7 ++- - drivers/gpu/drm/i915/i915_gem.c | 26 +++++----- - drivers/gpu/drm/i915/i915_irq.c | 89 +++++++++++++++++++++------------ - drivers/gpu/drm/i915/i915_reg.h | 7 +++ - drivers/gpu/drm/i915/i915_sysfs.c | 34 ++++++++++--- - drivers/gpu/drm/i915/intel_ringbuffer.c | 7 ++- - include/uapi/drm/i915_drm.h | 8 +-- - 7 files changed, 117 insertions(+), 61 deletions(-) + drivers/gpu/drm/i915/i915_drv.h | 7 +- + drivers/gpu/drm/i915/i915_gem.c | 26 ++++----- + drivers/gpu/drm/i915/i915_irq.c | 91 ++++++++++++++++++++------------ + drivers/gpu/drm/i915/i915_reg.h | 7 ++ + drivers/gpu/drm/i915/i915_sysfs.c | 34 +++++++++-- + drivers/gpu/drm/i915/intel_ringbuffer.c | 7 +- + include/uapi/drm/i915_drm.h | 8 +- + 7 files changed, 118 insertions(+), 62 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h -index 8b16d47280f9..c6e8df737566 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -917,9 +917,11 @@ struct i915_ums_state { @@ -65,7 +63,7 @@ index 8b16d47280f9..c6e8df737566 100644 #define GT_FREQUENCY_MULTIPLIER 50 -@@ -1946,7 +1949,7 @@ bool i915_gem_clflush_object(struct drm_i915_gem_object *obj, bool force); +@@ -1946,7 +1949,7 @@ bool i915_gem_clflush_object(struct drm_ int __must_check i915_gem_object_finish_gpu(struct drm_i915_gem_object *obj); int __must_check i915_gem_init(struct drm_device *dev); int __must_check i915_gem_init_hw(struct drm_device *dev); @@ -74,8 +72,6 @@ index 8b16d47280f9..c6e8df737566 100644 void i915_gem_init_swizzling(struct drm_device *dev); void i915_gem_cleanup_ringbuffer(struct drm_device *dev); int __must_check i915_gpu_idle(struct drm_device *dev); -diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c -index 3d3de6eba1e8..66bf75dce783 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -4252,16 +4252,15 @@ i915_gem_idle(struct drm_device *dev) @@ -99,7 +95,7 @@ index 3d3de6eba1e8..66bf75dce783 100644 return; misccpctl = I915_READ(GEN7_MISCCPCTL); -@@ -4269,17 +4268,17 @@ void i915_gem_l3_remap(struct drm_device *dev) +@@ -4269,17 +4268,17 @@ void i915_gem_l3_remap(struct drm_device POSTING_READ(GEN7_MISCCPCTL); for (i = 0; i < GEN7_L3LOG_SIZE; i += 4) { @@ -142,11 +138,9 @@ index 3d3de6eba1e8..66bf75dce783 100644 i915_gem_init_swizzling(dev); -diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index a42f30b9cdba..1c7f6abe0bc5 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -888,9 +888,10 @@ static void ivybridge_parity_work(struct work_struct *work) +@@ -888,9 +888,10 @@ static void ivybridge_parity_work(struct drm_i915_private_t *dev_priv = container_of(work, drm_i915_private_t, l3_parity.error_work); u32 error_status, row, bank, subbank; @@ -158,7 +152,7 @@ index a42f30b9cdba..1c7f6abe0bc5 100644 /* We must turn off DOP level clock gating to access the L3 registers. * In order to prevent a get/put style interface, acquire struct mutex -@@ -898,45 +899,64 @@ static void ivybridge_parity_work(struct work_struct *work) +@@ -898,45 +899,64 @@ static void ivybridge_parity_work(struct */ mutex_lock(&dev_priv->dev->struct_mutex); @@ -174,25 +168,31 @@ index a42f30b9cdba..1c7f6abe0bc5 100644 - row = GEN7_PARITY_ERROR_ROW(error_status); - bank = GEN7_PARITY_ERROR_BANK(error_status); - subbank = GEN7_PARITY_ERROR_SUBBANK(error_status); -+ while ((slice = ffs(dev_priv->l3_parity.which_slice)) != 0) { -+ u32 reg; - +- - I915_WRITE(GEN7_L3CDERRST1, GEN7_PARITY_ERROR_VALID | - GEN7_L3CDERRST1_ENABLE); - POSTING_READ(GEN7_L3CDERRST1); ++ while ((slice = ffs(dev_priv->l3_parity.which_slice)) != 0) { ++ u32 reg; + +- I915_WRITE(GEN7_MISCCPCTL, misccpctl); + slice--; + if (WARN_ON_ONCE(slice >= NUM_L3_SLICES(dev_priv->dev))) + break; -- I915_WRITE(GEN7_MISCCPCTL, misccpctl); -+ dev_priv->l3_parity.which_slice &= ~(1<<slice); - - spin_lock_irqsave(&dev_priv->irq_lock, flags); - ilk_enable_gt_irq(dev_priv, GT_RENDER_L3_PARITY_ERROR_INTERRUPT); - spin_unlock_irqrestore(&dev_priv->irq_lock, flags); -+ reg = GEN7_L3CDERRST1 + (slice * 0x200); ++ dev_priv->l3_parity.which_slice &= ~(1<<slice); - mutex_unlock(&dev_priv->dev->struct_mutex); ++ reg = GEN7_L3CDERRST1 + (slice * 0x200); + +- parity_event[0] = I915_L3_PARITY_UEVENT "=1"; +- parity_event[1] = kasprintf(GFP_KERNEL, "ROW=%d", row); +- parity_event[2] = kasprintf(GFP_KERNEL, "BANK=%d", bank); +- parity_event[3] = kasprintf(GFP_KERNEL, "SUBBANK=%d", subbank); +- parity_event[4] = NULL; + error_status = I915_READ(reg); + row = GEN7_PARITY_ERROR_ROW(error_status); + bank = GEN7_PARITY_ERROR_BANK(error_status); @@ -210,36 +210,31 @@ index a42f30b9cdba..1c7f6abe0bc5 100644 + + kobject_uevent_env(&dev_priv->dev->primary->kdev.kobj, + KOBJ_CHANGE, parity_event); - -- parity_event[0] = I915_L3_PARITY_UEVENT "=1"; -- parity_event[1] = kasprintf(GFP_KERNEL, "ROW=%d", row); -- parity_event[2] = kasprintf(GFP_KERNEL, "BANK=%d", bank); -- parity_event[3] = kasprintf(GFP_KERNEL, "SUBBANK=%d", subbank); -- parity_event[4] = NULL; ++ + DRM_DEBUG("Parity error: Slice = %d, Row = %d, Bank = %d, Sub bank = %d.\n", + slice, row, bank, subbank); - -- kobject_uevent_env(&dev_priv->dev->primary->kdev.kobj, -- KOBJ_CHANGE, parity_event); ++ + kfree(parity_event[4]); + kfree(parity_event[3]); + kfree(parity_event[2]); + kfree(parity_event[1]); + } -- DRM_DEBUG("Parity error: Row = %d, Bank = %d, Sub bank = %d.\n", -- row, bank, subbank); +- kobject_uevent_env(&dev_priv->dev->primary->kdev.kobj, +- KOBJ_CHANGE, parity_event); + I915_WRITE(GEN7_MISCCPCTL, misccpctl); -- kfree(parity_event[3]); -- kfree(parity_event[2]); -- kfree(parity_event[1]); +- DRM_DEBUG("Parity error: Row = %d, Bank = %d, Sub bank = %d.\n", +- row, bank, subbank); +out: + WARN_ON(dev_priv->l3_parity.which_slice); + spin_lock_irqsave(&dev_priv->irq_lock, flags); + ilk_enable_gt_irq(dev_priv, GT_PARITY_ERROR(dev_priv->dev)); + spin_unlock_irqrestore(&dev_priv->irq_lock, flags); -+ + +- kfree(parity_event[3]); +- kfree(parity_event[2]); +- kfree(parity_event[1]); + mutex_unlock(&dev_priv->dev->struct_mutex); } @@ -248,7 +243,7 @@ index a42f30b9cdba..1c7f6abe0bc5 100644 { drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; -@@ -944,9 +964,16 @@ static void ivybridge_parity_error_irq_handler(struct drm_device *dev) +@@ -944,9 +964,16 @@ static void ivybridge_parity_error_irq_h return; spin_lock(&dev_priv->irq_lock); @@ -266,7 +261,7 @@ index a42f30b9cdba..1c7f6abe0bc5 100644 queue_work(dev_priv->wq, &dev_priv->l3_parity.error_work); } -@@ -981,8 +1008,8 @@ static void snb_gt_irq_handler(struct drm_device *dev, +@@ -981,8 +1008,8 @@ static void snb_gt_irq_handler(struct dr i915_handle_error(dev, false); } @@ -277,7 +272,7 @@ index a42f30b9cdba..1c7f6abe0bc5 100644 } #define HPD_STORM_DETECT_PERIOD 1000 -@@ -2267,8 +2294,8 @@ static void gen5_gt_irq_postinstall(struct drm_device *dev) +@@ -2267,8 +2294,8 @@ static void gen5_gt_irq_postinstall(stru dev_priv->gt_irq_mask = ~0; if (HAS_L3_GPU_CACHE(dev)) { /* L3 parity interrupt is always unmasked. */ @@ -288,8 +283,6 @@ index a42f30b9cdba..1c7f6abe0bc5 100644 } gt_irqs |= GT_RENDER_USER_INTERRUPT; -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index af6f93ca7296..c4f9bef6d073 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -927,6 +927,7 @@ @@ -311,7 +304,7 @@ index af6f93ca7296..c4f9bef6d073 100644 /* These are all the "old" interrupts */ #define ILK_BSD_USER_INTERRUPT (1<<5) #define I915_PIPE_CONTROL_NOTIFY_INTERRUPT (1<<18) -@@ -4747,6 +4752,7 @@ +@@ -4751,6 +4756,7 @@ /* IVYBRIDGE DPF */ #define GEN7_L3CDERRST1 0xB008 /* L3CD Error Status 1 */ @@ -319,7 +312,7 @@ index af6f93ca7296..c4f9bef6d073 100644 #define GEN7_L3CDERRST1_ROW_MASK (0x7ff<<14) #define GEN7_PARITY_ERROR_VALID (1<<13) #define GEN7_L3CDERRST1_BANK_MASK (3<<11) -@@ -4760,6 +4766,7 @@ +@@ -4764,6 +4770,7 @@ #define GEN7_L3CDERRST1_ENABLE (1<<7) #define GEN7_L3LOG_BASE 0xB070 @@ -327,11 +320,9 @@ index af6f93ca7296..c4f9bef6d073 100644 #define GEN7_L3LOG_SIZE 0x80 #define GEN7_HALF_SLICE_CHICKEN1 0xe100 /* IVB GT1 + VLV */ -diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c -index 71f6de24444e..3a8bf0c9b5ce 100644 --- a/drivers/gpu/drm/i915/i915_sysfs.c +++ b/drivers/gpu/drm/i915/i915_sysfs.c -@@ -119,6 +119,7 @@ i915_l3_read(struct file *filp, struct kobject *kobj, +@@ -119,6 +119,7 @@ i915_l3_read(struct file *filp, struct k struct drm_device *drm_dev = dminor->dev; struct drm_i915_private *dev_priv = drm_dev->dev_private; uint32_t misccpctl; @@ -339,7 +330,7 @@ index 71f6de24444e..3a8bf0c9b5ce 100644 int i, ret; count = round_down(count, 4); -@@ -134,9 +135,9 @@ i915_l3_read(struct file *filp, struct kobject *kobj, +@@ -134,9 +135,9 @@ i915_l3_read(struct file *filp, struct k return ret; if (IS_HASWELL(drm_dev)) { @@ -351,7 +342,7 @@ index 71f6de24444e..3a8bf0c9b5ce 100644 count); else memset(buf, 0, count); -@@ -168,6 +169,7 @@ i915_l3_write(struct file *filp, struct kobject *kobj, +@@ -168,6 +169,7 @@ i915_l3_write(struct file *filp, struct struct drm_device *drm_dev = dminor->dev; struct drm_i915_private *dev_priv = drm_dev->dev_private; u32 *temp = NULL; /* Just here to make handling failures easy */ @@ -359,7 +350,7 @@ index 71f6de24444e..3a8bf0c9b5ce 100644 int ret; ret = l3_access_valid(drm_dev, offset); -@@ -178,7 +180,7 @@ i915_l3_write(struct file *filp, struct kobject *kobj, +@@ -178,7 +180,7 @@ i915_l3_write(struct file *filp, struct if (ret) return ret; @@ -368,7 +359,7 @@ index 71f6de24444e..3a8bf0c9b5ce 100644 temp = kzalloc(GEN7_L3LOG_SIZE, GFP_KERNEL); if (!temp) { mutex_unlock(&drm_dev->struct_mutex); -@@ -198,11 +200,11 @@ i915_l3_write(struct file *filp, struct kobject *kobj, +@@ -198,11 +200,11 @@ i915_l3_write(struct file *filp, struct * at this point it is left as a TODO. */ if (temp) @@ -383,7 +374,7 @@ index 71f6de24444e..3a8bf0c9b5ce 100644 mutex_unlock(&drm_dev->struct_mutex); -@@ -214,7 +216,17 @@ static struct bin_attribute dpf_attrs = { +@@ -214,7 +216,17 @@ static struct bin_attribute dpf_attrs = .size = GEN7_L3LOG_SIZE, .read = i915_l3_read, .write = i915_l3_write, @@ -402,7 +393,7 @@ index 71f6de24444e..3a8bf0c9b5ce 100644 }; static ssize_t gt_cur_freq_mhz_show(struct device *kdev, -@@ -525,6 +537,13 @@ void i915_setup_sysfs(struct drm_device *dev) +@@ -525,6 +537,13 @@ void i915_setup_sysfs(struct drm_device ret = device_create_bin_file(&dev->primary->kdev, &dpf_attrs); if (ret) DRM_ERROR("l3 parity sysfs setup failed\n"); @@ -416,7 +407,7 @@ index 71f6de24444e..3a8bf0c9b5ce 100644 } ret = 0; -@@ -548,6 +567,7 @@ void i915_teardown_sysfs(struct drm_device *dev) +@@ -548,6 +567,7 @@ void i915_teardown_sysfs(struct drm_devi sysfs_remove_files(&dev->primary->kdev.kobj, vlv_attrs); else sysfs_remove_files(&dev->primary->kdev.kobj, gen6_attrs); @@ -424,11 +415,9 @@ index 71f6de24444e..3a8bf0c9b5ce 100644 device_remove_bin_file(&dev->primary->kdev, &dpf_attrs); #ifdef CONFIG_PM sysfs_unmerge_group(&dev->primary->kdev.kobj, &rc6_attr_group); -diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c -index 686e5b23481d..958b7d8fea8b 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c -@@ -570,7 +570,7 @@ static int init_render_ring(struct intel_ring_buffer *ring) +@@ -570,7 +570,7 @@ static int init_render_ring(struct intel I915_WRITE(INSTPM, _MASKED_BIT_ENABLE(INSTPM_FORCE_ORDERING)); if (HAS_L3_GPU_CACHE(dev)) @@ -437,7 +426,7 @@ index 686e5b23481d..958b7d8fea8b 100644 return ret; } -@@ -1000,7 +1000,7 @@ gen6_ring_get_irq(struct intel_ring_buffer *ring) +@@ -1000,7 +1000,7 @@ gen6_ring_get_irq(struct intel_ring_buff if (HAS_L3_GPU_CACHE(dev) && ring->id == RCS) I915_WRITE_IMR(ring, ~(ring->irq_enable_mask | @@ -446,7 +435,7 @@ index 686e5b23481d..958b7d8fea8b 100644 else I915_WRITE_IMR(ring, ~ring->irq_enable_mask); ilk_enable_gt_irq(dev_priv, ring->irq_enable_mask); -@@ -1020,8 +1020,7 @@ gen6_ring_put_irq(struct intel_ring_buffer *ring) +@@ -1020,8 +1020,7 @@ gen6_ring_put_irq(struct intel_ring_buff spin_lock_irqsave(&dev_priv->irq_lock, flags); if (--ring->irq_refcount == 0) { if (HAS_L3_GPU_CACHE(dev) && ring->id == RCS) @@ -456,8 +445,6 @@ index 686e5b23481d..958b7d8fea8b 100644 else I915_WRITE_IMR(ring, ~0); ilk_disable_gt_irq(dev_priv, ring->irq_enable_mask); -diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h -index 55bb5729bd78..3a4e97bd8607 100644 --- a/include/uapi/drm/i915_drm.h +++ b/include/uapi/drm/i915_drm.h @@ -38,10 +38,10 @@ @@ -475,6 +462,3 @@ index 55bb5729bd78..3a4e97bd8607 100644 * * I915_ERROR_UEVENT - Generated upon error detection, currently only via * hangcheck. The error detection event is a good indicator of when things --- -1.8.5.rc3 - diff --git a/patches.baytrail/0900-drm-i915-use-pointer-k-cmz.-alloc-sizeof-pointer-.-p.patch b/patches.baytrail/0900-drm-i915-use-pointer-k-cmz.-alloc-sizeof-pointer-.-p.patch index 3b29bcb90b20e..8db3eb5a2b34c 100644 --- a/patches.baytrail/0900-drm-i915-use-pointer-k-cmz.-alloc-sizeof-pointer-.-p.patch +++ b/patches.baytrail/0900-drm-i915-use-pointer-k-cmz.-alloc-sizeof-pointer-.-p.patch @@ -132,7 +132,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -3633,11 +3633,11 @@ intel_dp_init(struct drm_device *dev, in +@@ -3649,11 +3649,11 @@ intel_dp_init(struct drm_device *dev, in struct drm_encoder *encoder; struct intel_connector *intel_connector; diff --git a/patches.baytrail/0905-drm-i915-VBT-s-child_device_config-changes-over-time.patch b/patches.baytrail/0905-drm-i915-VBT-s-child_device_config-changes-over-time.patch index bd460f1cb535d..f145ba5f293bf 100644 --- a/patches.baytrail/0905-drm-i915-VBT-s-child_device_config-changes-over-time.patch +++ b/patches.baytrail/0905-drm-i915-VBT-s-child_device_config-changes-over-time.patch @@ -21,16 +21,14 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 768f69c9fe601af39dfeb377f45909896f201444) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_drv.h | 2 +- - drivers/gpu/drm/i915/intel_bios.c | 36 ++++++++++++++++++------------------ - drivers/gpu/drm/i915/intel_bios.h | 33 +++++++++++++++++++++++++++++++-- - drivers/gpu/drm/i915/intel_dp.c | 6 +++--- - drivers/gpu/drm/i915/intel_lvds.c | 3 ++- - drivers/gpu/drm/i915/intel_tv.c | 8 ++++---- + drivers/gpu/drm/i915/i915_drv.h | 2 +- + drivers/gpu/drm/i915/intel_bios.c | 36 ++++++++++++++++++------------------ + drivers/gpu/drm/i915/intel_bios.h | 33 +++++++++++++++++++++++++++++++-- + drivers/gpu/drm/i915/intel_dp.c | 6 +++--- + drivers/gpu/drm/i915/intel_lvds.c | 3 ++- + drivers/gpu/drm/i915/intel_tv.c | 8 ++++---- 6 files changed, 59 insertions(+), 29 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h -index 8c52cbdb76f3..9868a66ef59c 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -1090,7 +1090,7 @@ struct intel_vbt_data { @@ -42,11 +40,9 @@ index 8c52cbdb76f3..9868a66ef59c 100644 }; enum intel_ddb_partitioning { -diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c -index 6668873fb3a8..33003b97f1f0 100644 --- a/drivers/gpu/drm/i915/intel_bios.c +++ b/drivers/gpu/drm/i915/intel_bios.c -@@ -389,7 +389,7 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv, +@@ -389,7 +389,7 @@ parse_sdvo_device_mapping(struct drm_i91 { struct sdvo_device_mapping *p_mapping; struct bdb_general_definitions *p_defs; @@ -55,7 +51,7 @@ index 6668873fb3a8..33003b97f1f0 100644 int i, child_device_num, count; u16 block_size; -@@ -416,36 +416,36 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv, +@@ -416,36 +416,36 @@ parse_sdvo_device_mapping(struct drm_i91 count = 0; for (i = 0; i < child_device_num; i++) { p_child = &(p_defs->devices[i]); @@ -105,7 +101,7 @@ index 6668873fb3a8..33003b97f1f0 100644 p_mapping->initialized = 1; DRM_DEBUG_KMS("SDVO device: dvo=%x, addr=%x, wiring=%d, ddc_pin=%d, i2c_pin=%d\n", p_mapping->dvo_port, -@@ -457,7 +457,7 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv, +@@ -457,7 +457,7 @@ parse_sdvo_device_mapping(struct drm_i91 DRM_DEBUG_KMS("Maybe one SDVO port is shared by " "two SDVO device.\n"); } @@ -114,7 +110,7 @@ index 6668873fb3a8..33003b97f1f0 100644 /* Maybe this is a SDVO device with multiple inputs */ /* And the mapping info is not added */ DRM_DEBUG_KMS("there exists the slave2_addr. Maybe this" -@@ -588,7 +588,7 @@ parse_device_mapping(struct drm_i915_private *dev_priv, +@@ -588,7 +588,7 @@ parse_device_mapping(struct drm_i915_pri struct bdb_header *bdb) { struct bdb_general_definitions *p_defs; @@ -123,7 +119,7 @@ index 6668873fb3a8..33003b97f1f0 100644 int i, child_device_num, count; u16 block_size; -@@ -616,7 +616,7 @@ parse_device_mapping(struct drm_i915_private *dev_priv, +@@ -616,7 +616,7 @@ parse_device_mapping(struct drm_i915_pri /* get the number of child device that is present */ for (i = 0; i < child_device_num; i++) { p_child = &(p_defs->devices[i]); @@ -132,7 +128,7 @@ index 6668873fb3a8..33003b97f1f0 100644 /* skip the device block if device type is invalid */ continue; } -@@ -636,7 +636,7 @@ parse_device_mapping(struct drm_i915_private *dev_priv, +@@ -636,7 +636,7 @@ parse_device_mapping(struct drm_i915_pri count = 0; for (i = 0; i < child_device_num; i++) { p_child = &(p_defs->devices[i]); @@ -141,8 +137,6 @@ index 6668873fb3a8..33003b97f1f0 100644 /* skip the device block if device type is invalid */ continue; } -diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h -index 6e9250eb9c2c..1da2bf208299 100644 --- a/drivers/gpu/drm/i915/intel_bios.h +++ b/drivers/gpu/drm/i915/intel_bios.h @@ -202,7 +202,10 @@ struct bdb_general_features { @@ -199,11 +193,9 @@ index 6e9250eb9c2c..1da2bf208299 100644 } __attribute__((packed)); struct bdb_lvds_options { -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 2f3d67f12a88..1b26c610d21a 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -3211,7 +3211,7 @@ intel_trans_dp_port_sel(struct drm_crtc *crtc) +@@ -3227,7 +3227,7 @@ intel_trans_dp_port_sel(struct drm_crtc bool intel_dpd_is_edp(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; @@ -212,7 +204,7 @@ index 2f3d67f12a88..1b26c610d21a 100644 int i; if (!dev_priv->vbt.child_dev_num) -@@ -3220,8 +3220,8 @@ bool intel_dpd_is_edp(struct drm_device *dev) +@@ -3236,8 +3236,8 @@ bool intel_dpd_is_edp(struct drm_device for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { p_child = dev_priv->vbt.child_dev + i; @@ -223,11 +215,9 @@ index 2f3d67f12a88..1b26c610d21a 100644 return true; } return false; -diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c -index 87d5a769b3ae..33994f2677ff 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c -@@ -810,7 +810,8 @@ static bool lvds_is_present_in_vbt(struct drm_device *dev, +@@ -810,7 +810,8 @@ static bool lvds_is_present_in_vbt(struc return true; for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { @@ -237,11 +227,9 @@ index 87d5a769b3ae..33994f2677ff 100644 /* If the device type is not LFP, continue. * We have to check both the new identifiers as well as the -diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c -index e6e93ce34f7b..11c15fbf9e55 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c -@@ -1518,7 +1518,7 @@ static const struct drm_encoder_funcs intel_tv_enc_funcs = { +@@ -1518,7 +1518,7 @@ static const struct drm_encoder_funcs in static int tv_is_present_in_vbt(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; @@ -250,7 +238,7 @@ index e6e93ce34f7b..11c15fbf9e55 100644 int i, ret; if (!dev_priv->vbt.child_dev_num) -@@ -1530,13 +1530,13 @@ static int tv_is_present_in_vbt(struct drm_device *dev) +@@ -1530,13 +1530,13 @@ static int tv_is_present_in_vbt(struct d /* * If the device type is not TV, continue. */ @@ -267,6 +255,3 @@ index e6e93ce34f7b..11c15fbf9e55 100644 ret = 1; break; } --- -1.8.5.rc3 - diff --git a/patches.baytrail/0921-drm-i915-Delay-the-release-of-the-forcewake-by-a-jif.patch b/patches.baytrail/0921-drm-i915-Delay-the-release-of-the-forcewake-by-a-jif.patch index e32d47575ca02..16a620c8cfbd2 100644 --- a/patches.baytrail/0921-drm-i915-Delay-the-release-of-the-forcewake-by-a-jif.patch +++ b/patches.baytrail/0921-drm-i915-Delay-the-release-of-the-forcewake-by-a-jif.patch @@ -40,7 +40,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c -@@ -1800,8 +1800,6 @@ int i915_driver_unload(struct drm_device +@@ -1801,8 +1801,6 @@ int i915_driver_unload(struct drm_device list_del(&dev_priv->gtt.base.global_link); WARN_ON(!list_empty(&dev_priv->vm_list)); drm_mm_takedown(&dev_priv->gtt.base.mm); @@ -49,7 +49,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> intel_teardown_gmbus(dev); intel_teardown_mchbar(dev); -@@ -1811,6 +1809,10 @@ int i915_driver_unload(struct drm_device +@@ -1812,6 +1810,10 @@ int i915_driver_unload(struct drm_device dev_priv->gtt.base.cleanup(&dev_priv->gtt.base); diff --git a/patches.baytrail/0955-drm-i915-vlv-use-lower-precision-RC6-counter.patch b/patches.baytrail/0955-drm-i915-vlv-use-lower-precision-RC6-counter.patch index a8192b3ac09e8..827ac661f1cf8 100644 --- a/patches.baytrail/0955-drm-i915-vlv-use-lower-precision-RC6-counter.patch +++ b/patches.baytrail/0955-drm-i915-vlv-use-lower-precision-RC6-counter.patch @@ -13,15 +13,13 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 49798eb2fe7240900d0a22a4e8d2b8e2f2ea6684) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 4 ++++ - drivers/gpu/drm/i915/intel_pm.c | 5 ++++- + drivers/gpu/drm/i915/i915_reg.h | 4 ++++ + drivers/gpu/drm/i915/intel_pm.c | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 33bb4750516a..c15cc749ca2c 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4729,6 +4729,10 @@ +@@ -4733,6 +4733,10 @@ GEN6_PM_RP_DOWN_TIMEOUT) #define GEN6_GT_GFX_RC6_LOCKED 0x138104 @@ -32,11 +30,9 @@ index 33bb4750516a..c15cc749ca2c 100644 #define GEN6_GT_GFX_RC6 0x138108 #define GEN6_GT_GFX_RC6p 0x13810C #define GEN6_GT_GFX_RC6pp 0x138110 -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index 2ac1c2fd58bb..102fc498a12f 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -3837,7 +3837,10 @@ static void valleyview_enable_rps(struct drm_device *dev) +@@ -3837,7 +3837,10 @@ static void valleyview_enable_rps(struct I915_WRITE(GEN6_RC6_THRESHOLD, 0xc350); /* allows RC6 residency counter to work */ @@ -48,6 +44,3 @@ index 2ac1c2fd58bb..102fc498a12f 100644 if (intel_enable_rc6(dev) & INTEL_RC6_ENABLE) rc6_mode = GEN7_RC_CTL_TO_MODE; I915_WRITE(GEN6_RC_CONTROL, rc6_mode); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0960-drm-i915-destroy-connector-sysfs-files-earlier.patch b/patches.baytrail/0960-drm-i915-destroy-connector-sysfs-files-earlier.patch index e3567398538fd..42d11464b7248 100644 --- a/patches.baytrail/0960-drm-i915-destroy-connector-sysfs-files-earlier.patch +++ b/patches.baytrail/0960-drm-i915-destroy-connector-sysfs-files-earlier.patch @@ -80,7 +80,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> intel_cleanup_overlay(dev); --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -3197,7 +3197,6 @@ intel_dp_connector_destroy(struct drm_co +@@ -3213,7 +3213,6 @@ intel_dp_connector_destroy(struct drm_co if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) intel_panel_fini(&intel_connector->panel); diff --git a/patches.baytrail/0968-drm-i915-Add-some-missing-steps-to-i915_driver_load-.patch b/patches.baytrail/0968-drm-i915-Add-some-missing-steps-to-i915_driver_load-.patch index f121012b57e3e..225b96cdacf35 100644 --- a/patches.baytrail/0968-drm-i915-Add-some-missing-steps-to-i915_driver_load-.patch +++ b/patches.baytrail/0968-drm-i915-Add-some-missing-steps-to-i915_driver_load-.patch @@ -56,7 +56,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> out_gem_unload: if (dev_priv->mm.inactive_shrinker.shrink) unregister_shrinker(&dev_priv->mm.inactive_shrinker); -@@ -1705,12 +1709,17 @@ out_gem_unload: +@@ -1706,12 +1710,17 @@ out_gem_unload: out_mtrrfree: arch_phys_wc_del(dev_priv->gtt.mtrr); io_mapping_free(dev_priv->gtt.mappable); @@ -75,7 +75,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> kfree(dev_priv); return ret; } -@@ -1801,6 +1810,8 @@ int i915_driver_unload(struct drm_device +@@ -1802,6 +1811,8 @@ int i915_driver_unload(struct drm_device WARN_ON(!list_empty(&dev_priv->vm_list)); drm_mm_takedown(&dev_priv->gtt.base.mm); diff --git a/patches.baytrail/0970-drm-i915-Boost-RPS-frequency-for-CPU-stalls.patch b/patches.baytrail/0970-drm-i915-Boost-RPS-frequency-for-CPU-stalls.patch index 9af81bf16d9e3..b1be78ea5cc6d 100644 --- a/patches.baytrail/0970-drm-i915-Boost-RPS-frequency-for-CPU-stalls.patch +++ b/patches.baytrail/0970-drm-i915-Boost-RPS-frequency-for-CPU-stalls.patch @@ -83,7 +83,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c -@@ -1835,19 +1835,11 @@ int i915_driver_unload(struct drm_device +@@ -1836,19 +1836,11 @@ int i915_driver_unload(struct drm_device int i915_driver_open(struct drm_device *dev, struct drm_file *file) { diff --git a/patches.baytrail/0971-drm-i915-Tweak-RPS-thresholds-to-more-aggressively-d.patch b/patches.baytrail/0971-drm-i915-Tweak-RPS-thresholds-to-more-aggressively-d.patch index b02e46147fc62..2431f2f3f6647 100644 --- a/patches.baytrail/0971-drm-i915-Tweak-RPS-thresholds-to-more-aggressively-d.patch +++ b/patches.baytrail/0971-drm-i915-Tweak-RPS-thresholds-to-more-aggressively-d.patch @@ -47,14 +47,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit dd75fdc8c69587c91bd68a6ed7c726b5e70f9399) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_drv.h | 5 ++ - drivers/gpu/drm/i915/i915_irq.c | 46 ++++++++++---- - drivers/gpu/drm/i915/i915_reg.h | 2 +- - drivers/gpu/drm/i915/intel_pm.c | 137 ++++++++++++++++++++++++++++++---------- + drivers/gpu/drm/i915/i915_drv.h | 5 + + drivers/gpu/drm/i915/i915_irq.c | 46 +++++++++---- + drivers/gpu/drm/i915/i915_reg.h | 2 + drivers/gpu/drm/i915/intel_pm.c | 137 ++++++++++++++++++++++++++++++---------- 4 files changed, 143 insertions(+), 47 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h -index d1c6b92edae0..5118ac300c42 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -850,8 +850,13 @@ struct intel_gen6_power_mgmt { @@ -71,11 +69,9 @@ index d1c6b92edae0..5118ac300c42 100644 struct delayed_work delayed_resume_work; /* -diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c -index 6ee557280e11..418ad642c742 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c -@@ -818,7 +818,7 @@ static void gen6_pm_rps_work(struct work_struct *work) +@@ -818,7 +818,7 @@ static void gen6_pm_rps_work(struct work drm_i915_private_t *dev_priv = container_of(work, drm_i915_private_t, rps.work); u32 pm_iir; @@ -84,7 +80,7 @@ index 6ee557280e11..418ad642c742 100644 spin_lock_irq(&dev_priv->irq_lock); pm_iir = dev_priv->rps.pm_iir; -@@ -835,29 +835,49 @@ static void gen6_pm_rps_work(struct work_struct *work) +@@ -835,29 +835,49 @@ static void gen6_pm_rps_work(struct work mutex_lock(&dev_priv->rps.hw_lock); @@ -146,11 +142,9 @@ index 6ee557280e11..418ad642c742 100644 mutex_unlock(&dev_priv->rps.hw_lock); } -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 96fd2ce6aa02..daaabe788f21 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -4687,7 +4687,7 @@ +@@ -4691,7 +4691,7 @@ #define GEN6_RP_UP_IDLE_MIN (0x1<<3) #define GEN6_RP_UP_BUSY_AVG (0x2<<3) #define GEN6_RP_UP_BUSY_CONT (0x4<<3) @@ -159,11 +153,9 @@ index 96fd2ce6aa02..daaabe788f21 100644 #define GEN6_RP_DOWN_IDLE_CONT (0x1<<0) #define GEN6_RP_UP_THRESHOLD 0xA02C #define GEN6_RP_DOWN_THRESHOLD 0xA030 -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index ca063c25ad32..b08a96cd9c94 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -3312,6 +3312,98 @@ static u32 gen6_rps_limits(struct drm_i915_private *dev_priv, u8 *val) +@@ -3312,6 +3312,98 @@ static u32 gen6_rps_limits(struct drm_i9 return limits; } @@ -262,7 +254,7 @@ index ca063c25ad32..b08a96cd9c94 100644 void gen6_set_rps(struct drm_device *dev, u8 val) { struct drm_i915_private *dev_priv = dev->dev_private; -@@ -3324,6 +3416,8 @@ void gen6_set_rps(struct drm_device *dev, u8 val) +@@ -3324,6 +3416,8 @@ void gen6_set_rps(struct drm_device *dev if (val == dev_priv->rps.cur_delay) return; @@ -271,7 +263,7 @@ index ca063c25ad32..b08a96cd9c94 100644 if (IS_HASWELL(dev)) I915_WRITE(GEN6_RPNSWREQ, HSW_FREQUENCY(val)); -@@ -3352,6 +3446,7 @@ void gen6_rps_idle(struct drm_i915_private *dev_priv) +@@ -3352,6 +3446,7 @@ void gen6_rps_idle(struct drm_i915_priva valleyview_set_rps(dev_priv->dev, dev_priv->rps.min_delay); else gen6_set_rps(dev_priv->dev, dev_priv->rps.min_delay); @@ -279,7 +271,7 @@ index ca063c25ad32..b08a96cd9c94 100644 mutex_unlock(&dev_priv->rps.hw_lock); } -@@ -3362,6 +3457,7 @@ void gen6_rps_boost(struct drm_i915_private *dev_priv) +@@ -3362,6 +3457,7 @@ void gen6_rps_boost(struct drm_i915_priv valleyview_set_rps(dev_priv->dev, dev_priv->rps.max_delay); else gen6_set_rps(dev_priv->dev, dev_priv->rps.max_delay); @@ -287,7 +279,7 @@ index ca063c25ad32..b08a96cd9c94 100644 mutex_unlock(&dev_priv->rps.hw_lock); } -@@ -3546,7 +3642,10 @@ static void gen6_enable_rps(struct drm_device *dev) +@@ -3546,7 +3642,10 @@ static void gen6_enable_rps(struct drm_d /* In units of 50MHz */ dev_priv->rps.hw_max = dev_priv->rps.max_delay = rp_state_cap & 0xff; @@ -299,7 +291,7 @@ index ca063c25ad32..b08a96cd9c94 100644 dev_priv->rps.cur_delay = 0; /* disable the counters and set deterministic thresholds */ -@@ -3594,38 +3693,9 @@ static void gen6_enable_rps(struct drm_device *dev) +@@ -3594,38 +3693,9 @@ static void gen6_enable_rps(struct drm_d GEN6_RC_CTL_EI_MODE(1) | GEN6_RC_CTL_HW_ENABLE); @@ -340,7 +332,7 @@ index ca063c25ad32..b08a96cd9c94 100644 ret = sandybridge_pcode_write(dev_priv, GEN6_PCODE_WRITE_MIN_FREQ_TABLE, 0); if (!ret) { -@@ -3641,7 +3711,8 @@ static void gen6_enable_rps(struct drm_device *dev) +@@ -3641,7 +3711,8 @@ static void gen6_enable_rps(struct drm_d DRM_DEBUG_DRIVER("Failed to set the min frequency\n"); } @@ -350,6 +342,3 @@ index ca063c25ad32..b08a96cd9c94 100644 gen6_enable_rps_interrupts(dev); --- -1.8.5.rc3 - diff --git a/patches.baytrail/0993-drm-i915-dp-use-drm_edid_duplicate.patch b/patches.baytrail/0993-drm-i915-dp-use-drm_edid_duplicate.patch index b8a6fc422fd3c..28200724eda73 100644 --- a/patches.baytrail/0993-drm-i915-dp-use-drm_edid_duplicate.patch +++ b/patches.baytrail/0993-drm-i915-dp-use-drm_edid_duplicate.patch @@ -10,14 +10,12 @@ Signed-off-by: Dave Airlie <airlied@redhat.com> (cherry picked from commit 55e9edeb57ed9dd9be6773c5230187d701b14a46) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/intel_dp.c | 10 +--------- + drivers/gpu/drm/i915/intel_dp.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 5f8a4f2c3c74..0c9f4764ed92 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -2972,19 +2972,11 @@ intel_dp_get_edid(struct drm_connector *connector, struct i2c_adapter *adapter) +@@ -2988,19 +2988,11 @@ intel_dp_get_edid(struct drm_connector * /* use cached edid if we have one */ if (intel_connector->edid) { @@ -38,6 +36,3 @@ index 5f8a4f2c3c74..0c9f4764ed92 100644 } return drm_get_edid(connector, adapter); --- -1.8.5.rc3 - diff --git a/patches.baytrail/1054-drm-i915-Do-PCH-and-uncore-init-earlier.patch b/patches.baytrail/1054-drm-i915-Do-PCH-and-uncore-init-earlier.patch index 06c6a9f9d45f4..e8b382266ef6f 100644 --- a/patches.baytrail/1054-drm-i915-Do-PCH-and-uncore-init-earlier.patch +++ b/patches.baytrail/1054-drm-i915-Do-PCH-and-uncore-init-earlier.patch @@ -47,7 +47,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> intel_uncore_sanitize(dev); /* Try to make sure MCHBAR is enabled before poking at it */ -@@ -1697,6 +1698,7 @@ out_gtt: +@@ -1698,6 +1699,7 @@ out_gtt: drm_mm_takedown(&dev_priv->gtt.base.mm); dev_priv->gtt.base.cleanup(&dev_priv->gtt.base); out_regs: diff --git a/patches.baytrail/1068-drm-i915-Fix-VLV-frame-counter-registers.patch b/patches.baytrail/1068-drm-i915-Fix-VLV-frame-counter-registers.patch index 90811c91b4463..f697dc75a276c 100644 --- a/patches.baytrail/1068-drm-i915-Fix-VLV-frame-counter-registers.patch +++ b/patches.baytrail/1068-drm-i915-Fix-VLV-frame-counter-registers.patch @@ -18,14 +18,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 25a2e2d0f35e3297c7c8c6daf12d35fca7a51e44) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 16 ++++++++-------- + drivers/gpu/drm/i915/i915_reg.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 95385023e0ba..35c9d868b893 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -3348,17 +3348,17 @@ +@@ -3352,17 +3352,17 @@ * } while (high1 != high2); * frame = (high1 << 8) | low1; */ @@ -47,7 +45,7 @@ index 95385023e0ba..35c9d868b893 100644 #define PIPE_FRMCOUNT_GM45(pipe) _PIPE(pipe, _PIPEA_FRMCOUNT_GM45, _PIPEB_FRMCOUNT_GM45) /* Cursor A & B regs */ -@@ -3489,10 +3489,10 @@ +@@ -3493,10 +3493,10 @@ #define _PIPEBDSL (dev_priv->info->display_mmio_offset + 0x71000) #define _PIPEBCONF (dev_priv->info->display_mmio_offset + 0x71008) #define _PIPEBSTAT (dev_priv->info->display_mmio_offset + 0x71024) @@ -62,6 +60,3 @@ index 95385023e0ba..35c9d868b893 100644 /* Display B control */ --- -1.8.5.rc3 - diff --git a/patches.baytrail/1072-drm-i915-rename-intel_fb.c-to-intel_fbdev.c.patch b/patches.baytrail/1072-drm-i915-rename-intel_fb.c-to-intel_fbdev.c.patch index 257e021b105a1..6d22cf978f453 100644 --- a/patches.baytrail/1072-drm-i915-rename-intel_fb.c-to-intel_fbdev.c.patch +++ b/patches.baytrail/1072-drm-i915-rename-intel_fb.c-to-intel_fbdev.c.patch @@ -36,7 +36,7 @@ Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c -@@ -1861,7 +1861,7 @@ void i915_driver_lastclose(struct drm_de +@@ -1862,7 +1862,7 @@ void i915_driver_lastclose(struct drm_de return; if (drm_core_check_feature(dev, DRIVER_MODESET)) { diff --git a/patches.baytrail/1096-drm-i915-Adjust-watermark-register-masks.patch b/patches.baytrail/1096-drm-i915-Adjust-watermark-register-masks.patch index 209fcdcb5a205..c7e904e629457 100644 --- a/patches.baytrail/1096-drm-i915-Adjust-watermark-register-masks.patch +++ b/patches.baytrail/1096-drm-i915-Adjust-watermark-register-masks.patch @@ -19,14 +19,12 @@ Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> (cherry picked from commit 1996d624403483aa8b4192f39584b0d9421ed6a9) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/gpu/drm/i915/i915_reg.h | 10 +++++----- + drivers/gpu/drm/i915/i915_reg.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) -diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h -index 35c9d868b893..88f76714dba3 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h -@@ -3251,11 +3251,11 @@ +@@ -3255,11 +3255,11 @@ /* define the Watermark register on Ironlake */ #define WM0_PIPEA_ILK 0x45100 @@ -41,7 +39,7 @@ index 35c9d868b893..88f76714dba3 100644 #define WM0_PIPEB_ILK 0x45104 #define WM0_PIPEC_IVB 0x45200 -@@ -3265,9 +3265,9 @@ +@@ -3269,9 +3269,9 @@ #define WM1_LP_LATENCY_MASK (0x7f<<24) #define WM1_LP_FBC_MASK (0xf<<20) #define WM1_LP_FBC_SHIFT 20 @@ -53,6 +51,3 @@ index 35c9d868b893..88f76714dba3 100644 #define WM2_LP_ILK 0x4510c #define WM2_LP_EN (1<<31) #define WM3_LP_ILK 0x45110 --- -1.8.5.rc3 - diff --git a/patches.baytrail/1125-i2c-vt8500-Add-support-for-I2C-bus-on-Wondermedia-So.patch b/patches.baytrail/1125-i2c-vt8500-Add-support-for-I2C-bus-on-Wondermedia-So.patch index 251cdbc90ff2e..78146c545343f 100644 --- a/patches.baytrail/1125-i2c-vt8500-Add-support-for-I2C-bus-on-Wondermedia-So.patch +++ b/patches.baytrail/1125-i2c-vt8500-Add-support-for-I2C-bus-on-Wondermedia-So.patch @@ -12,18 +12,15 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de> (cherry picked from commit 560746eb79d3124a278452c8dd968682b521cc82) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - .../devicetree/bindings/i2c/i2c-vt8500.txt | 24 ++ - MAINTAINERS | 1 + - drivers/i2c/busses/Kconfig | 10 + - drivers/i2c/busses/Makefile | 1 + - drivers/i2c/busses/i2c-wmt.c | 479 +++++++++++++++++++++ + Documentation/devicetree/bindings/i2c/i2c-vt8500.txt | 24 + MAINTAINERS | 1 + drivers/i2c/busses/Kconfig | 10 + drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-wmt.c | 479 +++++++++++++++++++ 5 files changed, 515 insertions(+) create mode 100644 Documentation/devicetree/bindings/i2c/i2c-vt8500.txt create mode 100644 drivers/i2c/busses/i2c-wmt.c -diff --git a/Documentation/devicetree/bindings/i2c/i2c-vt8500.txt b/Documentation/devicetree/bindings/i2c/i2c-vt8500.txt -new file mode 100644 -index 000000000000..94a425eaa6c7 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/i2c-vt8500.txt @@ -0,0 +1,24 @@ @@ -51,8 +48,6 @@ index 000000000000..94a425eaa6c7 + clocks = <&clki2c0>; + clock-frequency = <400000>; + }; -diff --git a/MAINTAINERS b/MAINTAINERS -index 48c748080c96..30287b8a223a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1285,6 +1285,7 @@ S: Maintained @@ -63,11 +58,9 @@ index 48c748080c96..30287b8a223a 100644 F: drivers/mmc/host/wmt-sdmmc.c F: drivers/pwm/pwm-vt8500.c F: drivers/rtc/rtc-vt8500.c -diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig -index 4faf02b3657d..0ca51f805a06 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig -@@ -725,6 +725,16 @@ config I2C_VERSATILE +@@ -726,6 +726,16 @@ config I2C_VERSATILE This driver can also be built as a module. If so, the module will be called i2c-versatile. @@ -84,8 +77,6 @@ index 4faf02b3657d..0ca51f805a06 100644 config I2C_OCTEON tristate "Cavium OCTEON I2C bus support" depends on CPU_CAVIUM_OCTEON -diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile -index 8f4fc23b85b1..3ba94a99e18d 100644 --- a/drivers/i2c/busses/Makefile +++ b/drivers/i2c/busses/Makefile @@ -71,6 +71,7 @@ obj-$(CONFIG_I2C_SIRF) += i2c-sirf.o @@ -96,9 +87,6 @@ index 8f4fc23b85b1..3ba94a99e18d 100644 obj-$(CONFIG_I2C_OCTEON) += i2c-octeon.o obj-$(CONFIG_I2C_XILINX) += i2c-xiic.o obj-$(CONFIG_I2C_XLR) += i2c-xlr.o -diff --git a/drivers/i2c/busses/i2c-wmt.c b/drivers/i2c/busses/i2c-wmt.c -new file mode 100644 -index 000000000000..baaa7d15b73e --- /dev/null +++ b/drivers/i2c/busses/i2c-wmt.c @@ -0,0 +1,479 @@ @@ -581,6 +569,3 @@ index 000000000000..baaa7d15b73e +MODULE_AUTHOR("Tony Prisk <linux@prisktech.co.nz>"); +MODULE_LICENSE("GPL"); +MODULE_DEVICE_TABLE(of, wmt_i2c_dt_ids); --- -1.8.5.rc3 - diff --git a/patches.baytrail/1128-i2c-mv64xxx-Add-Allwinner-sun4i-compatible.patch b/patches.baytrail/1128-i2c-mv64xxx-Add-Allwinner-sun4i-compatible.patch index 89788d1b5b13f..4f534715cfc83 100644 --- a/patches.baytrail/1128-i2c-mv64xxx-Add-Allwinner-sun4i-compatible.patch +++ b/patches.baytrail/1128-i2c-mv64xxx-Add-Allwinner-sun4i-compatible.patch @@ -13,15 +13,13 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de> (cherry picked from commit 3d66ac7d81ac70dfaab8a573f7ad2be94f7d6da3) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - drivers/i2c/busses/Kconfig | 3 ++- - drivers/i2c/busses/i2c-mv64xxx.c | 11 +++++++++++ + drivers/i2c/busses/Kconfig | 3 ++- + drivers/i2c/busses/i2c-mv64xxx.c | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) -diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig -index 0ca51f805a06..5748a04c971f 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig -@@ -508,10 +508,11 @@ config I2C_MPC +@@ -509,10 +509,11 @@ config I2C_MPC config I2C_MV64XXX tristate "Marvell mv64xxx I2C Controller" @@ -34,11 +32,9 @@ index 0ca51f805a06..5748a04c971f 100644 This driver can also be built as a module. If so, the module will be called i2c-mv64xxx. -diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c -index 7ba9bac18478..7a0e39b7f928 100644 --- a/drivers/i2c/busses/i2c-mv64xxx.c +++ b/drivers/i2c/busses/i2c-mv64xxx.c -@@ -129,6 +129,16 @@ static struct mv64xxx_i2c_regs mv64xxx_i2c_regs_mv64xxx = { +@@ -129,6 +129,16 @@ static struct mv64xxx_i2c_regs mv64xxx_i .soft_reset = 0x1c, }; @@ -55,7 +51,7 @@ index 7ba9bac18478..7a0e39b7f928 100644 static void mv64xxx_i2c_prepare_for_io(struct mv64xxx_i2c_data *drv_data, struct i2c_msg *msg) -@@ -509,6 +519,7 @@ static const struct i2c_algorithm mv64xxx_i2c_algo = { +@@ -509,6 +519,7 @@ static const struct i2c_algorithm mv64xx ***************************************************************************** */ static const struct of_device_id mv64xxx_i2c_of_match_table[] = { @@ -63,6 +59,3 @@ index 7ba9bac18478..7a0e39b7f928 100644 { .compatible = "marvell,mv64xxx-i2c", .data = &mv64xxx_i2c_regs_mv64xxx}, {} }; --- -1.8.5.rc3 - diff --git a/patches.baytrail/1173-i2c-move-OF-helpers-into-the-core.patch b/patches.baytrail/1173-i2c-move-OF-helpers-into-the-core.patch index adf2cdaef7217..b52ab9c1b0d33 100644 --- a/patches.baytrail/1173-i2c-move-OF-helpers-into-the-core.patch +++ b/patches.baytrail/1173-i2c-move-OF-helpers-into-the-core.patch @@ -13,59 +13,57 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de> (cherry picked from commit 687b81d083c082bc1e853032e3a2a54f8c251d27) Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- - Documentation/acpi/enumeration.txt | 1 - - arch/powerpc/platforms/44x/warp.c | 1 - - drivers/gpu/drm/tilcdc/tilcdc_slave.c | 1 - - drivers/gpu/drm/tilcdc/tilcdc_tfp410.c | 1 - - drivers/gpu/host1x/drm/output.c | 2 +- - drivers/i2c/busses/i2c-at91.c | 3 - - drivers/i2c/busses/i2c-cpm.c | 6 -- - drivers/i2c/busses/i2c-davinci.c | 2 - - drivers/i2c/busses/i2c-designware-platdrv.c | 2 - - drivers/i2c/busses/i2c-gpio.c | 3 - - drivers/i2c/busses/i2c-i801.c | 2 - - drivers/i2c/busses/i2c-ibm_iic.c | 4 - - drivers/i2c/busses/i2c-imx.c | 3 - - drivers/i2c/busses/i2c-mpc.c | 2 - - drivers/i2c/busses/i2c-mv64xxx.c | 3 - - drivers/i2c/busses/i2c-mxs.c | 3 - - drivers/i2c/busses/i2c-nomadik.c | 3 - - drivers/i2c/busses/i2c-ocores.c | 3 - - drivers/i2c/busses/i2c-octeon.c | 3 - - drivers/i2c/busses/i2c-omap.c | 3 - - drivers/i2c/busses/i2c-pnx.c | 3 - - drivers/i2c/busses/i2c-powermac.c | 9 +- - drivers/i2c/busses/i2c-pxa.c | 2 - - drivers/i2c/busses/i2c-s3c2410.c | 2 - - drivers/i2c/busses/i2c-sh_mobile.c | 2 - - drivers/i2c/busses/i2c-sirf.c | 3 - - drivers/i2c/busses/i2c-stu300.c | 2 - - drivers/i2c/busses/i2c-tegra.c | 3 - - drivers/i2c/busses/i2c-versatile.c | 2 - - drivers/i2c/busses/i2c-wmt.c | 3 - - drivers/i2c/busses/i2c-xiic.c | 3 - - drivers/i2c/i2c-core.c | 109 +++++++++++++++++++++- - drivers/i2c/i2c-mux.c | 3 - - drivers/i2c/muxes/i2c-arb-gpio-challenge.c | 1 - - drivers/i2c/muxes/i2c-mux-gpio.c | 1 - - drivers/i2c/muxes/i2c-mux-pinctrl.c | 1 - - drivers/media/platform/exynos4-is/fimc-is-i2c.c | 4 +- - drivers/media/platform/exynos4-is/fimc-is.c | 2 +- - drivers/media/platform/exynos4-is/media-dev.c | 1 - - drivers/of/Kconfig | 6 -- - drivers/of/Makefile | 1 - - drivers/of/of_i2c.c | 114 ------------------------ - drivers/staging/imx-drm/imx-tve.c | 2 +- - include/linux/i2c.h | 20 +++++ - include/linux/of_i2c.h | 46 ---------- - sound/soc/fsl/imx-sgtl5000.c | 2 +- - sound/soc/fsl/imx-wm8962.c | 2 +- + Documentation/acpi/enumeration.txt | 1 + arch/powerpc/platforms/44x/warp.c | 1 + drivers/gpu/drm/tilcdc/tilcdc_slave.c | 1 + drivers/gpu/drm/tilcdc/tilcdc_tfp410.c | 1 + drivers/gpu/host1x/drm/output.c | 2 + drivers/i2c/busses/i2c-at91.c | 3 + drivers/i2c/busses/i2c-cpm.c | 6 - + drivers/i2c/busses/i2c-davinci.c | 2 + drivers/i2c/busses/i2c-designware-platdrv.c | 2 + drivers/i2c/busses/i2c-gpio.c | 3 + drivers/i2c/busses/i2c-i801.c | 2 + drivers/i2c/busses/i2c-ibm_iic.c | 4 + drivers/i2c/busses/i2c-imx.c | 3 + drivers/i2c/busses/i2c-mpc.c | 2 + drivers/i2c/busses/i2c-mv64xxx.c | 3 + drivers/i2c/busses/i2c-mxs.c | 3 + drivers/i2c/busses/i2c-nomadik.c | 3 + drivers/i2c/busses/i2c-ocores.c | 3 + drivers/i2c/busses/i2c-octeon.c | 3 + drivers/i2c/busses/i2c-omap.c | 3 + drivers/i2c/busses/i2c-pnx.c | 3 + drivers/i2c/busses/i2c-powermac.c | 9 + + drivers/i2c/busses/i2c-pxa.c | 2 + drivers/i2c/busses/i2c-s3c2410.c | 2 + drivers/i2c/busses/i2c-sh_mobile.c | 2 + drivers/i2c/busses/i2c-sirf.c | 3 + drivers/i2c/busses/i2c-stu300.c | 2 + drivers/i2c/busses/i2c-tegra.c | 3 + drivers/i2c/busses/i2c-versatile.c | 2 + drivers/i2c/busses/i2c-wmt.c | 3 + drivers/i2c/busses/i2c-xiic.c | 3 + drivers/i2c/i2c-core.c | 109 ++++++++++++++++++++++ + drivers/i2c/i2c-mux.c | 3 + drivers/i2c/muxes/i2c-arb-gpio-challenge.c | 1 + drivers/i2c/muxes/i2c-mux-gpio.c | 1 + drivers/i2c/muxes/i2c-mux-pinctrl.c | 1 + drivers/media/platform/exynos4-is/fimc-is-i2c.c | 4 + drivers/media/platform/exynos4-is/fimc-is.c | 2 + drivers/media/platform/exynos4-is/media-dev.c | 1 + drivers/of/Kconfig | 6 - + drivers/of/Makefile | 1 + drivers/of/of_i2c.c | 114 ------------------------ + drivers/staging/imx-drm/imx-tve.c | 2 + include/linux/i2c.h | 20 ++++ + include/linux/of_i2c.h | 46 --------- + sound/soc/fsl/imx-sgtl5000.c | 2 + sound/soc/fsl/imx-wm8962.c | 2 47 files changed, 138 insertions(+), 262 deletions(-) delete mode 100644 drivers/of/of_i2c.c delete mode 100644 include/linux/of_i2c.h -diff --git a/Documentation/acpi/enumeration.txt b/Documentation/acpi/enumeration.txt -index d9be7a97dff3..958266efcc20 100644 --- a/Documentation/acpi/enumeration.txt +++ b/Documentation/acpi/enumeration.txt @@ -238,7 +238,6 @@ An I2C bus (controller) driver does: @@ -76,8 +74,6 @@ index d9be7a97dff3..958266efcc20 100644 /* Enumerate the slave devices behind this bus via ACPI */ acpi_i2c_register_devices(adapter); -diff --git a/arch/powerpc/platforms/44x/warp.c b/arch/powerpc/platforms/44x/warp.c -index 4cfa49901c02..534574a97ec9 100644 --- a/arch/powerpc/platforms/44x/warp.c +++ b/arch/powerpc/platforms/44x/warp.c @@ -16,7 +16,6 @@ @@ -88,8 +84,6 @@ index 4cfa49901c02..534574a97ec9 100644 #include <linux/slab.h> #include <linux/export.h> -diff --git a/drivers/gpu/drm/tilcdc/tilcdc_slave.c b/drivers/gpu/drm/tilcdc/tilcdc_slave.c -index db1d2fc9dfb5..acc47668fcae 100644 --- a/drivers/gpu/drm/tilcdc/tilcdc_slave.c +++ b/drivers/gpu/drm/tilcdc/tilcdc_slave.c @@ -16,7 +16,6 @@ @@ -100,8 +94,6 @@ index db1d2fc9dfb5..acc47668fcae 100644 #include <linux/pinctrl/pinmux.h> #include <linux/pinctrl/consumer.h> #include <drm/drm_encoder_slave.h> -diff --git a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c -index a36788fbcd98..6237a1896765 100644 --- a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c +++ b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c @@ -16,7 +16,6 @@ @@ -112,8 +104,6 @@ index a36788fbcd98..6237a1896765 100644 #include <linux/gpio.h> #include <linux/of_gpio.h> #include <linux/pinctrl/pinmux.h> -diff --git a/drivers/gpu/host1x/drm/output.c b/drivers/gpu/host1x/drm/output.c -index 8140fc6c34d8..137ae81ab80e 100644 --- a/drivers/gpu/host1x/drm/output.c +++ b/drivers/gpu/host1x/drm/output.c @@ -9,7 +9,7 @@ @@ -125,8 +115,6 @@ index 8140fc6c34d8..137ae81ab80e 100644 #include "drm.h" -diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c -index 6bb839b688be..fd059308affa 100644 --- a/drivers/i2c/busses/i2c-at91.c +++ b/drivers/i2c/busses/i2c-at91.c @@ -28,7 +28,6 @@ @@ -137,7 +125,7 @@ index 6bb839b688be..fd059308affa 100644 #include <linux/platform_device.h> #include <linux/slab.h> #include <linux/platform_data/dma-atmel.h> -@@ -775,8 +774,6 @@ static int at91_twi_probe(struct platform_device *pdev) +@@ -775,8 +774,6 @@ static int at91_twi_probe(struct platfor return rc; } @@ -146,8 +134,6 @@ index 6bb839b688be..fd059308affa 100644 dev_info(dev->dev, "AT91 i2c bus driver.\n"); return 0; } -diff --git a/drivers/i2c/busses/i2c-cpm.c b/drivers/i2c/busses/i2c-cpm.c -index 3823623baa48..9528c4658893 100644 --- a/drivers/i2c/busses/i2c-cpm.c +++ b/drivers/i2c/busses/i2c-cpm.c @@ -42,7 +42,6 @@ @@ -158,7 +144,7 @@ index 3823623baa48..9528c4658893 100644 #include <sysdev/fsl_soc.h> #include <asm/cpm.h> -@@ -673,11 +672,6 @@ static int cpm_i2c_probe(struct platform_device *ofdev) +@@ -673,11 +672,6 @@ static int cpm_i2c_probe(struct platform dev_dbg(&ofdev->dev, "hw routines for %s registered.\n", cpm->adap.name); @@ -170,8 +156,6 @@ index 3823623baa48..9528c4658893 100644 return 0; out_shut: cpm_i2c_shutdown(cpm); -diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c -index 14c53cccdcf0..a71da45bf280 100644 --- a/drivers/i2c/busses/i2c-davinci.c +++ b/drivers/i2c/busses/i2c-davinci.c @@ -38,7 +38,6 @@ @@ -182,7 +166,7 @@ index 14c53cccdcf0..a71da45bf280 100644 #include <linux/of_device.h> #include <mach/hardware.h> -@@ -728,7 +727,6 @@ static int davinci_i2c_probe(struct platform_device *pdev) +@@ -728,7 +727,6 @@ static int davinci_i2c_probe(struct plat dev_err(&pdev->dev, "failure adding adapter\n"); goto err_unuse_clocks; } @@ -190,8 +174,6 @@ index 14c53cccdcf0..a71da45bf280 100644 return 0; -diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c -index 64ffb908641c..ded77c3bd59c 100644 --- a/drivers/i2c/busses/i2c-designware-platdrv.c +++ b/drivers/i2c/busses/i2c-designware-platdrv.c @@ -35,7 +35,6 @@ @@ -202,7 +184,7 @@ index 64ffb908641c..ded77c3bd59c 100644 #include <linux/platform_device.h> #include <linux/pm.h> #include <linux/pm_runtime.h> -@@ -172,7 +171,6 @@ static int dw_i2c_probe(struct platform_device *pdev) +@@ -172,7 +171,6 @@ static int dw_i2c_probe(struct platform_ dev_err(&pdev->dev, "failure adding adapter\n"); return r; } @@ -210,8 +192,6 @@ index 64ffb908641c..ded77c3bd59c 100644 acpi_i2c_register_devices(adap); pm_runtime_set_autosuspend_delay(&pdev->dev, 1000); -diff --git a/drivers/i2c/busses/i2c-gpio.c b/drivers/i2c/busses/i2c-gpio.c -index 8cdb4f743e19..bfa02c6c2dda 100644 --- a/drivers/i2c/busses/i2c-gpio.c +++ b/drivers/i2c/busses/i2c-gpio.c @@ -16,7 +16,6 @@ @@ -222,7 +202,7 @@ index 8cdb4f743e19..bfa02c6c2dda 100644 struct i2c_gpio_private_data { struct i2c_adapter adap; -@@ -224,8 +223,6 @@ static int i2c_gpio_probe(struct platform_device *pdev) +@@ -224,8 +223,6 @@ static int i2c_gpio_probe(struct platfor if (ret) goto err_add_bus; @@ -231,11 +211,9 @@ index 8cdb4f743e19..bfa02c6c2dda 100644 platform_set_drvdata(pdev, priv); dev_info(&pdev->dev, "using pins %u (SDA) and %u (SCL%s)\n", -diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c -index 3a6903f63913..8763b224bede 100644 --- a/drivers/i2c/busses/i2c-i801.c +++ b/drivers/i2c/busses/i2c-i801.c -@@ -86,7 +86,6 @@ +@@ -87,7 +87,6 @@ #include <linux/slab.h> #include <linux/wait.h> #include <linux/err.h> @@ -243,7 +221,7 @@ index 3a6903f63913..8763b224bede 100644 #if (defined CONFIG_I2C_MUX_GPIO || defined CONFIG_I2C_MUX_GPIO_MODULE) && \ defined CONFIG_DMI -@@ -1227,7 +1226,6 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id) +@@ -1230,7 +1229,6 @@ static int i801_probe(struct pci_dev *de goto exit_free_irq; } @@ -251,8 +229,6 @@ index 3a6903f63913..8763b224bede 100644 i801_probe_optional_slaves(priv); /* We ignore errors - multiplexing is optional */ i801_add_mux(priv); -diff --git a/drivers/i2c/busses/i2c-ibm_iic.c b/drivers/i2c/busses/i2c-ibm_iic.c -index 405a2e240454..eddd4656a9f4 100644 --- a/drivers/i2c/busses/i2c-ibm_iic.c +++ b/drivers/i2c/busses/i2c-ibm_iic.c @@ -42,7 +42,6 @@ @@ -263,7 +239,7 @@ index 405a2e240454..eddd4656a9f4 100644 #include "i2c-ibm_iic.h" -@@ -759,9 +758,6 @@ static int iic_probe(struct platform_device *ofdev) +@@ -759,9 +758,6 @@ static int iic_probe(struct platform_dev dev_info(&ofdev->dev, "using %s mode\n", dev->fast_mode ? "fast (400 kHz)" : "standard (100 kHz)"); @@ -273,8 +249,6 @@ index 405a2e240454..eddd4656a9f4 100644 return 0; error_cleanup: -diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c -index a231d2fd91ce..ccf46656bdad 100644 --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c @@ -52,7 +52,6 @@ @@ -285,7 +259,7 @@ index a231d2fd91ce..ccf46656bdad 100644 #include <linux/platform_data/i2c-imx.h> /** Defines ******************************************************************** -@@ -682,8 +681,6 @@ static int __init i2c_imx_probe(struct platform_device *pdev) +@@ -682,8 +681,6 @@ static int __init i2c_imx_probe(struct p return ret; } @@ -294,8 +268,6 @@ index a231d2fd91ce..ccf46656bdad 100644 /* Set up platform driver data */ platform_set_drvdata(pdev, i2c_imx); clk_disable_unprepare(i2c_imx->clk); -diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c -index 5e705ee02f4a..efe62c63f646 100644 --- a/drivers/i2c/busses/i2c-mpc.c +++ b/drivers/i2c/busses/i2c-mpc.c @@ -18,7 +18,6 @@ @@ -306,7 +278,7 @@ index 5e705ee02f4a..efe62c63f646 100644 #include <linux/slab.h> #include <linux/io.h> -@@ -691,7 +690,6 @@ static int fsl_i2c_probe(struct platform_device *op) +@@ -691,7 +690,6 @@ static int fsl_i2c_probe(struct platform dev_err(i2c->dev, "failed to add adapter\n"); goto fail_add; } @@ -314,8 +286,6 @@ index 5e705ee02f4a..efe62c63f646 100644 return result; -diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c -index bc60f9ac7c04..7f3a47443494 100644 --- a/drivers/i2c/busses/i2c-mv64xxx.c +++ b/drivers/i2c/busses/i2c-mv64xxx.c @@ -21,7 +21,6 @@ @@ -326,7 +296,7 @@ index bc60f9ac7c04..7f3a47443494 100644 #include <linux/clk.h> #include <linux/err.h> #include <linux/delay.h> -@@ -871,8 +870,6 @@ mv64xxx_i2c_probe(struct platform_device *pd) +@@ -871,8 +870,6 @@ mv64xxx_i2c_probe(struct platform_device goto exit_free_irq; } @@ -335,8 +305,6 @@ index bc60f9ac7c04..7f3a47443494 100644 return 0; exit_free_irq: -diff --git a/drivers/i2c/busses/i2c-mxs.c b/drivers/i2c/busses/i2c-mxs.c -index 6d8094d44987..a37160671d32 100644 --- a/drivers/i2c/busses/i2c-mxs.c +++ b/drivers/i2c/busses/i2c-mxs.c @@ -28,7 +28,6 @@ @@ -347,7 +315,7 @@ index 6d8094d44987..a37160671d32 100644 #include <linux/dma-mapping.h> #include <linux/dmaengine.h> -@@ -707,8 +706,6 @@ static int mxs_i2c_probe(struct platform_device *pdev) +@@ -707,8 +706,6 @@ static int mxs_i2c_probe(struct platform return err; } @@ -356,8 +324,6 @@ index 6d8094d44987..a37160671d32 100644 return 0; } -diff --git a/drivers/i2c/busses/i2c-nomadik.c b/drivers/i2c/busses/i2c-nomadik.c -index 9eb5852512d4..09da0ec4d560 100644 --- a/drivers/i2c/busses/i2c-nomadik.c +++ b/drivers/i2c/busses/i2c-nomadik.c @@ -25,7 +25,6 @@ @@ -368,7 +334,7 @@ index 9eb5852512d4..09da0ec4d560 100644 #include <linux/pinctrl/consumer.h> #define DRIVER_NAME "nmk-i2c" -@@ -1092,8 +1091,6 @@ static int nmk_i2c_probe(struct amba_device *adev, const struct amba_id *id) +@@ -1092,8 +1091,6 @@ static int nmk_i2c_probe(struct amba_dev goto err_add_adap; } @@ -377,8 +343,6 @@ index 9eb5852512d4..09da0ec4d560 100644 pm_runtime_put(&adev->dev); return 0; -diff --git a/drivers/i2c/busses/i2c-ocores.c b/drivers/i2c/busses/i2c-ocores.c -index 289960812efc..27d640a3f93f 100644 --- a/drivers/i2c/busses/i2c-ocores.c +++ b/drivers/i2c/busses/i2c-ocores.c @@ -24,7 +24,6 @@ @@ -389,7 +353,7 @@ index 289960812efc..27d640a3f93f 100644 #include <linux/log2.h> struct ocores_i2c { -@@ -435,8 +434,6 @@ static int ocores_i2c_probe(struct platform_device *pdev) +@@ -435,8 +434,6 @@ static int ocores_i2c_probe(struct platf if (pdata) { for (i = 0; i < pdata->num_devices; i++) i2c_new_device(&i2c->adap, pdata->devices + i); @@ -398,8 +362,6 @@ index 289960812efc..27d640a3f93f 100644 } return 0; -diff --git a/drivers/i2c/busses/i2c-octeon.c b/drivers/i2c/busses/i2c-octeon.c -index 956fe320f313..b929ba271b47 100644 --- a/drivers/i2c/busses/i2c-octeon.c +++ b/drivers/i2c/busses/i2c-octeon.c @@ -15,7 +15,6 @@ @@ -410,7 +372,7 @@ index 956fe320f313..b929ba271b47 100644 #include <linux/delay.h> #include <linux/sched.h> #include <linux/slab.h> -@@ -599,8 +598,6 @@ static int octeon_i2c_probe(struct platform_device *pdev) +@@ -599,8 +598,6 @@ static int octeon_i2c_probe(struct platf } dev_info(i2c->dev, "version %s\n", DRV_VERSION); @@ -419,8 +381,6 @@ index 956fe320f313..b929ba271b47 100644 return 0; out: -diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c -index 9a844003696b..82741a33d785 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c @@ -38,7 +38,6 @@ @@ -431,7 +391,7 @@ index 9a844003696b..82741a33d785 100644 #include <linux/of_device.h> #include <linux/slab.h> #include <linux/i2c-omap.h> -@@ -1245,8 +1244,6 @@ omap_i2c_probe(struct platform_device *pdev) +@@ -1245,8 +1244,6 @@ omap_i2c_probe(struct platform_device *p dev_info(dev->dev, "bus %d rev%d.%d at %d kHz\n", adap->nr, major, minor, dev->speed); @@ -440,8 +400,6 @@ index 9a844003696b..82741a33d785 100644 pm_runtime_mark_last_busy(dev->dev); pm_runtime_put_autosuspend(dev->dev); -diff --git a/drivers/i2c/busses/i2c-pnx.c b/drivers/i2c/busses/i2c-pnx.c -index 5f39c6d8117a..7b57d679ce00 100644 --- a/drivers/i2c/busses/i2c-pnx.c +++ b/drivers/i2c/busses/i2c-pnx.c @@ -23,7 +23,6 @@ @@ -452,7 +410,7 @@ index 5f39c6d8117a..7b57d679ce00 100644 #define I2C_PNX_TIMEOUT_DEFAULT 10 /* msec */ #define I2C_PNX_SPEED_KHZ_DEFAULT 100 -@@ -741,8 +740,6 @@ static int i2c_pnx_probe(struct platform_device *pdev) +@@ -741,8 +740,6 @@ static int i2c_pnx_probe(struct platform goto out_irq; } @@ -461,11 +419,9 @@ index 5f39c6d8117a..7b57d679ce00 100644 dev_dbg(&pdev->dev, "%s: Master at %#8x, irq %d.\n", alg_data->adapter.name, res->start, alg_data->irq); -diff --git a/drivers/i2c/busses/i2c-powermac.c b/drivers/i2c/busses/i2c-powermac.c -index 5a88364a542b..0b97e170e266 100644 --- a/drivers/i2c/busses/i2c-powermac.c +++ b/drivers/i2c/busses/i2c-powermac.c -@@ -440,7 +440,9 @@ static int i2c_powermac_probe(struct platform_device *dev) +@@ -440,7 +440,9 @@ static int i2c_powermac_probe(struct pla adapter->algo = &i2c_powermac_algorithm; i2c_set_adapdata(adapter, bus); adapter->dev.parent = &dev->dev; @@ -476,7 +432,7 @@ index 5a88364a542b..0b97e170e266 100644 rc = i2c_add_adapter(adapter); if (rc) { printk(KERN_ERR "i2c-powermac: Adapter %s registration " -@@ -450,9 +452,8 @@ static int i2c_powermac_probe(struct platform_device *dev) +@@ -450,9 +452,8 @@ static int i2c_powermac_probe(struct pla printk(KERN_INFO "PowerMac i2c bus %s registered\n", adapter->name); @@ -488,8 +444,6 @@ index 5a88364a542b..0b97e170e266 100644 i2c_powermac_register_devices(adapter, bus); return rc; -diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c -index 5e8e04273b78..fdae3248c204 100644 --- a/drivers/i2c/busses/i2c-pxa.c +++ b/drivers/i2c/busses/i2c-pxa.c @@ -31,7 +31,6 @@ @@ -500,7 +454,7 @@ index 5e8e04273b78..fdae3248c204 100644 #include <linux/platform_device.h> #include <linux/err.h> #include <linux/clk.h> -@@ -1185,7 +1184,6 @@ static int i2c_pxa_probe(struct platform_device *dev) +@@ -1185,7 +1184,6 @@ static int i2c_pxa_probe(struct platform printk(KERN_INFO "I2C: Failed to add bus\n"); goto eadapt; } @@ -508,8 +462,6 @@ index 5e8e04273b78..fdae3248c204 100644 platform_set_drvdata(dev, i2c); -diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c -index 0a077b1ef94f..3535f3c0f7b4 100644 --- a/drivers/i2c/busses/i2c-s3c2410.c +++ b/drivers/i2c/busses/i2c-s3c2410.c @@ -36,7 +36,6 @@ @@ -520,7 +472,7 @@ index 0a077b1ef94f..3535f3c0f7b4 100644 #include <linux/of_gpio.h> #include <linux/pinctrl/consumer.h> -@@ -1154,7 +1153,6 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev) +@@ -1154,7 +1153,6 @@ static int s3c24xx_i2c_probe(struct plat return ret; } @@ -528,8 +480,6 @@ index 0a077b1ef94f..3535f3c0f7b4 100644 platform_set_drvdata(pdev, i2c); pm_runtime_enable(&pdev->dev); -diff --git a/drivers/i2c/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c -index 4e86a3190d46..55110ddbed1f 100644 --- a/drivers/i2c/busses/i2c-sh_mobile.c +++ b/drivers/i2c/busses/i2c-sh_mobile.c @@ -27,7 +27,6 @@ @@ -540,7 +490,7 @@ index 4e86a3190d46..55110ddbed1f 100644 #include <linux/err.h> #include <linux/pm_runtime.h> #include <linux/clk.h> -@@ -758,7 +757,6 @@ static int sh_mobile_i2c_probe(struct platform_device *dev) +@@ -758,7 +757,6 @@ static int sh_mobile_i2c_probe(struct pl "I2C adapter %d with bus speed %lu Hz (L/H=%x/%x)\n", adap->nr, pd->bus_speed, pd->iccl, pd->icch); @@ -548,8 +498,6 @@ index 4e86a3190d46..55110ddbed1f 100644 return 0; err_all: -diff --git a/drivers/i2c/busses/i2c-sirf.c b/drivers/i2c/busses/i2c-sirf.c -index a63c7d506836..0ff22e29e7df 100644 --- a/drivers/i2c/busses/i2c-sirf.c +++ b/drivers/i2c/busses/i2c-sirf.c @@ -12,7 +12,6 @@ @@ -560,7 +508,7 @@ index a63c7d506836..0ff22e29e7df 100644 #include <linux/clk.h> #include <linux/err.h> #include <linux/io.h> -@@ -366,8 +365,6 @@ static int i2c_sirfsoc_probe(struct platform_device *pdev) +@@ -366,8 +365,6 @@ static int i2c_sirfsoc_probe(struct plat clk_disable(clk); @@ -569,8 +517,6 @@ index a63c7d506836..0ff22e29e7df 100644 dev_info(&pdev->dev, " I2C adapter ready to operate\n"); return 0; -diff --git a/drivers/i2c/busses/i2c-stu300.c b/drivers/i2c/busses/i2c-stu300.c -index 3d4d8b6ced4a..30fb69553545 100644 --- a/drivers/i2c/busses/i2c-stu300.c +++ b/drivers/i2c/busses/i2c-stu300.c @@ -17,7 +17,6 @@ @@ -581,7 +527,7 @@ index 3d4d8b6ced4a..30fb69553545 100644 /* the name of this kernel module */ #define NAME "stu300" -@@ -936,7 +935,6 @@ stu300_probe(struct platform_device *pdev) +@@ -936,7 +935,6 @@ stu300_probe(struct platform_device *pde platform_set_drvdata(pdev, dev); dev_info(&pdev->dev, "ST DDC I2C @ %p, irq %d\n", dev->virtbase, dev->irq); @@ -589,8 +535,6 @@ index 3d4d8b6ced4a..30fb69553545 100644 return 0; } -diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c -index 9aa1b60f7fdd..c457cb447c66 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c @@ -25,7 +25,6 @@ @@ -601,7 +545,7 @@ index 9aa1b60f7fdd..c457cb447c66 100644 #include <linux/of_device.h> #include <linux/module.h> #include <linux/clk/tegra.h> -@@ -802,8 +801,6 @@ static int tegra_i2c_probe(struct platform_device *pdev) +@@ -802,8 +801,6 @@ static int tegra_i2c_probe(struct platfo return ret; } @@ -610,8 +554,6 @@ index 9aa1b60f7fdd..c457cb447c66 100644 return 0; } -diff --git a/drivers/i2c/busses/i2c-versatile.c b/drivers/i2c/busses/i2c-versatile.c -index f3a8790a07e8..6bb3a89a440f 100644 --- a/drivers/i2c/busses/i2c-versatile.c +++ b/drivers/i2c/busses/i2c-versatile.c @@ -16,7 +16,6 @@ @@ -622,7 +564,7 @@ index f3a8790a07e8..6bb3a89a440f 100644 #define I2C_CONTROL 0x00 #define I2C_CONTROLS 0x00 -@@ -108,7 +107,6 @@ static int i2c_versatile_probe(struct platform_device *dev) +@@ -108,7 +107,6 @@ static int i2c_versatile_probe(struct pl ret = i2c_bit_add_numbered_bus(&i2c->adap); if (ret >= 0) { platform_set_drvdata(dev, i2c); @@ -630,8 +572,6 @@ index f3a8790a07e8..6bb3a89a440f 100644 return 0; } -diff --git a/drivers/i2c/busses/i2c-wmt.c b/drivers/i2c/busses/i2c-wmt.c -index baaa7d15b73e..c65da3d913a0 100644 --- a/drivers/i2c/busses/i2c-wmt.c +++ b/drivers/i2c/busses/i2c-wmt.c @@ -21,7 +21,6 @@ @@ -642,7 +582,7 @@ index baaa7d15b73e..c65da3d913a0 100644 #include <linux/of_irq.h> #include <linux/platform_device.h> -@@ -439,8 +438,6 @@ static int wmt_i2c_probe(struct platform_device *pdev) +@@ -439,8 +438,6 @@ static int wmt_i2c_probe(struct platform platform_set_drvdata(pdev, i2c_dev); @@ -651,8 +591,6 @@ index baaa7d15b73e..c65da3d913a0 100644 return 0; } -diff --git a/drivers/i2c/busses/i2c-xiic.c b/drivers/i2c/busses/i2c-xiic.c -index 433f377b3869..4c8b368d463b 100644 --- a/drivers/i2c/busses/i2c-xiic.c +++ b/drivers/i2c/busses/i2c-xiic.c @@ -40,7 +40,6 @@ @@ -663,7 +601,7 @@ index 433f377b3869..4c8b368d463b 100644 #define DRIVER_NAME "xiic-i2c" -@@ -752,8 +751,6 @@ static int xiic_i2c_probe(struct platform_device *pdev) +@@ -752,8 +751,6 @@ static int xiic_i2c_probe(struct platfor i2c_new_device(&i2c->adap, pdata->devices + i); } @@ -672,8 +610,6 @@ index 433f377b3869..4c8b368d463b 100644 return 0; add_adapter_failed: -diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c -index 48e31ed69dbf..18bdc74fc9ea 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -23,7 +23,11 @@ @@ -699,7 +635,7 @@ index 48e31ed69dbf..18bdc74fc9ea 100644 #include <linux/completion.h> #include <linux/hardirq.h> #include <linux/irqflags.h> -@@ -954,6 +960,104 @@ static void i2c_scan_static_board_info(struct i2c_adapter *adapter) +@@ -954,6 +960,104 @@ static void i2c_scan_static_board_info(s up_read(&__i2c_board_lock); } @@ -804,7 +740,7 @@ index 48e31ed69dbf..18bdc74fc9ea 100644 static int i2c_do_add_adapter(struct i2c_driver *driver, struct i2c_adapter *adap) { -@@ -1058,6 +1162,8 @@ static int i2c_register_adapter(struct i2c_adapter *adap) +@@ -1058,6 +1162,8 @@ static int i2c_register_adapter(struct i exit_recovery: /* create pre-declared device nodes */ @@ -813,7 +749,7 @@ index 48e31ed69dbf..18bdc74fc9ea 100644 if (adap->nr < __i2c_first_dynamic_bus_num) i2c_scan_static_board_info(adap); -@@ -1282,7 +1388,6 @@ void i2c_del_adapter(struct i2c_adapter *adap) +@@ -1282,7 +1388,6 @@ void i2c_del_adapter(struct i2c_adapter } EXPORT_SYMBOL(i2c_del_adapter); @@ -821,8 +757,6 @@ index 48e31ed69dbf..18bdc74fc9ea 100644 /* ------------------------------------------------------------------------- */ int i2c_for_each_dev(void *data, int (*fn)(struct device *, void *)) -diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c -index 7409ebb33c47..797e3117bef7 100644 --- a/drivers/i2c/i2c-mux.c +++ b/drivers/i2c/i2c-mux.c @@ -25,7 +25,6 @@ @@ -833,7 +767,7 @@ index 7409ebb33c47..797e3117bef7 100644 /* multiplexer per channel data */ struct i2c_mux_priv { -@@ -185,8 +184,6 @@ struct i2c_adapter *i2c_add_mux_adapter(struct i2c_adapter *parent, +@@ -185,8 +184,6 @@ struct i2c_adapter *i2c_add_mux_adapter( dev_info(&parent->dev, "Added multiplexed i2c bus %d\n", i2c_adapter_id(&priv->adap)); @@ -842,8 +776,6 @@ index 7409ebb33c47..797e3117bef7 100644 return &priv->adap; } EXPORT_SYMBOL_GPL(i2c_add_mux_adapter); -diff --git a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c -index f7bf24375f81..74b41ae690f3 100644 --- a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c +++ b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c @@ -21,7 +21,6 @@ @@ -854,8 +786,6 @@ index f7bf24375f81..74b41ae690f3 100644 #include <linux/of_gpio.h> #include <linux/platform_device.h> #include <linux/slab.h> -diff --git a/drivers/i2c/muxes/i2c-mux-gpio.c b/drivers/i2c/muxes/i2c-mux-gpio.c -index 774b9cc4601c..a63d7d21eff7 100644 --- a/drivers/i2c/muxes/i2c-mux-gpio.c +++ b/drivers/i2c/muxes/i2c-mux-gpio.c @@ -16,7 +16,6 @@ @@ -866,8 +796,6 @@ index 774b9cc4601c..a63d7d21eff7 100644 #include <linux/of_gpio.h> struct gpiomux { -diff --git a/drivers/i2c/muxes/i2c-mux-pinctrl.c b/drivers/i2c/muxes/i2c-mux-pinctrl.c -index 0d082027c29a..69a91732ae65 100644 --- a/drivers/i2c/muxes/i2c-mux-pinctrl.c +++ b/drivers/i2c/muxes/i2c-mux-pinctrl.c @@ -20,7 +20,6 @@ @@ -878,8 +806,6 @@ index 0d082027c29a..69a91732ae65 100644 #include <linux/pinctrl/consumer.h> #include <linux/i2c-mux-pinctrl.h> #include <linux/platform_device.h> -diff --git a/drivers/media/platform/exynos4-is/fimc-is-i2c.c b/drivers/media/platform/exynos4-is/fimc-is-i2c.c -index c397777d7cbb..b13ff866b52e 100644 --- a/drivers/media/platform/exynos4-is/fimc-is-i2c.c +++ b/drivers/media/platform/exynos4-is/fimc-is-i2c.c @@ -12,7 +12,7 @@ @@ -891,7 +817,7 @@ index c397777d7cbb..b13ff866b52e 100644 #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/slab.h> -@@ -67,8 +67,6 @@ static int fimc_is_i2c_probe(struct platform_device *pdev) +@@ -67,8 +67,6 @@ static int fimc_is_i2c_probe(struct plat pm_runtime_enable(&pdev->dev); pm_runtime_enable(&i2c_adap->dev); @@ -900,8 +826,6 @@ index c397777d7cbb..b13ff866b52e 100644 return 0; } -diff --git a/drivers/media/platform/exynos4-is/fimc-is.c b/drivers/media/platform/exynos4-is/fimc-is.c -index 0741945b79ed..bcd2b78c7b5d 100644 --- a/drivers/media/platform/exynos4-is/fimc-is.c +++ b/drivers/media/platform/exynos4-is/fimc-is.c @@ -21,7 +21,7 @@ @@ -913,8 +837,6 @@ index 0741945b79ed..bcd2b78c7b5d 100644 #include <linux/of_irq.h> #include <linux/of_address.h> #include <linux/of_platform.h> -diff --git a/drivers/media/platform/exynos4-is/media-dev.c b/drivers/media/platform/exynos4-is/media-dev.c -index b5b480befcc3..b52f8e269e52 100644 --- a/drivers/media/platform/exynos4-is/media-dev.c +++ b/drivers/media/platform/exynos4-is/media-dev.c @@ -20,7 +20,6 @@ @@ -925,8 +847,6 @@ index b5b480befcc3..b52f8e269e52 100644 #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/types.h> -diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig -index 80e5c13b930d..78cc76053328 100644 --- a/drivers/of/Kconfig +++ b/drivers/of/Kconfig @@ -48,12 +48,6 @@ config OF_IRQ @@ -942,8 +862,6 @@ index 80e5c13b930d..78cc76053328 100644 config OF_NET depends on NETDEVICES def_bool y -diff --git a/drivers/of/Makefile b/drivers/of/Makefile -index 1f9c0c492ef9..efd05102c405 100644 --- a/drivers/of/Makefile +++ b/drivers/of/Makefile @@ -3,7 +3,6 @@ obj-$(CONFIG_OF_FLATTREE) += fdt.o @@ -954,9 +872,6 @@ index 1f9c0c492ef9..efd05102c405 100644 obj-$(CONFIG_OF_NET) += of_net.o obj-$(CONFIG_OF_SELFTEST) += selftest.o obj-$(CONFIG_OF_MDIO) += of_mdio.o -diff --git a/drivers/of/of_i2c.c b/drivers/of/of_i2c.c -deleted file mode 100644 -index b667264222cc..000000000000 --- a/drivers/of/of_i2c.c +++ /dev/null @@ -1,114 +0,0 @@ @@ -1074,8 +989,6 @@ index b667264222cc..000000000000 -EXPORT_SYMBOL(of_find_i2c_adapter_by_node); - -MODULE_LICENSE("GPL"); -diff --git a/drivers/staging/imx-drm/imx-tve.c b/drivers/staging/imx-drm/imx-tve.c -index 42f141eb183d..d83470b50d00 100644 --- a/drivers/staging/imx-drm/imx-tve.c +++ b/drivers/staging/imx-drm/imx-tve.c @@ -21,7 +21,7 @@ @@ -1087,11 +1000,9 @@ index 42f141eb183d..d83470b50d00 100644 #include <linux/regmap.h> #include <linux/regulator/consumer.h> #include <linux/spinlock.h> -diff --git a/include/linux/i2c.h b/include/linux/i2c.h -index e988fa935b3c..21891898ced0 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h -@@ -542,6 +542,26 @@ static inline int i2c_adapter_id(struct i2c_adapter *adap) +@@ -542,6 +542,26 @@ static inline int i2c_adapter_id(struct #endif /* I2C */ @@ -1118,9 +1029,6 @@ index e988fa935b3c..21891898ced0 100644 #if IS_ENABLED(CONFIG_ACPI_I2C) extern void acpi_i2c_register_devices(struct i2c_adapter *adap); #else -diff --git a/include/linux/of_i2c.h b/include/linux/of_i2c.h -deleted file mode 100644 -index cfb545cd86b5..000000000000 --- a/include/linux/of_i2c.h +++ /dev/null @@ -1,46 +0,0 @@ @@ -1170,8 +1078,6 @@ index cfb545cd86b5..000000000000 -#endif /* CONFIG_OF_I2C */ - -#endif /* __LINUX_OF_I2C_H */ -diff --git a/sound/soc/fsl/imx-sgtl5000.c b/sound/soc/fsl/imx-sgtl5000.c -index 9584e78858df..ad8c4e18f171 100644 --- a/sound/soc/fsl/imx-sgtl5000.c +++ b/sound/soc/fsl/imx-sgtl5000.c @@ -13,7 +13,7 @@ @@ -1183,8 +1089,6 @@ index 9584e78858df..ad8c4e18f171 100644 #include <linux/clk.h> #include <sound/soc.h> -diff --git a/sound/soc/fsl/imx-wm8962.c b/sound/soc/fsl/imx-wm8962.c -index 1d70e278e915..722afe69169e 100644 --- a/sound/soc/fsl/imx-wm8962.c +++ b/sound/soc/fsl/imx-wm8962.c @@ -15,7 +15,7 @@ @@ -1196,6 +1100,3 @@ index 1d70e278e915..722afe69169e 100644 #include <linux/slab.h> #include <linux/clk.h> #include <sound/soc.h> --- -1.8.5.rc3 - diff --git a/patches.ltsi/ltsi-makefile-addition.patch b/patches.ltsi/ltsi-makefile-addition.patch index 673bad8dc048f..f957b82dc7244 100644 --- a/patches.ltsi/ltsi-makefile-addition.patch +++ b/patches.ltsi/ltsi-makefile-addition.patch @@ -18,7 +18,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> @@ -1,7 +1,7 @@ VERSION = 3 PATCHLEVEL = 10 - SUBLEVEL = 28 + SUBLEVEL = 30 -EXTRAVERSION = +EXTRAVERSION = -ltsi NAME = TOSSUG Baby Fish diff --git a/patches.renesas/0581-mmc-remove-unnecessary-platform_set_drvdata.patch b/patches.renesas/0581-mmc-remove-unnecessary-platform_set_drvdata.patch index bebab9d586809..a8715fb091821 100644 --- a/patches.renesas/0581-mmc-remove-unnecessary-platform_set_drvdata.patch +++ b/patches.renesas/0581-mmc-remove-unnecessary-platform_set_drvdata.patch @@ -59,7 +59,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au> mmc_remove_host(host->mmc); --- a/drivers/mmc/host/atmel-mci.c +++ b/drivers/mmc/host/atmel-mci.c -@@ -2484,8 +2484,6 @@ static int __exit atmci_remove(struct pl +@@ -2495,8 +2495,6 @@ static int __exit atmci_remove(struct pl struct atmel_mci *host = platform_get_drvdata(pdev); unsigned int i; diff --git a/patches.zynq/0001-i2c-xilinx-merge-i2c-driver-from-Xilinx-repository-i.patch b/patches.zynq/0001-i2c-xilinx-merge-i2c-driver-from-Xilinx-repository-i.patch index 4ac7dbe898fdc..bc5213ae582e8 100644 --- a/patches.zynq/0001-i2c-xilinx-merge-i2c-driver-from-Xilinx-repository-i.patch +++ b/patches.zynq/0001-i2c-xilinx-merge-i2c-driver-from-Xilinx-repository-i.patch @@ -18,7 +18,7 @@ Signed-off-by: Yoshitake Kobayashi <yoshitake.kobayashi@toshiba.co.jp> --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig -@@ -736,6 +736,15 @@ config I2C_WMT +@@ -737,6 +737,15 @@ config I2C_WMT This driver can also be built as a module. If so, the module will be called i2c-wmt. diff --git a/patches.zynq/0009-usb-zynq-merge-usb-support-for-xilinx-zynq-soc.patch b/patches.zynq/0009-usb-zynq-merge-usb-support-for-xilinx-zynq-soc.patch index bef62e715c2b0..4686f90509c8f 100644 --- a/patches.zynq/0009-usb-zynq-merge-usb-support-for-xilinx-zynq-soc.patch +++ b/patches.zynq/0009-usb-zynq-merge-usb-support-for-xilinx-zynq-soc.patch @@ -47,7 +47,7 @@ Signed-off-by: Yoshitake Kobayashi <yoshitake.kobayashi@toshiba.co.jp> default y if MACH_LOONGSON1 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -1685,7 +1685,11 @@ static int hub_probe(struct usb_interfac +@@ -1689,7 +1689,11 @@ static int hub_probe(struct usb_interfac pm_runtime_set_autosuspend_delay(&hdev->dev, 0); /* Hubs have proper suspend/resume support. */ |