Hello community, here is the log from the commit of package kernel-source checked in at Wed Aug 15 20:18:50 CEST 2007. -------- --- kernel-source/kernel-bigsmp.changes 2007-08-13 16:15:31.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/kernel-bigsmp.changes 2007-08-14 17:28:16.000000000 +0200 @@ -1,0 +2,62 @@ +Tue Aug 14 17:24:35 CEST 2007 - olh@suse.de + +- fix patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + reset error code to 0 on successful probing, to actually find disks + +------------------------------------------------------------------- +Tue Aug 14 13:14:47 CEST 2007 - olh@suse.de + +- add patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff + patches from ps3-linux-tree, improve monitor autodetection + +------------------------------------------------------------------- +Tue Aug 14 12:54:17 CEST 2007 - olh@suse.de + +- add patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + Fix storage probe logic on coldboot + +------------------------------------------------------------------- +Tue Aug 14 10:56:02 CEST 2007 - olh@suse.de + +- update patches.arch/ppc-efika-bestcomm-ethernet.patch + disable unloading, add device symlink to make linuxrc happy + +------------------------------------------------------------------- +Tue Aug 14 08:40:26 CEST 2007 - teheo@suse.de + +- patches.drivers/libata-ahci-priv-flags.patch: ahci: implement + hpriv->flags (299010). +- patches.drivers/libata-ahci-no-pmp.patch: ahci: disable PMP + support on SB600/700 (299010). + +------------------------------------------------------------------- +Tue Aug 14 00:29:56 CEST 2007 - sven@suse.de + +- series.conf: remove comment pertaining to RT quickadjust patch + +------------------------------------------------------------------- +Mon Aug 13 20:59:28 CEST 2007 - gregkh@suse.de + +- rpm/kernel-binary.spec.in: remove pointless comment in spec file + +------------------------------------------------------------------- +Mon Aug 13 18:42:11 CEST 2007 - olh@suse.de + +- build efika fec_mpc52xx network driver as module + +------------------------------------------------------------------- +Mon Aug 13 17:01:42 CEST 2007 - trenn@suse.de + +- patches.arch/acpi_dock_uevent_fix.patch: ACPI: dock: Send + key=value pair instead of plain value (none). +- patches.arch/acpi_bay_uevent_fix.patch: ACPI: bay: send envp + with uevent (none). + +------------------------------------------------------------------- kernel-debug.changes: same change kernel-default.changes: same change kernel-dummy.changes: same change kernel-kdump.changes: same change kernel-ppc64.changes: same change kernel-rt.changes: same change kernel-rt_debug.changes: same change kernel-s390.changes: same change kernel-source.changes: same change kernel-syms.changes: same change kernel-vanilla.changes: same change kernel-xen.changes: same change kernel-xenpae.changes: same change ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kernel-bigsmp.spec ++++++ --- /var/tmp/diff_new_pack.x20621/_old 2007-08-15 20:15:22.000000000 +0200 +++ /var/tmp/diff_new_pack.x20621/_new 2007-08-15 20:15:22.000000000 +0200 @@ -52,7 +52,7 @@ %endif Summary: Kernel with PAE Support Version: 2.6.22.2 -Release: 4 +Release: 6 License: GPL v2 or later Group: System/Kernel Autoreqprov: on @@ -98,7 +98,6 @@ Obsoletes: kernel-bigsmp-nongpl Conflicts: apparmor-profiles <= 2.0.1 Conflicts: apparmor-parser <= 2.0.1 -# sysfs layout of the week Conflicts: sysfsutils < 2.0 %if %build_um #Conflicts: kernel @@ -180,7 +179,7 @@ -Source Timestamp: 2007/08/13 13:07:28 UTC +Source Timestamp: 2007/08/14 15:25:13 UTC %prep if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then @@ -580,6 +579,41 @@ %files -f kernel.files %changelog +* Tue Aug 14 2007 - olh@suse.de +- fix patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + reset error code to 0 on successful probing, to actually find disks +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff + patches from ps3-linux-tree, improve monitor autodetection +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + Fix storage probe logic on coldboot +* Tue Aug 14 2007 - olh@suse.de +- update patches.arch/ppc-efika-bestcomm-ethernet.patch + disable unloading, add device symlink to make linuxrc happy +* Tue Aug 14 2007 - teheo@suse.de +- patches.drivers/libata-ahci-priv-flags.patch: ahci: implement + hpriv->flags (299010). +- patches.drivers/libata-ahci-no-pmp.patch: ahci: disable PMP + support on SB600/700 (299010). +* Tue Aug 14 2007 - sven@suse.de +- series.conf: remove comment pertaining to RT quickadjust patch +* Mon Aug 13 2007 - gregkh@suse.de +- rpm/kernel-binary.spec.in: remove pointless comment in spec file +* Mon Aug 13 2007 - olh@suse.de +- build efika fec_mpc52xx network driver as module +* Mon Aug 13 2007 - trenn@suse.de +- patches.arch/acpi_dock_uevent_fix.patch: ACPI: dock: Send + key=value pair instead of plain value (none). +- patches.arch/acpi_bay_uevent_fix.patch: ACPI: bay: send envp + with uevent (none). * Mon Aug 13 2007 - trenn@suse.de - patches.fixes/cpufreq_check_negative_load.patch: ondemand: add a check to avoid negative load calculation kernel-debug.spec: same change kernel-default.spec: same change ++++++ kernel-dummy.spec ++++++ --- /var/tmp/diff_new_pack.x20621/_old 2007-08-15 20:15:23.000000000 +0200 +++ /var/tmp/diff_new_pack.x20621/_new 2007-08-15 20:15:23.000000000 +0200 @@ -15,7 +15,7 @@ URL: http://www.kernel.org/ Summary: Internal dummy package for synchronizing release numbers Version: 2.6.22.2 -Release: 4 +Release: 6 License: GPL v2 or later Group: System/Kernel Autoreqprov: off @@ -28,7 +28,7 @@ -------- Andreas Gruenbacher <agruen@suse.de> -Source Timestamp: 2007/08/13 13:07:28 UTC +Source Timestamp: 2007/08/14 15:25:13 UTC %install @@ -41,6 +41,41 @@ /etc/dummy %changelog +* Tue Aug 14 2007 - olh@suse.de +- fix patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + reset error code to 0 on successful probing, to actually find disks +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff + patches from ps3-linux-tree, improve monitor autodetection +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + Fix storage probe logic on coldboot +* Tue Aug 14 2007 - olh@suse.de +- update patches.arch/ppc-efika-bestcomm-ethernet.patch + disable unloading, add device symlink to make linuxrc happy +* Tue Aug 14 2007 - teheo@suse.de +- patches.drivers/libata-ahci-priv-flags.patch: ahci: implement + hpriv->flags (299010). +- patches.drivers/libata-ahci-no-pmp.patch: ahci: disable PMP + support on SB600/700 (299010). +* Tue Aug 14 2007 - sven@suse.de +- series.conf: remove comment pertaining to RT quickadjust patch +* Mon Aug 13 2007 - gregkh@suse.de +- rpm/kernel-binary.spec.in: remove pointless comment in spec file +* Mon Aug 13 2007 - olh@suse.de +- build efika fec_mpc52xx network driver as module +* Mon Aug 13 2007 - trenn@suse.de +- patches.arch/acpi_dock_uevent_fix.patch: ACPI: dock: Send + key=value pair instead of plain value (none). +- patches.arch/acpi_bay_uevent_fix.patch: ACPI: bay: send envp + with uevent (none). * Mon Aug 13 2007 - trenn@suse.de - patches.fixes/cpufreq_check_negative_load.patch: ondemand: add a check to avoid negative load calculation ++++++ kernel-kdump.spec ++++++ --- /var/tmp/diff_new_pack.x20621/_old 2007-08-15 20:15:23.000000000 +0200 +++ /var/tmp/diff_new_pack.x20621/_new 2007-08-15 20:15:23.000000000 +0200 @@ -52,7 +52,7 @@ %endif Summary: kernel for kdump Version: 2.6.22.2 -Release: 4 +Release: 6 License: GPL v2 or later Group: System/Kernel Autoreqprov: on @@ -98,7 +98,6 @@ Obsoletes: kernel-kdump-nongpl Conflicts: apparmor-profiles <= 2.0.1 Conflicts: apparmor-parser <= 2.0.1 -# sysfs layout of the week Conflicts: sysfsutils < 2.0 %if %build_um #Conflicts: kernel @@ -184,7 +183,7 @@ -Source Timestamp: 2007/08/13 13:07:28 UTC +Source Timestamp: 2007/08/14 15:25:13 UTC %prep if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then @@ -584,6 +583,41 @@ %files -f kernel.files %changelog +* Tue Aug 14 2007 - olh@suse.de +- fix patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + reset error code to 0 on successful probing, to actually find disks +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff + patches from ps3-linux-tree, improve monitor autodetection +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + Fix storage probe logic on coldboot +* Tue Aug 14 2007 - olh@suse.de +- update patches.arch/ppc-efika-bestcomm-ethernet.patch + disable unloading, add device symlink to make linuxrc happy +* Tue Aug 14 2007 - teheo@suse.de +- patches.drivers/libata-ahci-priv-flags.patch: ahci: implement + hpriv->flags (299010). +- patches.drivers/libata-ahci-no-pmp.patch: ahci: disable PMP + support on SB600/700 (299010). +* Tue Aug 14 2007 - sven@suse.de +- series.conf: remove comment pertaining to RT quickadjust patch +* Mon Aug 13 2007 - gregkh@suse.de +- rpm/kernel-binary.spec.in: remove pointless comment in spec file +* Mon Aug 13 2007 - olh@suse.de +- build efika fec_mpc52xx network driver as module +* Mon Aug 13 2007 - trenn@suse.de +- patches.arch/acpi_dock_uevent_fix.patch: ACPI: dock: Send + key=value pair instead of plain value (none). +- patches.arch/acpi_bay_uevent_fix.patch: ACPI: bay: send envp + with uevent (none). * Mon Aug 13 2007 - trenn@suse.de - patches.fixes/cpufreq_check_negative_load.patch: ondemand: add a check to avoid negative load calculation ++++++ kernel-ppc64.spec ++++++ --- /var/tmp/diff_new_pack.x20621/_old 2007-08-15 20:15:23.000000000 +0200 +++ /var/tmp/diff_new_pack.x20621/_new 2007-08-15 20:15:23.000000000 +0200 @@ -51,7 +51,7 @@ %endif Summary: Kernel for ppc64 Systems Version: 2.6.22.2 -Release: 4 +Release: 6 License: GPL v2 or later, LGPL v2 or later Group: System/Kernel Autoreqprov: on @@ -97,7 +97,6 @@ Obsoletes: kernel-ppc64-nongpl Conflicts: apparmor-profiles <= 2.0.1 Conflicts: apparmor-parser <= 2.0.1 -# sysfs layout of the week Conflicts: sysfsutils < 2.0 %if %build_um #Conflicts: kernel @@ -196,7 +195,7 @@ Tom Gall <tom_gall@vnet.ibm.com> see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2007/08/13 13:07:28 UTC +Source Timestamp: 2007/08/14 15:25:13 UTC %prep if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then @@ -596,6 +595,41 @@ %files -f kernel.files %changelog +* Tue Aug 14 2007 - olh@suse.de +- fix patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + reset error code to 0 on successful probing, to actually find disks +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff + patches from ps3-linux-tree, improve monitor autodetection +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + Fix storage probe logic on coldboot +* Tue Aug 14 2007 - olh@suse.de +- update patches.arch/ppc-efika-bestcomm-ethernet.patch + disable unloading, add device symlink to make linuxrc happy +* Tue Aug 14 2007 - teheo@suse.de +- patches.drivers/libata-ahci-priv-flags.patch: ahci: implement + hpriv->flags (299010). +- patches.drivers/libata-ahci-no-pmp.patch: ahci: disable PMP + support on SB600/700 (299010). +* Tue Aug 14 2007 - sven@suse.de +- series.conf: remove comment pertaining to RT quickadjust patch +* Mon Aug 13 2007 - gregkh@suse.de +- rpm/kernel-binary.spec.in: remove pointless comment in spec file +* Mon Aug 13 2007 - olh@suse.de +- build efika fec_mpc52xx network driver as module +* Mon Aug 13 2007 - trenn@suse.de +- patches.arch/acpi_dock_uevent_fix.patch: ACPI: dock: Send + key=value pair instead of plain value (none). +- patches.arch/acpi_bay_uevent_fix.patch: ACPI: bay: send envp + with uevent (none). * Mon Aug 13 2007 - trenn@suse.de - patches.fixes/cpufreq_check_negative_load.patch: ondemand: add a check to avoid negative load calculation ++++++ kernel-rt_debug.spec ++++++ --- /var/tmp/diff_new_pack.x20621/_old 2007-08-15 20:15:24.000000000 +0200 +++ /var/tmp/diff_new_pack.x20621/_new 2007-08-15 20:15:24.000000000 +0200 @@ -52,7 +52,7 @@ %endif Summary: A Debug Version of the Kernel Version: 2.6.22.2 -Release: 3 +Release: 6 License: GPL v2 or later Group: System/Kernel Autoreqprov: on @@ -98,7 +98,6 @@ Obsoletes: kernel-rt_debug-nongpl Conflicts: apparmor-profiles <= 2.0.1 Conflicts: apparmor-parser <= 2.0.1 -# sysfs layout of the week Conflicts: sysfsutils < 2.0 %if %build_um #Conflicts: kernel @@ -182,7 +181,7 @@ -Source Timestamp: 2007/08/13 13:07:28 UTC +Source Timestamp: 2007/08/14 15:25:13 UTC %prep if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then @@ -582,6 +581,41 @@ %files -f kernel.files %changelog +* Tue Aug 14 2007 - olh@suse.de +- fix patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + reset error code to 0 on successful probing, to actually find disks +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff + patches from ps3-linux-tree, improve monitor autodetection +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + Fix storage probe logic on coldboot +* Tue Aug 14 2007 - olh@suse.de +- update patches.arch/ppc-efika-bestcomm-ethernet.patch + disable unloading, add device symlink to make linuxrc happy +* Tue Aug 14 2007 - teheo@suse.de +- patches.drivers/libata-ahci-priv-flags.patch: ahci: implement + hpriv->flags (299010). +- patches.drivers/libata-ahci-no-pmp.patch: ahci: disable PMP + support on SB600/700 (299010). +* Tue Aug 14 2007 - sven@suse.de +- series.conf: remove comment pertaining to RT quickadjust patch +* Mon Aug 13 2007 - gregkh@suse.de +- rpm/kernel-binary.spec.in: remove pointless comment in spec file +* Mon Aug 13 2007 - olh@suse.de +- build efika fec_mpc52xx network driver as module +* Mon Aug 13 2007 - trenn@suse.de +- patches.arch/acpi_dock_uevent_fix.patch: ACPI: dock: Send + key=value pair instead of plain value (none). +- patches.arch/acpi_bay_uevent_fix.patch: ACPI: bay: send envp + with uevent (none). * Mon Aug 13 2007 - trenn@suse.de - patches.fixes/cpufreq_check_negative_load.patch: ondemand: add a check to avoid negative load calculation ++++++ kernel-rt.spec ++++++ --- /var/tmp/diff_new_pack.x20621/_old 2007-08-15 20:15:25.000000000 +0200 +++ /var/tmp/diff_new_pack.x20621/_new 2007-08-15 20:15:25.000000000 +0200 @@ -52,7 +52,7 @@ %endif Summary: The Realtime Linux Kernel Version: 2.6.22.2 -Release: 3 +Release: 6 License: GPL v2 or later Group: System/Kernel Autoreqprov: on @@ -98,7 +98,6 @@ Obsoletes: kernel-rt-nongpl Conflicts: apparmor-profiles <= 2.0.1 Conflicts: apparmor-parser <= 2.0.1 -# sysfs layout of the week Conflicts: sysfsutils < 2.0 %if %build_um #Conflicts: kernel @@ -187,7 +186,7 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2007/08/13 13:07:28 UTC +Source Timestamp: 2007/08/14 15:25:13 UTC %prep if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then @@ -587,6 +586,41 @@ %files -f kernel.files %changelog +* Tue Aug 14 2007 - olh@suse.de +- fix patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + reset error code to 0 on successful probing, to actually find disks +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff + patches from ps3-linux-tree, improve monitor autodetection +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + Fix storage probe logic on coldboot +* Tue Aug 14 2007 - olh@suse.de +- update patches.arch/ppc-efika-bestcomm-ethernet.patch + disable unloading, add device symlink to make linuxrc happy +* Tue Aug 14 2007 - teheo@suse.de +- patches.drivers/libata-ahci-priv-flags.patch: ahci: implement + hpriv->flags (299010). +- patches.drivers/libata-ahci-no-pmp.patch: ahci: disable PMP + support on SB600/700 (299010). +* Tue Aug 14 2007 - sven@suse.de +- series.conf: remove comment pertaining to RT quickadjust patch +* Mon Aug 13 2007 - gregkh@suse.de +- rpm/kernel-binary.spec.in: remove pointless comment in spec file +* Mon Aug 13 2007 - olh@suse.de +- build efika fec_mpc52xx network driver as module +* Mon Aug 13 2007 - trenn@suse.de +- patches.arch/acpi_dock_uevent_fix.patch: ACPI: dock: Send + key=value pair instead of plain value (none). +- patches.arch/acpi_bay_uevent_fix.patch: ACPI: bay: send envp + with uevent (none). * Mon Aug 13 2007 - trenn@suse.de - patches.fixes/cpufreq_check_negative_load.patch: ondemand: add a check to avoid negative load calculation ++++++ kernel-s390.spec ++++++ --- /var/tmp/diff_new_pack.x20621/_old 2007-08-15 20:15:25.000000000 +0200 +++ /var/tmp/diff_new_pack.x20621/_new 2007-08-15 20:15:25.000000000 +0200 @@ -52,7 +52,7 @@ %endif Summary: The Standard Kernel Version: 2.6.22.2 -Release: 3 +Release: 4 License: GPL v2 or later Group: System/Kernel Autoreqprov: on @@ -98,7 +98,6 @@ Obsoletes: kernel-s390-nongpl Conflicts: apparmor-profiles <= 2.0.1 Conflicts: apparmor-parser <= 2.0.1 -# sysfs layout of the week Conflicts: sysfsutils < 2.0 %if %build_um #Conflicts: kernel @@ -178,7 +177,7 @@ -Source Timestamp: 2007/08/13 13:07:28 UTC +Source Timestamp: 2007/08/14 15:25:13 UTC %prep if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then @@ -578,6 +577,41 @@ %files -f kernel.files %changelog +* Tue Aug 14 2007 - olh@suse.de +- fix patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + reset error code to 0 on successful probing, to actually find disks +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff + patches from ps3-linux-tree, improve monitor autodetection +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + Fix storage probe logic on coldboot +* Tue Aug 14 2007 - olh@suse.de +- update patches.arch/ppc-efika-bestcomm-ethernet.patch + disable unloading, add device symlink to make linuxrc happy +* Tue Aug 14 2007 - teheo@suse.de +- patches.drivers/libata-ahci-priv-flags.patch: ahci: implement + hpriv->flags (299010). +- patches.drivers/libata-ahci-no-pmp.patch: ahci: disable PMP + support on SB600/700 (299010). +* Tue Aug 14 2007 - sven@suse.de +- series.conf: remove comment pertaining to RT quickadjust patch +* Mon Aug 13 2007 - gregkh@suse.de +- rpm/kernel-binary.spec.in: remove pointless comment in spec file +* Mon Aug 13 2007 - olh@suse.de +- build efika fec_mpc52xx network driver as module +* Mon Aug 13 2007 - trenn@suse.de +- patches.arch/acpi_dock_uevent_fix.patch: ACPI: dock: Send + key=value pair instead of plain value (none). +- patches.arch/acpi_bay_uevent_fix.patch: ACPI: bay: send envp + with uevent (none). * Mon Aug 13 2007 - trenn@suse.de - patches.fixes/cpufreq_check_negative_load.patch: ondemand: add a check to avoid negative load calculation ++++++ kernel-source.spec ++++++ --- /var/tmp/diff_new_pack.x20621/_old 2007-08-15 20:15:26.000000000 +0200 +++ /var/tmp/diff_new_pack.x20621/_new 2007-08-15 20:15:26.000000000 +0200 @@ -22,7 +22,7 @@ %endif Summary: The Linux Kernel Sources Version: 2.6.22.2 -Release: 4 +Release: 6 License: GPL v2 or later Group: Development/Sources Autoreqprov: off @@ -106,7 +106,7 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2007/08/13 13:07:28 UTC +Source Timestamp: 2007/08/14 15:25:13 UTC %prep if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then @@ -277,6 +277,41 @@ %files -f kernel-source.files %changelog +* Tue Aug 14 2007 - olh@suse.de +- fix patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + reset error code to 0 on successful probing, to actually find disks +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff + patches from ps3-linux-tree, improve monitor autodetection +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + Fix storage probe logic on coldboot +* Tue Aug 14 2007 - olh@suse.de +- update patches.arch/ppc-efika-bestcomm-ethernet.patch + disable unloading, add device symlink to make linuxrc happy +* Tue Aug 14 2007 - teheo@suse.de +- patches.drivers/libata-ahci-priv-flags.patch: ahci: implement + hpriv->flags (299010). +- patches.drivers/libata-ahci-no-pmp.patch: ahci: disable PMP + support on SB600/700 (299010). +* Tue Aug 14 2007 - sven@suse.de +- series.conf: remove comment pertaining to RT quickadjust patch +* Mon Aug 13 2007 - gregkh@suse.de +- rpm/kernel-binary.spec.in: remove pointless comment in spec file +* Mon Aug 13 2007 - olh@suse.de +- build efika fec_mpc52xx network driver as module +* Mon Aug 13 2007 - trenn@suse.de +- patches.arch/acpi_dock_uevent_fix.patch: ACPI: dock: Send + key=value pair instead of plain value (none). +- patches.arch/acpi_bay_uevent_fix.patch: ACPI: bay: send envp + with uevent (none). * Mon Aug 13 2007 - trenn@suse.de - patches.fixes/cpufreq_check_negative_load.patch: ondemand: add a check to avoid negative load calculation ++++++ kernel-syms.spec ++++++ --- /var/tmp/diff_new_pack.x20621/_old 2007-08-15 20:15:26.000000000 +0200 +++ /var/tmp/diff_new_pack.x20621/_new 2007-08-15 20:15:26.000000000 +0200 @@ -21,7 +21,7 @@ %endif Summary: Kernel Symbol Versions (modversions) Version: 2.6.22.2 -Release: 4 +Release: 6 License: GPL v2 or later Group: Development/Sources Autoreqprov: off @@ -96,7 +96,7 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2007/08/13 13:07:28 UTC +Source Timestamp: 2007/08/14 15:25:13 UTC %prep echo "Architecture symbol(s):" %symbols @@ -139,6 +139,41 @@ /lib/modules/*/* %changelog +* Tue Aug 14 2007 - olh@suse.de +- fix patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + reset error code to 0 on successful probing, to actually find disks +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff + patches from ps3-linux-tree, improve monitor autodetection +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + Fix storage probe logic on coldboot +* Tue Aug 14 2007 - olh@suse.de +- update patches.arch/ppc-efika-bestcomm-ethernet.patch + disable unloading, add device symlink to make linuxrc happy +* Tue Aug 14 2007 - teheo@suse.de +- patches.drivers/libata-ahci-priv-flags.patch: ahci: implement + hpriv->flags (299010). +- patches.drivers/libata-ahci-no-pmp.patch: ahci: disable PMP + support on SB600/700 (299010). +* Tue Aug 14 2007 - sven@suse.de +- series.conf: remove comment pertaining to RT quickadjust patch +* Mon Aug 13 2007 - gregkh@suse.de +- rpm/kernel-binary.spec.in: remove pointless comment in spec file +* Mon Aug 13 2007 - olh@suse.de +- build efika fec_mpc52xx network driver as module +* Mon Aug 13 2007 - trenn@suse.de +- patches.arch/acpi_dock_uevent_fix.patch: ACPI: dock: Send + key=value pair instead of plain value (none). +- patches.arch/acpi_bay_uevent_fix.patch: ACPI: bay: send envp + with uevent (none). * Mon Aug 13 2007 - trenn@suse.de - patches.fixes/cpufreq_check_negative_load.patch: ondemand: add a check to avoid negative load calculation ++++++ kernel-vanilla.spec ++++++ --- /var/tmp/diff_new_pack.x20621/_old 2007-08-15 20:15:26.000000000 +0200 +++ /var/tmp/diff_new_pack.x20621/_new 2007-08-15 20:15:26.000000000 +0200 @@ -52,7 +52,7 @@ %endif Summary: The Standard Kernel - without any SUSE patches Version: 2.6.22.2 -Release: 4 +Release: 6 License: GPL v2 or later Group: System/Kernel Autoreqprov: on @@ -98,7 +98,6 @@ Obsoletes: kernel-vanilla-nongpl Conflicts: apparmor-profiles <= 2.0.1 Conflicts: apparmor-parser <= 2.0.1 -# sysfs layout of the week Conflicts: sysfsutils < 2.0 %if %build_um #Conflicts: kernel @@ -198,7 +197,7 @@ -Source Timestamp: 2007/08/13 13:07:28 UTC +Source Timestamp: 2007/08/14 15:25:13 UTC %prep if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then @@ -598,6 +597,41 @@ %files -f kernel.files %changelog +* Tue Aug 14 2007 - olh@suse.de +- fix patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + reset error code to 0 on successful probing, to actually find disks +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff + add patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff + patches from ps3-linux-tree, improve monitor autodetection +* Tue Aug 14 2007 - olh@suse.de +- add patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + Fix storage probe logic on coldboot +* Tue Aug 14 2007 - olh@suse.de +- update patches.arch/ppc-efika-bestcomm-ethernet.patch + disable unloading, add device symlink to make linuxrc happy +* Tue Aug 14 2007 - teheo@suse.de +- patches.drivers/libata-ahci-priv-flags.patch: ahci: implement + hpriv->flags (299010). +- patches.drivers/libata-ahci-no-pmp.patch: ahci: disable PMP + support on SB600/700 (299010). +* Tue Aug 14 2007 - sven@suse.de +- series.conf: remove comment pertaining to RT quickadjust patch +* Mon Aug 13 2007 - gregkh@suse.de +- rpm/kernel-binary.spec.in: remove pointless comment in spec file +* Mon Aug 13 2007 - olh@suse.de +- build efika fec_mpc52xx network driver as module +* Mon Aug 13 2007 - trenn@suse.de +- patches.arch/acpi_dock_uevent_fix.patch: ACPI: dock: Send + key=value pair instead of plain value (none). +- patches.arch/acpi_bay_uevent_fix.patch: ACPI: bay: send envp + with uevent (none). * Mon Aug 13 2007 - trenn@suse.de - patches.fixes/cpufreq_check_negative_load.patch: ondemand: add a check to avoid negative load calculation kernel-xenpae.spec: same change kernel-xen.spec: same change ++++++ build-source-timestamp ++++++ --- kernel-source/build-source-timestamp 2007-08-13 16:15:28.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/build-source-timestamp 2007-08-14 17:28:07.000000000 +0200 @@ -1 +1 @@ -2007/08/13 13:07:28 UTC +2007/08/14 15:25:13 UTC ++++++ config.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/config/powerpc/default new/config/powerpc/default --- old/config/powerpc/default 2007-08-10 09:35:23.000000000 +0200 +++ new/config/powerpc/default 2007-08-13 18:43:04.000000000 +0200 @@ -1225,7 +1225,7 @@ # # MPC5200 Networking Options # -CONFIG_FEC_MPC52xx=y +CONFIG_FEC_MPC52xx=m CONFIG_FEC_MPC52xx_USE_MDIO=y CONFIG_NETDEV_1000=y CONFIG_ACENIC=m ++++++ kabi.tar.bz2 ++++++ ++++++ needed_space_in_mb ++++++ --- kernel-source/needed_space_in_mb 2007-08-14 03:05:20.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/needed_space_in_mb 2007-08-14 17:28:31.000000000 +0200 @@ -1 +1 @@ -6000 +6144 ++++++ novell-kmp.tar.bz2 ++++++ ++++++ patches.apparmor.tar.bz2 ++++++ ++++++ patches.arch.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/acpi_bay_uevent_fix.patch new/patches.arch/acpi_bay_uevent_fix.patch --- old/patches.arch/acpi_bay_uevent_fix.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/acpi_bay_uevent_fix.patch 2007-08-13 17:01:50.000000000 +0200 @@ -0,0 +1,52 @@ +From: Kristen Carlson Accardi <kristen.c.accardi@intel.com> +Subject: ACPI: bay: send envp with uevent +Patch-mainline: yes +References: none + +git commit 3f8698d4d3f72252980575fb8d7b4cafeb5dd0a2 + +Signed-off-by: Thomas Renninger <trenn@suse.de> +Signed-off-by: Holger Macht <hmacht@suse.de> + + Make the bay driver send env information on bay events. + + Upon any bay event, we will send the string "BAY_EVENT=%d" along with the + KOBJ_CHANGE, and report the event number. What the event number means will + be platform specific. Event 3 is always an eject request, but an insert + may be either event 1, or it may be event 0. Event 1 may also be a + remove request. It would be best if you check the number of your event + with udevmonitor before writing any udev scripts for inserting and + removing drive bays. + + Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com> + Cc: Stephan Berberig <s.berberig@arcor.de> + Signed-off-by: Andrew Morton <akpm@linux-foundation.org> + Signed-off-by: Len Brown <len.brown@intel.com> + +diff --git a/drivers/acpi/bay.c b/drivers/acpi/bay.c +index 00d3f3f..56a5b3f 100644 +--- a/drivers/acpi/bay.c ++++ b/drivers/acpi/bay.c +@@ -333,18 +333,12 @@ static void bay_notify(acpi_handle handle, u32 event, void *data) + { + struct bay *bay_dev = (struct bay *)data; + struct device *dev = &bay_dev->pdev->dev; ++ char event_string[12]; ++ char *envp[] = { event_string, NULL }; + + bay_dprintk(handle, "Bay event"); +- +- switch(event) { +- case ACPI_NOTIFY_BUS_CHECK: +- case ACPI_NOTIFY_DEVICE_CHECK: +- case ACPI_NOTIFY_EJECT_REQUEST: +- kobject_uevent(&dev->kobj, KOBJ_CHANGE); +- break; +- default: +- printk(KERN_ERR PREFIX "Bay: unknown event %d\n", event); +- } ++ sprintf(event_string, "BAY_EVENT=%d\n", event); ++ kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp); + } + + static acpi_status diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/acpi_dock_uevent_fix.patch new/patches.arch/acpi_dock_uevent_fix.patch --- old/patches.arch/acpi_dock_uevent_fix.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/acpi_dock_uevent_fix.patch 2007-08-13 17:01:50.000000000 +0200 @@ -0,0 +1,53 @@ +Author: Holger Macht <hmacht@suse.de> +Subject: ACPI: dock: Send key=value pair instead of plain value +Patch-mainline: yes +References: none + +git commit 66b568218ab73be161dc109b913e6fa7dda44e16 +and +git commit 79a8f70b4b9127eacfc91dd1436c4a7be05e62ab +merged together. + + Send key=value pair along with the uevent instead of a plain value so that + userspace (udev) can handle it like common environment variables. + + Signed-off-by: Holger Macht <hmacht@suse.de> + Acked-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com> + Cc: Stephan Berberig <s.berberig@arcor.de> + Signed-off-by: Andrew Morton <akpm@linux-foundation.org> + Acked-by: Greg Kroah-Hartman <gregkh@suse.de> + Signed-off-by: Len Brown <len.brown@intel.com> + +--- + drivers/acpi/dock.c | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +Index: linux-2.6.22/drivers/acpi/dock.c +=================================================================== +--- linux-2.6.22.orig/drivers/acpi/dock.c ++++ linux-2.6.22/drivers/acpi/dock.c +@@ -328,11 +328,19 @@ static void hotplug_dock_devices(struct + static void dock_event(struct dock_station *ds, u32 event, int num) + { + struct device *dev = &dock_device.dev; +- /* +- * Indicate that the status of the dock station has +- * changed. +- */ +- kobject_uevent(&dev->kobj, KOBJ_CHANGE); ++ char event_string[13]; ++ char *envp[] = { event_string, NULL }; ++ ++ if (num == UNDOCK_EVENT) ++ sprintf(event_string, "EVENT=undock"); ++ else ++ sprintf(event_string, "EVENT=dock"); ++ ++ /* ++ * Indicate that the status of the dock station has ++ * changed. ++ */ ++ kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp); + } + + /** diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/ppc-efika-bestcomm-ethernet.patch new/patches.arch/ppc-efika-bestcomm-ethernet.patch --- old/patches.arch/ppc-efika-bestcomm-ethernet.patch 2007-05-26 11:06:20.000000000 +0200 +++ new/patches.arch/ppc-efika-bestcomm-ethernet.patch 2007-08-14 10:56:38.000000000 +0200 @@ -1710,6 +1710,7 @@ + /* Hardware init */ + fec_hw_init(ndev); + ++ SET_NETDEV_DEV(ndev, &op->dev); + /* Register the new network device */ + ret = register_netdev(ndev); + if(ret < 0) @@ -1853,7 +1854,6 @@ + + +module_init(mpc52xx_fec_init); -+module_exit(mpc52xx_fec_exit); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Dale Farnsworth"); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch new/patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch --- old/patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch 2007-08-14 17:25:14.000000000 +0200 @@ -0,0 +1,141 @@ +commit edd2a9d185799354db255de62c3ed1f2b1c6b0f4 +tree b6f19a73c4584905700c3cfea0cd446f20fda1ce +parent f5996449e3244524cab0ba709a4bd87047a8175f +author Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> 1186596081 -0700 +committer Paul Mackerras <paulus@samba.org> 1186743861 +1000 + + [POWERPC] PS3: Fix storage probe logic + + Fix the PS3 storage probe logic to properly find device regions on cold + startup. + + o Change the storage probe event mask from notify_device_ready + to notify_region_update. + o Improve the storage probe error handling. + o Change ps3_storage_wait_for_device() to use a temporary variable to hold + the buffer address. + + Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> + Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com> + Signed-off-by: Paul Mackerras <paulus@samba.org> + +diff --git a/arch/powerpc/platforms/ps3/device-init.c b/arch/powerpc/platforms/ps3/device-init.c +index 825ebb2..e23a5a8 100644 +--- a/arch/powerpc/platforms/ps3/device-init.c ++++ b/arch/powerpc/platforms/ps3/device-init.c +@@ -273,55 +273,58 @@ static int ps3stor_wait_for_completion(u + + static int ps3_storage_wait_for_device(const struct ps3_repository_device *repo) + { ++ int error = -ENODEV; + int result; + const u64 notification_dev_id = (u64)-1LL; + const unsigned int timeout = HZ; + u64 lpar; + u64 tag; ++ void *buf; ++ enum ps3_notify_type { ++ notify_device_ready = 0, ++ notify_region_probe = 1, ++ notify_region_update = 2, ++ }; + struct { + u64 operation_code; /* must be zero */ +- u64 event_mask; /* 1 = device ready */ ++ u64 event_mask; /* OR of 1UL << enum ps3_notify_type */ + } *notify_cmd; + struct { +- u64 event_type; /* notify_device_ready */ ++ u64 event_type; /* enum ps3_notify_type */ + u64 bus_id; + u64 dev_id; + u64 dev_type; + u64 dev_port; + } *notify_event; +- enum { +- notify_device_ready = 1 +- }; + + pr_debug(" -> %s:%u: bus_id %u, dev_id %u, dev_type %u\n", __func__, + __LINE__, repo->bus_id, repo->dev_id, repo->dev_type); + +- notify_cmd = kzalloc(512, GFP_KERNEL); +- notify_event = (void *)notify_cmd; +- if (!notify_cmd) ++ buf = kzalloc(512, GFP_KERNEL); ++ if (!buf) + return -ENOMEM; + +- lpar = ps3_mm_phys_to_lpar(__pa(notify_cmd)); ++ lpar = ps3_mm_phys_to_lpar(__pa(buf)); ++ notify_cmd = buf; ++ notify_event = buf; + + result = lv1_open_device(repo->bus_id, notification_dev_id, 0); + if (result) { + printk(KERN_ERR "%s:%u: lv1_open_device %s\n", __func__, + __LINE__, ps3_result(result)); +- result = -ENODEV; + goto fail_free; + } + + /* Setup and write the request for device notification. */ + +- notify_cmd->operation_code = 0; /* must be zero */ +- notify_cmd->event_mask = 0x01; /* device ready */ ++ notify_cmd->operation_code = 0; /* must be zero */ ++ notify_cmd->event_mask = 1UL << notify_region_probe; + + result = lv1_storage_write(notification_dev_id, 0, 0, 1, 0, lpar, + &tag); + if (result) { + printk(KERN_ERR "%s:%u: write failed %s\n", __func__, __LINE__, + ps3_result(result)); +- result = -ENODEV; + goto fail_close; + } + +@@ -332,13 +335,11 @@ static int ps3_storage_wait_for_device(c + if (result) { + printk(KERN_ERR "%s:%u: write not completed %s\n", __func__, + __LINE__, ps3_result(result)); +- result = -ENODEV; + goto fail_close; + } + + /* Loop here processing the requested notification events. */ + +- result = -ENODEV; + while (1) { + memset(notify_event, 0, sizeof(*notify_event)); + +@@ -358,7 +359,7 @@ static int ps3_storage_wait_for_device(c + break; + } + +- if (notify_event->event_type != notify_device_ready || ++ if (notify_event->event_type != notify_region_probe || + notify_event->bus_id != repo->bus_id) { + pr_debug("%s:%u: bad notify_event: event %lu, " + "dev_id %lu, dev_type %lu\n", +@@ -372,7 +372,7 @@ static int ps3_storage_wait_for_device(c + notify_event->dev_type == repo->dev_type) { + pr_debug("%s:%u: device ready: dev_id %u\n", __func__, + __LINE__, repo->dev_id); +- result = 0; ++ error = 0; + break; + } + +@@ -386,9 +387,9 @@ static int ps3_storage_wait_for_device(c + fail_close: + lv1_close_device(repo->bus_id, notification_dev_id); + fail_free: +- kfree(notify_cmd); ++ kfree(buf); + pr_debug(" <- %s:%u\n", __func__, __LINE__); +- return result; ++ return error; + } + + static int ps3_setup_storage_dev(const struct ps3_repository_device *repo, diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff new/patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff --- old/patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff 2007-08-14 13:15:35.000000000 +0200 @@ -0,0 +1,74 @@ +Subject: ps3av: treat DVI-D like HDMI in autodetect + +ps3av: treat DVI-D monitors like HDMI monitors when autodetecting the best +video mode + +Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> +--- + drivers/ps3/ps3av.c | 24 ++++++++---------------- + include/asm-powerpc/ps3av.h | 1 - + 2 files changed, 8 insertions(+), 17 deletions(-) + +--- a/drivers/ps3/ps3av.c ++++ b/drivers/ps3/ps3av.c +@@ -602,9 +602,6 @@ static int ps3av_hdmi_get_id(struct ps3a + u32 res_50, res_60; + int id; + +- if (info->monitor_type != PS3AV_MONITOR_TYPE_HDMI) +- return 0; +- + /* check native resolution */ + res_50 = info->res_50.native & PS3AV_RES_MASK_50; + res_60 = info->res_60.native & PS3AV_RES_MASK_60; +@@ -693,7 +690,7 @@ static int ps3av_auto_videomode(struct p + struct ps3av_info_monitor *info; + + /* get mode id for hdmi */ +- for (i = 0; i < av_hw_conf->num_of_hdmi; i++) { ++ for (i = 0; i < av_hw_conf->num_of_hdmi && !id; i++) { + res = ps3av_cmd_video_get_monitor_info(&monitor_info, + PS3AV_CMD_AVPORT_HDMI_0 + + i); +@@ -701,24 +698,19 @@ static int ps3av_auto_videomode(struct p + return -1; + + ps3av_monitor_info_dump(&monitor_info); ++ + info = &monitor_info.info; +- /* check DVI */ +- if (info->monitor_type == PS3AV_MONITOR_TYPE_DVI) { ++ switch (info->monitor_type) { ++ case PS3AV_MONITOR_TYPE_DVI: + dvi = PS3AV_MODE_DVI; +- break; +- } +- /* check HDMI */ +- id = ps3av_hdmi_get_id(info); +- if (id) { +- /* got valid mode id */ ++ /* fall through */ ++ case PS3AV_MONITOR_TYPE_HDMI: ++ id = ps3av_hdmi_get_id(info); + break; + } + } + +- if (dvi) { +- /* DVI mode */ +- id = PS3AV_DEFAULT_DVI_MODE_ID; +- } else if (!id) { ++ if (!id) { + /* no HDMI interface or HDMI is off */ + if (ps3av->region & PS3AV_REGION_60) + id = PS3AV_DEFAULT_AVMULTI_MODE_ID_REG_60; +--- a/include/asm-powerpc/ps3av.h ++++ b/include/asm-powerpc/ps3av.h +@@ -305,7 +305,6 @@ + #define PS3AV_DEFAULT_AVMULTI_MODE_ID_REG_60 1 /* 480i */ + #define PS3AV_DEFAULT_HDMI_MODE_ID_REG_50 7 /* 576p */ + #define PS3AV_DEFAULT_AVMULTI_MODE_ID_REG_50 6 /* 576i */ +-#define PS3AV_DEFAULT_DVI_MODE_ID 2 /* 480p */ + + #define PS3AV_REGION_60 0x01 + #define PS3AV_REGION_50 0x02 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff new/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff --- old/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff 2007-08-14 13:15:35.000000000 +0200 @@ -0,0 +1,137 @@ +Subject: ps3av: don't distinguish between `boot' and `non-boot' autodetection + +ps3av: don't distinguish between `boot' and `non-boot' autodetection now the +autodetection code has been improved + +Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> +--- + drivers/ps3/ps3av.c | 35 ++++++----------------------------- + drivers/video/ps3fb.c | 6 ++---- + include/asm-powerpc/ps3av.h | 4 ++-- + 3 files changed, 10 insertions(+), 35 deletions(-) + +--- a/drivers/ps3/ps3av.c ++++ b/drivers/ps3/ps3av.c +@@ -738,8 +738,7 @@ static void ps3av_fixup_monitor_info(str + } + } + +-static int ps3av_auto_videomode(struct ps3av_pkt_av_get_hw_conf *av_hw_conf, +- int boot) ++static int ps3av_auto_videomode(struct ps3av_pkt_av_get_hw_conf *av_hw_conf) + { + int i, res, id = 0, dvi = 0, rgb = 0; + struct ps3av_pkt_av_get_monitor_info monitor_info; +@@ -777,28 +776,6 @@ static int ps3av_auto_videomode(struct p + if (ps3av->region & PS3AV_REGION_RGB) + rgb = PS3AV_MODE_RGB; + pr_info("%s: Using avmulti mode %d\n", __func__, id); +- } else if (boot) { +- /* HDMI: using DEFAULT HDMI_MODE_ID while booting up */ +- info = &monitor_info.info; +- if (ps3av->region & PS3AV_REGION_60) { +- if (info->res_60.res_bits & PS3AV_RESBIT_720x480P) +- id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_60; +- else if (info->res_50.res_bits & PS3AV_RESBIT_720x576P) +- id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_50; +- else { +- /* default */ +- id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_60; +- } +- } else { +- if (info->res_50.res_bits & PS3AV_RESBIT_720x576P) +- id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_50; +- else if (info->res_60.res_bits & PS3AV_RESBIT_720x480P) +- id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_60; +- else { +- /* default */ +- id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_50; +- } +- } + } + + return id | dvi | rgb; +@@ -840,7 +817,7 @@ static int ps3av_get_hw_conf(struct ps3a + } + + /* set mode using id */ +-int ps3av_set_video_mode(u32 id, int boot) ++int ps3av_set_video_mode(u32 id) + { + int size; + u32 option; +@@ -854,7 +831,7 @@ int ps3av_set_video_mode(u32 id, int boo + /* auto mode */ + option = id & ~PS3AV_MODE_MASK; + if ((id & PS3AV_MODE_MASK) == 0) { +- id = ps3av_auto_videomode(&ps3av->av_hw_conf, boot); ++ id = ps3av_auto_videomode(&ps3av->av_hw_conf); + if (id < 1) { + printk(KERN_ERR "%s: invalid id :%d\n", __func__, id); + return -EINVAL; +@@ -874,9 +851,9 @@ int ps3av_set_video_mode(u32 id, int boo + + EXPORT_SYMBOL_GPL(ps3av_set_video_mode); + +-int ps3av_get_auto_mode(int boot) ++int ps3av_get_auto_mode(void) + { +- return ps3av_auto_videomode(&ps3av->av_hw_conf, boot); ++ return ps3av_auto_videomode(&ps3av->av_hw_conf); + } + + EXPORT_SYMBOL_GPL(ps3av_get_auto_mode); +@@ -1022,7 +999,7 @@ static int ps3av_probe(struct ps3_system + res); + + ps3av_get_hw_conf(ps3av); +- id = ps3av_auto_videomode(&ps3av->av_hw_conf, 1); ++ id = ps3av_auto_videomode(&ps3av->av_hw_conf); + mutex_lock(&ps3av->mutex); + ps3av->ps3av_mode = id; + mutex_unlock(&ps3av->mutex); +--- a/drivers/video/ps3fb.c ++++ b/drivers/video/ps3fb.c +@@ -545,7 +545,6 @@ static int ps3fb_set_par(struct fb_info + unsigned int mode; + int i; + unsigned long offset; +- static int first = 1; + + dev_dbg(info->device, "xres:%d xv:%d yres:%d yv:%d clock:%d\n", + info->var.xres, info->var.xres_virtual, +@@ -568,10 +567,9 @@ static int ps3fb_set_par(struct fb_info + /* Keep the special bits we cannot set using fb_var_screeninfo */ + ps3fb_mode = (ps3fb_mode & ~PS3AV_MODE_MASK) | mode; + +- if (ps3av_set_video_mode(ps3fb_mode, first)) ++ if (ps3av_set_video_mode(ps3fb_mode)) + return -EINVAL; + +- first = 0; + return 0; + } + +@@ -733,7 +731,7 @@ static int ps3fb_ioctl(struct fb_info *i + break; + + if (!(val & PS3AV_MODE_MASK)) { +- u32 id = ps3av_get_auto_mode(0); ++ u32 id = ps3av_get_auto_mode(); + if (id > 0) + val = (val & ~PS3AV_MODE_MASK) | id; + } +--- a/include/asm-powerpc/ps3av.h ++++ b/include/asm-powerpc/ps3av.h +@@ -710,9 +710,9 @@ extern int ps3av_cmd_av_get_hw_conf(stru + extern int ps3av_cmd_video_get_monitor_info(struct ps3av_pkt_av_get_monitor_info *, + u32); + +-extern int ps3av_set_video_mode(u32, int); ++extern int ps3av_set_video_mode(u32); + extern int ps3av_set_audio_mode(u32, u32, u32, u32, u32); +-extern int ps3av_get_auto_mode(int); ++extern int ps3av_get_auto_mode(void); + extern int ps3av_get_mode(void); + extern int ps3av_get_scanmode(int); + extern int ps3av_get_refresh_rate(int); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff new/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff --- old/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff 2007-08-14 13:15:35.000000000 +0200 @@ -0,0 +1,213 @@ +Subject: ps3av: eliminate PS3AV_DEBUG + +ps3av: eliminate PS3AV_DEBUG + - Move ps3av_cmd_av_monitor_info_dump from ps3av_cmd.c to ps3av.c, as it's + used there only + - Integrate ps3av_cmd_av_hw_conf_dump() into its sole user + - Use pr_debug() for printing debug info + +Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> +--- + drivers/ps3/ps3av.c | 71 ++++++++++++++++++++++++++++++++++++++++---- + drivers/ps3/ps3av_cmd.c | 66 ---------------------------------------- + include/asm-powerpc/ps3av.h | 7 ---- + 3 files changed, 66 insertions(+), 78 deletions(-) + +--- a/drivers/ps3/ps3av.c ++++ b/drivers/ps3/ps3av.c +@@ -638,6 +638,63 @@ static int ps3av_hdmi_get_vid(struct ps3 + return vid; + } + ++static void ps3av_monitor_info_dump(const struct ps3av_pkt_av_get_monitor_info *monitor_info) ++{ ++ const struct ps3av_info_monitor *info = &monitor_info->info; ++ const struct ps3av_info_audio *audio = info->audio; ++ char id[sizeof(info->monitor_id)*3+1]; ++ int i; ++ ++ pr_info("Monitor Info: size %u\n", monitor_info->send_hdr.size); ++ ++ pr_info("avport: %02x\n", info->avport); ++ for (i = 0; i < sizeof(info->monitor_id); i++) ++ sprintf(&id[i*3], " %02x", info->monitor_id[i]); ++ pr_info("monitor_id: %s\n", id); ++ pr_info("monitor_type: %02x\n", info->monitor_type); ++ pr_info("monitor_name: %.*s\n", (int)sizeof(info->monitor_name), ++ info->monitor_name); ++ ++ /* resolution */ ++ pr_info("resolution_60: bits: %08x native: %08x\n", ++ info->res_60.res_bits, info->res_60.native); ++ pr_info("resolution_50: bits: %08x native: %08x\n", ++ info->res_50.res_bits, info->res_50.native); ++ pr_info("resolution_other: bits: %08x native: %08x\n", ++ info->res_other.res_bits, info->res_other.native); ++ pr_info("resolution_vesa: bits: %08x native: %08x\n", ++ info->res_vesa.res_bits, info->res_vesa.native); ++ ++ /* color space */ ++ pr_info("color space rgb: %02x\n", info->cs.rgb); ++ pr_info("color space yuv444: %02x\n", info->cs.yuv444); ++ pr_info("color space yuv422: %02x\n", info->cs.yuv422); ++ ++ /* color info */ ++ pr_info("color info red: X %04x Y %04x\n", info->color.red_x, ++ info->color.red_y); ++ pr_info("color info green: X %04x Y %04x\n", info->color.green_x, ++ info->color.green_y); ++ pr_info("color info blue: X %04x Y %04x\n", info->color.blue_x, ++ info->color.blue_y); ++ pr_info("color info white: X %04x Y %04x\n", info->color.white_x, ++ info->color.white_y); ++ pr_info("color info gamma: %08x\n", info->color.gamma); ++ ++ /* other info */ ++ pr_info("supported_AI: %02x\n", info->supported_ai); ++ pr_info("speaker_info: %02x\n", info->speaker_info); ++ pr_info("num of audio: %02x\n", info->num_of_audio_block); ++ ++ /* audio block */ ++ for (i = 0; i < info->num_of_audio_block; i++) { ++ pr_info("audio[%d] type: %02x max_ch: %02x fs: %02x sbit: %02x\n", ++ i, audio->type, audio->max_num_of_ch, audio->fs, ++ audio->sbit); ++ audio++; ++ } ++} ++ + static int ps3av_auto_videomode(struct ps3av_pkt_av_get_hw_conf *av_hw_conf, + int boot) + { +@@ -653,7 +710,7 @@ static int ps3av_auto_videomode(struct p + if (res < 0) + return -1; + +- ps3av_cmd_av_monitor_info_dump(&monitor_info); ++ ps3av_monitor_info_dump(&monitor_info); + info = &monitor_info.info; + /* check DVI */ + if (info->monitor_type == PS3AV_MONITOR_TYPE_DVI) { +@@ -709,23 +766,27 @@ static int ps3av_auto_videomode(struct p + static int ps3av_get_hw_conf(struct ps3av *ps3av) + { + int i, j, k, res; ++ const struct ps3av_pkt_av_get_hw_conf *hw_conf; + + /* get av_hw_conf */ + res = ps3av_cmd_av_get_hw_conf(&ps3av->av_hw_conf); + if (res < 0) + return -1; + +- ps3av_cmd_av_hw_conf_dump(&ps3av->av_hw_conf); ++ hw_conf = &ps3av->av_hw_conf; ++ pr_debug("av_h_conf: num of hdmi: %u\n", hw_conf->num_of_hdmi); ++ pr_debug("av_h_conf: num of avmulti: %u\n", hw_conf->num_of_avmulti); ++ pr_debug("av_h_conf: num of spdif: %u\n", hw_conf->num_of_spdif); + + for (i = 0; i < PS3AV_HEAD_MAX; i++) + ps3av->head[i] = PS3AV_CMD_VIDEO_HEAD_A + i; + for (i = 0; i < PS3AV_OPT_PORT_MAX; i++) + ps3av->opt_port[i] = PS3AV_CMD_AVPORT_SPDIF_0 + i; +- for (i = 0; i < ps3av->av_hw_conf.num_of_hdmi; i++) ++ for (i = 0; i < hw_conf->num_of_hdmi; i++) + ps3av->av_port[i] = PS3AV_CMD_AVPORT_HDMI_0 + i; +- for (j = 0; j < ps3av->av_hw_conf.num_of_avmulti; j++) ++ for (j = 0; j < hw_conf->num_of_avmulti; j++) + ps3av->av_port[i + j] = PS3AV_CMD_AVPORT_AVMULTI_0 + j; +- for (k = 0; k < ps3av->av_hw_conf.num_of_spdif; k++) ++ for (k = 0; k < hw_conf->num_of_spdif; k++) + ps3av->av_port[i + j + k] = PS3AV_CMD_AVPORT_SPDIF_0 + k; + + /* set all audio port */ +--- a/drivers/ps3/ps3av_cmd.c ++++ b/drivers/ps3/ps3av_cmd.c +@@ -922,72 +922,6 @@ int ps3av_cmd_video_get_monitor_info(str + return res; + } + +-#ifdef PS3AV_DEBUG +-void ps3av_cmd_av_hw_conf_dump(const struct ps3av_pkt_av_get_hw_conf *hw_conf) +-{ +- printk("av_h_conf:num of hdmi:%d\n", hw_conf->num_of_hdmi); +- printk("av_h_conf:num of avmulti:%d\n", hw_conf->num_of_avmulti); +- printk("av_h_conf:num of spdif:%d\n", hw_conf->num_of_spdif); +-} +- +-void ps3av_cmd_av_monitor_info_dump(const struct ps3av_pkt_av_get_monitor_info *monitor_info) +-{ +- const struct ps3av_info_monitor *info = &monitor_info->info; +- const struct ps3av_info_audio *audio = info->audio; +- int i; +- +- printk("Monitor Info: size%d\n", monitor_info->send_hdr.size); +- +- printk("avport:%02x\n", info->avport); +- printk("monitor_id:"); +- for (i = 0; i < 10; i++) +- printk("%02x ", info->monitor_id[i]); +- printk("\nmonitor_type:%02x\n", info->monitor_type); +- printk("monitor_name:"); +- for (i = 0; i < 16; i++) +- printk("%c", info->monitor_name[i]); +- +- /* resolution */ +- printk("\nresolution_60: bits:%08x native:%08x\n", +- info->res_60.res_bits, info->res_60.native); +- printk("resolution_50: bits:%08x native:%08x\n", +- info->res_50.res_bits, info->res_50.native); +- printk("resolution_other: bits:%08x native:%08x\n", +- info->res_other.res_bits, info->res_other.native); +- printk("resolution_vesa: bits:%08x native:%08x\n", +- info->res_vesa.res_bits, info->res_vesa.native); +- +- /* color space */ +- printk("color space rgb:%02x\n", info->cs.rgb); +- printk("color space yuv444:%02x\n", info->cs.yuv444); +- printk("color space yuv422:%02x\n", info->cs.yuv422); +- +- /* color info */ +- printk("color info red:X %04x Y %04x\n", +- info->color.red_x, info->color.red_y); +- printk("color info green:X %04x Y %04x\n", +- info->color.green_x, info->color.green_y); +- printk("color info blue:X %04x Y %04x\n", +- info->color.blue_x, info->color.blue_y); +- printk("color info white:X %04x Y %04x\n", +- info->color.white_x, info->color.white_y); +- printk("color info gamma: %08x\n", info->color.gamma); +- +- /* other info */ +- printk("supported_AI:%02x\n", info->supported_ai); +- printk("speaker_info:%02x\n", info->speaker_info); +- printk("num of audio:%02x\n", info->num_of_audio_block); +- +- /* audio block */ +- for (i = 0; i < info->num_of_audio_block; i++) { +- printk("audio[%d] type:%02x max_ch:%02x fs:%02x sbit:%02x\n", +- i, audio->type, audio->max_num_of_ch, audio->fs, +- audio->sbit); +- audio++; +- } +-} +-#endif /* PS3AV_DEBUG */ +- + #define PS3AV_AV_LAYOUT_0 (PS3AV_CMD_AV_LAYOUT_32 \ + | PS3AV_CMD_AV_LAYOUT_44 \ + | PS3AV_CMD_AV_LAYOUT_48) +--- a/include/asm-powerpc/ps3av.h ++++ b/include/asm-powerpc/ps3av.h +@@ -698,13 +698,6 @@ extern int ps3av_cmd_audio_mute(int, u32 + extern int ps3av_cmd_audio_active(int, u32); + extern int ps3av_cmd_avb_param(struct ps3av_pkt_avb_param *, u32); + extern int ps3av_cmd_av_get_hw_conf(struct ps3av_pkt_av_get_hw_conf *); +-#ifdef PS3AV_DEBUG +-extern void ps3av_cmd_av_hw_conf_dump(const struct ps3av_pkt_av_get_hw_conf *); +-extern void ps3av_cmd_av_monitor_info_dump(const struct ps3av_pkt_av_get_monitor_info *); +-#else +-static inline void ps3av_cmd_av_hw_conf_dump(const struct ps3av_pkt_av_get_hw_conf *hw_conf) {} +-static inline void ps3av_cmd_av_monitor_info_dump(const struct ps3av_pkt_av_get_monitor_info *monitor_info) {} +-#endif + extern int ps3av_cmd_video_get_monitor_info(struct ps3av_pkt_av_get_monitor_info *, + u32); + diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff new/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff --- old/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff 2007-08-14 13:15:35.000000000 +0200 @@ -0,0 +1,64 @@ +Subject: ps3av: eliminate unneeded temporary variables + +ps3av: eliminate unneeded temporary variables + +From: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> + +Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> +--- + drivers/ps3/ps3av_cmd.c | 17 ++++++----------- + 1 files changed, 6 insertions(+), 11 deletions(-) + +--- a/drivers/ps3/ps3av_cmd.c ++++ b/drivers/ps3/ps3av_cmd.c +@@ -512,7 +512,6 @@ static const u32 ps3av_ns_table[][5] = { + static void ps3av_cnv_ns(u8 *ns, u32 fs, u32 video_vid) + { + u32 av_vid, ns_val; +- u8 *p = ns; + int d; + + d = ns_val = 0; +@@ -551,24 +550,22 @@ static void ps3av_cnv_ns(u8 *ns, u32 fs, + else + ns_val = ps3av_ns_table[PS3AV_CMD_AUDIO_FS_44K-BASE][d]; + +- *p++ = ns_val & 0x000000FF; +- *p++ = (ns_val & 0x0000FF00) >> 8; +- *p = (ns_val & 0x00FF0000) >> 16; ++ *ns++ = ns_val & 0x000000FF; ++ *ns++ = (ns_val & 0x0000FF00) >> 8; ++ *ns = (ns_val & 0x00FF0000) >> 16; + } + + #undef BASE + + static u8 ps3av_cnv_enable(u32 source, const u8 *enable) + { +- const u8 *p; + u8 ret = 0; + + if (source == PS3AV_CMD_AUDIO_SOURCE_SPDIF) { + ret = 0x03; + } else if (source == PS3AV_CMD_AUDIO_SOURCE_SERIAL) { +- p = enable; +- ret = ((p[0] << 4) + (p[1] << 5) + (p[2] << 6) + (p[3] << 7)) | +- 0x01; ++ ret = ((enable[0] << 4) + (enable[1] << 5) + (enable[2] << 6) + ++ (enable[3] << 7)) | 0x01; + } else + printk(KERN_ERR "%s failed, source:%x\n", __func__, source); + return ret; +@@ -576,11 +573,9 @@ static u8 ps3av_cnv_enable(u32 source, c + + static u8 ps3av_cnv_fifomap(const u8 *map) + { +- const u8 *p; + u8 ret = 0; + +- p = map; +- ret = p[0] + (p[1] << 2) + (p[2] << 4) + (p[3] << 6); ++ ret = map[0] + (map[1] << 2) + (map[2] << 4) + (map[3] << 6); + return ret; + } + diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff new/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff --- old/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff 2007-08-14 13:15:35.000000000 +0200 @@ -0,0 +1,50 @@ +Subject: ps3av: remove unused ps3av_set_mode() + +ps3av: remove unused ps3av_set_mode() + +Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> +--- + drivers/ps3/ps3av.c | 21 --------------------- + include/asm-powerpc/ps3av.h | 1 - + 2 files changed, 22 deletions(-) + +--- a/drivers/ps3/ps3av.c ++++ b/drivers/ps3/ps3av.c +@@ -881,27 +881,6 @@ int ps3av_get_auto_mode(int boot) + + EXPORT_SYMBOL_GPL(ps3av_get_auto_mode); + +-int ps3av_set_mode(u32 id, int boot) +-{ +- int res; +- +- res = ps3av_set_video_mode(id, boot); +- if (res) +- return res; +- +- res = ps3av_set_audio_mode(PS3AV_CMD_AUDIO_NUM_OF_CH_2, +- PS3AV_CMD_AUDIO_FS_48K, +- PS3AV_CMD_AUDIO_WORD_BITS_16, +- PS3AV_CMD_AUDIO_FORMAT_PCM, +- PS3AV_CMD_AUDIO_SOURCE_SERIAL); +- if (res) +- return res; +- +- return 0; +-} +- +-EXPORT_SYMBOL_GPL(ps3av_set_mode); +- + int ps3av_get_mode(void) + { + return ps3av ? ps3av->ps3av_mode : 0; +--- a/include/asm-powerpc/ps3av.h ++++ b/include/asm-powerpc/ps3av.h +@@ -713,7 +713,6 @@ extern int ps3av_cmd_video_get_monitor_i + extern int ps3av_set_video_mode(u32, int); + extern int ps3av_set_audio_mode(u32, u32, u32, u32, u32); + extern int ps3av_get_auto_mode(int); +-extern int ps3av_set_mode(u32, int); + extern int ps3av_get_mode(void); + extern int ps3av_get_scanmode(int); + extern int ps3av_get_refresh_rate(int); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff new/patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff --- old/patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff 2007-08-14 13:15:35.000000000 +0200 @@ -0,0 +1,64 @@ +Subject: ps3av: add quirk database for broken monitors + +ps3av: add a quirk database for broken monitors where the `best' advertised +video mode doesn't work + +Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> +--- + drivers/ps3/ps3av.c | 38 ++++++++++++++++++++++++++++++++++++++ + 1 files changed, 38 insertions(+) + +--- a/drivers/ps3/ps3av.c ++++ b/drivers/ps3/ps3av.c +@@ -702,6 +702,42 @@ static void ps3av_monitor_info_dump(cons + } + } + ++static const struct ps3av_monitor_quirk { ++ const char *monitor_name; ++ u32 clear_60, clear_50, clear_vesa; ++} ps3av_monitor_quirks[] = { ++ { ++ .monitor_name = "DELL 2007WFP", ++ .clear_60 = PS3AV_RESBIT_1920x1080I ++ }, { ++ .monitor_name = "L226WTQ", ++ .clear_60 = PS3AV_RESBIT_1920x1080I | ++ PS3AV_RESBIT_1920x1080P ++ } ++}; ++ ++static void ps3av_fixup_monitor_info(struct ps3av_info_monitor *info) ++{ ++ unsigned int i; ++ const struct ps3av_monitor_quirk *quirk; ++ ++ for (i = 0; i < ARRAY_SIZE(ps3av_monitor_quirks); i++) { ++ quirk = &ps3av_monitor_quirks[i]; ++ if (!strncmp(info->monitor_name, quirk->monitor_name, ++ sizeof(info->monitor_name))) { ++ pr_info("%s: Applying quirk for %s\n", __func__, ++ quirk->monitor_name); ++ info->res_60.res_bits &= ~quirk->clear_60; ++ info->res_60.native &= ~quirk->clear_60; ++ info->res_50.res_bits &= ~quirk->clear_50; ++ info->res_50.native &= ~quirk->clear_50; ++ info->res_vesa.res_bits &= ~quirk->clear_vesa; ++ info->res_vesa.native &= ~quirk->clear_vesa; ++ break; ++ } ++ } ++} ++ + static int ps3av_auto_videomode(struct ps3av_pkt_av_get_hw_conf *av_hw_conf, + int boot) + { +@@ -720,6 +756,8 @@ static int ps3av_auto_videomode(struct p + ps3av_monitor_info_dump(&monitor_info); + + info = &monitor_info.info; ++ ps3av_fixup_monitor_info(info); ++ + switch (info->monitor_type) { + case PS3AV_MONITOR_TYPE_DVI: + dvi = PS3AV_MODE_DVI; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff new/patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff --- old/patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff 2007-08-14 13:15:35.000000000 +0200 @@ -0,0 +1,213 @@ +Subject: ps3av: use PS3 video mode ids in autodetect code + +ps3av: use PS3 video mode ids in autodetect code + +It doesn't make much sense to use the PS3AV_CMD_VIDEO_VID_* values in the +autodetection code, just to convert them to PS3 video mode ids afterwards. + +Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> +--- + drivers/ps3/ps3av.c | 90 +++++++++++++++++++------------------------- + include/asm-powerpc/ps3av.h | 11 ++--- + 2 files changed, 46 insertions(+), 55 deletions(-) + +--- a/drivers/ps3/ps3av.c ++++ b/drivers/ps3/ps3av.c +@@ -567,75 +567,65 @@ static void ps3avd(struct work_struct *w + complete(&ps3av->done); + } + +-static int ps3av_vid2table_id(int vid) ++static int ps3av_resbit2id(u32 res_50, u32 res_60) + { +- int i; +- +- for (i = 1; i < ARRAY_SIZE(video_mode_table); i++) +- if (video_mode_table[i].vid == vid) +- return i; +- return -1; +-} +- +-static int ps3av_resbit2vid(u32 res_50, u32 res_60) +-{ +- int vid = -1; ++ int id = 0; + + if (res_50 > res_60) { /* if res_50 == res_60, res_60 will be used */ + if (res_50 & PS3AV_RESBIT_1920x1080P) +- vid = PS3AV_CMD_VIDEO_VID_1080P_50HZ; ++ id = 10; + else if (res_50 & PS3AV_RESBIT_1920x1080I) +- vid = PS3AV_CMD_VIDEO_VID_1080I_50HZ; ++ id = 9; + else if (res_50 & PS3AV_RESBIT_1280x720P) +- vid = PS3AV_CMD_VIDEO_VID_720P_50HZ; ++ id = 8; + else if (res_50 & PS3AV_RESBIT_720x576P) +- vid = PS3AV_CMD_VIDEO_VID_576P; ++ id = 7; + else +- vid = -1; ++ id = 0; + } else { + if (res_60 & PS3AV_RESBIT_1920x1080P) +- vid = PS3AV_CMD_VIDEO_VID_1080P_60HZ; ++ id = 5; + else if (res_60 & PS3AV_RESBIT_1920x1080I) +- vid = PS3AV_CMD_VIDEO_VID_1080I_60HZ; ++ id = 4; + else if (res_60 & PS3AV_RESBIT_1280x720P) +- vid = PS3AV_CMD_VIDEO_VID_720P_60HZ; ++ id = 3; + else if (res_60 & PS3AV_RESBIT_720x480P) +- vid = PS3AV_CMD_VIDEO_VID_480P; ++ id = 2; + else +- vid = -1; ++ id = 0; + } +- return vid; ++ return id; + } + +-static int ps3av_hdmi_get_vid(struct ps3av_info_monitor *info) ++static int ps3av_hdmi_get_id(struct ps3av_info_monitor *info) + { + u32 res_50, res_60; +- int vid = -1; ++ int id; + + if (info->monitor_type != PS3AV_MONITOR_TYPE_HDMI) +- return -1; ++ return 0; + + /* check native resolution */ + res_50 = info->res_50.native & PS3AV_RES_MASK_50; + res_60 = info->res_60.native & PS3AV_RES_MASK_60; + if (res_50 || res_60) { +- vid = ps3av_resbit2vid(res_50, res_60); +- return vid; ++ id = ps3av_resbit2id(res_50, res_60); ++ return id; + } + + /* check resolution */ + res_50 = info->res_50.res_bits & PS3AV_RES_MASK_50; + res_60 = info->res_60.res_bits & PS3AV_RES_MASK_60; + if (res_50 || res_60) { +- vid = ps3av_resbit2vid(res_50, res_60); +- return vid; ++ id = ps3av_resbit2id(res_50, res_60); ++ return id; + } + + if (ps3av->region & PS3AV_REGION_60) +- vid = PS3AV_DEFAULT_HDMI_VID_REG_60; ++ id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_60; + else +- vid = PS3AV_DEFAULT_HDMI_VID_REG_50; +- return vid; ++ id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_50; ++ return id; + } + + static void ps3av_monitor_info_dump(const struct ps3av_pkt_av_get_monitor_info *monitor_info) +@@ -698,11 +688,11 @@ static void ps3av_monitor_info_dump(cons + static int ps3av_auto_videomode(struct ps3av_pkt_av_get_hw_conf *av_hw_conf, + int boot) + { +- int i, res, vid = -1, dvi = 0, rgb = 0; ++ int i, res, id = 0, dvi = 0, rgb = 0; + struct ps3av_pkt_av_get_monitor_info monitor_info; + struct ps3av_info_monitor *info; + +- /* get vid for hdmi */ ++ /* get mode id for hdmi */ + for (i = 0; i < av_hw_conf->num_of_hdmi; i++) { + res = ps3av_cmd_video_get_monitor_info(&monitor_info, + PS3AV_CMD_AVPORT_HDMI_0 + +@@ -718,49 +708,49 @@ static int ps3av_auto_videomode(struct p + break; + } + /* check HDMI */ +- vid = ps3av_hdmi_get_vid(info); +- if (vid != -1) { +- /* got valid vid */ ++ id = ps3av_hdmi_get_id(info); ++ if (id) { ++ /* got valid mode id */ + break; + } + } + + if (dvi) { + /* DVI mode */ +- vid = PS3AV_DEFAULT_DVI_VID; +- } else if (vid == -1) { ++ id = PS3AV_DEFAULT_DVI_MODE_ID; ++ } else if (!id) { + /* no HDMI interface or HDMI is off */ + if (ps3av->region & PS3AV_REGION_60) +- vid = PS3AV_DEFAULT_AVMULTI_VID_REG_60; ++ id = PS3AV_DEFAULT_AVMULTI_MODE_ID_REG_60; + else +- vid = PS3AV_DEFAULT_AVMULTI_VID_REG_50; ++ id = PS3AV_DEFAULT_AVMULTI_MODE_ID_REG_50; + if (ps3av->region & PS3AV_REGION_RGB) + rgb = PS3AV_MODE_RGB; + } else if (boot) { +- /* HDMI: using DEFAULT HDMI_VID while booting up */ ++ /* HDMI: using DEFAULT HDMI_MODE_ID while booting up */ + info = &monitor_info.info; + if (ps3av->region & PS3AV_REGION_60) { + if (info->res_60.res_bits & PS3AV_RESBIT_720x480P) +- vid = PS3AV_DEFAULT_HDMI_VID_REG_60; ++ id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_60; + else if (info->res_50.res_bits & PS3AV_RESBIT_720x576P) +- vid = PS3AV_DEFAULT_HDMI_VID_REG_50; ++ id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_50; + else { + /* default */ +- vid = PS3AV_DEFAULT_HDMI_VID_REG_60; ++ id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_60; + } + } else { + if (info->res_50.res_bits & PS3AV_RESBIT_720x576P) +- vid = PS3AV_DEFAULT_HDMI_VID_REG_50; ++ id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_50; + else if (info->res_60.res_bits & PS3AV_RESBIT_720x480P) +- vid = PS3AV_DEFAULT_HDMI_VID_REG_60; ++ id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_60; + else { + /* default */ +- vid = PS3AV_DEFAULT_HDMI_VID_REG_50; ++ id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_50; + } + } + } + +- return (ps3av_vid2table_id(vid) | dvi | rgb); ++ return id | dvi | rgb; + } + + static int ps3av_get_hw_conf(struct ps3av *ps3av) +--- a/include/asm-powerpc/ps3av.h ++++ b/include/asm-powerpc/ps3av.h +@@ -300,11 +300,12 @@ + + #define PS3AV_MONITOR_TYPE_HDMI 1 /* HDMI */ + #define PS3AV_MONITOR_TYPE_DVI 2 /* DVI */ +-#define PS3AV_DEFAULT_HDMI_VID_REG_60 PS3AV_CMD_VIDEO_VID_480P +-#define PS3AV_DEFAULT_AVMULTI_VID_REG_60 PS3AV_CMD_VIDEO_VID_480I +-#define PS3AV_DEFAULT_HDMI_VID_REG_50 PS3AV_CMD_VIDEO_VID_576P +-#define PS3AV_DEFAULT_AVMULTI_VID_REG_50 PS3AV_CMD_VIDEO_VID_576I +-#define PS3AV_DEFAULT_DVI_VID PS3AV_CMD_VIDEO_VID_480P ++ ++#define PS3AV_DEFAULT_HDMI_MODE_ID_REG_60 2 /* 480p */ ++#define PS3AV_DEFAULT_AVMULTI_MODE_ID_REG_60 1 /* 480i */ ++#define PS3AV_DEFAULT_HDMI_MODE_ID_REG_50 7 /* 576p */ ++#define PS3AV_DEFAULT_AVMULTI_MODE_ID_REG_50 6 /* 576i */ ++#define PS3AV_DEFAULT_DVI_MODE_ID 2 /* 480p */ + + #define PS3AV_REGION_60 0x01 + #define PS3AV_REGION_50 0x02 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff new/patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff --- old/patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff 2007-08-14 13:15:35.000000000 +0200 @@ -0,0 +1,165 @@ +Subject: ps3av: add autodetection for VESA modes + +ps3av: add autodetection for VESA modes + +Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> +--- + drivers/ps3/ps3av.c | 93 ++++++++++++++++++++++++++------------------ + include/asm-powerpc/ps3av.h | 11 ++++- + 2 files changed, 67 insertions(+), 37 deletions(-) + +--- a/drivers/ps3/ps3av.c ++++ b/drivers/ps3/ps3av.c +@@ -567,54 +567,73 @@ static void ps3avd(struct work_struct *w + complete(&ps3av->done); + } + +-static int ps3av_resbit2id(u32 res_50, u32 res_60) ++#define SHIFT_50 0 ++#define SHIFT_60 4 ++#define SHIFT_VESA 8 ++ ++static const struct { ++ unsigned mask : 19; ++ unsigned id : 4; ++} ps3av_preferred_modes[] = { ++ { .mask = PS3AV_RESBIT_WUXGA << SHIFT_VESA, .id = 13 }, ++ { .mask = PS3AV_RESBIT_1920x1080P << SHIFT_60, .id = 5 }, ++ { .mask = PS3AV_RESBIT_1920x1080P << SHIFT_50, .id = 10 }, ++ { .mask = PS3AV_RESBIT_1920x1080I << SHIFT_60, .id = 4 }, ++ { .mask = PS3AV_RESBIT_1920x1080I << SHIFT_50, .id = 9 }, ++ { .mask = PS3AV_RESBIT_SXGA << SHIFT_VESA, .id = 12 }, ++ { .mask = PS3AV_RESBIT_WXGA << SHIFT_VESA, .id = 11 }, ++ { .mask = PS3AV_RESBIT_1280x720P << SHIFT_60, .id = 3 }, ++ { .mask = PS3AV_RESBIT_1280x720P << SHIFT_50, .id = 8 }, ++ { .mask = PS3AV_RESBIT_720x480P << SHIFT_60, .id = 2 }, ++ { .mask = PS3AV_RESBIT_720x576P << SHIFT_50, .id = 7 }, ++}; ++ ++static int ps3av_resbit2id(u32 res_50, u32 res_60, u32 res_vesa) + { +- int id = 0; ++ unsigned int i; ++ u32 res_all; + +- if (res_50 > res_60) { /* if res_50 == res_60, res_60 will be used */ +- if (res_50 & PS3AV_RESBIT_1920x1080P) +- id = 10; +- else if (res_50 & PS3AV_RESBIT_1920x1080I) +- id = 9; +- else if (res_50 & PS3AV_RESBIT_1280x720P) +- id = 8; +- else if (res_50 & PS3AV_RESBIT_720x576P) +- id = 7; +- else +- id = 0; +- } else { +- if (res_60 & PS3AV_RESBIT_1920x1080P) +- id = 5; +- else if (res_60 & PS3AV_RESBIT_1920x1080I) +- id = 4; +- else if (res_60 & PS3AV_RESBIT_1280x720P) +- id = 3; +- else if (res_60 & PS3AV_RESBIT_720x480P) +- id = 2; +- else +- id = 0; +- } +- return id; ++ /* ++ * We mask off the resolution bits we care about and combine the ++ * results in one bitfield, so make sure there's no overlap ++ */ ++ BUILD_BUG_ON(PS3AV_RES_MASK_50 << SHIFT_50 & ++ PS3AV_RES_MASK_60 << SHIFT_60); ++ BUILD_BUG_ON(PS3AV_RES_MASK_50 << SHIFT_50 & ++ PS3AV_RES_MASK_VESA << SHIFT_VESA); ++ BUILD_BUG_ON(PS3AV_RES_MASK_60 << SHIFT_60 & ++ PS3AV_RES_MASK_VESA << SHIFT_VESA); ++ res_all = (res_50 & PS3AV_RES_MASK_50) << SHIFT_50 | ++ (res_60 & PS3AV_RES_MASK_60) << SHIFT_60 | ++ (res_vesa & PS3AV_RES_MASK_VESA) << SHIFT_VESA; ++ ++ if (!res_all) ++ return 0; ++ ++ for (i = 0; i < ARRAY_SIZE(ps3av_preferred_modes); i++) ++ if (res_all & ps3av_preferred_modes[i].mask) ++ return ps3av_preferred_modes[i].id; ++ ++ return 0; + } + + static int ps3av_hdmi_get_id(struct ps3av_info_monitor *info) + { +- u32 res_50, res_60; + int id; + + /* check native resolution */ +- res_50 = info->res_50.native & PS3AV_RES_MASK_50; +- res_60 = info->res_60.native & PS3AV_RES_MASK_60; +- if (res_50 || res_60) { +- id = ps3av_resbit2id(res_50, res_60); ++ id = ps3av_resbit2id(info->res_50.native, info->res_60.native, ++ info->res_vesa.native); ++ if (id) { ++ pr_info("%s: Using native mode %d\n", __func__, id); + return id; + } + +- /* check resolution */ +- res_50 = info->res_50.res_bits & PS3AV_RES_MASK_50; +- res_60 = info->res_60.res_bits & PS3AV_RES_MASK_60; +- if (res_50 || res_60) { +- id = ps3av_resbit2id(res_50, res_60); ++ /* check supported resolutions */ ++ id = ps3av_resbit2id(info->res_50.res_bits, info->res_60.res_bits, ++ info->res_vesa.res_bits); ++ if (id) { ++ pr_info("%s: Using supported mode %d\n", __func__, id); + return id; + } + +@@ -622,6 +641,7 @@ static int ps3av_hdmi_get_id(struct ps3a + id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_60; + else + id = PS3AV_DEFAULT_HDMI_MODE_ID_REG_50; ++ pr_info("%s: Using default mode %d\n", __func__, id); + return id; + } + +@@ -718,6 +738,7 @@ static int ps3av_auto_videomode(struct p + id = PS3AV_DEFAULT_AVMULTI_MODE_ID_REG_50; + if (ps3av->region & PS3AV_REGION_RGB) + rgb = PS3AV_MODE_RGB; ++ pr_info("%s: Using avmulti mode %d\n", __func__, id); + } else if (boot) { + /* HDMI: using DEFAULT HDMI_MODE_ID while booting up */ + info = &monitor_info.info; +--- a/include/asm-powerpc/ps3av.h ++++ b/include/asm-powerpc/ps3av.h +@@ -283,7 +283,7 @@ + #define PS3AV_CMD_VIDEO_CS_YUV422 0x0002 + #define PS3AV_CMD_VIDEO_CS_YUV444 0x0003 + +-/* for automode */ ++/* for broadcast automode */ + #define PS3AV_RESBIT_720x480P 0x0003 /* 0x0001 | 0x0002 */ + #define PS3AV_RESBIT_720x576P 0x0003 /* 0x0001 | 0x0002 */ + #define PS3AV_RESBIT_1280x720P 0x0004 +@@ -298,6 +298,15 @@ + | PS3AV_RESBIT_1920x1080I \ + | PS3AV_RESBIT_1920x1080P) + ++/* for VESA automode */ ++#define PS3AV_RESBIT_VGA 0x0001 ++#define PS3AV_RESBIT_WXGA 0x0002 ++#define PS3AV_RESBIT_SXGA 0x0004 ++#define PS3AV_RESBIT_WUXGA 0x0008 ++#define PS3AV_RES_MASK_VESA (PS3AV_RESBIT_WXGA |\ ++ PS3AV_RESBIT_SXGA |\ ++ PS3AV_RESBIT_WUXGA) ++ + #define PS3AV_MONITOR_TYPE_HDMI 1 /* HDMI */ + #define PS3AV_MONITOR_TYPE_DVI 2 /* DVI */ + ++++++ patches.drivers.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.drivers/libata-ahci-no-pmp.patch new/patches.drivers/libata-ahci-no-pmp.patch --- old/patches.drivers/libata-ahci-no-pmp.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.drivers/libata-ahci-no-pmp.patch 2007-08-14 08:40:43.000000000 +0200 @@ -0,0 +1,48 @@ +From: Tejun Heo <teheo@suse.de> +Subject: [PATCH] ahci: disable PMP support on SB600/700 +References: 299010 + +SB600 claims to support PMP but the controller locks up if SRST with +PMP==15 is issued. Disable PMP support on SB600. Whether SB700 is +affected by this problem is unclear, disable PMP support on SB700 too +for now. + +Signed-off-by: Tejun Heo <teheo@suse.de> +--- + drivers/ata/ahci.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +Index: linux-2.6.22/drivers/ata/ahci.c +=================================================================== +--- linux-2.6.22.orig/drivers/ata/ahci.c ++++ linux-2.6.22/drivers/ata/ahci.c +@@ -178,6 +178,7 @@ enum { + AHCI_HFLAG_32BIT_ONLY = (1 << 4), /* force 32bit */ + AHCI_HFLAG_MV_PATA = (1 << 5), /* PATA port */ + AHCI_HFLAG_NO_MSI = (1 << 6), /* no PCI MSI */ ++ AHCI_HFLAG_NO_PMP = (1 << 7), /* no PMP */ + + /* ap->flags bits */ + +@@ -392,7 +393,7 @@ static const struct ata_port_info ahci_p + /* board_ahci_sb600 */ + { + AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL | +- AHCI_HFLAG_32BIT_ONLY), ++ AHCI_HFLAG_32BIT_ONLY | AHCI_HFLAG_NO_PMP), + .flags = AHCI_FLAG_COMMON, + .link_flags = AHCI_LFLAG_COMMON, + .pio_mask = 0x1f, /* pio0-4 */ +@@ -590,6 +591,12 @@ static void ahci_save_initial_config(str + cap &= ~HOST_CAP_NCQ; + } + ++ if ((cap && HOST_CAP_PMP) && (hpriv->flags & AHCI_HFLAG_NO_PMP)) { ++ dev_printk(KERN_INFO, &pdev->dev, ++ "controller can't do PMP, turning off CAP_PMP\n"); ++ cap &= ~HOST_CAP_PMP; ++ } ++ + /* fixup zero port_map */ + if (!port_map) { + port_map = (1 << ahci_nr_ports(cap)) - 1; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.drivers/libata-ahci-priv-flags.patch new/patches.drivers/libata-ahci-priv-flags.patch --- old/patches.drivers/libata-ahci-priv-flags.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.drivers/libata-ahci-priv-flags.patch 2007-08-14 08:40:43.000000000 +0200 @@ -0,0 +1,228 @@ +From: Tejun Heo <teheo@suse.de> +Subject: [PATCH] ahci: implement hpriv->flags +References: 299010 + +ap->flags private bits are getting too crowded. Move out to +hpriv->flags. This is needed to add more horkage bits. + +Signed-off-by: Tejun Heo <teheo@suse.de> +--- + drivers/ata/ahci.c | 68 +++++++++++++++++++++++++++++------------------------ + 1 file changed, 38 insertions(+), 30 deletions(-) + +Index: linux-2.6.22/drivers/ata/ahci.c +=================================================================== +--- linux-2.6.22.orig/drivers/ata/ahci.c ++++ linux-2.6.22/drivers/ata/ahci.c +@@ -170,14 +170,16 @@ enum { + PORT_CMD_ICC_PARTIAL = (0x2 << 28), /* Put i/f in partial state */ + PORT_CMD_ICC_SLUMBER = (0x6 << 28), /* Put i/f in slumber state */ + ++ /* hpriv->flags bits */ ++ AHCI_HFLAG_NO_NCQ = (1 << 0), ++ AHCI_HFLAG_IGN_IRQ_IF_ERR = (1 << 1), /* ignore IRQ_IF_ERR */ ++ AHCI_HFLAG_HONOR_PI = (1 << 2), /* honor PORTS_IMPL */ ++ AHCI_HFLAG_IGN_SERR_INTERNAL = (1 << 3), /* ignore SERR_INTERNAL */ ++ AHCI_HFLAG_32BIT_ONLY = (1 << 4), /* force 32bit */ ++ AHCI_HFLAG_MV_PATA = (1 << 5), /* PATA port */ ++ AHCI_HFLAG_NO_MSI = (1 << 6), /* no PCI MSI */ ++ + /* ap->flags bits */ +- AHCI_FLAG_NO_NCQ = (1 << 24), +- AHCI_FLAG_IGN_IRQ_IF_ERR = (1 << 25), /* ignore IRQ_IF_ERR */ +- AHCI_FLAG_HONOR_PI = (1 << 26), /* honor PORTS_IMPL */ +- AHCI_FLAG_IGN_SERR_INTERNAL = (1 << 27), /* ignore SERR_INTERNAL */ +- AHCI_FLAG_32BIT_ONLY = (1 << 28), /* force 32bit */ +- AHCI_FLAG_MV_PATA = (1 << 29), /* PATA port */ +- AHCI_FLAG_NO_MSI = (1 << 30), /* no PCI MSI */ + + AHCI_FLAG_COMMON = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | + ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA | +@@ -201,6 +203,7 @@ struct ahci_sg { + }; + + struct ahci_host_priv { ++ unsigned int flags; /* AHCI_HFLAG_* */ + u32 cap; /* cap to use */ + u32 port_map; /* port map to use */ + u32 saved_cap; /* saved initial cap */ +@@ -348,6 +351,8 @@ static const struct ata_port_operations + .port_stop = ahci_port_stop, + }; + ++#define AHCI_HFLAGS(flags) .private_data = (void *)(flags) ++ + static const struct ata_port_info ahci_port_info[] = { + /* board_ahci */ + { +@@ -359,7 +364,8 @@ static const struct ata_port_info ahci_p + }, + /* board_ahci_pi */ + { +- .flags = AHCI_FLAG_COMMON | AHCI_FLAG_HONOR_PI, ++ AHCI_HFLAGS (AHCI_HFLAG_HONOR_PI), ++ .flags = AHCI_FLAG_COMMON, + .link_flags = AHCI_LFLAG_COMMON, + .pio_mask = 0x1f, /* pio0-4 */ + .udma_mask = ATA_UDMA6, +@@ -367,7 +373,8 @@ static const struct ata_port_info ahci_p + }, + /* board_ahci_vt8251 */ + { +- .flags = AHCI_FLAG_COMMON | AHCI_FLAG_NO_NCQ, ++ AHCI_HFLAGS (AHCI_HFLAG_NO_NCQ), ++ .flags = AHCI_FLAG_COMMON, + .link_flags = AHCI_LFLAG_COMMON | ATA_LFLAG_HRST_TO_RESUME, + .pio_mask = 0x1f, /* pio0-4 */ + .udma_mask = ATA_UDMA6, +@@ -375,7 +382,8 @@ static const struct ata_port_info ahci_p + }, + /* board_ahci_ign_iferr */ + { +- .flags = AHCI_FLAG_COMMON | AHCI_FLAG_IGN_IRQ_IF_ERR, ++ AHCI_HFLAGS (AHCI_HFLAG_IGN_IRQ_IF_ERR), ++ .flags = AHCI_FLAG_COMMON, + .link_flags = AHCI_LFLAG_COMMON, + .pio_mask = 0x1f, /* pio0-4 */ + .udma_mask = ATA_UDMA6, +@@ -383,9 +391,9 @@ static const struct ata_port_info ahci_p + }, + /* board_ahci_sb600 */ + { +- .flags = AHCI_FLAG_COMMON | +- AHCI_FLAG_IGN_SERR_INTERNAL | +- AHCI_FLAG_32BIT_ONLY, ++ AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL | ++ AHCI_HFLAG_32BIT_ONLY), ++ .flags = AHCI_FLAG_COMMON, + .link_flags = AHCI_LFLAG_COMMON, + .pio_mask = 0x1f, /* pio0-4 */ + .udma_mask = ATA_UDMA6, +@@ -393,11 +401,10 @@ static const struct ata_port_info ahci_p + }, + /* board_ahci_mv */ + { +- .sht = &ahci_sht, ++ AHCI_HFLAGS (AHCI_HFLAG_HONOR_PI | AHCI_HFLAG_NO_NCQ | ++ AHCI_HFLAG_NO_MSI | AHCI_HFLAG_MV_PATA), + .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | +- ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA | +- AHCI_FLAG_HONOR_PI | AHCI_FLAG_NO_NCQ | +- AHCI_FLAG_NO_MSI | AHCI_FLAG_MV_PATA, ++ ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA, + .link_flags = AHCI_LFLAG_COMMON, + .pio_mask = 0x1f, /* pio0-4 */ + .udma_mask = ATA_UDMA6, +@@ -545,7 +552,6 @@ static inline void __iomem *ahci_port_ba + /** + * ahci_save_initial_config - Save and fixup initial config values + * @pdev: target PCI device +- * @pi: associated ATA port info + * @hpriv: host private area to store config values + * + * Some registers containing configuration info might be setup by +@@ -559,7 +565,6 @@ static inline void __iomem *ahci_port_ba + * None. + */ + static void ahci_save_initial_config(struct pci_dev *pdev, +- const struct ata_port_info *pi, + struct ahci_host_priv *hpriv) + { + void __iomem *mmio = pcim_iomap_table(pdev)[AHCI_PCI_BAR]; +@@ -573,13 +578,13 @@ static void ahci_save_initial_config(str + hpriv->saved_port_map = port_map = readl(mmio + HOST_PORTS_IMPL); + + /* some chips have errata preventing 64bit use */ +- if ((cap & HOST_CAP_64) && (pi->flags & AHCI_FLAG_32BIT_ONLY)) { ++ if ((cap & HOST_CAP_64) && (hpriv->flags & AHCI_HFLAG_32BIT_ONLY)) { + dev_printk(KERN_INFO, &pdev->dev, + "controller can't do 64bit DMA, forcing 32bit\n"); + cap &= ~HOST_CAP_64; + } + +- if ((cap & HOST_CAP_NCQ) && (pi->flags & AHCI_FLAG_NO_NCQ)) { ++ if ((cap & HOST_CAP_NCQ) && (hpriv->flags & AHCI_HFLAG_NO_NCQ)) { + dev_printk(KERN_INFO, &pdev->dev, + "controller can't do NCQ, turning off CAP_NCQ\n"); + cap &= ~HOST_CAP_NCQ; +@@ -600,7 +605,7 @@ static void ahci_save_initial_config(str + * is asserted through the standard AHCI port + * presence register, as bit 4 (counting from 0) + */ +- if (pi->flags & AHCI_FLAG_MV_PATA) { ++ if (hpriv->flags & AHCI_HFLAG_MV_PATA) { + dev_printk(KERN_ERR, &pdev->dev, + "MV_AHCI HACK: port_map %x -> %x\n", + hpriv->port_map, +@@ -610,7 +615,7 @@ static void ahci_save_initial_config(str + } + + /* cross check port_map and cap.n_ports */ +- if (pi->flags & AHCI_FLAG_HONOR_PI) { ++ if (hpriv->flags & AHCI_HFLAG_HONOR_PI) { + u32 tmp_port_map = port_map; + int n_ports = ahci_nr_ports(cap); + +@@ -925,13 +930,14 @@ static void ahci_port_init(struct pci_de + + static void ahci_init_controller(struct ata_host *host) + { ++ struct ahci_host_priv *hpriv = host->private_data; + struct pci_dev *pdev = to_pci_dev(host->dev); + void __iomem *mmio = host->iomap[AHCI_PCI_BAR]; + int i; + void __iomem *port_mmio; + u32 tmp; + +- if (host->ports[0]->flags & AHCI_FLAG_MV_PATA) { ++ if (hpriv->flags & AHCI_HFLAG_MV_PATA) { + port_mmio = __ahci_port_base(host, 4); + + writel(0, port_mmio + PORT_IRQ_MASK); +@@ -1313,6 +1319,7 @@ static void ahci_qc_prep(struct ata_queu + + static void ahci_error_intr(struct ata_port *ap, u32 irq_stat) + { ++ struct ahci_host_priv *hpriv = ap->host->private_data; + struct ahci_port_priv *pp = ap->private_data; + struct ata_eh_info *host_ehi = &ap->link.eh_info; + struct ata_link *link = NULL; +@@ -1340,7 +1347,7 @@ static void ahci_error_intr(struct ata_p + host_ehi->serror |= serror; + + /* some controllers set IRQ_IF_ERR on device errors, ignore it */ +- if (ap->flags & AHCI_FLAG_IGN_IRQ_IF_ERR) ++ if (hpriv->flags & AHCI_HFLAG_IGN_IRQ_IF_ERR) + irq_stat &= ~PORT_IRQ_IF_ERR; + + if (irq_stat & PORT_IRQ_TF_ERR) { +@@ -1353,7 +1360,7 @@ static void ahci_error_intr(struct ata_p + else + active_ehi->err_mask |= AC_ERR_DEV; + +- if (ap->flags & AHCI_FLAG_IGN_SERR_INTERNAL) ++ if (hpriv->flags & AHCI_HFLAG_IGN_SERR_INTERNAL) + host_ehi->serror &= ~SERR_INTERNAL; + } + +@@ -1978,15 +1985,16 @@ static int ahci_init_one(struct pci_dev + if (rc) + return rc; + +- if ((pi.flags & AHCI_FLAG_NO_MSI) || pci_enable_msi(pdev)) +- pci_intx(pdev, 1); +- + hpriv = devm_kzalloc(dev, sizeof(*hpriv), GFP_KERNEL); + if (!hpriv) + return -ENOMEM; ++ hpriv->flags |= (unsigned long)pi.private_data; ++ ++ if ((hpriv->flags & AHCI_HFLAG_NO_MSI) || pci_enable_msi(pdev)) ++ pci_intx(pdev, 1); + + /* save initial config */ +- ahci_save_initial_config(pdev, &pi, hpriv); ++ ahci_save_initial_config(pdev, hpriv); + + /* prepare host */ + if (hpriv->cap & HOST_CAP_NCQ) ++++++ patches.fixes.tar.bz2 ++++++ ++++++ patches.kernel.org.tar.bz2 ++++++ ++++++ patches.rpmify.tar.bz2 ++++++ ++++++ patches.rt.tar.bz2 ++++++ ++++++ patches.suse.tar.bz2 ++++++ ++++++ patches.uml.tar.bz2 ++++++ ++++++ patches.xen.tar.bz2 ++++++ ++++++ series.conf ++++++ --- kernel-source/series.conf 2007-08-13 16:14:51.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/series.conf 2007-08-14 17:28:04.000000000 +0200 @@ -153,6 +153,15 @@ patches.arch/ppc-ps3-gelic-08-39a3d2d19cc8dc9d7ec3a1fefe95d7de0c6dc317.patch patches.arch/ppc-ps3-gelic-09-583aae1094d28aa1d58360318388c11d2ae7ed9c.patch patches.arch/ppc-ps3-gelic-10-fe6d3a4049ec9d859d75ddfcc6865a0f58178924.patch + patches.arch/ppc-ps3-edd2a9d185799354db255de62c3ed1f2b1c6b0f4.patch + patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-temporaries.diff + patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-PS3AV_DEBUG.diff + patches.arch/ppc-ps3video-ps3-wip_ps3av-use-mode-id-in-autodetect.diff + patches.arch/ppc-ps3video-ps3-wip_ps3av-dvi-autodetect.diff + patches.arch/ppc-ps3video-ps3-wip_ps3av-vesa-autodetect.diff + patches.arch/ppc-ps3video-ps3-wip_ps3av-monitor-quirks.diff + patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-unused-ps3av_set_mode.diff + patches.arch/ppc-ps3video-ps3-wip_ps3av-kill-boot-parameter.diff patches.arch/ppc-suse-spe-logo_logo-extern-in-header.diff patches.suse/ppc-powerbook-usb-fn-key-default.patch @@ -213,6 +222,8 @@ patches.arch/dmi_autoloading.patch patches.arch/thinkpad_dmi_autoloading.patch + patches.arch/acpi_dock_uevent_fix.patch + patches.arch/acpi_bay_uevent_fix.patch patches.fixes/cpufreq_move_policy_init.patch patches.fixes/cpufreq_ondemand_as_default.patch @@ -363,6 +374,8 @@ patches.drivers/libata-ata_piix-update-map-10b-for-ich8m patches.drivers/libata-implement-BROKEN_HPA-horkage-and-apply-it-to-HDS724040KLSA80 patches.drivers/libata-add-waits-for-govault + patches.drivers/libata-ahci-priv-flags.patch + patches.drivers/libata-ahci-no-pmp.patch patches.fixes/mptbase-vmware-fix @@ -763,9 +776,6 @@ -RT patches.xen/xen-blkback-cdrom # RT -# The _quick_adjust patch needs detailed review by RT people -# Make sure all patches from above are considered and parts were not -# thrown out by accident +RT patches.rt/patch-2.6.22.1-rt4.openSUSE +RT patches.rt/patch-2.6.22.1-rt4-5 +RT patches.rt/patch-2.6.22.1-rt5-6 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org