Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Oct 2006 14:48:36 GMT
From:      Roman Divacky <rdivacky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 107550 for review
Message-ID:  <200610091448.k99Ema1F034409@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=107550

Change 107550 by rdivacky@rdivacky_witten on 2006/10/09 14:48:00

	IFC

Affected files ...

.. //depot/projects/linuxolator/src/sys/boot/Makefile#2 integrate
.. //depot/projects/linuxolator/src/sys/boot/ofw/libofw/Makefile#2 integrate
.. //depot/projects/linuxolator/src/sys/boot/ofw/libofw/openfirm.c#2 integrate
.. //depot/projects/linuxolator/src/sys/boot/ofw/libofw/openfirm_mmu.c#1 branch
.. //depot/projects/linuxolator/src/sys/boot/sparc64/loader/hcall.S#1 branch
.. //depot/projects/linuxolator/src/sys/boot/sparc64/loader/main.c#2 integrate
.. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_da.c#3 integrate
.. //depot/projects/linuxolator/src/sys/compat/linprocfs/linprocfs.c#3 integrate
.. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#4 integrate
.. //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#5 integrate
.. //depot/projects/linuxolator/src/sys/conf/files#5 integrate
.. //depot/projects/linuxolator/src/sys/conf/files.sun4v#2 integrate
.. //depot/projects/linuxolator/src/sys/ddb/db_command.c#2 integrate
.. //depot/projects/linuxolator/src/sys/ddb/db_examine.c#2 integrate
.. //depot/projects/linuxolator/src/sys/ddb/db_output.c#2 integrate
.. //depot/projects/linuxolator/src/sys/ddb/db_output.h#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/ata/ata-chipset.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/ofw/openfirm.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/ofw/openfirm.h#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/hda/hdac.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pcm/dsp.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/usb/if_aue.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/usb/if_cdce.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/usb/if_kue.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/usb/if_ural.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/usb/umass.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/usb/usb_quirks.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/usb/usbdevs#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/usb/uscanner.c#3 integrate
.. //depot/projects/linuxolator/src/sys/net/if_bridge.c#4 integrate
.. //depot/projects/linuxolator/src/sys/netinet/libalias/libalias.3#3 integrate
.. //depot/projects/linuxolator/src/sys/sparc64/include/asi.h#2 integrate
.. //depot/projects/linuxolator/src/sys/sparc64/pci/ofw_pcibus.c#2 integrate
.. //depot/projects/linuxolator/src/sys/sparc64/sparc64/genassym.c#2 integrate
.. //depot/projects/linuxolator/src/sys/sun4v/conf/GENERIC#2 integrate
.. //depot/projects/linuxolator/src/sys/sun4v/include/asi.h#2 integrate
.. //depot/projects/linuxolator/src/sys/sun4v/include/tte.h#2 integrate
.. //depot/projects/linuxolator/src/sys/sun4v/sun4v/exception.S#2 integrate
.. //depot/projects/linuxolator/src/sys/sun4v/sun4v/machdep.c#2 integrate
.. //depot/projects/linuxolator/src/sys/sun4v/sun4v/t1_copy.S#2 integrate
.. //depot/projects/linuxolator/src/sys/sun4v/sun4v/tsb.c#2 integrate
.. //depot/projects/linuxolator/src/sys/sun4v/sun4v/vnex.c#2 integrate
.. //depot/projects/linuxolator/src/sys/vm/vnode_pager.c#2 integrate

Differences ...

==== //depot/projects/linuxolator/src/sys/boot/Makefile#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/Makefile,v 1.30 2006/08/10 06:29:43 imp Exp $
+# $FreeBSD: src/sys/boot/Makefile,v 1.31 2006/10/09 04:43:06 kmacy Exp $
 
 .include <bsd.own.mk>
 
@@ -18,6 +18,6 @@
 .endif
 
 # Pick the machine-dependent subdir based on the target architecture.
-SUBDIR+=		${MACHINE:S/amd64/i386/}
+SUBDIR+=		${MACHINE:S/amd64/i386/:S/sun4v/sparc64/}
 
 .include <bsd.subdir.mk>

==== //depot/projects/linuxolator/src/sys/boot/ofw/libofw/Makefile#2 (text+ko) ====

@@ -1,11 +1,11 @@
-# $FreeBSD: src/sys/boot/ofw/libofw/Makefile,v 1.9 2004/10/24 15:32:50 ru Exp $
+# $FreeBSD: src/sys/boot/ofw/libofw/Makefile,v 1.10 2006/10/09 04:43:06 kmacy Exp $
 
 LIB=		ofw
 INTERNALLIB=
 
 SRCS=	devicename.c elf_freebsd.c ofw_console.c ofw_copy.c ofw_disk.c \
 	ofw_memory.c ofw_module.c ofw_net.c ofw_reboot.c \
-	ofw_time.c openfirm.c
+	ofw_time.c openfirm.c openfirm_mmu.c
 
 CFLAGS+=	-I${.CURDIR}/../../../../lib/libstand/
 

==== //depot/projects/linuxolator/src/sys/boot/ofw/libofw/openfirm.c#2 (text+ko) ====

@@ -56,7 +56,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/openfirm.c,v 1.12 2005/10/20 10:39:09 marius Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/openfirm.c,v 1.13 2006/10/09 04:43:07 kmacy Exp $");
 
 #include <machine/stdarg.h>
 
@@ -87,6 +87,20 @@
 		panic("failed to get mmu ihandle");
 }
 
+phandle_t
+OF_chosennode(void)
+{
+        static phandle_t        chosen;
+
+        if (chosen)
+                return (chosen);
+
+        if ((chosen = OF_finddevice("/chosen")) == -1)
+                OF_exit();
+
+        return (chosen);
+}
+
 /*
  * Generic functions
  */

==== //depot/projects/linuxolator/src/sys/boot/sparc64/loader/main.c#2 (text+ko) ====

@@ -8,8 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/sparc64/loader/main.c,v 1.26 2005/01/05 22:16:58 imp Exp $");
-
+__FBSDID("$FreeBSD: src/sys/boot/sparc64/loader/main.c,v 1.28 2006/10/09 05:59:04 kmacy Exp $");
 /*
  * FreeBSD/sparc64 kernel loader - machine dependent part
  *
@@ -25,7 +24,9 @@
 #include <sys/param.h>
 #include <sys/queue.h>
 #include <sys/linker.h>
+#include <sys/types.h>
 
+#include <vm/vm.h>
 #include <machine/asi.h>
 #include <machine/atomic.h>
 #include <machine/cpufunc.h>
@@ -50,6 +51,12 @@
 	vm_offset_t size;
 };
 
+struct mmu_ops {
+	void (*tlb_init)(void);
+	int (*mmu_mapin)(vm_offset_t va, vm_size_t len);
+} *mmu_ops;
+
+
 typedef void kernel_entry_t(vm_offset_t mdp, u_long o1, u_long o2, u_long o3,
 			    void *openfirmware);
 
@@ -60,7 +67,33 @@
 extern vm_offset_t md_load(char *, vm_offset_t *);
 static int __elfN(exec)(struct preloaded_file *);
 static int sparc64_autoload(void);
-static int mmu_mapin(vm_offset_t, vm_size_t);
+static int mmu_mapin_sun4u(vm_offset_t, vm_size_t);
+static int mmu_mapin_sun4v(vm_offset_t, vm_size_t);
+static void tlb_init_sun4u(void);
+static void tlb_init_sun4v(void);
+
+struct mmu_ops mmu_ops_sun4u = 	{ tlb_init_sun4u, mmu_mapin_sun4u };
+struct mmu_ops mmu_ops_sun4v = 	{ tlb_init_sun4v, mmu_mapin_sun4v };
+
+extern char bootprog_name[], bootprog_rev[], bootprog_date[], bootprog_maker[];
+
+/* sun4u */
+struct tlb_entry *dtlb_store;
+struct tlb_entry *itlb_store;
+int dtlb_slot;
+int itlb_slot;
+int dtlb_slot_max;
+int itlb_slot_max;
+
+/* sun4v */
+struct tlb_entry *tlb_store;
+/* 
+ * no direct TLB access on sun4v
+ * we somewhat arbitrarily declare enough 
+ * slots to cover a 4GB AS with 4MB pages
+ */
+#define SUN4V_TLB_SLOT_MAX (1 << 10)
+
 
 extern char bootprog_name[], bootprog_rev[], bootprog_date[], bootprog_maker[];
 
@@ -204,14 +237,14 @@
 static ssize_t
 sparc64_readin(const int fd, vm_offset_t va, const size_t len)
 {
-	mmu_mapin(va, len);
+	mmu_ops->mmu_mapin(va, len);
 	return read(fd, (void *)va, len);
 }
 
 static ssize_t
 sparc64_copyin(const void *src, vm_offset_t dest, size_t len)
 {
-	mmu_mapin(dest, len);
+	mmu_ops->mmu_mapin(dest, len);
 	memcpy((void *)dest, src, len);
 	return len;
 }
@@ -252,7 +285,7 @@
 }
 
 static int
-mmu_mapin(vm_offset_t va, vm_size_t len)
+mmu_mapin_sun4u(vm_offset_t va, vm_size_t len)
 {
 	vm_offset_t pa, mva;
 	u_long data;
@@ -307,6 +340,53 @@
 	}
 	if (pa != (vm_offset_t)-1)
 		OF_release_phys(pa, PAGE_SIZE_4M);
+
+	return 0;
+}
+
+static int
+mmu_mapin_sun4v(vm_offset_t va, vm_size_t len)
+{
+
+	vm_offset_t pa, mva;
+	u_long data;
+	int ret;
+
+	if (va + len > curkva)
+		curkva = va + len;
+
+	pa = (vm_offset_t)-1;
+	len += va & PAGE_MASK_4M;
+	va &= ~PAGE_MASK_4M;
+	while (len) {
+		if ((va >> 22) > SUN4V_TLB_SLOT_MAX)
+			panic("trying to map more than 4GB");
+		if (tlb_store[va >> 22].te_pa == -1) {
+			/* Allocate a physical page, claim the virtual area */
+			if (pa == (vm_offset_t)-1) {
+				pa = (vm_offset_t)OF_alloc_phys(PAGE_SIZE_4M,
+				    PAGE_SIZE_4M);
+				if (pa == (vm_offset_t)-1)
+					panic("out of memory");
+				mva = (vm_offset_t)OF_claim_virt(va,
+				    PAGE_SIZE_4M, 0);
+				if (mva != va) {
+					panic("can't claim virtual page "
+					    "(wanted %#lx, got %#lx)",
+					    va, mva);
+				}
+			}
+
+			tlb_store[va >> 22].te_pa = pa;
+			if ((ret = OF_map_phys(-1, PAGE_SIZE_4M, va, pa)) != 0)
+				printf("OF_map_phys failed: %d\n", ret);
+			pa = (vm_offset_t)-1;
+		}
+		len -= len > PAGE_SIZE_4M ? PAGE_SIZE_4M : len;
+		va += PAGE_SIZE_4M;
+	}
+	if (pa != (vm_offset_t)-1)
+		OF_release_phys(pa, PAGE_SIZE_4M);
 	return 0;
 }
 
@@ -324,7 +404,7 @@
 }
 
 static void
-tlb_init(void)
+tlb_init_sun4u(void)
 {
 	phandle_t child;
 	phandle_t root;
@@ -361,11 +441,20 @@
 		panic("init_tlb: malloc");
 }
 
+static void
+tlb_init_sun4v(void)
+{
+	tlb_store = malloc(SUN4V_TLB_SLOT_MAX * sizeof(*tlb_store));
+	memset(tlb_store, 0xFF, SUN4V_TLB_SLOT_MAX * sizeof(*tlb_store));
+}
+
 int
 main(int (*openfirm)(void *))
 {
 	char bootpath[64];
+	char compatible[32];
 	struct devsw **dp;
+	phandle_t rooth;
 	phandle_t chosenh;
 
 	/*
@@ -381,13 +470,22 @@
 
 	init_heap();
 	setheap((void *)heapva, (void *)(heapva + HEAPSZ));
-
 	/*
 	 * Probe for a console.
 	 */
 	cons_probe();
 
-	tlb_init();
+	rooth = OF_peer(0);
+	OF_getprop(rooth, "compatible", compatible, sizeof(compatible));
+	if (!strcmp(compatible, "sun4v")) {
+		printf("\nBooting with sun4v support.\n");
+		mmu_ops = &mmu_ops_sun4v;
+	} else {
+		printf("\nBooting with sun4u support.\n");
+		mmu_ops = &mmu_ops_sun4u;
+	}
+
+	mmu_ops->tlb_init();
 
 	bcache_init(32, 512);
 

==== //depot/projects/linuxolator/src/sys/cam/scsi/scsi_da.c#3 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.192 2006/09/16 21:21:07 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.194 2006/10/07 19:04:23 flz Exp $");
 
 #include <sys/param.h>
 
@@ -443,6 +443,22 @@
 		{T_DIRECT, SIP_MEDIA_REMOVABLE, "Generic*", "STORAGE DEVICE*",
 		"*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
 	},
+	{
+		/*
+		 * Rekam Digital CAMERA
+		 * PR: usb/98713
+		 */
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "CAMERA*", "4MP-9J6*",
+		"*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
+	},
+	{
+		/*
+		 * iRiver H10 MP3 player
+		 * PR: usb/102547
+		 */
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "iriver", "H10*",
+		"*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
+       },
 };
 
 static	disk_strategy_t	dastrategy;

==== //depot/projects/linuxolator/src/sys/compat/linprocfs/linprocfs.c#3 (text+ko) ====

@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.97 2006/08/08 12:29:26 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.98 2006/10/08 16:55:27 netchild Exp $");
 
 #include <sys/param.h>
 #include <sys/queue.h>

==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#4 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_emul.c,v 1.6 2006/09/09 16:55:55 netchild Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_emul.c,v 1.7 2006/10/08 17:10:34 netchild Exp $");
 
 #include "opt_compat.h"
 

==== //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#5 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.187 2006/09/16 14:12:04 netchild Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.188 2006/10/08 17:08:27 netchild Exp $");
 
 #include "opt_compat.h"
 #include "opt_mac.h"

==== //depot/projects/linuxolator/src/sys/conf/files#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1149 2006/10/06 10:43:41 ru Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1150 2006/10/08 13:51:27 piso Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -1749,10 +1749,10 @@
 netinet/udp_usrreq.c		optional inet
 netinet/libalias/alias.c	optional libalias
 netinet/libalias/alias_db.c	optional libalias
+netinet/libalias/alias_mod.c	optional libalias
+netinet/libalias/alias_old.c	optional libalias
 netinet/libalias/alias_proxy.c	optional libalias
 netinet/libalias/alias_util.c	optional libalias
-netinet/libalias/alias_old.c	optional libalias
-netinet/libalias/alias_mod.c	optional libalias
 netinet6/ah_aesxcbcmac.c	optional ipsec
 netinet6/ah_core.c		optional ipsec
 netinet6/ah_input.c		optional ipsec

==== //depot/projects/linuxolator/src/sys/conf/files.sun4v#2 (text+ko) ====

@@ -1,7 +1,7 @@
 # This file tells config what files go into building a kernel,
 # files marked standard are always included.
 #
-# $FreeBSD: src/sys/conf/files.sun4v,v 1.1 2006/10/05 06:14:24 kmacy Exp $
+# $FreeBSD: src/sys/conf/files.sun4v,v 1.2 2006/10/09 04:45:17 kmacy Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -58,12 +58,6 @@
 sparc64/pci/ofw_pcib_subr.c	optional	pci
 sparc64/pci/ofw_pcibus.c	optional	pci
 sparc64/pci/ofw_pci_if.m	optional	pci
-sparc64/dtrace/dtrace_asm.s	optional	dtrace
-sparc64/dtrace/dtrace_isa.c	optional	dtrace
-sparc64/dtrace/fasttrap_isa.c	optional	dtrace
-sparc64/dtrace/fbt.c		optional	dtrace
-sparc64/dtrace/sdt.c		optional	dtrace
-sparc64/dtrace/dtrace_stub.c	standard
 
 # XXX hvcons should be optional
 sun4v/sun4v/hvcons.c	standard	

==== //depot/projects/linuxolator/src/sys/ddb/db_command.c#2 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ddb/db_command.c,v 1.68 2006/07/19 18:26:53 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/ddb/db_command.c,v 1.70 2006/10/08 18:37:00 bde Exp $");
 
 #include <sys/param.h>
 #include <sys/linker_set.h>
@@ -113,6 +113,7 @@
 	{ "delete",	db_delete_cmd,		0,	0 },
 	{ "d",		db_delete_cmd,		0,	0 },
 	{ "break",	db_breakpoint_cmd,	0,	0 },
+	{ "b",		db_breakpoint_cmd,	0,	0 },
 	{ "dwatch",	db_deletewatch_cmd,	0,	0 },
 	{ "watch",	db_watchpoint_cmd,	CS_MORE,0 },
 	{ "dhwatch",	db_deletehwatch_cmd,	0,      0 },
@@ -125,6 +126,7 @@
 	{ "next",	db_trace_until_matching_cmd,0,	0 },
 	{ "match",	db_trace_until_matching_cmd,0,	0 },
 	{ "trace",	db_stack_trace,		CS_OWN,	0 },
+	{ "t",		db_stack_trace,		CS_OWN,	0 },
 	{ "alltrace",	db_stack_trace_all,	0,	0 },
 	{ "where",	db_stack_trace,		CS_OWN,	0 },
 	{ "bt",		db_stack_trace,		CS_OWN,	0 },
@@ -132,6 +134,7 @@
 	{ "show",	0,			0,	&db_show_table },
 	{ "ps",		db_ps,			0,	0 },
 	{ "gdb",	db_gdb,			0,	0 },
+	{ "registers",	db_show_regs,		0,	0 },
 	{ "reset",	db_reset,		0,	0 },
 	{ "kill",	db_kill,		CS_OWN,	0 },
 	{ "watchdog",	db_watchdog,		0,	0 },
@@ -266,14 +269,14 @@
 
 	for (cmd = table->table; cmd->name != 0; cmd++) {
 	    db_printf("%-12s", cmd->name);
-	    db_end_line();
+	    db_end_line(12);
 	}
 	if (table->aux_tablep == NULL)
 	    return;
 	for (aux_cmdp = table->aux_tablep; aux_cmdp < table->aux_tablep_end;
 	     aux_cmdp++) {
 	    db_printf("%-12s", (*aux_cmdp)->name);
-	    db_end_line();
+	    db_end_line(12);
 	}
 }
 

==== //depot/projects/linuxolator/src/sys/ddb/db_examine.c#2 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ddb/db_examine.c,v 1.32 2005/01/06 01:34:41 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/ddb/db_examine.c,v 1.33 2006/10/08 18:15:07 bde Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -176,7 +176,7 @@
 				break;
 			}
 			if (db_print_position() != 0)
-			    db_end_line();
+			    db_end_line(1);
 			break;
 		}
 	    }

==== //depot/projects/linuxolator/src/sys/ddb/db_output.c#2 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ddb/db_output.c,v 1.35 2006/07/12 21:22:43 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/ddb/db_output.c,v 1.36 2006/10/08 18:15:08 bde Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -304,8 +304,8 @@
  * End line if too long.
  */
 void
-db_end_line()
+db_end_line(int field_width)
 {
-	if (db_output_position >= db_max_width)
+	if (db_output_position + field_width > db_max_width)
 	    db_printf("\n");
 }

==== //depot/projects/linuxolator/src/sys/ddb/db_output.h#2 (text+ko) ====

@@ -23,7 +23,7 @@
  * any improvements or extensions that they make and grant Carnegie the
  * rights to redistribute these changes.
  *
- * $FreeBSD: src/sys/ddb/db_output.h,v 1.14 2006/07/12 21:22:43 jhb Exp $
+ * $FreeBSD: src/sys/ddb/db_output.h,v 1.15 2006/10/08 18:15:08 bde Exp $
  */
 
 #ifndef _DDB_DB_OUTPUT_H_
@@ -40,7 +40,7 @@
 
 void	db_disable_pager(void);
 void	db_enable_pager(void);
-void	db_end_line(void);
+void	db_end_line(int);
 void	db_force_whitespace(void);
 int	db_print_position(void);
 

==== //depot/projects/linuxolator/src/sys/dev/ata/ata-chipset.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.176 2006/09/25 11:26:29 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.177 2006/10/08 09:58:00 sos Exp $");
 
 #include "opt_ata.h"
 #include <sys/param.h>
@@ -950,6 +950,7 @@
     struct ata_chip_id *idx;
     static struct ata_chip_id ids[] =
     {{ ATA_ALI_5289, 0x00, 2, ALISATA, ATA_SA150, "M5289" },
+     { ATA_ALI_5288, 0x00, 4, ALISATA, ATA_SA300, "M5288" },
      { ATA_ALI_5287, 0x00, 4, ALISATA, ATA_SA150, "M5287" },
      { ATA_ALI_5281, 0x00, 2, ALISATA, ATA_SA150, "M5281" },
      { ATA_ALI_5229, 0xc5, 0, ALINEW,  ATA_UDMA6, "M5229" },

==== //depot/projects/linuxolator/src/sys/dev/ofw/openfirm.c#2 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ofw/openfirm.c,v 1.15 2005/11/22 14:21:03 marius Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ofw/openfirm.c,v 1.16 2006/10/09 04:45:17 kmacy Exp $");
 /*-
  * Copyright (C) 2000 Benno Rice.
  * All rights reserved.
@@ -814,3 +814,36 @@
 	entry(0, 0, openfirmware, arg, len);
 }
 #endif
+
+
+/*
+ * Extensions added for sun4v support
+ *
+ */
+
+/*
+ * This interface allows the client to safely take over the %tba by
+ * the prom's service. The prom will take care of the quiescence of
+ * interrupts and handle any pending soft interrupts.
+ * This call also sets the MMU fault status area for the cpu.
+ */
+void
+OF_set_mmfsa_traptable(void *tba_addr, uint64_t mmfsa_ra)
+{
+        static struct {
+                cell_t   name;
+                cell_t   nargs;
+                cell_t   nreturns;
+                cell_t   tba_addr;
+                cell_t   mmfsa_ra;
+        } args = {
+                (cell_t)"SUNW,set-trap-table",
+                2,
+                0,
+        };
+
+        args.tba_addr = p1275_ptr2cell(tba_addr);
+        args.mmfsa_ra = p1275_ptr2cell(mmfsa_ra);
+        openfirmware(&args);
+}
+

==== //depot/projects/linuxolator/src/sys/dev/ofw/openfirm.h#2 (text+ko) ====

@@ -54,7 +54,7 @@
  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ofw/openfirm.h,v 1.11 2005/01/06 01:43:00 imp Exp $
+ * $FreeBSD: src/sys/dev/ofw/openfirm.h,v 1.12 2006/10/09 04:45:17 kmacy Exp $
  */
 
 #ifndef _OPENFIRM_H_
@@ -74,6 +74,27 @@
 #include <sys/types.h>
 #include <sys/malloc.h>
 
+#define p1275_ptr2cell(p)       ((cell_t)((uintptr_t)((void *)(p))))
+#define p1275_int2cell(i)       ((cell_t)((int)(i)))
+#define p1275_uint2cell(u)      ((cell_t)((unsigned int)(u)))
+#define p1275_size2cell(u)      ((cell_t)((size_t)(u)))
+#define p1275_phandle2cell(ph)  ((cell_t)((unsigned int)((phandle_t)(ph))))
+#define p1275_dnode2cell(d)     ((cell_t)((unsigned int)((pnode_t)(d))))
+#define p1275_ihandle2cell(ih)  ((cell_t)((unsigned int)((ihandle_t)(ih))))
+#define p1275_ull2cell_high(ll) (0LL)
+#define p1275_ull2cell_low(ll)  ((cell_t)(ll))
+#define p1275_uintptr2cell(i)   ((cell_t)((uintptr_t)(i)))
+
+#define p1275_cell2ptr(p)       ((void *)((cell_t)(p)))
+#define p1275_cell2int(i)       ((int)((cell_t)(i)))
+#define p1275_cell2uint(u)      ((unsigned int)((cell_t)(u)))
+#define p1275_cell2size(u)      ((size_t)((cell_t)(u)))
+#define p1275_cell2phandle(ph)  ((phandle_t)((cell_t)(ph)))
+#define p1275_cell2dnode(d)     ((pnode_t)((cell_t)(d)))
+#define p1275_cell2ihandle(ih)  ((ihandle_t)((cell_t)(ih)))
+#define p1275_cells2ull(h, l)   ((unsigned long long)(cell_t)(l))
+#define p1275_cell2uintptr(i)   ((uintptr_t)((cell_t)(i)))
+
 MALLOC_DECLARE(M_OFWPROP);
 
 /*
@@ -138,5 +159,10 @@
 /* Time function */
 int		OF_milliseconds(void);
 
+/* sun4v additions */
+void            OF_set_mmfsa_traptable(void *tba_addr, uint64_t mmfsa_ra);
+int             OF_translate_virt(vm_offset_t va, int *valid, vm_paddr_t *physaddr, int *mode);
+vm_paddr_t      OF_vtophys(vm_offset_t va);
+
 #endif /* _KERNEL */
 #endif /* _OPENFIRM_H_ */

==== //depot/projects/linuxolator/src/sys/dev/sound/pci/hda/hdac.c#2 (text+ko) ====

@@ -80,10 +80,10 @@
 
 #include "mixer_if.h"
 
-#define HDA_DRV_TEST_REV	"20061007_0030"
+#define HDA_DRV_TEST_REV	"20061009_0031"
 #define HDA_WIDGET_PARSER_REV	1
 
-SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.4 2006/10/06 18:59:27 ariff Exp $");
+SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.5 2006/10/08 18:51:58 ariff Exp $");
 
 #undef HDA_DEBUG_ENABLED
 #define HDA_DEBUG_ENABLED	1
@@ -125,19 +125,36 @@
 #define INTEL_VENDORID		0x8086
 #define HDA_INTEL_82801F	HDA_MODEL_CONSTRUCT(INTEL, 0x2668)
 #define HDA_INTEL_82801G	HDA_MODEL_CONSTRUCT(INTEL, 0x27d8)
+#define HDA_INTEL_82801H	HDA_MODEL_CONSTRUCT(INTEL, 0x284b)
+#define HDA_INTEL_63XXESB	HDA_MODEL_CONSTRUCT(INTEL, 0x269a)
 #define HDA_INTEL_ALL		HDA_MODEL_CONSTRUCT(INTEL, 0xffff)
 
 /* Nvidia */
 #define NVIDIA_VENDORID		0x10de
 #define HDA_NVIDIA_MCP51	HDA_MODEL_CONSTRUCT(NVIDIA, 0x026c)
 #define HDA_NVIDIA_MCP55	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0371)
+#define HDA_NVIDIA_MCP61A	HDA_MODEL_CONSTRUCT(NVIDIA, 0x03e4)
+#define HDA_NVIDIA_MCP61B	HDA_MODEL_CONSTRUCT(NVIDIA, 0x03f0)
+#define HDA_NVIDIA_MCP65A	HDA_MODEL_CONSTRUCT(NVIDIA, 0x044a)
+#define HDA_NVIDIA_MCP65B	HDA_MODEL_CONSTRUCT(NVIDIA, 0x044b)
 #define HDA_NVIDIA_ALL		HDA_MODEL_CONSTRUCT(NVIDIA, 0xffff)
 
 /* ATI */
 #define ATI_VENDORID		0x1002
 #define HDA_ATI_SB450		HDA_MODEL_CONSTRUCT(ATI, 0x437b)
+#define HDA_ATI_SB600		HDA_MODEL_CONSTRUCT(ATI, 0x4383)
 #define HDA_ATI_ALL		HDA_MODEL_CONSTRUCT(ATI, 0xffff)
 
+/* VIA */
+#define VIA_VENDORID		0x1106
+#define HDA_VIA_VT82XX		HDA_MODEL_CONSTRUCT(VIA, 0x3288)
+#define HDA_VIA_ALL		HDA_MODEL_CONSTRUCT(VIA, 0xffff)
+
+/* SiS */
+#define SIS_VENDORID		0x1039
+#define HDA_SIS_966		HDA_MODEL_CONSTRUCT(SIS, 0x7502)
+#define HDA_SIS_ALL		HDA_MODEL_CONSTRUCT(SIS, 0xffff)
+
 /* OEM/subvendors */
 
 /* HP/Compaq */
@@ -204,7 +221,7 @@
 	{ "gpio2", HDA_QUIRK_GPIO2 },
 	{ "softpcmvol", HDA_QUIRK_SOFTPCMVOL },
 	{ "fixedrate", HDA_QUIRK_FIXEDRATE },
-	{ "forcestereo", HDA_QUIRK_FORCESTEREO }
+	{ "forcestereo", HDA_QUIRK_FORCESTEREO },
 };
 #define HDAC_QUIRKS_TAB_LEN	\
 		(sizeof(hdac_quirks_tab) / sizeof(hdac_quirks_tab[0]))
@@ -242,13 +259,24 @@
 } hdac_devices[] = {
 	{ HDA_INTEL_82801F,  "Intel 82801F" },
 	{ HDA_INTEL_82801G,  "Intel 82801G" },
+	{ HDA_INTEL_82801H,  "Intel 82801H" },
+	{ HDA_INTEL_63XXESB, "Intel 631x/632xESB" },
 	{ HDA_NVIDIA_MCP51,  "NVidia MCP51" },
 	{ HDA_NVIDIA_MCP55,  "NVidia MCP55" },
+	{ HDA_NVIDIA_MCP61A, "NVidia MCP61A" },
+	{ HDA_NVIDIA_MCP61B, "NVidia MCP61B" },
+	{ HDA_NVIDIA_MCP65A, "NVidia MCP65A" },
+	{ HDA_NVIDIA_MCP65B, "NVidia MCP65B" },
 	{ HDA_ATI_SB450,     "ATI SB450"    },
+	{ HDA_ATI_SB600,     "ATI SB600"    },
+	{ HDA_VIA_VT82XX,    "VIA VT8251/8237A" },
+	{ HDA_SIS_966,       "SiS 966" },
 	/* Unknown */
 	{ HDA_INTEL_ALL,  "Intel (Unknown)"  },
 	{ HDA_NVIDIA_ALL, "NVidia (Unknown)" },
 	{ HDA_ATI_ALL,    "ATI (Unknown)"    },
+	{ HDA_VIA_ALL,    "VIA (Unknown)"    },
+	{ HDA_SIS_ALL,    "SiS (Unknown)"    },
 };
 #define HDAC_DEVICES_LEN (sizeof(hdac_devices) / sizeof(hdac_devices[0]))
 

==== //depot/projects/linuxolator/src/sys/dev/sound/pcm/dsp.c#4 (text+ko) ====

@@ -29,7 +29,7 @@
 
 #include <dev/sound/pcm/sound.h>
 
-SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/dsp.c,v 1.97 2006/09/29 09:10:54 ru Exp $");
+SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/dsp.c,v 1.98 2006/10/08 17:13:54 netchild Exp $");
 
 #define OLDPCM_IOCTL
 
@@ -1965,8 +1965,6 @@
 	if (ret != 0) {
 		if (smrd != NULL)
 			free(smrd, M_DEVBUF);
-		if (smwr != NULL)
-			free(smwr, M_DEVBUF);
 		if ((sg != NULL) && SLIST_EMPTY(&sg->members)) {
 			sg_ids[2] = sg->id;
 			SLIST_REMOVE(&snd_pcm_syncgroups, sg, pcmchan_syncgroup, link);

==== //depot/projects/linuxolator/src/sys/dev/usb/if_aue.c#2 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/if_aue.c,v 1.99 2006/09/07 00:06:41 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/if_aue.c,v 1.100 2006/10/07 17:58:50 flz Exp $");
 
 /*
  * ADMtek AN986 Pegasus and AN8511 Pegasus II USB to ethernet driver.
@@ -169,6 +169,7 @@
  {{ USB_VENDOR_MELCO,		USB_PRODUCT_MELCO_LUATX1},	  0 },
  {{ USB_VENDOR_MELCO,		USB_PRODUCT_MELCO_LUATX5},	  0 },
  {{ USB_VENDOR_MELCO,		USB_PRODUCT_MELCO_LUA2TX5},	  PII },
+ {{ USB_VENDOR_NETGEAR,		USB_PRODUCT_NETGEAR_FA101},	  PII },
  {{ USB_VENDOR_SIEMENS,		USB_PRODUCT_SIEMENS_SPEEDSTREAM}, PII },
  {{ USB_VENDOR_SMARTBRIDGES,	USB_PRODUCT_SMARTBRIDGES_SMARTNIC},PII },
  {{ USB_VENDOR_SMC,		USB_PRODUCT_SMC_2202USB},	  0 },

==== //depot/projects/linuxolator/src/sys/dev/usb/if_cdce.c#3 (text+ko) ====

@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/if_cdce.c,v 1.15 2006/09/22 12:45:42 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/if_cdce.c,v 1.16 2006/10/07 17:35:37 flz Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -104,6 +104,7 @@
   {{ USB_VENDOR_SHARP, USB_PRODUCT_SHARP_SLC750 }, CDCE_ZAURUS | CDCE_NO_UNION },
   {{ USB_VENDOR_GMATE, USB_PRODUCT_GMATE_YP3X00 }, CDCE_NO_UNION },
   {{ USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_ETHERNETGADGET }, CDCE_NO_UNION },
+  {{ USB_VENDOR_COMPAQ, USB_PRODUCT_COMPAQ_IPAQLINUX }, CDCE_NO_UNION },
 };
 #define cdce_lookup(v, p) ((const struct cdce_type *)usb_lookup(cdce_devs, v, p))
 

==== //depot/projects/linuxolator/src/sys/dev/usb/if_kue.c#2 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/if_kue.c,v 1.70 2006/09/07 00:06:41 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/if_kue.c,v 1.71 2006/10/07 18:03:39 flz Exp $");
 
 /*
  * Kawasaki LSI KL5KUSB101B USB to ethernet adapter driver.
@@ -124,6 +124,7 @@
 	{ USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET3 },
 	{ USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETT },
 	{ USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_URE450 },
+	{ USB_VENDOR_SILICOM, USB_PRODUCT_SILICOM_GPE },
 	{ 0, 0 }
 };
 

==== //depot/projects/linuxolator/src/sys/dev/usb/if_ural.c#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/dev/usb/if_ural.c,v 1.45 2006/09/07 00:06:41 imp Exp $	*/
+/*	$FreeBSD: src/sys/dev/usb/if_ural.c,v 1.46 2006/10/07 18:18:40 flz Exp $	*/
 
 /*-
  * Copyright (c) 2005, 2006
@@ -18,7 +18,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/if_ural.c,v 1.45 2006/09/07 00:06:41 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/if_ural.c,v 1.46 2006/10/07 18:18:40 flz Exp $");
 
 /*-
  * Ralink Technology RT2500USB chipset driver
@@ -97,6 +97,7 @@
 	{ USB_VENDOR_MSI,		USB_PRODUCT_MSI_RT2570 },
 	{ USB_VENDOR_MSI,		USB_PRODUCT_MSI_RT2570_2 },
 	{ USB_VENDOR_MSI,		USB_PRODUCT_MSI_RT2570_3 },
+	{ USB_VENDOR_NOVATECH,		USB_PRODUCT_NOVATECH_NV902 },
 	{ USB_VENDOR_RALINK,		USB_PRODUCT_RALINK_RT2570 },
 	{ USB_VENDOR_RALINK,		USB_PRODUCT_RALINK_RT2570_2 },
 	{ USB_VENDOR_VTECH,		USB_PRODUCT_VTECH_RT2570 },

==== //depot/projects/linuxolator/src/sys/dev/usb/umass.c#2 (text+ko) ====

@@ -24,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	$FreeBSD: src/sys/dev/usb/umass.c,v 1.137 2006/09/07 00:06:42 imp Exp $
+ *	$FreeBSD: src/sys/dev/usb/umass.c,v 1.138 2006/10/07 20:08:37 flz Exp $
  *	$NetBSD: umass.c,v 1.28 2000/04/02 23:46:53 augustss Exp $
  */
 
@@ -426,6 +426,10 @@
 	  UMASS_PROTO_ATAPI | UMASS_PROTO_BBB,
 	  NO_INQUIRY | NO_GETMAXLUN
 	},
+	{ USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXL840AN, RID_WILDCARD,
+	  UMASS_PROTO_ATAPI | UMASS_PROTO_BBB,
+	  NO_GETMAXLUN
+	},
 	{ USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB20AN, RID_WILDCARD,
 	  UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
 	  NO_QUIRKS

==== //depot/projects/linuxolator/src/sys/dev/usb/usb_quirks.c#2 (text+ko) ====

@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/usb_quirks.c,v 1.50 2006/09/06 23:44:24 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/usb_quirks.c,v 1.54 2006/10/07 19:42:45 flz Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -79,6 +79,8 @@
  { USB_VENDOR_TELEX, USB_PRODUCT_TELEX_MIC1,	    0x009, { UQ_AU_NO_FRAC }},
  { USB_VENDOR_SILICONPORTALS, USB_PRODUCT_SILICONPORTALS_YAPPHONE,
    						    0x100, { UQ_AU_INP_ASYNC }},
+ { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_UN53B, ANY, { UQ_NO_STRINGS }},
+ { USB_VENDOR_CMOTECH, USB_PRODUCT_CMOTECH_CDMAMODEM, ANY, { UQ_ASSUME_CM_OVER_DATA }},
  /* XXX These should have a revision number, but I don't know what they are. */
  { USB_VENDOR_HP, USB_PRODUCT_HP_895C,		    ANY,   { UQ_BROKEN_BIDIR }},
  { USB_VENDOR_HP, USB_PRODUCT_HP_880C,		    ANY,   { UQ_BROKEN_BIDIR }},
@@ -101,9 +103,13 @@
 	ANY, { UQ_ASSUME_CM_OVER_DATA }},
  { USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_AS64LX,
 	0x100, { UQ_ASSUME_CM_OVER_DATA }},
+ { USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_A41XV32X,
+	ANY, { UQ_ASSUME_CM_OVER_DATA }},
  /* Devices which should be ignored by uhid */
  { USB_VENDOR_APC, USB_PRODUCT_APC_UPS,
 	ANY, { UQ_HID_IGNORE }},
+ { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR,
+	ANY, { UQ_HID_IGNORE }},
  { USB_VENDOR_DELORME, USB_PRODUCT_DELORME_EARTHMATE,
 	ANY, { UQ_HID_IGNORE }},
  { USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS1,

==== //depot/projects/linuxolator/src/sys/dev/usb/usbdevs#3 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/sys/dev/usb/usbdevs,v 1.265 2006/10/07 16:00:58 flz Exp $
+$FreeBSD: src/sys/dev/usb/usbdevs,v 1.275 2006/10/07 20:08:37 flz Exp $
 /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */
 
 /*-
@@ -483,6 +483,7 @@
 vendor GMATE		0x0e7e	G.Mate, Inc
 vendor OTI		0x0ea0	Ours
 vendor PILOTECH		0x0eaf	Pilotech
+vendor NOVATECH		0x0eb0	NovaTech
 vendor EGALAX		0x0eef	eGalax
 vendor MICROTUNE	0x0f4d	Microtune
 vendor VTECH		0x0f88	VTech
@@ -520,6 +521,7 @@
 vendor INSIDEOUT	0x1608	Inside Out Networks
 vendor ENTREGA		0x1645	Entrega
 vendor ACTIONTEC	0x1668	Actiontec
+vendor CMOTECH		0x16d8	CMOTECH CO., LTD.
 vendor LINKSYS3		0x1915	Linksys
 vendor DLINK		0x2001	D-Link
 vendor ERICSSON		0x2282	Ericsson
@@ -709,6 +711,7 @@
 product BELKIN F5U109		0x0109	F5U109 Serial
 product BELKIN F5U208		0x0208	F5U208 VideoBus II
 product BELKIN F5U409		0x0409	F5U409 Serial
+product BELKIN F6C550AVR	0x0551	F6C550-AVR UPS
 product BELKIN F5U120		0x1203	F5U120-PC Hub
 product BELKIN F5D7050		0x7050	F5D7050 wireless adapter
 
@@ -759,8 +762,12 @@
 /* Chicony products */
 product CHICONY KB8933		0x0001	KB-8933 keyboard
 
+/* CMOTECH products */
+product CMOTECH CDMAMODEM	0x5141	CMOTECH CDMA Technologies USB modem
+
 /* Compaq products */
 product COMPAQ PJB100		0x504a	Personal Jukebox PJB100
+product COMPAQ IPAQLINUX	0x505a	iPAQ Linux
 
 /* Connectix products */
 product CONNECTIX QUICKCAM	0x0001	QuickCam
@@ -894,6 +901,7 @@
 product EPSON 4990		0x012a	Perfection 4990 Photo scanner
 product EPSON 3500		0x080e	CX-3500/3600/3650 MFP
 product EPSON RX425		0x080f	Stylus Photo RX425 scanner
+product EPSON 4200		0x0820  CX4200 MP scanner
 
 /* e-TEK Labs products */
 product ETEK 1COM		0x8007	Serial
@@ -1170,10 +1178,11 @@
 product LOGITECH WMMOUSE	0xc004	WingMan Gaming Mouse
 product LOGITECH BD58		0xc00c	BD58 mouse
 product LOGITECH UN58A		0xc030	iFeel Mouse
-product LOGITECH BB13		0xc401	USB-PS/2 Trackball
+product LOGITECH UN53B		0xc032	iFeel MouseMan
 product LOGITECH WMPAD		0xc208	WingMan GamePad Extreme
 product LOGITECH WMRPAD		0xc20a	WingMan RumblePad
 product LOGITECH WMJOY		0xc281	WingMan Force joystick
+product LOGITECH BB13		0xc401	USB-PS/2 Trackball
 product LOGITECH RK53		0xc501	Cordless mouse
 product LOGITECH RB6		0xc503	Cordless keyboard
 product LOGITECH MX700		0xc506	Cordless optical mouse
@@ -1275,6 +1284,7 @@

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200610091448.k99Ema1F034409>