From ee4b78d86aec938ef5e7a5cb3af2bb2c1a263085 Mon Sep 17 00:00:00 2001 From: Chuck Ebbert Date: Mon, 2 Aug 2010 02:50:42 -0400 Subject: [PATCH] * Sun Aug 01 2010 Chuck Ebbert 2.6.34.2-32.rc1 - Linux 2.6.34.2-rc1 - Comment out upstream merged patches: pci-pm-do-not-use-native-pcie-pme-by-default.patch linux-2.6-acpi-sleep-live-sci-live.patch (slightly different upstream patch) drm-i915-make-G4X-style-PLL-search-more-permissive.patch drm-intel-945gm-stability-fixes.patch drm-radeon-fix-shared-ddc-handling.patch drm-i915-add-reclaimable-to-page-allocations.patch drm-i915-fix-hibernate-memory-corruption.patch iwlwifi-Recover-TX-flow-stall-due-to-stuck-queue.patch iwlwifi-recover_from_tx_stall.patch mac80211-do-not-wipe-out-old-supported-rates.patch mac80211-fix-supported-rates-IE-if-AP-doesnt-give-us-its-rates.patch iwlwifi-cancel-scan-watchdog-in-iwl_bg_abort_scan.patch ata-generic-handle-new-mbp-with-mcp89.patch ata-generic-implement-ata-gen-flags.patch x86-debug-send-sigtrap-for-user-icebp.patch ethtool-fix-buffer-overflow.patch sched-fix-over-scheduling-bug.patch kbuild-fix-modpost-segfault.patch acpica-00-linux-2.6.git-0f849d2cc6863c7874889ea60a871fb71399dd3f.patch acpica-01-linux-2.6.git-a997ab332832519c2e292db13f509e4360495a5a.patch acpica-02-linux-2.6.git-e4e9a735991c80fb0fc1bd4a13a93681c3c17ce0.patch acpica-03-linux-2.6.git-fd247447c1d94a79d5cfc647430784306b3a8323.patch acpica-04-linux-2.6.git-c9a8bbb7704cbf515c0fc68970abbe4e91d68521.patch acpica-05-linux-2.6.git-ce43ace02320a3fb9614ddb27edc3a8700d68b26.patch acpica-06-linux-2.6.git-9d3c752de65dbfa6e522f1d666deb0ac152ef367.patch acpi-pm-do-not-enable-gpes-for-system-wakeup-in-advance.patch cifs-fix-malicious-redirect-problem-in-the-dns-lookup-code.patch usb-obey-the-sysfs-power-wakeup-setting.patch - Fix up virtqueue-wrappers.patch to apply after 2.6.34.2 due to: virtio_net-fix-oom-handling-on-tx.patch - Revert -stable DRM patches already in our drm-next patch: amd64-agp-probe-unknown-agp-devices-the-right-way.patch i915-fix-lock-imbalance-on-error-path.patch drm-i915-hold-the-spinlock-whilst-resetting-unpin_work-along-error-path.patch - Fix up drm-next.patch to apply after 2.6.34.2 due to: drm-i915-gen3-page-flipping-fixes.patch drm-i915-don-t-queue-flips-during-a-flip-pending-event.patch - Drop patches now upstream from linux-2.6-v4l-dvb-uvcvideo-update.patch: V4L/DVB: uvcvideo: Add support for unbranded Arkmicro 18ec:3290 webcams V4L/DVB: uvcvideo: Add support for V4L2_PIX_FMT_Y16 - Temporarily comment out ssb_check_for_sprom.patch due to ugly conflicts with: ssb-handle-netbook-devices-where-the-sprom-address-is-changed.patch --- drm-next.patch | 16 +- kernel.spec | 112 ++++++++++---- linux-2.6-upstream-reverts.patch | 195 ++++++++++++++++++++++++ linux-2.6-v4l-dvb-uvcvideo-update.patch | 89 ----------- sources | 1 + virtqueue-wrappers.patch | 15 +- 6 files changed, 289 insertions(+), 139 deletions(-) diff --git a/drm-next.patch b/drm-next.patch index f9a5b7932..4f9a00a96 100644 --- a/drm-next.patch +++ b/drm-next.patch @@ -10136,7 +10136,7 @@ index c3cfafc..59a2bf8 100644 i915_suspend(dev, pmm); } } -@@ -1480,19 +1402,19 @@ static int i915_load_modeset_init(struct drm_device *dev, +@@ -1480,23 +1402,23 @@ static int i915_load_modeset_init(struct drm_device *dev, /* if we have > 1 VGA cards, then disable the radeon VGA resources */ ret = vga_client_register(dev->pdev, dev, NULL, i915_vga_set_decode); if (ret) @@ -10150,6 +10150,10 @@ index c3cfafc..59a2bf8 100644 - goto destroy_ringbuffer; + goto cleanup_vga_client; + /* IIR "flip pending" bit means done if this bit is set */ + if (IS_GEN3(dev) && (I915_READ(ECOSKPD) & ECO_FLIP_DONE)) + dev_priv->flip_pending_is_done = true; + intel_modeset_init(dev); ret = drm_irq_install(dev); @@ -13676,9 +13680,9 @@ index df6a9cd..2479be0 100644 + if (HAS_BSD(dev) && (iir & I915_BSD_USER_INTERRUPT)) + DRM_WAKEUP(&dev_priv->bsd_ring.irq_queue); + - if (iir & I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT) + if (iir & I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT) { intel_prepare_page_flip(dev, 0); - + if (dev_priv->flip_pending_is_done) @@ -950,7 +958,8 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) intel_finish_page_flip(dev, 1); } @@ -13845,8 +13849,8 @@ index 4cbc521..64b0a3a 100644 #define EMR 0x020b4 #define ESR 0x020b8 @@ -368,6 +369,36 @@ - #define BB_ADDR 0x02140 /* 8 bytes */ - #define GFX_FLSH_CNTL 0x02170 /* 915+ only */ + #define ECO_GATING_CX_ONLY (1<<3) + #define ECO_FLIP_DONE (1<<0) +/* GEN6 interrupt control */ +#define GEN6_RENDER_HWSTAM 0x2098 @@ -16186,9 +16190,9 @@ index c7502b6..d753257 100644 return; } @@ -4220,14 +4678,11 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc, - unsigned long flags; int pipesrc_reg = (intel_crtc->pipe == 0) ? PIPEASRC : PIPEBSRC; int ret, pipesrc; + u32 flip_mask; - RING_LOCALS; work = kzalloc(sizeof *work, GFP_KERNEL); diff --git a/kernel.spec b/kernel.spec index 8e7d6e0b8..b3bb1a39c 100644 --- a/kernel.spec +++ b/kernel.spec @@ -48,7 +48,7 @@ Summary: The Linux kernel # reset this by hand to 1 (or to 0 and then use rpmdev-bumpspec). # scripts/rebase.sh should be made to do that for you, actually. # -%global baserelease 31 +%global baserelease 32 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -60,9 +60,9 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 1 +%define stable_update 2 # Is it a -stable RC? -%define stable_rc 0 +%define stable_rc 1 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev .%{stable_update} @@ -1293,7 +1293,7 @@ ApplyPatch pci-acpi-disable-aspm-if-no-osc.patch # allow drivers to disable aspm at load time ApplyPatch pci-aspm-dont-enable-too-early.patch # stop PCIe hotplug interrupt storm (#613412) -ApplyPatch pci-pm-do-not-use-native-pcie-pme-by-default.patch +#ApplyPatch pci-pm-do-not-use-native-pcie-pme-by-default.patch # fall back to original BIOS address when reassignment fails (KORG#16263) ApplyPatch pci-fall-back-to-original-bios-bar-addresses.patch @@ -1302,7 +1302,7 @@ ApplyPatch pci-fall-back-to-original-bios-bar-addresses.patch # # ACPI -ApplyPatch linux-2.6-acpi-sleep-live-sci-live.patch +#ApplyPatch linux-2.6-acpi-sleep-live-sci-live.patch # ALSA ApplyPatch hda_intel-prealloc-4mb-dmabuffer.patch @@ -1371,8 +1371,8 @@ ApplyPatch revert-drm-kms-toggle-poll-around-switcheroo.patch ApplyPatch drm-i915-fix-edp-panels.patch ApplyPatch i915-fix-crt-hotplug-regression.patch # RHBZ#572799 -ApplyPatch drm-i915-make-G4X-style-PLL-search-more-permissive.patch -ApplyPatch drm-intel-945gm-stability-fixes.patch +#ApplyPatch drm-i915-make-G4X-style-PLL-search-more-permissive.patch +#ApplyPatch drm-intel-945gm-stability-fixes.patch ApplyPatch drm-encoder-disable.patch # Nouveau DRM + drm fixes @@ -1383,11 +1383,11 @@ ApplyOptionalPatch drm-intel-next.patch ApplyPatch drm-intel-make-lvds-work.patch # radeon fixes -ApplyPatch drm-radeon-fix-shared-ddc-handling.patch +#ApplyPatch drm-radeon-fix-shared-ddc-handling.patch # hibernation memory corruption fixes -ApplyPatch drm-i915-fix-hibernate-memory-corruption.patch -ApplyPatch drm-i915-add-reclaimable-to-page-allocations.patch +#ApplyPatch drm-i915-fix-hibernate-memory-corruption.patch +#ApplyPatch drm-i915-add-reclaimable-to-page-allocations.patch ApplyPatch linux-2.6-intel-iommu-igfx.patch @@ -1423,43 +1423,45 @@ ApplyPatch neuter_intel_microcode_load.patch #ApplyPatch coredump-uid-pipe-check.patch # rhbz#533746 -ApplyPatch ssb_check_for_sprom.patch +# awful, ugly conflicts between this patch and the 2.6.34.2 patch: +# ssb-handle-netbook-devices-where-the-sprom-address-is-changed.patch +#ApplyPatch ssb_check_for_sprom.patch # iwlwifi fixes from F-13-2.6.33 ApplyPatch iwlwifi-add-internal-short-scan-support-for-3945.patch -ApplyPatch iwlwifi-Recover-TX-flow-stall-due-to-stuck-queue.patch +#ApplyPatch iwlwifi-Recover-TX-flow-stall-due-to-stuck-queue.patch ApplyPatch iwlwifi-move-plcp-check-to-separated-function.patch ApplyPatch iwlwifi-Recover-TX-flow-failure.patch ApplyPatch iwlwifi-code-cleanup-for-connectivity-recovery.patch ApplyPatch iwlwifi-iwl_good_ack_health-only-apply-to-AGN-device.patch -ApplyPatch iwlwifi-recover_from_tx_stall.patch +#ApplyPatch iwlwifi-recover_from_tx_stall.patch # mac80211/iwlwifi fix connections to some APs (rhbz#558002) ApplyPatch mac80211-explicitly-disable-enable-QoS.patch ApplyPatch iwlwifi-manage-QoS-by-mac-stack.patch -ApplyPatch mac80211-do-not-wipe-out-old-supported-rates.patch -ApplyPatch mac80211-fix-supported-rates-IE-if-AP-doesnt-give-us-its-rates.patch +#ApplyPatch mac80211-do-not-wipe-out-old-supported-rates.patch +#ApplyPatch mac80211-fix-supported-rates-IE-if-AP-doesnt-give-us-its-rates.patch # iwlwifi: cancel scan watchdog in iwl_bg_abort_scan -ApplyPatch iwlwifi-cancel-scan-watchdog-in-iwl_bg_abort_scan.patch +#ApplyPatch iwlwifi-cancel-scan-watchdog-in-iwl_bg_abort_scan.patch ApplyPatch quiet-prove_RCU-in-cgroups.patch # BZ#608034 -ApplyPatch ata-generic-handle-new-mbp-with-mcp89.patch -ApplyPatch ata-generic-implement-ata-gen-flags.patch +#ApplyPatch ata-generic-handle-new-mbp-with-mcp89.patch +#ApplyPatch ata-generic-implement-ata-gen-flags.patch # BZ#609548 -ApplyPatch x86-debug-send-sigtrap-for-user-icebp.patch +#ApplyPatch x86-debug-send-sigtrap-for-user-icebp.patch # CVE-2010-2478 -ApplyPatch ethtool-fix-buffer-overflow.patch +#ApplyPatch ethtool-fix-buffer-overflow.patch # fix performance problem with CGROUPS -ApplyPatch sched-fix-over-scheduling-bug.patch +#ApplyPatch sched-fix-over-scheduling-bug.patch # fix modpost segfault during kernel build (#595915) -ApplyPatch kbuild-fix-modpost-segfault.patch +#ApplyPatch kbuild-fix-modpost-segfault.patch # fix broken oneshot support and missing umount events (#607327) ApplyPatch inotify-fix-inotify-oneshot-support.patch @@ -1469,24 +1471,24 @@ ApplyPatch inotify-send-IN_UNMOUNT-events.patch ApplyPatch kvm-mmu-fix-conflict-access-permissions-in-direct-sp.patch # ACPI GPE enable/disable fixes, needed preparation for the powerdown fix -ApplyPatch acpica-00-linux-2.6.git-0f849d2cc6863c7874889ea60a871fb71399dd3f.patch -ApplyPatch acpica-01-linux-2.6.git-a997ab332832519c2e292db13f509e4360495a5a.patch -ApplyPatch acpica-02-linux-2.6.git-e4e9a735991c80fb0fc1bd4a13a93681c3c17ce0.patch -ApplyPatch acpica-03-linux-2.6.git-fd247447c1d94a79d5cfc647430784306b3a8323.patch -ApplyPatch acpica-04-linux-2.6.git-c9a8bbb7704cbf515c0fc68970abbe4e91d68521.patch -ApplyPatch acpica-05-linux-2.6.git-ce43ace02320a3fb9614ddb27edc3a8700d68b26.patch -ApplyPatch acpica-06-linux-2.6.git-9d3c752de65dbfa6e522f1d666deb0ac152ef367.patch +#ApplyPatch acpica-00-linux-2.6.git-0f849d2cc6863c7874889ea60a871fb71399dd3f.patch +#ApplyPatch acpica-01-linux-2.6.git-a997ab332832519c2e292db13f509e4360495a5a.patch +#ApplyPatch acpica-02-linux-2.6.git-e4e9a735991c80fb0fc1bd4a13a93681c3c17ce0.patch +#ApplyPatch acpica-03-linux-2.6.git-fd247447c1d94a79d5cfc647430784306b3a8323.patch +#ApplyPatch acpica-04-linux-2.6.git-c9a8bbb7704cbf515c0fc68970abbe4e91d68521.patch +#ApplyPatch acpica-05-linux-2.6.git-ce43ace02320a3fb9614ddb27edc3a8700d68b26.patch +#ApplyPatch acpica-06-linux-2.6.git-9d3c752de65dbfa6e522f1d666deb0ac152ef367.patch # fix system powering back on after shutdown (#613239) -ApplyPatch acpi-pm-do-not-enable-gpes-for-system-wakeup-in-advance.patch +#ApplyPatch acpi-pm-do-not-enable-gpes-for-system-wakeup-in-advance.patch # fix newer synaptics touchpads not being recognized ApplyPatch input-synaptics-relax-capability-id-checks-on-new-hardware.patch # CVE-2010-2524 -ApplyPatch cifs-fix-malicious-redirect-problem-in-the-dns-lookup-code.patch +#ApplyPatch cifs-fix-malicious-redirect-problem-in-the-dns-lookup-code.patch # restore ability of USB remotes to wake the machine (#617559) -ApplyPatch usb-obey-the-sysfs-power-wakeup-setting.patch +#ApplyPatch usb-obey-the-sysfs-power-wakeup-setting.patch # END OF PATCH APPLICATIONS @@ -2107,6 +2109,52 @@ fi %changelog +* Sun Aug 01 2010 Chuck Ebbert 2.6.34.2-32.rc1 +- Linux 2.6.34.2-rc1 +- Comment out upstream merged patches: + pci-pm-do-not-use-native-pcie-pme-by-default.patch + linux-2.6-acpi-sleep-live-sci-live.patch (slightly different upstream patch) + drm-i915-make-G4X-style-PLL-search-more-permissive.patch + drm-intel-945gm-stability-fixes.patch + drm-radeon-fix-shared-ddc-handling.patch + drm-i915-add-reclaimable-to-page-allocations.patch + drm-i915-fix-hibernate-memory-corruption.patch + iwlwifi-Recover-TX-flow-stall-due-to-stuck-queue.patch + iwlwifi-recover_from_tx_stall.patch + mac80211-do-not-wipe-out-old-supported-rates.patch + mac80211-fix-supported-rates-IE-if-AP-doesnt-give-us-its-rates.patch + iwlwifi-cancel-scan-watchdog-in-iwl_bg_abort_scan.patch + ata-generic-handle-new-mbp-with-mcp89.patch + ata-generic-implement-ata-gen-flags.patch + x86-debug-send-sigtrap-for-user-icebp.patch + ethtool-fix-buffer-overflow.patch + sched-fix-over-scheduling-bug.patch + kbuild-fix-modpost-segfault.patch + acpica-00-linux-2.6.git-0f849d2cc6863c7874889ea60a871fb71399dd3f.patch + acpica-01-linux-2.6.git-a997ab332832519c2e292db13f509e4360495a5a.patch + acpica-02-linux-2.6.git-e4e9a735991c80fb0fc1bd4a13a93681c3c17ce0.patch + acpica-03-linux-2.6.git-fd247447c1d94a79d5cfc647430784306b3a8323.patch + acpica-04-linux-2.6.git-c9a8bbb7704cbf515c0fc68970abbe4e91d68521.patch + acpica-05-linux-2.6.git-ce43ace02320a3fb9614ddb27edc3a8700d68b26.patch + acpica-06-linux-2.6.git-9d3c752de65dbfa6e522f1d666deb0ac152ef367.patch + acpi-pm-do-not-enable-gpes-for-system-wakeup-in-advance.patch + cifs-fix-malicious-redirect-problem-in-the-dns-lookup-code.patch + usb-obey-the-sysfs-power-wakeup-setting.patch +- Fix up virtqueue-wrappers.patch to apply after 2.6.34.2 due to: + virtio_net-fix-oom-handling-on-tx.patch +- Revert -stable DRM patches already in our drm-next patch: + amd64-agp-probe-unknown-agp-devices-the-right-way.patch + i915-fix-lock-imbalance-on-error-path.patch + drm-i915-hold-the-spinlock-whilst-resetting-unpin_work-along-error-path.patch +- Fix up drm-next.patch to apply after 2.6.34.2 due to: + drm-i915-gen3-page-flipping-fixes.patch + drm-i915-don-t-queue-flips-during-a-flip-pending-event.patch +- Drop patches now upstream from linux-2.6-v4l-dvb-uvcvideo-update.patch: + V4L/DVB: uvcvideo: Add support for unbranded Arkmicro 18ec:3290 webcams + V4L/DVB: uvcvideo: Add support for V4L2_PIX_FMT_Y16 +- Temporarily comment out ssb_check_for_sprom.patch due to ugly conflicts with: + ssb-handle-netbook-devices-where-the-sprom-address-is-changed.patch + * Sun Aug 01 2010 Chuck Ebbert 2.6.34.1-31 - Backport initial dist-git fixes from master (377da6d08) - Modify the prep stage so multiple trees can be prepped in a diff --git a/linux-2.6-upstream-reverts.patch b/linux-2.6-upstream-reverts.patch index 4c903f783..600fb93b2 100644 --- a/linux-2.6-upstream-reverts.patch +++ b/linux-2.6-upstream-reverts.patch @@ -1,3 +1,198 @@ +From 468f0b44ce4b002ca7d9260f802a341854752c02 Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Thu, 27 May 2010 13:18:13 +0100 +Subject: drm/i915: Hold the spinlock whilst resetting unpin_work along error path +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Chris Wilson + +commit 468f0b44ce4b002ca7d9260f802a341854752c02 upstream. + +Delay taking the mutex until we need to and ensure that we hold the +spinlock when resetting unpin_work on the error path. Also defer the +debugging print messages until after we have released the spinlock. + +Signed-off-by: Chris Wilson +Cc: Jesse Barnes +Cc: Kristian Høgsberg +Reviewed-by: Jesse Barnes +Signed-off-by: Eric Anholt +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/intel_display.c | 20 ++++++++++++-------- + 1 file changed, 12 insertions(+), 8 deletions(-) + +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -4239,8 +4239,6 @@ static int intel_crtc_page_flip(struct d + if (work == NULL) + return -ENOMEM; + +- mutex_lock(&dev->struct_mutex); +- + work->event = event; + work->dev = crtc->dev; + intel_fb = to_intel_framebuffer(crtc->fb); +@@ -4250,10 +4248,10 @@ static int intel_crtc_page_flip(struct d + /* We borrow the event spin lock for protecting unpin_work */ + spin_lock_irqsave(&dev->event_lock, flags); + if (intel_crtc->unpin_work) { +- DRM_DEBUG_DRIVER("flip queue: crtc already busy\n"); + spin_unlock_irqrestore(&dev->event_lock, flags); + kfree(work); +- mutex_unlock(&dev->struct_mutex); ++ ++ DRM_DEBUG_DRIVER("flip queue: crtc already busy\n"); + return -EBUSY; + } + intel_crtc->unpin_work = work; +@@ -4262,13 +4260,19 @@ static int intel_crtc_page_flip(struct d + intel_fb = to_intel_framebuffer(fb); + obj = intel_fb->obj; + ++ mutex_lock(&dev->struct_mutex); + ret = intel_pin_and_fence_fb_obj(dev, obj); + if (ret != 0) { +- DRM_DEBUG_DRIVER("flip queue: %p pin & fence failed\n", +- to_intel_bo(obj)); +- kfree(work); +- intel_crtc->unpin_work = NULL; + mutex_unlock(&dev->struct_mutex); ++ ++ spin_lock_irqsave(&dev->event_lock, flags); ++ intel_crtc->unpin_work = NULL; ++ spin_unlock_irqrestore(&dev->event_lock, flags); ++ ++ kfree(work); ++ ++ DRM_DEBUG_DRIVER("flip queue: %p pin & fence failed\n", ++ to_intel_bo(obj)); + return ret; + } + +From f953c9353f5fe6e98fa7f32f51060a74d845b5f8 Mon Sep 17 00:00:00 2001 +From: Daniel J Blueman +Date: Mon, 17 May 2010 14:23:52 +0100 +Subject: i915: fix lock imbalance on error path... + +From: Daniel J Blueman + +commit f953c9353f5fe6e98fa7f32f51060a74d845b5f8 upstream. + +While investigating Intel i5 Arrandale GPU lockups with -rc4, I +noticed a lock imbalance. + +Signed-off-by: Daniel J Blueman +Signed-off-by: Eric Anholt +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/i915_drv.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/gpu/drm/i915/i915_drv.c ++++ b/drivers/gpu/drm/i915/i915_drv.c +@@ -341,6 +341,7 @@ int i965_reset(struct drm_device *dev, u + } + } else { + DRM_ERROR("Error occurred. Don't know how to reset this chip.\n"); ++ mutex_unlock(&dev->struct_mutex); + return -ENODEV; + } + +From 6fd024893911dcb51b4a0aa71971db5ba38f7071 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Wed, 24 Mar 2010 03:36:31 +0000 +Subject: amd64-agp: Probe unknown AGP devices the right way + +From: Ben Hutchings + +commit 6fd024893911dcb51b4a0aa71971db5ba38f7071 upstream. + +The current initialisation code probes 'unsupported' AGP devices +simply by calling its own probe function. It does not lock these +devices or even check whether another driver is already bound to +them. + +We must use the device core to manage this. So if the specific +device id table didn't match anything and agp_try_unsupported=1, +switch the device id table and call driver_attach() again. + +Signed-off-by: Ben Hutchings +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/char/agp/amd64-agp.c | 27 +++++++++++++++------------ + 1 file changed, 15 insertions(+), 12 deletions(-) + +--- a/drivers/char/agp/amd64-agp.c ++++ b/drivers/char/agp/amd64-agp.c +@@ -499,6 +499,10 @@ static int __devinit agp_amd64_probe(str + u8 cap_ptr; + int err; + ++ /* The Highlander principle */ ++ if (agp_bridges_found) ++ return -ENODEV; ++ + cap_ptr = pci_find_capability(pdev, PCI_CAP_ID_AGP); + if (!cap_ptr) + return -ENODEV; +@@ -562,6 +566,8 @@ static void __devexit agp_amd64_remove(s + amd64_aperture_sizes[bridge->aperture_size_idx].size); + agp_remove_bridge(bridge); + agp_put_bridge(bridge); ++ ++ agp_bridges_found--; + } + + #ifdef CONFIG_PM +@@ -709,6 +715,11 @@ static struct pci_device_id agp_amd64_pc + + MODULE_DEVICE_TABLE(pci, agp_amd64_pci_table); + ++static DEFINE_PCI_DEVICE_TABLE(agp_amd64_pci_promisc_table) = { ++ { PCI_DEVICE_CLASS(0, 0) }, ++ { } ++}; ++ + static struct pci_driver agp_amd64_pci_driver = { + .name = "agpgart-amd64", + .id_table = agp_amd64_pci_table, +@@ -734,7 +745,6 @@ int __init agp_amd64_init(void) + return err; + + if (agp_bridges_found == 0) { +- struct pci_dev *dev; + if (!agp_try_unsupported && !agp_try_unsupported_boot) { + printk(KERN_INFO PFX "No supported AGP bridge found.\n"); + #ifdef MODULE +@@ -750,17 +760,10 @@ int __init agp_amd64_init(void) + return -ENODEV; + + /* Look for any AGP bridge */ +- dev = NULL; +- err = -ENODEV; +- for_each_pci_dev(dev) { +- if (!pci_find_capability(dev, PCI_CAP_ID_AGP)) +- continue; +- /* Only one bridge supported right now */ +- if (agp_amd64_probe(dev, NULL) == 0) { +- err = 0; +- break; +- } +- } ++ agp_amd64_pci_driver.id_table = agp_amd64_pci_promisc_table; ++ err = driver_attach(&agp_amd64_pci_driver.driver); ++ if (err == 0 && agp_bridges_found == 0) ++ err = -ENODEV; + } + return err; + } From c05556421742eb47f80301767653a4bcb19de9de Mon Sep 17 00:00:00 2001 From: Ian Munsie Date: Tue, 13 Apr 2010 18:37:33 +1000 diff --git a/linux-2.6-v4l-dvb-uvcvideo-update.patch b/linux-2.6-v4l-dvb-uvcvideo-update.patch index 672926376..4ae232efa 100644 --- a/linux-2.6-v4l-dvb-uvcvideo-update.patch +++ b/linux-2.6-v4l-dvb-uvcvideo-update.patch @@ -33,40 +33,6 @@ index a192c51..43892bf 100644 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_INT_INFO, From: Laurent Pinchart -Date: Thu, 4 Mar 2010 10:51:25 +0000 (-0300) -Subject: V4L/DVB: uvcvideo: Add support for unbranded Arkmicro 18ec:3290 webcams -X-Git-Url: http://git.linuxtv.org/pinchartl/uvcvideo.git?a=commitdiff_plain;h=89c21df1c6c4b984bc791dbaf50691b19852acf3 - -V4L/DVB: uvcvideo: Add support for unbranded Arkmicro 18ec:3290 webcams - -The camera requires the PROBE_DEF quirk. Add a corresponding entry in -the device IDs list. - -Signed-off-by: Laurent Pinchart -Signed-off-by: Mauro Carvalho Chehab ---- - -diff --git a/drivers/media/video/uvc/uvc_driver.c b/drivers/media/video/uvc/uvc_driver.c -index a814820..a192c51 100644 ---- a/drivers/media/video/uvc/uvc_driver.c -+++ b/drivers/media/video/uvc/uvc_driver.c -@@ -2168,6 +2168,15 @@ static struct usb_device_id uvc_ids[] = { - .bInterfaceSubClass = 1, - .bInterfaceProtocol = 0, - .driver_info = UVC_QUIRK_PROBE_MINMAX }, -+ /* Arkmicro unbranded */ -+ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE -+ | USB_DEVICE_ID_MATCH_INT_INFO, -+ .idVendor = 0x18ec, -+ .idProduct = 0x3290, -+ .bInterfaceClass = USB_CLASS_VIDEO, -+ .bInterfaceSubClass = 1, -+ .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_PROBE_DEF }, - /* Bodelin ProScopeHR */ - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE - | USB_DEVICE_ID_MATCH_DEV_HI -From: Laurent Pinchart Date: Wed, 31 Mar 2010 15:29:26 +0000 (-0300) Subject: V4L/DVB: uvcvideo: Use POLLOUT and POLLWRNORM for output devices X-Git-Url: http://git.linuxtv.org/pinchartl/uvcvideo.git?a=commitdiff_plain;h=a6eb7bc8e0eea78f96ad1b0f0195ec52b88c6a00 @@ -101,61 +67,6 @@ index 4a925a3..133c78d 100644 done: mutex_unlock(&queue->mutex); From: Laurent Pinchart -Date: Mon, 12 Apr 2010 13:41:22 +0000 (-0300) -Subject: V4L/DVB: uvcvideo: Add support for V4L2_PIX_FMT_Y16 -X-Git-Url: http://git.linuxtv.org/pinchartl/uvcvideo.git?a=commitdiff_plain;h=c947c3b45d8950312e3563a1a3316f910570d017 - -V4L/DVB: uvcvideo: Add support for V4L2_PIX_FMT_Y16 - -The Miricle 307K (17dc:0202) camera reports a 16-bit greyscale format, -support it in the driver. - -Signed-off-by: Laurent Pinchart -Signed-off-by: Mauro Carvalho Chehab ---- - -diff --git a/drivers/media/video/uvc/uvc_driver.c b/drivers/media/video/uvc/uvc_driver.c -index 43892bf..4801a2a 100644 ---- a/drivers/media/video/uvc/uvc_driver.c -+++ b/drivers/media/video/uvc/uvc_driver.c -@@ -90,11 +90,16 @@ static struct uvc_format_desc uvc_fmts[] = { - .fcc = V4L2_PIX_FMT_UYVY, - }, - { -- .name = "Greyscale", -+ .name = "Greyscale (8-bit)", - .guid = UVC_GUID_FORMAT_Y800, - .fcc = V4L2_PIX_FMT_GREY, - }, - { -+ .name = "Greyscale (16-bit)", -+ .guid = UVC_GUID_FORMAT_Y16, -+ .fcc = V4L2_PIX_FMT_Y16, -+ }, -+ { - .name = "RGB Bayer", - .guid = UVC_GUID_FORMAT_BY8, - .fcc = V4L2_PIX_FMT_SBGGR8, -diff --git a/drivers/media/video/uvc/uvcvideo.h b/drivers/media/video/uvc/uvcvideo.h -index 2bba059..d1f8840 100644 ---- a/drivers/media/video/uvc/uvcvideo.h -+++ b/drivers/media/video/uvc/uvcvideo.h -@@ -131,11 +131,13 @@ struct uvc_xu_control { - #define UVC_GUID_FORMAT_Y800 \ - { 'Y', '8', '0', '0', 0x00, 0x00, 0x10, 0x00, \ - 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} -+#define UVC_GUID_FORMAT_Y16 \ -+ { 'Y', '1', '6', ' ', 0x00, 0x00, 0x10, 0x00, \ -+ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} - #define UVC_GUID_FORMAT_BY8 \ - { 'B', 'Y', '8', ' ', 0x00, 0x00, 0x10, 0x00, \ - 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} - -- - /* ------------------------------------------------------------------------ - * Driver specific constants. - */ -From: Laurent Pinchart Date: Sun, 25 Apr 2010 19:23:24 +0000 (-0300) Subject: V4L/DVB: uvcvideo: Flag relative controls as write-only X-Git-Url: http://git.linuxtv.org/pinchartl/uvcvideo.git?a=commitdiff_plain;h=4ac25db7e7f6116213f1c03039df00b18466a0dc diff --git a/sources b/sources index 15b118148..47eb01440 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ 10eebcb0178fb4540e2165bfd7efc7ad linux-2.6.34.tar.bz2 6606bcddb89228bd4c7a5b82de384aa5 patch-2.6.34.1.bz2 +7529c837c92c96aba4b3a2dc5d5d28eb patch-2.6.34.2-rc1.bz2 diff --git a/virtqueue-wrappers.patch b/virtqueue-wrappers.patch index 217570330..1767057ed 100644 --- a/virtqueue-wrappers.patch +++ b/virtqueue-wrappers.patch @@ -278,18 +278,9 @@ index b0577dd..91738d8 100644 } static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev) -@@ -578,14 +578,14 @@ again: - if (unlikely(capacity < 0)) { - netif_stop_queue(dev); - dev_warn(&dev->dev, "Unexpected full queue\n"); -- if (unlikely(!vi->svq->vq_ops->enable_cb(vi->svq))) { -- vi->svq->vq_ops->disable_cb(vi->svq); -+ if (unlikely(!virtqueue_enable_cb(vi->svq))) { -+ virtqueue_disable_cb(vi->svq); - netif_start_queue(dev); - goto again; - } - return NETDEV_TX_BUSY; +@@ -587,7 +587,7 @@ again: + kfree_skb(skb); + return NETDEV_TX_OK; } - vi->svq->vq_ops->kick(vi->svq); + virtqueue_kick(vi->svq);