rpms/kernel/F-8 linux-2.6-ps3-ehci-iso.patch, 1.2, 1.3 kernel.spec, 1.251, 1.252

David Woodhouse (dwmw2) fedora-extras-commits at redhat.com
Sat Nov 3 16:58:01 UTC 2007


Author: dwmw2

Update of /cvs/pkgs/rpms/kernel/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv12369

Modified Files:
	kernel.spec 
Added Files:
	linux-2.6-ps3-ehci-iso.patch 
Log Message:
fix ps3 reboot

linux-2.6-ps3-ehci-iso.patch:

Index: linux-2.6-ps3-ehci-iso.patch
===================================================================
RCS file: linux-2.6-ps3-ehci-iso.patch
diff -N linux-2.6-ps3-ehci-iso.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ linux-2.6-ps3-ehci-iso.patch	3 Nov 2007 16:57:53 -0000	1.3
@@ -0,0 +1,80 @@
+From: Masashi Kimoto <Masashi_Kimoto at hq.scei.sony.co.jp>
+
+When we use Linux git tree on PS3 we face a error msg from 
+ps3-ehci-driver,
+        ps3-ehci-driver sb_04: port 1 resume error -19
+        hub 2-0:1.0: hub_port_status failed (err = -32)
+        ...
+Built-in Bluetooth uses a USB isochronous and causes this error.
+
+USB host controller refers TD after echi driver modify it's Periodic Frame 
+List.
+Because of this, NULLed TD is asscessed and causes USB error.
+
+In this patch the driver holds the TD while host controller refers the 
+list after Active bit=0.
+
+From: Masashi Kimoto <Masashi_Kimoto at hq.scei.sony.co.jp>
+Signed-off-by: Geoff Levand <geoffrey.levand at am.sony.com>
+
+---
+ drivers/usb/host/ehci-sched.c |   30 ++++++++++++++++++++++++++++++
+ 1 files changed, 30 insertions(+)
+
+--- a/drivers/usb/host/ehci-sched.c
++++ b/drivers/usb/host/ehci-sched.c
+@@ -21,6 +21,10 @@
+ 
+ /*-------------------------------------------------------------------------*/
+ 
++#ifdef CONFIG_PPC_PS3
++#include <asm/firmware.h>
++#endif
++
+ /*
+  * EHCI scheduled transaction support:  interrupt, iso, split iso
+  * These are called "periodic" transactions in the EHCI spec.
+@@ -1302,8 +1306,21 @@ itd_urb_transaction (
+ 		if (likely (!list_empty(&stream->free_list))) {
+ 			itd = list_entry (stream->free_list.prev,
+ 					struct ehci_itd, itd_list);
++#ifdef CONFIG_PPC_PS3
++			/* Fix for Cell SCC ISO transfer (PS3 Bluetooth). */
++			if (firmware_has_feature(FW_FEATURE_PS3_LV1)
++				&& itd->frame == ((ehci_readl(ehci,
++				&ehci->regs->frame_index) >> 3)
++				% ehci->periodic_size))
++				itd = NULL;
++			else {
++				list_del (&itd->itd_list);
++				itd_dma = itd->itd_dma;
++			}
++#else
+ 			list_del (&itd->itd_list);
+ 			itd_dma = itd->itd_dma;
++#endif
+ 		} else
+ 			itd = NULL;
+ 
+@@ -1922,8 +1939,21 @@ sitd_urb_transaction (
+ 		if (!list_empty(&stream->free_list)) {
+ 			sitd = list_entry (stream->free_list.prev,
+ 					 struct ehci_sitd, sitd_list);
++#ifdef CONFIG_PPC_PS3
++			/* Fix for Cell SCC ISO transfer (PS3 Bluetooth). */
++			if (firmware_has_feature(FW_FEATURE_PS3_LV1)
++				&& sitd->frame == ((ehci_readl(ehci,
++				&ehci->regs->frame_index) >> 3)
++				% ehci->periodic_size))
++				sitd = NULL;
++			else {
++				list_del (&sitd->sitd_list);
++				sitd_dma = sitd->sitd_dma;
++			}
++#else
+ 			list_del (&sitd->sitd_list);
+ 			sitd_dma = sitd->sitd_dma;
++#endif
+ 		} else
+ 			sitd = NULL;
+ 


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/kernel.spec,v
retrieving revision 1.251
retrieving revision 1.252
diff -u -r1.251 -r1.252
--- kernel.spec	30 Oct 2007 16:48:32 -0000	1.251
+++ kernel.spec	3 Nov 2007 16:57:53 -0000	1.252
@@ -677,7 +677,7 @@
 Patch1107: linux-2.6-x86_64-vdso-install-unstripped-copies-on-disk.patch
 Patch1108: linux-2.6-pass-g-to-assembler-under-config_debug_info.patch
 Patch1109: linux-2.6-powerpc-lparmap-g.patch
-Patch1200: linux-2.6-ps3-gelic-wireless.patch
+Patch1200: linux-2.6-ps3-ehci-iso.patch
 Patch1210: linux-2.6-ps3-storage-alias.patch
 Patch1220: linux-2.6-ps3-legacy-bootloader-hack.patch
 Patch1230: linux-2.6-powerpc-spu-vicinity.patch
@@ -1071,8 +1071,7 @@
 # Move pmac_zilog to its newly-registered device number
 ApplyPatch linux-2.6-pmac-zilog.patch
 # PlayStation support
-# Disable wireless (#343901)
-#ApplyPatch linux-2.6-ps3-gelic-wireless.patch
+ApplyPatch linux-2.6-ps3-ehci-iso.patch
 ApplyPatch linux-2.6-ps3-storage-alias.patch
 ApplyPatch linux-2.6-ps3-legacy-bootloader-hack.patch
 #ApplyPatch linux-2.6-powerpc-spu-vicinity.patch
@@ -1890,6 +1889,9 @@
 
 
 %changelog
+* Sat Nov  3 2007 David Woodhouse <dwmw2 at redhat.com>
+- Apply PS3 EHCI workaround to make rebooting work when hci_usb is loaded
+
 * Tue Oct 30 2007 Dave Jones <davej at redhat.com>
 - Disable PCI MMCONFIG by default. (Boot with pci=msi if you need it)
   Works around bz 329241 amongst others.




More information about the fedora-extras-commits mailing list