rpms/kernel/devel linux-2.6-edid-check.patch, NONE, 1.1 linux-2.6-pwc-powerup-by-default.patch, NONE, 1.1 linux-2.6-smsc-ircc2-pnp.patch, NONE, 1.1 linux-2.6-usbhid-wireless-security-lock.patch, NONE, 1.1 linux-2.6-w1-hush-debug.patch, NONE, 1.1 linux-2.6-x86_64-ati-apic-timer.patch, NONE, 1.1 kernel-2.6.spec, 1.1822, 1.1823

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Jan 6 06:41:28 UTC 2006


Author: davej

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv12651

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-edid-check.patch 
	linux-2.6-pwc-powerup-by-default.patch 
	linux-2.6-smsc-ircc2-pnp.patch 
	linux-2.6-usbhid-wireless-security-lock.patch 
	linux-2.6-w1-hush-debug.patch 
	linux-2.6-x86_64-ati-apic-timer.patch 
Log Message:
- Add timer quirk for ATI chipsets.
- Reboot through BIOS on HP laptops.
- Additional check in x86 edid parser.
- power up pwc webcam by default
- don't confuse wireless security lock as a mouse.
- Hush some debug messages in w1 driver.



linux-2.6-edid-check.patch:
 video.S |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

--- NEW FILE linux-2.6-edid-check.patch ---
--- linux-2.6.15/arch/i386/boot/video.S~	2006-01-06 01:26:06.000000000 -0500
+++ linux-2.6.15/arch/i386/boot/video.S	2006-01-06 01:28:40.000000000 -0500
@@ -1951,9 +1951,18 @@ store_edid:
 	stosl
 
 	movw	$0x4f15, %ax                    # do VBE/DDC
-	movw	$0x01, %bx
+	movw	$0x00, %bx                      # INSTALLATION CHECK / CAPABILITIES
 	movw	$0x00, %cx
-	movw    $0x00, %dx
+	movw	$0x00, %dx
+	movw	$0x140, %di
+	int		$0x10
+	cmpb	$0x01, %ah
+	je		no_edid
+
+	movw	$0x4f15, %ax                    # do VBE/DDC
+	movw	$0x01, %bx                      # READ_EDID
+	movw	$0x00, %cx
+	movw	$0x00, %dx
 	movw	$0x140, %di
 	int	$0x10
 

linux-2.6-pwc-powerup-by-default.patch:
 pwc-if.c |    6 ++++++
 1 files changed, 6 insertions(+)

--- NEW FILE linux-2.6-pwc-powerup-by-default.patch ---
--- linux-2.6.13/drivers/usb/media/pwc/pwc-if.c~	2005-09-28 18:59:49.000000000 -0400
+++ linux-2.6.13/drivers/usb/media/pwc/pwc-if.c	2005-09-28 19:09:08.000000000 -0400
@@ -1946,6 +1946,12 @@ static int usb_pwc_probe(struct usb_inte
 	if (hint < MAX_DEV_HINTS) 
 		device_hint[hint].pdev = pdev;
 
+	if (!power_save) {
+		i = pwc_camera_power(pdev, 1);
+		if (i < 0)
+			Info("Failed to power up the camera! (%d)\n", i);
+	}
+
 	Trace(TRACE_PROBE, "probe() function returning struct at 0x%p.\n", pdev);
 	usb_set_intfdata (intf, pdev);
 	return 0;

linux-2.6-smsc-ircc2-pnp.patch:
 smsc-ircc2.c |   67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 67 insertions(+)

--- NEW FILE linux-2.6-smsc-ircc2-pnp.patch ---

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=153970

--- linux-2.6.13/drivers/net/irda/smsc-ircc2.c~	2005-10-25 00:38:18.000000000 -0400
+++ linux-2.6.13/drivers/net/irda/smsc-ircc2.c	2005-10-25 00:43:03.000000000 -0400
@@ -54,6 +54,7 @@
 #include <linux/serial_reg.h>
 #include <linux/dma-mapping.h>
 #include <linux/platform_device.h>
+#include <linux/pnp.h>
 
 #include <asm/io.h>
 #include <asm/dma.h>
@@ -68,6 +69,7 @@
 #include "smsc-ircc2.h"
 #include "smsc-sio.h"
 
+static int pnp_registered_port;
 
 MODULE_AUTHOR("Daniele Peri <peri at csai.unipa.it>");
 MODULE_DESCRIPTION("SMC IrCC SIR/FIR controller driver");
@@ -325,6 +327,61 @@ static inline void register_bank(int iob
 }
 
 
+/* PNP probing */
+
+static const struct pnp_device_id smsc_ircc_pnp_table[] = {
+{
+	.id = "SMCf010",
+	.driver_data = 0
+},
+{ }
+};
+
+MODULE_DEVICE_TABLE(pnp, smsc_ircc_pnp_table);
+
+static int __devinit
+smsc_ircc_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *id)
+{
+	unsigned int firbase, sirbase;
+	u8 dma, irq;
+
+	if (pnp_port_valid(dev, 0) &&
+	   !(pnp_port_flags(dev, 0) & IORESOURCE_DISABLED))
+		sirbase = pnp_port_start(dev, 0);
+	else
+		return -EINVAL;
+
+	if (pnp_port_valid(dev, 1) &&
+	   !(pnp_port_flags(dev, 1) & IORESOURCE_DISABLED))
+		firbase = pnp_port_start(dev, 1);
+	else
+		return -EINVAL;
+
+	if (pnp_irq_valid(dev, 0) &&
+	   !(pnp_irq_flags(dev, 0) & IORESOURCE_DISABLED))
+		irq = pnp_irq(dev, 0);
+	else
+		return -EINVAL;
+
+	if (pnp_dma_valid(dev, 0) &&
+	   !(pnp_dma_flags(dev, 0) & IORESOURCE_DISABLED))
+		dma = pnp_dma(dev, 0);
+	else
+		return -EINVAL;
+
+	if (smsc_ircc_open(firbase, sirbase, dma, irq))
+		return -ENODEV;
+
+	return 0;
+}
+
+static struct pnp_driver smsc_ircc_pnp_driver = {
+	.name = "smsc-ircc2",
+	.id_table = smsc_ircc_pnp_table,
+	.probe = smsc_ircc_pnp_probe,
+};
+
+
 /*******************************************************************************
  *
  *
@@ -1741,6 +1798,8 @@ static void __exit smsc_ircc_cleanup(voi
 
 	IRDA_DEBUG(1, "%s\n", __FUNCTION__);
 
+	if (pnp_registered_port)
+		pnp_unregister_driver(&smsc_ircc_pnp_driver);
 	for (i = 0; i < 2; i++) {
 		if (dev_self[i])
 			smsc_ircc_close(dev_self[i]);
@@ -1998,8 +2057,16 @@ static int __init smsc_ircc_look_for_chi
 	struct smsc_chip_address *address;
 	char *type;
 	unsigned int cfg_base, found;
+	int r;
 
 	found = 0;
+
+	r = pnp_register_driver(&smsc_ircc_pnp_driver);
+	if (r >= 0) {
+		pnp_registered_port = 1;
+		found += r;
+	}
+
 	address = possible_addresses;
 
 	while (address->cfg_base) {

linux-2.6-usbhid-wireless-security-lock.patch:
 hid-core.c |    4 ++++
 1 files changed, 4 insertions(+)

--- NEW FILE linux-2.6-usbhid-wireless-security-lock.patch ---

bugzilla 147479

diff -ur linux-2.6.11.orig/drivers/usb/input/hid-core.c linux-2.6.11/drivers/usb/input/hid-core.c
--- linux-2.6.11.orig/drivers/usb/input/hid-core.c	2005-03-02 08:38:10.000000000 +0100
+++ linux-2.6.11/drivers/usb/input/hid-core.c	2005-07-24 19:25:35.000000000 +0200
@@ -1494,6 +1494,9 @@
 #define USB_VENDOR_ID_DELORME		0x1163
 #define USB_DEVICE_ID_DELORME_EARTHMATE 0x0100
 
+#define USB_VENDOR_ID_CYPRES		0x04b4
+#define USB_DEVICE_ID_SITECOM_WSL	0x7417
+
 static struct hid_blacklist {
 	__u16 idVendor;
 	__u16 idProduct;
@@ -1586,6 +1589,7 @@
 
 	{ USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EARTHMATE, HID_QUIRK_IGNORE },
 
+	{ USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_SITECOM_WSL, HID_QUIRK_IGNORE },
 	{ 0, 0 }
 };

linux-2.6-w1-hush-debug.patch:
 w1.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE linux-2.6-w1-hush-debug.patch ---
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=167403

--- linux-2.6.13/drivers/w1/w1.c~	2005-09-28 06:09:13.000000000 -0400
+++ linux-2.6.13/drivers/w1/w1.c	2005-09-28 06:09:27.000000000 -0400
@@ -593,7 +593,7 @@ void w1_search(struct w1_master *dev, w1
 		 * Return 0 - device(s) present, 1 - no devices present.
 		 */
 		if (w1_reset_bus(dev)) {
-			dev_dbg(&dev->dev, "No devices present on the wire.\n");
+			//dev_dbg(&dev->dev, "No devices present on the wire.\n");
 			break;
 		}
 

linux-2.6-x86_64-ati-apic-timer.patch:
 io_apic.c |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

--- NEW FILE linux-2.6-x86_64-ati-apic-timer.patch ---

ATI's AMD64 chipsets appear to have the interesting "feature" that every 
timer tick causes an interrupt from both the APIC and the legacy PIC. 
The following patch checks if the northbridge matches the affected 
chipsets, and if so disables APIC pin 1. As an added bonus, it skips the 
acpi timer override since I haven't found one of these machines where 
it's needed and it's actively harmful on at least some of them. We've 
been shipping this patch in Ubuntu with no reported issues.

This is kernel bugzilla number 3927.

Signed-off-by: Matthew Garrett <mjg59 at srcf.ucam.og>

--- io_apic.c.orig	2005-09-20 21:43:42.000000000 +0100
+++ a/arch/x86_64/kernel/io_apic.c	2005-09-20 22:33:42.000000000 +0100
@@ -258,18 +259,24 @@ void __init check_ioapic(void) 
 			for (func = 0; func < 8; func++) { 
 				u32 class;
 				u32 vendor;
+				u16 product;
 				u8 type;
 				class = read_pci_config(num,slot,func,
 							PCI_CLASS_REVISION);
+
 				if (class == 0xffffffff)
 					break; 
 
-		       		if ((class >> 16) != PCI_CLASS_BRIDGE_PCI)
+		       		if ((class >> 16) != PCI_CLASS_BRIDGE_PCI && 
+				    (class >> 16) != PCI_CLASS_BRIDGE_HOST)
 					continue; 
 
 				vendor = read_pci_config(num, slot, func, 
 							 PCI_VENDOR_ID);
 				vendor &= 0xffff;
+				
+				product = read_pci_config_16(num, slot, func,
+							  PCI_DEVICE_ID);
 				switch (vendor) { 
 				case PCI_VENDOR_ID_VIA:
 #ifdef CONFIG_GART_IOMMU
@@ -292,8 +299,18 @@ void __init check_ioapic(void) 
 #endif
 					/* RED-PEN skip them on mptables too? */
 					return;
-				} 
 
+				case PCI_VENDOR_ID_ATI:
+					if (product==0x5950 || product==0x5951) {
+						printk(KERN_INFO "ATI board detected - disabling APIC pin 1\n");
+#ifdef CONFIG_ACPI
+						/* This seems to be wrong, too */
+						acpi_skip_timer_override = 1;
+#endif
+						disable_timer_pin_1 = 1;
+					}
+					return;
+				}
 				/* No multi-function device? */
 				type = read_pci_config_byte(num,slot,func,
 							    PCI_HEADER_TYPE);




Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.1822
retrieving revision 1.1823
diff -u -r1.1822 -r1.1823
--- kernel-2.6.spec	6 Jan 2006 03:15:23 -0000	1.1822
+++ kernel-2.6.spec	6 Jan 2006 06:41:25 -0000	1.1823
@@ -221,6 +221,8 @@
 Patch203: linux-2.6.14-intel-cache-build.patch
 Patch204: linux-2.6-x86_64-silence-up-apic-errors.patch
 Patch205: linux-2.6-x86_64-disable-hotplug-guessing.patch
+Patch206: linux-2.6-x86_64-ati-apic-timer.patch
+Patch207: linux-2.6-edid-check.patch
 
 # 300 - 399   ppc(64)
 Patch300: linux-2.6.15-default-powerpc.patch
@@ -360,9 +362,10 @@
 Patch1770: linux-2.6-valid-ether-addr.patch
 Patch1780: linux-2.6-firmware-loader-timeout.patch
 Patch1790: linux-2.6-softcursor-persistent-alloc.patch
-
-# ACPI patches.
-Patch1800: linux-2.6-acpi-thinkpad-c2c3.patch
+Patch1800: linux-2.6-pwc-powerup-by-default.patch
+Patch1810: linux-2.6-smsc-ircc2-pnp.patch
+Patch1820: linux-2.6-usbhid-wireless-security-lock.patch
+Patch1830: linux-2.6-w1-hush-debug.patch
 
 # Warn about usage of various obsolete functionality that may go away.
 Patch1900: linux-2.6-obsolete-idescsi-warning.patch
@@ -376,6 +379,9 @@
 Patch2001: linux-2.6-vm-silence-atomic-alloc-failures.patch
 Patch2002: linux-2.6-vm-debug.patch
 
+# ACPI patches.
+Patch2100: linux-2.6-acpi-thinkpad-c2c3.patch
+
 # Broadcom wireless driver
 Patch5000: linux-2.6-bcm43xx.patch
 Patch5001: linux-2.6-bcm43xx-quiet.patch
@@ -630,6 +636,10 @@
 %patch204 -p1
 # Disable guessing of how many hotplug cpus to add.
 %patch205 -p1
+# ATI timer quirk.
+%patch206 -p1
+# Reboot thru bios on HP laptops.
+%patch207 -p1
 
 # 
 # ppc64
@@ -859,10 +869,14 @@
 %patch1780 -p1
 # Use persistent allocation in softcursor
 %patch1790 -p1
-
-# ACPI patches.
-# Blacklist another 'No C2/C3 states' Thinkpad R40e BIOS.
+# Power up PWC driver by default.
 %patch1800 -p1
+# PNP support for smsc-ircc2
+%patch1810 -p1
+# don't mistake security lock as a mouse
+%patch1820 -p1
+# Silence debug messages in w1
+%patch1830 -p1
 
 # Warn about obsolete functionality usage.
 %patch1900 -p1
@@ -880,6 +894,10 @@
 # Try to trace some negative pagecount errors.
 %patch2002 -p1
 
+# ACPI patches.
+# Blacklist another 'No C2/C3 states' Thinkpad R40e BIOS.
+%patch2100 -p1
+
 #
 # Patches 5000 to 6000 are reserved for new drivers that are about to
 # be merged upstream
@@ -952,7 +970,7 @@
 perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -prep/" Makefile
 
 # get rid of unwanted files resulting from patch fuzz
-find . -name "*.orig" -o -name "*~" -exec rm -fv {} \; >/dev/null &
+find . -name "*.orig" -o -name "*~" -exec rm -f {} \; >/dev/null &
 
 ###
 ### build
@@ -1394,6 +1412,14 @@
 %endif
 
 %changelog
+* Fri Jan  6 2006 Dave Jones <davej at redhat.com>
+- Add timer quirk for ATI chipsets.
+- Reboot through BIOS on HP laptops.
+- Additional check in x86 edid parser.
+- power up pwc webcam by default
+- don't confuse wireless security lock as a mouse.
+- Hush some debug messages in w1 driver.
+
 * Thu Jan  5 2006 Dave Jones <davej at redhat.com>
 - Try to debug some negative pagecount errors.
 




More information about the fedora-cvs-commits mailing list