This is a note to let you know that I've just added the patch titled Revert "drm/i915: reorder setup sequence to have irqs for output setup" to the 3.8-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: revert-drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch and it can be found in the queue-3.8 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From foo@baz Mon Mar 18 13:16:44 PDT 2013 Date: Mon, 18 Mar 2013 13:16:44 -0700 To: Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Subject: Revert "drm/i915: reorder setup sequence to have irqs for output setup" Revert commit 2a9810441fcc26cf3f006f015f8a62094fe57a90 which is commit 52d7ecedac3f96fb562cb482c139015372728638 upstream. This caused problems in 3.8-stable, but all is fine in 3.9-rc. Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Cc: Imre Deak <imre.deak@xxxxxxxxx> Cc: Daniel Vetter <daniel.vetter@xxxxxxxx> --- drivers/gpu/drm/i915/i915_dma.c | 23 +++++++++-------------- drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/i915_irq.c | 4 ---- 3 files changed, 9 insertions(+), 19 deletions(-) --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -1297,21 +1297,19 @@ static int i915_load_modeset_init(struct if (ret) goto cleanup_vga_switcheroo; - ret = drm_irq_install(dev); - if (ret) - goto cleanup_gem_stolen; - - /* Important: The output setup functions called by modeset_init need - * working irqs for e.g. gmbus and dp aux transfers. */ intel_modeset_init(dev); ret = i915_gem_init(dev); if (ret) - goto cleanup_irq; + goto cleanup_gem_stolen; + + intel_modeset_gem_init(dev); INIT_WORK(&dev_priv->console_resume_work, intel_console_resume); - intel_modeset_gem_init(dev); + ret = drm_irq_install(dev); + if (ret) + goto cleanup_gem; /* Always safe in the mode setting case. */ /* FIXME: do pre/post-mode set stuff in core KMS code */ @@ -1319,10 +1317,7 @@ static int i915_load_modeset_init(struct ret = intel_fbdev_init(dev); if (ret) - goto cleanup_gem; - - /* Only enable hotplug handling once the fbdev is fully set up. */ - dev_priv->enable_hotplug_processing = true; + goto cleanup_irq; drm_kms_helper_poll_init(dev); @@ -1331,13 +1326,13 @@ static int i915_load_modeset_init(struct return 0; +cleanup_irq: + drm_irq_uninstall(dev); cleanup_gem: mutex_lock(&dev->struct_mutex); i915_gem_cleanup_ringbuffer(dev); mutex_unlock(&dev->struct_mutex); i915_gem_cleanup_aliasing_ppgtt(dev); -cleanup_irq: - drm_irq_uninstall(dev); cleanup_gem_stolen: i915_gem_cleanup_stolen(dev); cleanup_vga_switcheroo: --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -672,7 +672,6 @@ typedef struct drm_i915_private { u32 hotplug_supported_mask; struct work_struct hotplug_work; - bool enable_hotplug_processing; int num_pipe; int num_pch_pll; --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -287,10 +287,6 @@ static void i915_hotplug_work_func(struc struct drm_mode_config *mode_config = &dev->mode_config; struct intel_encoder *encoder; - /* HPD irq before everything is fully set up. */ - if (!dev_priv->enable_hotplug_processing) - return; - mutex_lock(&mode_config->mutex); DRM_DEBUG_KMS("running encoder hotplug functions\n"); Patches currently in stable-queue which might be from gregkh@xxxxxxxxxxxxxxxxxxx are queue-3.8/powerpc-fix-stab-initialization.patch queue-3.8/tools-usb-ffs-test-fix-build-failure.patch queue-3.8/net-ipv6-don-t-purge-default-router-if-accept_ra-2.patch queue-3.8/powerpc-fix-cputable-entry-for-970mp-rev-1.0.patch queue-3.8/tty-serial-fix-typo-arch_s5p6450.patch queue-3.8/atl1c-restore-buffer-state.patch queue-3.8/fix-4-port-and-add-support-for-8-port-unknown-pci-serial-port-cards.patch queue-3.8/powerpc-rename-user_esid_bits-to-esid_bits.patch queue-3.8/rds-limit-the-size-allocated-by-rds_message_alloc.patch queue-3.8/revert-drm-i915-enable-irqs-earlier-when-resuming.patch queue-3.8/serial-8250-keep-8250.-xxxx-module-options-functional-after-driver-rename.patch queue-3.8/l2tp-restore-socket-refcount-when-sendmsg-succeeds.patch queue-3.8/xen-pciback-don-t-disable-a-pci-device-that-is-already-disabled.patch queue-3.8/qcserial-bind-to-dm-diag-port-on-gobi-1k-devices.patch queue-3.8/powerpc-make-vsid_bits-dependency-explicit.patch queue-3.8/revert-drm-i915-reorder-setup-sequence-to-have-irqs-for-output-setup.patch queue-3.8/vxlan-fix-oops-when-delete-netns-containing-vxlan.patch queue-3.8/tty-serial-fix-typo-serial_s3c2412.patch queue-3.8/net-sctp-validate-parameter-size-for-sctp_get_assoc_stats.patch queue-3.8/usb-cp210x-new-vendor-device-ids.patch queue-3.8/mtd-nand-reintroduce-nand_no_readrdy-as-nand_need_readrdy.patch queue-3.8/powerpc-update-kernel-vsid-range.patch queue-3.8/ipv6-stop-multicast-forwarding-to-process-interface-scoped-addresses.patch queue-3.8/perf-x86-fix-link-failure-for-non-intel-configs.patch queue-3.8/staging-comedi-dt9812-use-cr_chan-for-channel-number.patch queue-3.8/serial-8250_pci-add-support-for-another-kind-of-netmos-technology-pci-9835-multi-i-o-controller.patch queue-3.8/usb-option-add-huawei-e5331.patch queue-3.8/arm-kirkwood-fix-to-retain-gbe-mac-addresses-for-dt-kernels.patch queue-3.8/tty-do-not-reset-master-s-packet-mode.patch queue-3.8/macvlan-set-iff_unicast_flt-flag-to-prevent-unnecessary-promisc-mode.patch queue-3.8/tty-8250_pnp-serial-port-detection-regression-since-v3.7.patch queue-3.8/signal-always-clear-sa_restorer-on-execve.patch queue-3.8/hwmon-pmbus-ltc2978-fix-temperature-reporting.patch queue-3.8/staging-vt6656-fix-oops-on-resume-from-suspend.patch queue-3.8/btrfs-use-rcu_barrier-to-wait-for-bdev-puts-at-unmount.patch queue-3.8/arm-davinci-edma-fix-dmaengine-induced-null-pointer-dereference-on-da830.patch queue-3.8/usb-added-support-for-cinterion-s-products-ah6-and-pls8.patch queue-3.8/qcaux-add-franklin-u600.patch queue-3.8/ext3-fix-format-string-issues.patch queue-3.8/usb-ehci-work-around-silicon-bug-in-intel-s-ehci-controllers.patch queue-3.8/arm-w1-gpio-fix-erroneous-gpio-requests.patch queue-3.8/bonding-fire-netdev_release-event-only-on-0-slaves.patch queue-3.8/team-unsyc-the-devices-addresses-when-port-is-removed.patch queue-3.8/6lowpan-fix-endianness-issue-in-is_addr_link_local.patch queue-3.8/netlabel-correctly-list-all-the-static-label-mappings.patch queue-3.8/perf-x86-fix-wrmsr_on_cpu-warning-on-suspend-resume.patch queue-3.8/bridging-fix-rx_handlers-return-code.patch queue-3.8/kbuild-fix-make-headers_check-with-make-3.80.patch queue-3.8/bridge-fix-mdb-info-leaks.patch queue-3.8/s390-mm-fix-flush_tlb_kernel_range.patch queue-3.8/net-mlx4_en-disable-rfs-when-running-in-sriov-mode.patch queue-3.8/tcp-fix-double-counted-receiver-rtt-when-leaving-receiver-fast-path.patch queue-3.8/usb-serial-add-rigblaster-advantage-to-device-table.patch queue-3.8/virtio-rng-disallow-multiple-device-registrations-fixes-crashes.patch queue-3.8/hwmon-lineage-pem-add-missing-terminating-entry-for-pem__attributes.patch queue-3.8/perf-x86-fix-kernel-crash-with-pebs-bts-after-suspend-resume.patch queue-3.8/w1-gpio-remove-erroneous-__exit-and-__exit_p.patch queue-3.8/dcbnl-fix-various-netlink-info-leaks.patch queue-3.8/loopdev-fix-a-deadlock.patch queue-3.8/w1-fix-oops-when-w1_search-is-called-from-netlink-connector.patch queue-3.8/net-mlx4_en-initialize-rfs-filters-lock-and-list-in-init_netdev.patch queue-3.8/rtnl-fix-info-leak-on-rtm_getlink-request-for-vf-devices.patch queue-3.8/usb-cdc-wdm-fix-buffer-overflow.patch queue-3.8/selinux-use-gfp_atomic-under-spin_lock.patch queue-3.8/usb-ehci-don-t-check-dma-values-in-qh-overlays.patch queue-3.8/block-use-i_size_write-in-bd_set_size.patch queue-3.8/usb-dwc3-core-don-t-forget-to-free-coherent-memory.patch queue-3.8/loopdev-remove-an-user-triggerable-oops.patch queue-3.8/atmel_lcdfb-fix-16-bpp-modes-on-older-socs.patch queue-3.8/usb-storage-fix-huawei-mode-switching-regression.patch queue-3.8/tun-add-a-missing-nf_reset-in-tun_net_xmit.patch queue-3.8/s390-critical-section-cleanup-vs.-machine-checks.patch queue-3.8/alsa-seq-fix-missing-error-handling-in-snd_seq_timer_open.patch queue-3.8/tty-disable-debugging-warning.patch queue-3.8/tty-serial-add-support-for-altera-serial-port.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html