svn commit: r186460 - in projects/cambria: . etc etc/devd lib/bind/dns lib/bind/dns/dns lib/libarchive lib/libarchive/test libexec/ftpd sbin/kldstat sbin/mount_msdosfs sbin/shutdown share/man/man4 ...

Sam Leffler sam at FreeBSD.org
Tue Dec 23 13:07:59 PST 2008


Author: sam
Date: Tue Dec 23 21:07:57 2008
New Revision: 186460
URL: http://svn.freebsd.org/changeset/base/186460

Log:
  merge from HEAD

Added:
  projects/cambria/sys/dev/usb/ehci_ixp4xx.c
     - copied unchanged from r186445, head/sys/dev/usb/ehci_ixp4xx.c
  projects/cambria/tools/tools/ether_reflect/
     - copied from r186457, head/tools/tools/ether_reflect/
  projects/cambria/usr.bin/elf2aout/elf2aout.1
     - copied unchanged from r186445, head/usr.bin/elf2aout/elf2aout.1
Deleted:
  projects/cambria/sys/netinet/ipprotosw.h
Modified:
  projects/cambria/   (props changed)
  projects/cambria/ObsoleteFiles.inc
  projects/cambria/etc/devd.conf
  projects/cambria/etc/devd/asus.conf
  projects/cambria/lib/bind/dns/code.h
  projects/cambria/lib/bind/dns/dns/enumclass.h
  projects/cambria/lib/bind/dns/dns/enumtype.h
  projects/cambria/lib/bind/dns/dns/rdatastruct.h
  projects/cambria/lib/libarchive/archive_entry.c
  projects/cambria/lib/libarchive/test/main.c
  projects/cambria/libexec/ftpd/extern.h
  projects/cambria/libexec/ftpd/ftpcmd.y
  projects/cambria/libexec/ftpd/ftpd.c
  projects/cambria/sbin/kldstat/kldstat.c
  projects/cambria/sbin/mount_msdosfs/mount_msdosfs.8
  projects/cambria/sbin/shutdown/shutdown.8
  projects/cambria/share/man/man4/uscanner.4
  projects/cambria/share/man/man5/nsswitch.conf.5
  projects/cambria/share/man/man9/domain.9
  projects/cambria/sys/cam/cam_sim.h
  projects/cambria/sys/cam/scsi/scsi_cd.c
  projects/cambria/sys/cam/scsi/scsi_da.c
  projects/cambria/sys/cam/scsi/scsi_pass.c
  projects/cambria/sys/cam/scsi/scsi_sg.c
  projects/cambria/sys/conf/files
  projects/cambria/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
  projects/cambria/sys/dev/agp/agp.c
  projects/cambria/sys/dev/agp/agp_i810.c
  projects/cambria/sys/dev/agp/agppriv.h
  projects/cambria/sys/dev/drm/drmP.h
  projects/cambria/sys/dev/re/if_re.c
  projects/cambria/sys/dev/sound/pci/hda/hdac.c
  projects/cambria/sys/dev/usb/ehci_mbus.c
  projects/cambria/sys/dev/usb/uftdi.c
  projects/cambria/sys/dev/usb/usbdevs
  projects/cambria/sys/dev/usb/uscanner.c
  projects/cambria/sys/dev/usb2/controller/at91dci.c
  projects/cambria/sys/dev/usb2/controller/at91dci_atmelarm.c
  projects/cambria/sys/dev/usb2/controller/ehci2.c
  projects/cambria/sys/dev/usb2/controller/ehci2_pci.c
  projects/cambria/sys/dev/usb2/controller/musb2_otg.c
  projects/cambria/sys/dev/usb2/controller/musb2_otg_atmelarm.c
  projects/cambria/sys/dev/usb2/controller/ohci2.c
  projects/cambria/sys/dev/usb2/controller/ohci2_atmelarm.c
  projects/cambria/sys/dev/usb2/controller/ohci2_pci.c
  projects/cambria/sys/dev/usb2/controller/uhci2.c
  projects/cambria/sys/dev/usb2/controller/uhci2_pci.c
  projects/cambria/sys/dev/usb2/controller/usb2_bus.h
  projects/cambria/sys/dev/usb2/controller/usb2_controller.c
  projects/cambria/sys/dev/usb2/controller/uss820dci.c
  projects/cambria/sys/dev/usb2/controller/uss820dci_atmelarm.c
  projects/cambria/sys/dev/usb2/core/usb2_transfer.c
  projects/cambria/sys/dev/usb2/ethernet/if_aue2.c
  projects/cambria/sys/dev/usb2/ethernet/if_axe2.c
  projects/cambria/sys/dev/usb2/ethernet/if_cue2.c
  projects/cambria/sys/dev/usb2/ethernet/if_kue2.c
  projects/cambria/sys/dev/usb2/ethernet/if_rue2.c
  projects/cambria/sys/dev/usb2/ethernet/if_udav2.c
  projects/cambria/sys/dev/usb2/input/ukbd2.c
  projects/cambria/sys/dev/usb2/input/ums2.c
  projects/cambria/sys/dev/usb2/serial/ulpt2.c
  projects/cambria/sys/dev/usb2/wlan/if_rum2.c
  projects/cambria/sys/dev/usb2/wlan/if_ural2.c
  projects/cambria/sys/dev/usb2/wlan/if_zyd2.c
  projects/cambria/sys/kern/sched_ule.c
  projects/cambria/sys/kern/subr_prf.c
  projects/cambria/sys/kern/tty.c
  projects/cambria/sys/kern/tty_pts.c
  projects/cambria/sys/kern/uipc_domain.c
  projects/cambria/sys/kern/vfs_cache.c
  projects/cambria/sys/net/if_tun.c
  projects/cambria/sys/netinet/if_ether.c
  projects/cambria/sys/netinet6/in6.c
  projects/cambria/sys/netinet6/ip6_input.c
  projects/cambria/sys/netipsec/vipsec.h
  projects/cambria/sys/pc98/conf/GENERIC
  projects/cambria/sys/pci/if_rl.c
  projects/cambria/sys/security/mac/mac_process.c
  projects/cambria/sys/sparc64/sparc64/mp_machdep.c
  projects/cambria/sys/sun4v/include/ofw_machdep.h
  projects/cambria/sys/vm/vm_object.c
  projects/cambria/tools/regression/bin/sh/builtins/type1.0.stderr   (props changed)
  projects/cambria/tools/tools/README
  projects/cambria/tools/tools/mctest/mctest.1
  projects/cambria/usr.bin/elf2aout/Makefile
  projects/cambria/usr.bin/ncal/ncal.1
  projects/cambria/usr.bin/ncal/ncal.c
  projects/cambria/usr.sbin/burncd/burncd.c
  projects/cambria/usr.sbin/makefs/ffs/ffs_bswap.c   (props changed)
  projects/cambria/usr.sbin/makefs/ffs/ffs_subr.c   (props changed)
  projects/cambria/usr.sbin/makefs/ffs/ufs_bswap.h   (props changed)
  projects/cambria/usr.sbin/makefs/getid.c   (props changed)
  projects/cambria/usr.sbin/nscd/nscd.conf.5
  projects/cambria/usr.sbin/pmcstat/pmcstat.c
  projects/cambria/usr.sbin/syslogd/syslog.conf.5

Modified: projects/cambria/ObsoleteFiles.inc
==============================================================================
--- projects/cambria/ObsoleteFiles.inc	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/ObsoleteFiles.inc	Tue Dec 23 21:07:57 2008	(r186460)
@@ -14,6 +14,8 @@
 # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
 #
 
+# 20081223: ipprotosw.h removed
+OLD_FILES+=usr/include/netinet/ipprotosw.h
 # 20081123: vfs_mountedon.9 removed
 OLD_FILES+=usr/share/man/man9/vfs_mountedon.9.gz
 # 20081023: FREE.9 and MALLOC.9 removed

Modified: projects/cambria/etc/devd.conf
==============================================================================
--- projects/cambria/etc/devd.conf	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/etc/devd.conf	Tue Dec 23 21:07:57 2008	(r186460)
@@ -255,28 +255,6 @@ notify 10 {
 	action "/etc/rc.resume acpi $notify";
 };
 
-# The next blocks enable volume hotkeys that can be found on the Asus laptops
-notify 0 {
-	match "system"		"ACPI";
-	match "subsystem"	"ASUS";
-	match "notify"		"0x32";
-	action			"mixer 0";
-};
-
-notify 0 {
-	match "system"		"ACPI";
-	match "subsystem"	"ASUS";
-	match "notify"		"0x31";
-	action			"mixer vol -10";
-};
-
-notify 0 {
-	match "system"		"ACPI";
-	match "subsystem"	"ASUS";
-	match "notify"		"0x30";
-	action			"mixer vol +10";
-};
-
 /* EXAMPLES TO END OF FILE
 
 # The following might be an example of something that a vendor might

Modified: projects/cambria/etc/devd/asus.conf
==============================================================================
--- projects/cambria/etc/devd/asus.conf	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/etc/devd/asus.conf	Tue Dec 23 21:07:57 2008	(r186460)
@@ -2,6 +2,28 @@
 #
 # ASUS specific devd events
 
+# The next blocks enable volume hotkeys that can be found on the Asus laptops
+notify 0 {
+	match "system"		"ACPI";
+	match "subsystem"	"ASUS";
+	match "notify"		"0x32";
+	action			"mixer 0";
+};
+
+notify 0 {
+	match "system"		"ACPI";
+	match "subsystem"	"ASUS";
+	match "notify"		"0x31";
+	action			"mixer vol -10";
+};
+
+notify 0 {
+	match "system"		"ACPI";
+	match "subsystem"	"ASUS";
+	match "notify"		"0x30";
+	action			"mixer vol +10";
+};
+
 # The next blocks enable volume hotkeys that can be found on the Asus EeePC
 notify 0 {
         match "system"          "ACPI";

Modified: projects/cambria/lib/bind/dns/code.h
==============================================================================
--- projects/cambria/lib/bind/dns/code.h	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/lib/bind/dns/code.h	Tue Dec 23 21:07:57 2008	(r186460)
@@ -1,7 +1,7 @@
 /* $FreeBSD$ */
 
 /*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
  * Copyright (C) 1998-2003 Internet Software Consortium.
  *
  * Permission to use, copy, modify, and distribute this software for any

Modified: projects/cambria/lib/bind/dns/dns/enumclass.h
==============================================================================
--- projects/cambria/lib/bind/dns/dns/enumclass.h	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/lib/bind/dns/dns/enumclass.h	Tue Dec 23 21:07:57 2008	(r186460)
@@ -1,7 +1,7 @@
 /* $FreeBSD$ */
 
 /*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
  * Copyright (C) 1998-2003 Internet Software Consortium.
  *
  * Permission to use, copy, modify, and distribute this software for any

Modified: projects/cambria/lib/bind/dns/dns/enumtype.h
==============================================================================
--- projects/cambria/lib/bind/dns/dns/enumtype.h	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/lib/bind/dns/dns/enumtype.h	Tue Dec 23 21:07:57 2008	(r186460)
@@ -1,7 +1,7 @@
 /* $FreeBSD$ */
 
 /*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
  * Copyright (C) 1998-2003 Internet Software Consortium.
  *
  * Permission to use, copy, modify, and distribute this software for any

Modified: projects/cambria/lib/bind/dns/dns/rdatastruct.h
==============================================================================
--- projects/cambria/lib/bind/dns/dns/rdatastruct.h	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/lib/bind/dns/dns/rdatastruct.h	Tue Dec 23 21:07:57 2008	(r186460)
@@ -1,7 +1,7 @@
 /* $FreeBSD$ */
 
 /*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
  * Copyright (C) 1998-2003 Internet Software Consortium.
  *
  * Permission to use, copy, modify, and distribute this software for any
@@ -1608,10 +1608,10 @@ typedef struct dns_rdata_rrsig {
 
 #endif /* GENERIC_DNSSIG_46_H */
 /*
- * Copyright (C) 2004, 2005  Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2008  Internet Systems Consortium, Inc. ("ISC")
  * Copyright (C) 2003  Internet Software Consortium.
  *
- * Permission to use, copy, modify, and distribute this software for any
+ * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
  * copyright notice and this permission notice appear in all copies.
  *
@@ -1627,10 +1627,10 @@ typedef struct dns_rdata_rrsig {
 #ifndef GENERIC_NSEC_47_H
 #define GENERIC_NSEC_47_H 1
 
-/* $Id: nsec_47.h,v 1.4.20.2 2005/04/29 00:16:37 marka Exp $ */
+/* $Id: nsec_47.h,v 1.4.20.4 2008/07/15 23:46:14 tbox Exp $ */
 
 /*!
- * \brief Per draft-ietf-dnsext-nsec-rdata-01.txt */
+ * \brief Per RFC 3845 */
 
 typedef struct dns_rdata_nsec {
 	dns_rdatacommon_t	common;

Modified: projects/cambria/lib/libarchive/archive_entry.c
==============================================================================
--- projects/cambria/lib/libarchive/archive_entry.c	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/lib/libarchive/archive_entry.c	Tue Dec 23 21:07:57 2008	(r186460)
@@ -239,7 +239,8 @@ aes_get_wcs(struct aes *aes)
 	if (aes->aes_set & AES_SET_UTF8) {
 		/* Try converting UTF8 to WCS. */
 		aes->aes_wcs = __archive_string_utf8_w(&(aes->aes_utf8));
-		aes->aes_set |= AES_SET_WCS;
+		if (aes->aes_wcs != NULL)
+			aes->aes_set |= AES_SET_WCS;
 		return (aes->aes_wcs);
 	}
 	return (NULL);

Modified: projects/cambria/lib/libarchive/test/main.c
==============================================================================
--- projects/cambria/lib/libarchive/test/main.c	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/lib/libarchive/test/main.c	Tue Dec 23 21:07:57 2008	(r186460)
@@ -846,48 +846,59 @@ extract_reference_file(const char *name)
 static char *
 get_refdir(const char *tmpdir)
 {
-	char *ref, *p;
+	char tried[512] = { '\0' };
+	char buff[128];
+	char *pwd, *p;
 
 	/* Get the current dir. */
 	systemf("/bin/pwd > %s/refdir", tmpdir);
-	ref = slurpfile(NULL, "%s/refdir", tmpdir);
-	p = ref + strlen(ref);
-	while (p[-1] == '\n') {
-		--p;
-		*p = '\0';
-	}
+	pwd = slurpfile(NULL, "%s/refdir", tmpdir);
+	while (pwd[strlen(pwd) - 1] == '\n')
+		pwd[strlen(pwd) - 1] = '\0';
+	printf("PWD: %s\n", pwd);
 	systemf("rm %s/refdir", tmpdir);
+
 	/* Look for a known file. */
-	p = slurpfile(NULL, "%s/%s", ref, KNOWNREF);
-	if (p != NULL) {
-		free(p);
-		return (ref);
-	}
-	p = slurpfile(NULL, "%s/test/%s", ref, KNOWNREF);
-	if (p != NULL) {
-		free(p);
-		p = malloc(strlen(ref) + strlen("/test") + 1);
-		strcpy(p, ref);
-		strcat(p, "/test");
-		free(ref);
-		return (p);
-	}
-	p = slurpfile(NULL, "%s/%s/test/%s", ref, LIBRARY, KNOWNREF);
-	if (p != NULL) {
-		free(p);
-		p = malloc(strlen(ref) + 1 + strlen(LIBRARY) + strlen("/test") + 1);
-		strcpy(p, ref);
-		strcat(p, "/");
-		strcat(p, LIBRARY);
-		strcat(p, "/test");
-		free(ref);
-		return (p);
+	snprintf(buff, sizeof(buff), "%s", pwd);
+	p = slurpfile(NULL, "%s/%s", buff, KNOWNREF);
+	if (p != NULL) goto success;
+	strncat(tried, buff, sizeof(tried) - strlen(tried) - 1);
+	strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1);
+
+	snprintf(buff, sizeof(buff), "%s/test", pwd);
+	p = slurpfile(NULL, "%s/%s", buff, KNOWNREF);
+	if (p != NULL) goto success;
+	strncat(tried, buff, sizeof(tried) - strlen(tried) - 1);
+	strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1);
+
+	snprintf(buff, sizeof(buff), "%s/%s/test", pwd, LIBRARY);
+	p = slurpfile(NULL, "%s/%s", buff, KNOWNREF);
+	if (p != NULL) goto success;
+	strncat(tried, buff, sizeof(tried) - strlen(tried) - 1);
+	strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1);
+
+	if (memcmp(pwd, "/usr/obj", 8) == 0) {
+		snprintf(buff, sizeof(buff), "%s", pwd + 8);
+		p = slurpfile(NULL, "%s/%s", buff, KNOWNREF);
+		if (p != NULL) goto success;
+		strncat(tried, buff, sizeof(tried) - strlen(tried) - 1);
+		strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1);
+
+		snprintf(buff, sizeof(buff), "%s/test", pwd + 8);
+		p = slurpfile(NULL, "%s/%s", buff, KNOWNREF);
+		if (p != NULL) goto success;
+		strncat(tried, buff, sizeof(tried) - strlen(tried) - 1);
+		strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1);
 	}
+
 	printf("Unable to locate known reference file %s\n", KNOWNREF);
-	printf("  Checked directory %s\n", ref);
-	printf("  Checked directory %s/test\n", ref);
-	printf("  Checked directory %s/%s/test\n", ref, LIBRARY);
+	printf("  Checked following directories:\n%s\n", tried);
 	exit(1);
+
+success:
+	free(p);
+	free(pwd);
+	return strdup(buff);
 }
 
 int main(int argc, char **argv)

Modified: projects/cambria/libexec/ftpd/extern.h
==============================================================================
--- projects/cambria/libexec/ftpd/extern.h	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/libexec/ftpd/extern.h	Tue Dec 23 21:07:57 2008	(r186460)
@@ -46,7 +46,7 @@ void	fatalerror(char *);
 void    ftpd_logwtmp(char *, char *, struct sockaddr *addr);
 int	ftpd_pclose(FILE *);
 FILE   *ftpd_popen(char *, char *);
-char   *getline(char *, int, FILE *);
+int	getline(char *, int, FILE *);
 void	lreply(int, const char *, ...) __printflike(2, 3);
 void	makedir(char *);
 void	nack(char *);

Modified: projects/cambria/libexec/ftpd/ftpcmd.y
==============================================================================
--- projects/cambria/libexec/ftpd/ftpcmd.y	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/libexec/ftpd/ftpcmd.y	Tue Dec 23 21:07:57 2008	(r186460)
@@ -1191,7 +1191,7 @@ lookup(struct tab *p, char *cmd)
 /*
  * getline - a hacked up version of fgets to ignore TELNET escape codes.
  */
-char *
+int
 getline(char *s, int n, FILE *iop)
 {
 	int c;
@@ -1207,7 +1207,7 @@ getline(char *s, int n, FILE *iop)
 			if (ftpdebug)
 				syslog(LOG_DEBUG, "command: %s", s);
 			tmpline[0] = '\0';
-			return(s);
+			return(0);
 		}
 		if (c == 0)
 			tmpline[0] = '\0';
@@ -1244,13 +1244,24 @@ getline(char *s, int n, FILE *iop)
 			}
 		}
 		*cs++ = c;
-		if (--n <= 0 || c == '\n')
+		if (--n <= 0) {
+			/*
+			 * If command doesn't fit into buffer, discard the
+			 * rest of the command and indicate truncation.
+			 * This prevents the command to be split up into
+			 * multiple commands.
+			 */
+			while (c != '\n' && (c = getc(iop)) != EOF)
+				;
+			return (-2);
+		}
+		if (c == '\n')
 			break;
 	}
 got_eof:
 	sigprocmask(SIG_SETMASK, &osset, NULL);
 	if (c == EOF && cs == s)
-		return (NULL);
+		return (-1);
 	*cs++ = '\0';
 	if (ftpdebug) {
 		if (!guest && strncasecmp("pass ", s, 5) == 0) {
@@ -1270,7 +1281,7 @@ got_eof:
 			syslog(LOG_DEBUG, "command: %.*s", len, s);
 		}
 	}
-	return (s);
+	return (0);
 }
 
 static void
@@ -1300,9 +1311,14 @@ yylex(void)
 		case CMD:
 			(void) signal(SIGALRM, toolong);
 			(void) alarm(timeout);
-			if (getline(cbuf, sizeof(cbuf)-1, stdin) == NULL) {
+			n = getline(cbuf, sizeof(cbuf)-1, stdin);
+			if (n == -1) {
 				reply(221, "You could at least say goodbye.");
 				dologout(0);
+			} else if (n == -2) {
+				reply(500, "Command too long.");
+				(void) alarm(0);
+				continue;
 			}
 			(void) alarm(0);
 #ifdef SETPROCTITLE

Modified: projects/cambria/libexec/ftpd/ftpd.c
==============================================================================
--- projects/cambria/libexec/ftpd/ftpd.c	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/libexec/ftpd/ftpd.c	Tue Dec 23 21:07:57 2008	(r186460)
@@ -2794,15 +2794,20 @@ static int
 myoob(void)
 {
 	char *cp;
+	int ret;
 
 	if (!transflag) {
 		syslog(LOG_ERR, "Internal: myoob() while no transfer");
 		return (0);
 	}
 	cp = tmpline;
-	if (getline(cp, 7, stdin) == NULL) {
+	ret = getline(cp, 7, stdin);
+	if (ret == -1) {
 		reply(221, "You could at least say goodbye.");
 		dologout(0);
+	} else if (ret == -2) {
+		/* Ignore truncated command. */
+		return (0);
 	}
 	upper(cp);
 	if (strcmp(cp, "ABOR\r\n") == 0) {

Modified: projects/cambria/sbin/kldstat/kldstat.c
==============================================================================
--- projects/cambria/sbin/kldstat/kldstat.c	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sbin/kldstat/kldstat.c	Tue Dec 23 21:07:57 2008	(r186460)
@@ -60,17 +60,19 @@ static void printfile(int fileid, int ve
     if (kldstat(fileid, &stat) < 0)
 	warn("can't stat file id %d", fileid);
     else
-	printf("%2d %4d %p %-8jx %s (%s)\n",
+	printf("%2d %4d %p %-8jx %s",
 	       stat.id, stat.refs, stat.address, (uintmax_t)stat.size, 
-	       stat.name, stat.pathname);
+	       stat.name);
 
     if (verbose) {
+	printf(" (%s)\n", stat.pathname);
 	printf("\tContains modules:\n");
 	printf("\t\tId Name\n");
 	for (modid = kldfirstmod(fileid); modid > 0;
 	     modid = modfnext(modid))
 	    printmod(modid);
-    }
+    } else
+	printf("\n");
 }
 
 static void

Modified: projects/cambria/sbin/mount_msdosfs/mount_msdosfs.8
==============================================================================
--- projects/cambria/sbin/mount_msdosfs/mount_msdosfs.8	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sbin/mount_msdosfs/mount_msdosfs.8	Tue Dec 23 21:07:57 2008	(r186460)
@@ -30,7 +30,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd April 7, 1994
+.Dd December 23, 2008
 .Dt MOUNT_MSDOSFS 8
 .Os
 .Sh NAME
@@ -73,6 +73,11 @@ as described in
 .Xr mount 8 .
 The following MSDOS file system-specific options are available:
 .Bl -tag -width indent
+.It Cm large
+Support file systems larger than 128 gigabytes at the expense
+of 32 bytes of kernel memory.
+This memory will not be reclaimed until the file system has
+been unmounted.
 .It Cm longnames
 Force Windows 95 long filenames to be visible.
 .It Cm shortnames

Modified: projects/cambria/sbin/shutdown/shutdown.8
==============================================================================
--- projects/cambria/sbin/shutdown/shutdown.8	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sbin/shutdown/shutdown.8	Tue Dec 23 21:07:57 2008	(r186460)
@@ -28,7 +28,7 @@
 .\"     @(#)shutdown.8	8.2 (Berkeley) 4/27/95
 .\" $FreeBSD$
 .\"
-.Dd December 11, 1998
+.Dd December 23, 2008
 .Dt SHUTDOWN 8
 .Os
 .Sh NAME
@@ -167,6 +167,12 @@ The
 file that
 .Nm
 created will be removed automatically.
+.Pp
+When run without options, the  
+.Nm
+utility will place the system into single user mode at the 
+.Ar time
+specified.
 .Sh FILES
 .Bl -tag -width /var/run/nologin -compact
 .It Pa /var/run/nologin

Modified: projects/cambria/share/man/man4/uscanner.4
==============================================================================
--- projects/cambria/share/man/man4/uscanner.4	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/share/man/man4/uscanner.4	Tue Dec 23 21:07:57 2008	(r186460)
@@ -30,7 +30,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd April 28, 2008
+.Dd December 23, 2008
 .Dt USCANNER 4
 .Os
 .Sh NAME
@@ -112,6 +112,7 @@ Hewlett Packard: Photosmart S20
 Hewlett Packard Scanjet: 2200C,
 3300C, 3400CSE,
 4100C, 4200C, 4300C,
+4470C,
 5200C, 5300C, 5400C,
 6200C, 6300C,
 8200C, 8250C, 8290C;

Modified: projects/cambria/share/man/man5/nsswitch.conf.5
==============================================================================
--- projects/cambria/share/man/man5/nsswitch.conf.5	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/share/man/man5/nsswitch.conf.5	Tue Dec 23 21:07:57 2008	(r186460)
@@ -33,7 +33,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 22, 2007
+.Dd December 23, 2008
 .Dt NSSWITCH.CONF 5
 .Os
 .Sh NAME
@@ -141,9 +141,13 @@ The following databases are used by the 
 .Xr getrpcbynumber 3 ,
 .Xr getrpcent 3
 .It proto
-.Xr getprotobyname 3
+.Xr getprotobyname 3 ,
 .Xr getprotobynumber 3 ,
 .Xr getprotoent 3
+.It netgroup
+.Xr getnetgrent 3 ,
+.Xr setnetgrent 3 ,
+.Xr innetgr 3
 .El
 .Ss Status codes
 The following status codes are available:

Modified: projects/cambria/share/man/man9/domain.9
==============================================================================
--- projects/cambria/share/man/man9/domain.9	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/share/man/man9/domain.9	Tue Dec 23 21:07:57 2008	(r186460)
@@ -26,7 +26,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd December 7, 2001
+.Dd December 23, 2008
 .Dt DOMAIN 9
 .Os
 .Sh NAME
@@ -103,7 +103,6 @@ struct protosw {
 	pr_drain_t *pr_drain;		/* flush any excess space possible */
 
 	struct	pr_usrreqs *pr_usrreqs;	/* supersedes pr_usrreq() */
-	struct	pfil_head	pr_pfh;
 };
 .Ed
 .Pp

Modified: projects/cambria/sys/cam/cam_sim.h
==============================================================================
--- projects/cambria/sys/cam/cam_sim.h	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sys/cam/cam_sim.h	Tue Dec 23 21:07:57 2008	(r186460)
@@ -109,7 +109,7 @@ struct cam_sim {
 	struct cam_devq 	*devq;	/* Device Queue to use for this SIM */
 	int			refcount; /* References to the SIM. */
 
-	/* "Pool" of inactive ccbs managed by xpt_alloc_ccb and xpt_free_ccb */
+	/* "Pool" of inactive ccbs managed by xpt_get_ccb and xpt_release_ccb */
 	SLIST_HEAD(,ccb_hdr)	ccb_freeq;
 	/*
 	 * Maximum size of ccb pool.  Modified as devices are added/removed

Modified: projects/cambria/sys/cam/scsi/scsi_cd.c
==============================================================================
--- projects/cambria/sys/cam/scsi/scsi_cd.c	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sys/cam/scsi/scsi_cd.c	Tue Dec 23 21:07:57 2008	(r186460)
@@ -996,12 +996,6 @@ cdopen(struct disk *dp)
 		return (error);
 	}
 
-	/* Closes aren't symmetrical with opens, so fix up the refcounting. */
-	if (softc->flags & CD_FLAG_OPEN)
-		cam_periph_release(periph);
-	else
-		softc->flags |= CD_FLAG_OPEN;
-
 	/*
 	 * Check for media, and set the appropriate flags.  We don't bail
 	 * if we don't have media, but then we don't allow anything but the
@@ -1011,7 +1005,15 @@ cdopen(struct disk *dp)
 
 	CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("leaving cdopen\n"));
 	cam_periph_unhold(periph);
-	cam_periph_unlock(periph);
+
+	/* Closes aren't symmetrical with opens, so fix up the refcounting. */
+	if ((softc->flags & CD_FLAG_OPEN) == 0) {
+		softc->flags |= CD_FLAG_OPEN;
+		cam_periph_unlock(periph);
+	} else {
+		cam_periph_unlock(periph);
+		cam_periph_release(periph);
+	}
 
 	return (0);
 }

Modified: projects/cambria/sys/cam/scsi/scsi_da.c
==============================================================================
--- projects/cambria/sys/cam/scsi/scsi_da.c	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sys/cam/scsi/scsi_da.c	Tue Dec 23 21:07:57 2008	(r186460)
@@ -537,6 +537,14 @@ static struct da_quirk_entry da_quirk_ta
 	},
 	{
 		/*
+		 * Storcase (Kingston) InfoStation IFS FC2/SATA-R 201A
+		 * PR: 129858
+		 */
+		{T_DIRECT, SIP_MEDIA_FIXED, "IFS", "FC2/SATA-R*",
+		 "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
+	},
+	{
+		/*
 		 * Samsung YP-U3 mp3-player
 		 * PR: 125398
 		 */

Modified: projects/cambria/sys/cam/scsi/scsi_pass.c
==============================================================================
--- projects/cambria/sys/cam/scsi/scsi_pass.c	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sys/cam/scsi/scsi_pass.c	Tue Dec 23 21:07:57 2008	(r186460)
@@ -346,13 +346,13 @@ passopen(struct cdev *dev, int flags, in
 
 	if ((softc->flags & PASS_FLAG_OPEN) == 0) {
 		softc->flags |= PASS_FLAG_OPEN;
+		cam_periph_unlock(periph);
 	} else {
 		/* Device closes aren't symmertical, so fix up the refcount */
+		cam_periph_unlock(periph);
 		cam_periph_release(periph);
 	}
 
-	cam_periph_unlock(periph);
-
 	return (error);
 }
 

Modified: projects/cambria/sys/cam/scsi/scsi_sg.c
==============================================================================
--- projects/cambria/sys/cam/scsi/scsi_sg.c	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sys/cam/scsi/scsi_sg.c	Tue Dec 23 21:07:57 2008	(r186460)
@@ -399,13 +399,13 @@ sgopen(struct cdev *dev, int flags, int 
 
 	if ((softc->flags & SG_FLAG_OPEN) == 0) {
 		softc->flags |= SG_FLAG_OPEN;
+		cam_periph_unlock(periph);
 	} else {
 		/* Device closes aren't symmetrical, fix up the refcount. */
+		cam_periph_unlock(periph);
 		cam_periph_release(periph);
 	}
 
-	cam_periph_unlock(periph);
-
 	return (error);
 }
 

Modified: projects/cambria/sys/conf/files
==============================================================================
--- projects/cambria/sys/conf/files	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sys/conf/files	Tue Dec 23 21:07:57 2008	(r186460)
@@ -1594,7 +1594,7 @@ dev/usb2/ethernet/if_cdce2.c		optional u
 dev/usb2/ethernet/if_cue2.c		optional usb2_core usb2_ethernet usb2_ethernet_cue
 dev/usb2/ethernet/if_kue2.c		optional usb2_core usb2_ethernet usb2_ethernet_kue
 dev/usb2/ethernet/if_rue2.c		optional usb2_core usb2_ethernet usb2_ethernet_rue
-dev/usb2/ethernet/if_udav2.c		optional usb2_core usb2_ethernet usb2_ethernet_udav
+dev/usb2/ethernet/if_udav2.c		optional usb2_core usb2_ethernet usb2_ethernet_dav
 dev/usb2/ethernet/usb2_ethernet.c	optional usb2_core usb2_ethernet
 #
 # USB2 WLAN drivers
@@ -1623,6 +1623,7 @@ dev/usb2/serial/uplcom2.c	optional usb2_
 dev/usb2/serial/usb2_serial.c	optional usb2_core usb2_serial
 dev/usb2/serial/uvisor2.c	optional usb2_core usb2_serial usb2_serial_visor
 dev/usb2/serial/uvscom2.c	optional usb2_core usb2_serial usb2_serial_vscom
+dev/usb2/serial/u3g2.c		optional usb2_core usb2_serial usb2_serial_3g
 #
 # USB2 bluetooth drivers
 #

Modified: projects/cambria/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
==============================================================================
--- projects/cambria/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c	Tue Dec 23 21:07:57 2008	(r186460)
@@ -156,7 +156,9 @@ struct	selinfo	ipfselwait[IPL_LOGSIZE];
 # include <sys/conf.h>
 # if defined(NETBSD_PF)
 #  include <net/pfil.h>
-#  include <netinet/ipprotosw.h>
+#  if (__FreeBSD_version < 501108)
+#   include <netinet/ipprotosw.h>
+#  endif
 /*
  * We provide the fr_checkp name just to minimize changes later.
  */

Modified: projects/cambria/sys/dev/agp/agp.c
==============================================================================
--- projects/cambria/sys/dev/agp/agp.c	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sys/dev/agp/agp.c	Tue Dec 23 21:07:57 2008	(r186460)
@@ -564,6 +564,7 @@ agp_generic_bind_memory(device_t dev, st
 		device_printf(dev, "memory already bound\n");
 		error = EINVAL;
 		VM_OBJECT_LOCK(mem->am_obj);
+		i = 0;
 		goto bad;
 	}
 	
@@ -592,7 +593,6 @@ agp_generic_bind_memory(device_t dev, st
 				 * Bail out. Reverse all the mappings
 				 * and unwire the pages.
 				 */
-				vm_page_wakeup(m);
 				for (k = 0; k < i + j; k += AGP_PAGE_SIZE)
 					AGP_UNBIND_PAGE(dev, offset + k);
 				goto bad;
@@ -622,8 +622,10 @@ agp_generic_bind_memory(device_t dev, st
 bad:
 	mtx_unlock(&sc->as_lock);
 	VM_OBJECT_LOCK_ASSERT(mem->am_obj, MA_OWNED);
-	for (i = 0; i < mem->am_size; i += PAGE_SIZE) {
-		m = vm_page_lookup(mem->am_obj, OFF_TO_IDX(i));
+	for (k = 0; k < mem->am_size; k += PAGE_SIZE) {
+		m = vm_page_lookup(mem->am_obj, OFF_TO_IDX(k));
+		if (k >= i)
+			vm_page_wakeup(m);
 		vm_page_lock_queues();
 		vm_page_unwire(m, 0);
 		vm_page_unlock_queues();

Modified: projects/cambria/sys/dev/agp/agp_i810.c
==============================================================================
--- projects/cambria/sys/dev/agp/agp_i810.c	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sys/dev/agp/agp_i810.c	Tue Dec 23 21:07:57 2008	(r186460)
@@ -167,7 +167,7 @@ static const struct agp_i810_match {
 	    "Intel GM965 SVGA controller"},
 	{0x2A128086, CHIP_I965, 0x00020000,
 	    "Intel GME965 SVGA controller"},
-	{0x2A428086, CHIP_I965, 0x00020000,
+	{0x2A428086, CHIP_G4X, 0x00020000,
 	    "Intel GM45 SVGA controller"},
 	{0x2E028086, CHIP_G4X, 0x00020000,
 	    "Intel 4 Series SVGA controller"},
@@ -284,6 +284,7 @@ agp_i810_probe(device_t dev)
 	case CHIP_I915:
 	case CHIP_I965:
 	case CHIP_G33:
+	case CHIP_G4X:
 		deven = pci_read_config(bdev, AGP_I915_DEVEN, 4);
 		if ((deven & AGP_I915_DEVEN_D2F0) ==
 		    AGP_I915_DEVEN_D2F0_DISABLED) {
@@ -348,6 +349,7 @@ agp_i810_dump_regs(device_t dev)
 	case CHIP_I915:
 	case CHIP_I965:
 	case CHIP_G33:
+	case CHIP_G4X:
 		device_printf(dev, "AGP_I855_GCC1: 0x%02x\n",
 		    pci_read_config(sc->bdev, AGP_I855_GCC1, 1));
 		device_printf(dev, "AGP_I915_MSAC: 0x%02x\n",
@@ -397,7 +399,7 @@ agp_i810_attach(device_t dev)
 		return error;
 
 	if (sc->chiptype != CHIP_I965 && sc->chiptype != CHIP_G33 &&
-	    ptoa((vm_paddr_t)Maxmem) > 0xfffffffful)
+	    sc->chiptype != CHIP_G4X && ptoa((vm_paddr_t)Maxmem) > 0xfffffffful)
 	{
 		device_printf(dev, "agp_i810.c does not support physical "
 		    "memory above 4GB.\n");
@@ -659,8 +661,7 @@ agp_i810_attach(device_t dev)
 			return EINVAL;
 		}
 
-		if (sc->chiptype != CHIP_G4X)
-		    gtt_size += 4;
+		gtt_size += 4;
 
 		sc->stolen = (stolen - gtt_size) * 1024 / 4096;
 		if (sc->stolen > 0)
@@ -780,6 +781,7 @@ agp_i810_set_aperture(device_t dev, u_in
 	case CHIP_I915:
 	case CHIP_I965:
 	case CHIP_G33:
+	case CHIP_G4X:
 		return agp_generic_set_aperture(dev, aperture);
 	}
 
@@ -798,7 +800,8 @@ agp_i810_write_gtt_entry(device_t dev, i
 	u_int32_t pte;
 
 	pte = (u_int32_t)physical | 1;
-	if (sc->chiptype == CHIP_I965 || sc->chiptype == CHIP_G33) {
+	if (sc->chiptype == CHIP_I965 || sc->chiptype == CHIP_G33 ||
+	    sc->chiptype == CHIP_G4X) {
 		pte |= (physical & 0x0000000f00000000ull) >> 28;
 	} else {
 		/* If we do actually have memory above 4GB on an older system,
@@ -825,6 +828,10 @@ agp_i810_write_gtt_entry(device_t dev, i
 		bus_write_4(sc->sc_res[0],
 		    (offset >> AGP_PAGE_SHIFT) * 4 + (512 * 1024), pte);
 		break;
+	case CHIP_G4X:
+		bus_write_4(sc->sc_res[0],
+		    (offset >> AGP_PAGE_SHIFT) * 4 + (2 * 1024 * 1024), pte);
+		break;
 	}
 }
 

Modified: projects/cambria/sys/dev/agp/agppriv.h
==============================================================================
--- projects/cambria/sys/dev/agp/agppriv.h	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sys/dev/agp/agppriv.h	Tue Dec 23 21:07:57 2008	(r186460)
@@ -36,15 +36,12 @@
 #include <sys/agpio.h>
 #include <dev/agp/agpvar.h>
 
-#define AGP_DEBUGxx
-
 #ifdef AGP_DEBUG
-#define AGP_DPF(x...) do {			\
-    printf("agp: ");				\
-    printf(##x);				\
+#define AGP_DPF(fmt, ...) do {				\
+    printf("agp: " fmt, ##__VA_ARGS__);			\
 } while (0)
 #else
-#define AGP_DPF(x...) do {} while (0)
+#define AGP_DPF(fmt, ...) do {} while (0)
 #endif
 
 #include "agp_if.h"

Modified: projects/cambria/sys/dev/drm/drmP.h
==============================================================================
--- projects/cambria/sys/dev/drm/drmP.h	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sys/dev/drm/drmP.h	Tue Dec 23 21:07:57 2008	(r186460)
@@ -300,16 +300,16 @@ for ( ret = 0 ; !ret && !(condition) ; )
 	DRM_LOCK();						\
 }
 
-#define DRM_ERROR(fmt, arg...) \
+#define DRM_ERROR(fmt, ...) \
 	printf("error: [" DRM_NAME ":pid%d:%s] *ERROR* " fmt,		\
-	    DRM_CURRENTPID, __func__ , ## arg)
+	    DRM_CURRENTPID, __func__ , ##__VA_ARGS__)
 
-#define DRM_INFO(fmt, arg...)  printf("info: [" DRM_NAME "] " fmt , ## arg)
+#define DRM_INFO(fmt, ...)  printf("info: [" DRM_NAME "] " fmt , ##__VA_ARGS__)
 
-#define DRM_DEBUG(fmt, arg...) do {					\
+#define DRM_DEBUG(fmt, ...) do {					\
 	if (drm_debug_flag)						\
 		printf("[" DRM_NAME ":pid%d:%s] " fmt, DRM_CURRENTPID,	\
-			__func__ , ## arg);				\
+			__func__ , ##__VA_ARGS__);			\
 } while (0)
 
 typedef struct drm_pci_id_list

Modified: projects/cambria/sys/dev/re/if_re.c
==============================================================================
--- projects/cambria/sys/dev/re/if_re.c	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sys/dev/re/if_re.c	Tue Dec 23 21:07:57 2008	(r186460)
@@ -2068,6 +2068,8 @@ re_tick(void *xsc)
 
 	mii = device_get_softc(sc->rl_miibus);
 	mii_tick(mii);
+	if ((sc->rl_flags & RL_FLAG_LINK) == 0)
+		re_miibus_statchg(sc->rl_dev);
 	re_watchdog(sc);
 	callout_reset(&sc->rl_stat_callout, hz, re_tick, sc);
 }

Modified: projects/cambria/sys/dev/sound/pci/hda/hdac.c
==============================================================================
--- projects/cambria/sys/dev/sound/pci/hda/hdac.c	Tue Dec 23 20:45:40 2008	(r186459)
+++ projects/cambria/sys/dev/sound/pci/hda/hdac.c	Tue Dec 23 21:07:57 2008	(r186460)
@@ -83,7 +83,7 @@
 
 #include "mixer_if.h"
 
-#define HDA_DRV_TEST_REV	"20081219_0119"
+#define HDA_DRV_TEST_REV	"20081223_0121"
 
 SND_DECLARE_FILE("$FreeBSD$");
 
@@ -568,12 +568,21 @@ static const struct {
 
 /* Analog Devices */
 #define ANALOGDEVICES_VENDORID	0x11d4
+#define HDA_CODEC_AD1884A	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x184a)
+#define HDA_CODEC_AD1882	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1882)
+#define HDA_CODEC_AD1883	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1883)
+#define HDA_CODEC_AD1884	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1884)
+#define HDA_CODEC_AD1984A	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x194a)
+#define HDA_CODEC_AD1984B	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x194b)
 #define HDA_CODEC_AD1981HD	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1981)
 #define HDA_CODEC_AD1983	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1983)
 #define HDA_CODEC_AD1984	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1984)
 #define HDA_CODEC_AD1986A	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1986)
+#define HDA_CODEC_AD1987	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1987)
 #define HDA_CODEC_AD1988	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1988)
 #define HDA_CODEC_AD1988B	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x198b)
+#define HDA_CODEC_AD1882A	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x882a)
+#define HDA_CODEC_AD1989B	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x989b)
 #define HDA_CODEC_ADXXXX	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0xffff)
 
 /* CMedia */
@@ -649,19 +658,11 @@ static const struct {
 #define AGERE_VENDORID	0x11c1
 #define HDA_CODEC_AGEREXXXX	HDA_CODEC_CONSTRUCT(AGERE, 0xffff)
 
-/*
- * Conexant
- *
- * Ok, the truth is, I don't have any idea at all whether
- * it is "Venice" or "Waikiki" or other unnamed CXyadayada. The only
- * place that tell me it is "Venice" is from its Windows driver INF.
- *
- *  Venice - CX?????
- * Waikiki - CX20551-22
- */
+/* Conexant */
 #define CONEXANT_VENDORID	0x14f1
-#define HDA_CODEC_CXVENICE	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5045)
-#define HDA_CODEC_CXWAIKIKI	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5047)
+#define HDA_CODEC_CX20549	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5045)
+#define HDA_CODEC_CX20551	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5047)
+#define HDA_CODEC_CX20561	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5051)
 #define HDA_CODEC_CXXXXX	HDA_CODEC_CONSTRUCT(CONEXANT, 0xffff)
 
 /* VIA */
@@ -722,12 +723,21 @@ static const struct {
 	{ HDA_CODEC_ALC885,    "Realtek ALC885" },
 	{ HDA_CODEC_ALC888,    "Realtek ALC888" },
 	{ HDA_CODEC_ALC889,    "Realtek ALC889" },
+	{ HDA_CODEC_AD1882,    "Analog Devices AD1882" },
+	{ HDA_CODEC_AD1882A,   "Analog Devices AD1882A" },
+	{ HDA_CODEC_AD1883,    "Analog Devices AD1883" },
+	{ HDA_CODEC_AD1884,    "Analog Devices AD1884" },
+	{ HDA_CODEC_AD1884A,   "Analog Devices AD1884A" },
 	{ HDA_CODEC_AD1981HD,  "Analog Devices AD1981HD" },
 	{ HDA_CODEC_AD1983,    "Analog Devices AD1983" },
 	{ HDA_CODEC_AD1984,    "Analog Devices AD1984" },
+	{ HDA_CODEC_AD1984A,   "Analog Devices AD1984A" },
+	{ HDA_CODEC_AD1984B,   "Analog Devices AD1984B" },
 	{ HDA_CODEC_AD1986A,   "Analog Devices AD1986A" },
-	{ HDA_CODEC_AD1988,    "Analog Devices AD1988" },
+	{ HDA_CODEC_AD1987,    "Analog Devices AD1987" },
+	{ HDA_CODEC_AD1988,    "Analog Devices AD1988A" },
 	{ HDA_CODEC_AD1988B,   "Analog Devices AD1988B" },
+	{ HDA_CODEC_AD1989B,   "Analog Devices AD1989B" },
 	{ HDA_CODEC_CMI9880,   "CMedia CMI9880" },
 	{ HDA_CODEC_STAC9200D, "Sigmatel STAC9200D" },
 	{ HDA_CODEC_STAC9204X, "Sigmatel STAC9204X" },
@@ -780,8 +790,9 @@ static const struct {
 	{ HDA_CODEC_IDT92HD81B1X, "IDT 92HD81B1X" },
 	{ HDA_CODEC_IDT92HD83C1C, "IDT 92HD83C1C" },
 	{ HDA_CODEC_IDT92HD83C1X, "IDT 92HD83C1X" },
-	{ HDA_CODEC_CXVENICE,  "Conexant Venice" },
-	{ HDA_CODEC_CXWAIKIKI, "Conexant Waikiki" },
+	{ HDA_CODEC_CX20549,   "Conexant CX20549 (Venice)" },
+	{ HDA_CODEC_CX20551,   "Conexant CX20551 (Waikiki)" },
+	{ HDA_CODEC_CX20561,   "Conexant CX20561 (Hermosa)" },
 	{ HDA_CODEC_VT1708_8,  "VIA VT1708_8" },
 	{ HDA_CODEC_VT1708_9,  "VIA VT1708_9" },
 	{ HDA_CODEC_VT1708_A,  "VIA VT1708_A" },
@@ -2251,7 +2262,7 @@ hdac_widget_pin_getconfig(struct hdac_wi
 			    HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED);
 			break;
 		}
-	} else if (id == HDA_CODEC_CXVENICE && sc->pci_subvendor ==
+	} else if (id == HDA_CODEC_CX20549 && sc->pci_subvendor ==
 	    HP_V3000_SUBVENDOR) {
 		switch (nid) {
 		case 18:
@@ -2271,7 +2282,7 @@ hdac_widget_pin_getconfig(struct hdac_wi
 			    HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED);
 			break;
 		}
-	} else if (id == HDA_CODEC_CXWAIKIKI && sc->pci_subvendor ==
+	} else if (id == HDA_CODEC_CX20551 && sc->pci_subvendor ==
 	    HP_DV5000_SUBVENDOR) {
 		switch (nid) {
 		case 20:
@@ -4476,7 +4487,7 @@ static const struct {
 	    HDA_QUIRK_IVREF80, HDA_QUIRK_IVREF50 | HDA_QUIRK_IVREF100 },
 	{ HDA_MATCH_ALL, HDA_CODEC_AD1988B,
 	    HDA_QUIRK_IVREF80, HDA_QUIRK_IVREF50 | HDA_QUIRK_IVREF100 },
-	{ HDA_MATCH_ALL, HDA_CODEC_CXVENICE,
+	{ HDA_MATCH_ALL, HDA_CODEC_CX20549,
 	    0, HDA_QUIRK_FORCESTEREO }
 };
 #define HDAC_QUIRKS_LEN (sizeof(hdac_quirks) / sizeof(hdac_quirks[0]))

Copied: projects/cambria/sys/dev/usb/ehci_ixp4xx.c (from r186445, head/sys/dev/usb/ehci_ixp4xx.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/cambria/sys/dev/usb/ehci_ixp4xx.c	Tue Dec 23 21:07:57 2008	(r186460, copy of r186445, head/sys/dev/usb/ehci_ixp4xx.c)
@@ -0,0 +1,360 @@
+/*-
+ * Copyright (c) 2008 Sam Leffler.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * IXP435 attachment driver for the USB Enhanced Host Controller.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include "opt_bus.h"
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/bus.h>
+#include <sys/endian.h>
+#include <sys/queue.h>
+#include <sys/lockmgr.h>
+#include <sys/rman.h>
+
+#include <machine/bus.h>
+#include <machine/resource.h>
+
+#include <dev/usb/usb.h>
+#include <dev/usb/usbdi.h>
+#include <dev/usb/usbdivar.h>
+#include <dev/usb/usb_mem.h>
+
+#include <dev/usb/ehcireg.h>
+#include <dev/usb/ehcivar.h>
+
+#include <arm/xscale/ixp425/ixp425reg.h>
+#include <arm/xscale/ixp425/ixp425var.h>
+
+#define EHCI_VENDORID_IXP4XX	0x42fa05
+#define EHCI_HC_DEVSTR		"IXP4XX Integrated USB 2.0 controller"
+
+struct ixp_ehci_softc {
+	ehci_softc_t		base;	/* storage for EHCI code */
+	bus_space_tag_t		iot;
+	bus_space_handle_t	ioh;
+	struct bus_space	tag;	/* tag for private bus space ops */
+};
+
+static int ehci_ixp_detach(device_t self);
+
+static uint8_t ehci_bs_r_1(void *, bus_space_handle_t, bus_size_t);
+static void ehci_bs_w_1(void *, bus_space_handle_t, bus_size_t, u_int8_t);
+static uint16_t ehci_bs_r_2(void *, bus_space_handle_t, bus_size_t);
+static void ehci_bs_w_2(void *, bus_space_handle_t, bus_size_t, uint16_t);
+static uint32_t ehci_bs_r_4(void *, bus_space_handle_t, bus_size_t);
+static void ehci_bs_w_4(void *, bus_space_handle_t, bus_size_t, uint32_t);
+
+static int
+ehci_ixp_suspend(device_t self)
+{
+	ehci_softc_t *sc;
+	int err;
+
+	err = bus_generic_suspend(self);
+	if (err == 0) {
+		sc = device_get_softc(self);
+		ehci_power(PWR_SUSPEND, sc);
+	}
+	return err;
+}
+
+static int
+ehci_ixp_resume(device_t self)

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-projects mailing list