diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2011-04-19 11:11:03 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-04-19 11:11:03 -0700 |
commit | de3464c47252c013a60c0f27e087c9e024ef7bb5 (patch) | |
tree | 41ebbd9846922999b9234029d3cab251f5ea0cb3 | |
parent | afb1efecbc5a1ca4eb521aed13fd22f1ce7a76ce (diff) | |
download | stable-queue-de3464c47252c013a60c0f27e087c9e024ef7bb5.tar.gz |
.38 patches
-rw-r--r-- | queue-2.6.38/bluetooth-fix-hci_reset-command-synchronization.patch | 80 | ||||
-rw-r--r-- | queue-2.6.38/radeon-fix-kms-cp-writeback-on-big-endian-machines.patch | 48 | ||||
-rw-r--r-- | queue-2.6.38/series | 2 |
3 files changed, 130 insertions, 0 deletions
diff --git a/queue-2.6.38/bluetooth-fix-hci_reset-command-synchronization.patch b/queue-2.6.38/bluetooth-fix-hci_reset-command-synchronization.patch new file mode 100644 index 0000000000..afba0bba98 --- /dev/null +++ b/queue-2.6.38/bluetooth-fix-hci_reset-command-synchronization.patch @@ -0,0 +1,80 @@ +From f630cf0d5434e3923e1b8226ffa2753ead6b0ce5 Mon Sep 17 00:00:00 2001 +From: Gustavo F. Padovan <padovan@profusion.mobi> +Date: Wed, 16 Mar 2011 15:36:29 -0300 +Subject: Bluetooth: Fix HCI_RESET command synchronization + +From: Gustavo F. Padovan <padovan@profusion.mobi> + +commit f630cf0d5434e3923e1b8226ffa2753ead6b0ce5 upstream. + +We can't send new commands before a cmd_complete for the HCI_RESET command +shows up. + +Reported-by: Mikko Vinni <mmvinni@yahoo.com> +Reported-by: Justin P. Mattock <justinmattock@gmail.com> +Reported-by: Ed Tomlinson <edt@aei.ca> +Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi> +Tested-by: Justin P. Mattock <justinmattock@gmail.com> +Tested-by: Mikko Vinni <mmvinni@yahoo.com> +Tested-by: Ed Tomlinson <edt@aei.ca> + + +--- + include/net/bluetooth/hci.h | 2 ++ + net/bluetooth/hci_core.c | 5 ++++- + net/bluetooth/hci_event.c | 4 +++- + 3 files changed, 9 insertions(+), 2 deletions(-) + +--- a/include/net/bluetooth/hci.h ++++ b/include/net/bluetooth/hci.h +@@ -76,6 +76,8 @@ enum { + HCI_INQUIRY, + + HCI_RAW, ++ ++ HCI_RESET, + }; + + /* HCI ioctl defines */ +--- a/net/bluetooth/hci_core.c ++++ b/net/bluetooth/hci_core.c +@@ -184,6 +184,7 @@ static void hci_reset_req(struct hci_dev + BT_DBG("%s %ld", hdev->name, opt); + + /* Reset device */ ++ set_bit(HCI_RESET, &hdev->flags); + hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL); + } + +@@ -210,8 +211,10 @@ static void hci_init_req(struct hci_dev + /* Mandatory initialization */ + + /* Reset */ +- if (!test_bit(HCI_QUIRK_NO_RESET, &hdev->quirks)) ++ if (!test_bit(HCI_QUIRK_NO_RESET, &hdev->quirks)) { ++ set_bit(HCI_RESET, &hdev->flags); + hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL); ++ } + + /* Read Local Supported Features */ + hci_send_cmd(hdev, HCI_OP_READ_LOCAL_FEATURES, 0, NULL); +--- a/net/bluetooth/hci_event.c ++++ b/net/bluetooth/hci_event.c +@@ -183,6 +183,8 @@ static void hci_cc_reset(struct hci_dev + + BT_DBG("%s status 0x%x", hdev->name, status); + ++ clear_bit(HCI_RESET, &hdev->flags); ++ + hci_req_complete(hdev, HCI_OP_RESET, status); + } + +@@ -1464,7 +1466,7 @@ static inline void hci_cmd_status_evt(st + break; + } + +- if (ev->ncmd) { ++ if (ev->ncmd && !test_bit(HCI_RESET, &hdev->flags)) { + atomic_set(&hdev->cmd_cnt, 1); + if (!skb_queue_empty(&hdev->cmd_q)) + tasklet_schedule(&hdev->cmd_task); diff --git a/queue-2.6.38/radeon-fix-kms-cp-writeback-on-big-endian-machines.patch b/queue-2.6.38/radeon-fix-kms-cp-writeback-on-big-endian-machines.patch new file mode 100644 index 0000000000..bbc17672a8 --- /dev/null +++ b/queue-2.6.38/radeon-fix-kms-cp-writeback-on-big-endian-machines.patch @@ -0,0 +1,48 @@ +From dc66b325f161bb651493c7d96ad44876b629cf6a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <daenzer@vmware.com> +Date: Thu, 7 Apr 2011 16:17:47 +0200 +Subject: radeon: Fix KMS CP writeback on big endian machines. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <daenzer@vmware.com> + +commit dc66b325f161bb651493c7d96ad44876b629cf6a upstream. + +This is necessary even with PCI(e) GART, and it makes writeback work even with +AGP on my PowerBook. Might still be unreliable with older revisions of UniNorth +and other AGP bridges though. + +Signed-off-by: Michel Dänzer <daenzer@vmware.com> +Reviewed-by: Alex Deucher <alex.deucher@gmail.com> +Signed-off-by: Dave Airlie <airlied@redhat.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/gpu/drm/radeon/radeon_fence.c | 2 +- + drivers/gpu/drm/radeon/radeon_ring.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/gpu/drm/radeon/radeon_fence.c ++++ b/drivers/gpu/drm/radeon/radeon_fence.c +@@ -80,7 +80,7 @@ static bool radeon_fence_poll_locked(str + scratch_index = R600_WB_EVENT_OFFSET + rdev->fence_drv.scratch_reg - rdev->scratch.reg_base; + else + scratch_index = RADEON_WB_SCRATCH_OFFSET + rdev->fence_drv.scratch_reg - rdev->scratch.reg_base; +- seq = rdev->wb.wb[scratch_index/4]; ++ seq = le32_to_cpu(rdev->wb.wb[scratch_index/4]); + } else + seq = RREG32(rdev->fence_drv.scratch_reg); + if (seq != rdev->fence_drv.last_seq) { +--- a/drivers/gpu/drm/radeon/radeon_ring.c ++++ b/drivers/gpu/drm/radeon/radeon_ring.c +@@ -248,7 +248,7 @@ void radeon_ib_pool_fini(struct radeon_d + void radeon_ring_free_size(struct radeon_device *rdev) + { + if (rdev->wb.enabled) +- rdev->cp.rptr = rdev->wb.wb[RADEON_WB_CP_RPTR_OFFSET/4]; ++ rdev->cp.rptr = le32_to_cpu(rdev->wb.wb[RADEON_WB_CP_RPTR_OFFSET/4]); + else { + if (rdev->family >= CHIP_R600) + rdev->cp.rptr = RREG32(R600_CP_RB_RPTR); diff --git a/queue-2.6.38/series b/queue-2.6.38/series index a51a03e9ff..4909e95f72 100644 --- a/queue-2.6.38/series +++ b/queue-2.6.38/series @@ -65,3 +65,5 @@ usb-xhci-fix-unsafe-macro-definitions.patch usb-xhci-fix-math-in-xhci_get_endpoint_interval.patch usb-xhci-also-free-streams-when-resetting-devices.patch usb-fix-unplug-of-device-with-active-streams.patch +radeon-fix-kms-cp-writeback-on-big-endian-machines.patch +bluetooth-fix-hci_reset-command-synchronization.patch |