Date: Tue, 6 Mar 2007 09:45:47 GMT From: Paolo Pisati <piso@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 115401 for review Message-ID: <200703060945.l269jlgj016323@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=115401 Change 115401 by piso@piso_newluxor on 2007/03/06 09:45:07 IFC@115399 Affected files ... .. //depot/projects/soc2006/intr_filter/amd64/acpica/madt.c#3 integrate .. //depot/projects/soc2006/intr_filter/amd64/amd64/io_apic.c#4 integrate .. //depot/projects/soc2006/intr_filter/amd64/amd64/local_apic.c#7 integrate .. //depot/projects/soc2006/intr_filter/amd64/amd64/mp_machdep.c#6 integrate .. //depot/projects/soc2006/intr_filter/amd64/amd64/mptable.c#2 integrate .. //depot/projects/soc2006/intr_filter/amd64/amd64/pmap.c#12 integrate .. //depot/projects/soc2006/intr_filter/amd64/include/apicvar.h#5 integrate .. //depot/projects/soc2006/intr_filter/arm/xscale/ixp425/ixp425_npe.c#3 integrate .. //depot/projects/soc2006/intr_filter/compat/linux/linux_stats.c#5 integrate .. //depot/projects/soc2006/intr_filter/conf/files#15 integrate .. //depot/projects/soc2006/intr_filter/dev/acpica/acpi_thermal.c#5 integrate .. //depot/projects/soc2006/intr_filter/dev/arcmsr/arcmsr.c#8 integrate .. //depot/projects/soc2006/intr_filter/dev/arcmsr/arcmsr.h#4 integrate .. //depot/projects/soc2006/intr_filter/dev/ath/if_ath.c#13 integrate .. //depot/projects/soc2006/intr_filter/dev/ath/if_athvar.h#11 integrate .. //depot/projects/soc2006/intr_filter/dev/pccbb/pccbb.c#14 integrate .. //depot/projects/soc2006/intr_filter/dev/pci/pci.c#11 integrate .. //depot/projects/soc2006/intr_filter/dev/pci/pcireg.h#7 integrate .. //depot/projects/soc2006/intr_filter/dev/sound/pci/envy24.c#6 integrate .. //depot/projects/soc2006/intr_filter/dev/sound/pcm/ac97.c#4 integrate .. //depot/projects/soc2006/intr_filter/dev/sym/sym_hipd.c#5 integrate .. //depot/projects/soc2006/intr_filter/geom/eli/g_eli_ctl.c#4 integrate .. //depot/projects/soc2006/intr_filter/i386/acpica/madt.c#3 integrate .. //depot/projects/soc2006/intr_filter/i386/i386/io_apic.c#4 integrate .. //depot/projects/soc2006/intr_filter/i386/i386/local_apic.c#7 integrate .. //depot/projects/soc2006/intr_filter/i386/i386/machdep.c#11 integrate .. //depot/projects/soc2006/intr_filter/i386/i386/mp_machdep.c#6 integrate .. //depot/projects/soc2006/intr_filter/i386/i386/mptable.c#2 integrate .. //depot/projects/soc2006/intr_filter/i386/i386/nexus.c#7 integrate .. //depot/projects/soc2006/intr_filter/i386/i386/pmap.c#11 integrate .. //depot/projects/soc2006/intr_filter/i386/i386/vm_machdep.c#3 integrate .. //depot/projects/soc2006/intr_filter/i386/include/apicvar.h#5 integrate .. //depot/projects/soc2006/intr_filter/i386/isa/clock.c#12 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_acl.c#6 delete .. //depot/projects/soc2006/intr_filter/kern/kern_alq.c#3 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_context.c#3 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_descrip.c#11 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_environment.c#4 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_exec.c#6 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_exit.c#5 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_ktrace.c#9 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_ntptime.c#5 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_prot.c#7 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_resource.c#10 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_sig.c#9 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_synch.c#8 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_sysctl.c#5 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_time.c#8 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_umtx.c#6 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_uuid.c#3 integrate .. //depot/projects/soc2006/intr_filter/kern/kern_xxx.c#4 integrate .. //depot/projects/soc2006/intr_filter/kern/p1003_1b.c#3 integrate .. //depot/projects/soc2006/intr_filter/kern/sys_generic.c#7 integrate .. //depot/projects/soc2006/intr_filter/kern/sys_pipe.c#5 integrate .. //depot/projects/soc2006/intr_filter/kern/sysv_msg.c#9 integrate .. //depot/projects/soc2006/intr_filter/kern/sysv_sem.c#9 integrate .. //depot/projects/soc2006/intr_filter/kern/sysv_shm.c#7 integrate .. //depot/projects/soc2006/intr_filter/kern/uipc_mqueue.c#5 integrate .. //depot/projects/soc2006/intr_filter/kern/uipc_sem.c#5 integrate .. //depot/projects/soc2006/intr_filter/kern/uipc_syscalls.c#10 integrate .. //depot/projects/soc2006/intr_filter/kern/vfs_acl.c#1 branch .. //depot/projects/soc2006/intr_filter/kern/vfs_aio.c#6 integrate .. //depot/projects/soc2006/intr_filter/kern/vfs_cache.c#3 integrate .. //depot/projects/soc2006/intr_filter/kern/vfs_cluster.c#4 integrate .. //depot/projects/soc2006/intr_filter/kern/vfs_mount.c#7 integrate .. //depot/projects/soc2006/intr_filter/kern/vfs_syscalls.c#8 integrate .. //depot/projects/soc2006/intr_filter/net80211/ieee80211_ioctl.c#6 integrate .. //depot/projects/soc2006/intr_filter/net80211/ieee80211_var.h#6 integrate .. //depot/projects/soc2006/intr_filter/nfsserver/nfs_syscalls.c#6 integrate .. //depot/projects/soc2006/intr_filter/sys/extattr.h#5 integrate .. //depot/projects/soc2006/intr_filter/ufs/ufs/extattr.h#2 integrate .. //depot/projects/soc2006/intr_filter/vm/vm_fault.c#7 integrate Differences ... ==== //depot/projects/soc2006/intr_filter/amd64/acpica/madt.c#3 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.21 2006/08/11 19:22:55 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.22 2007/03/05 20:35:16 jhb Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -336,7 +336,7 @@ { madt = pmap_mapbios(madt_physaddr, madt_length); - lapic_init((uintptr_t)madt->LocalApicAddress); + lapic_init(madt->LocalApicAddress); printf("ACPI APIC Table: <%.*s %.*s>\n", (int)sizeof(madt->OemId), madt->OemId, (int)sizeof(madt->OemTableId), madt->OemTableId); @@ -482,9 +482,8 @@ if (ioapics[apic->IoApicId].io_apic != NULL) panic("%s: Double APIC ID %d", __func__, apic->IoApicId); - ioapics[apic->IoApicId].io_apic = ioapic_create( - (uintptr_t)apic->Address, apic->IoApicId, - apic->Interrupt); + ioapics[apic->IoApicId].io_apic = ioapic_create(apic->Address, + apic->IoApicId, apic->Interrupt); ioapics[apic->IoApicId].io_vector = apic->Interrupt; break; default: ==== //depot/projects/soc2006/intr_filter/amd64/amd64/io_apic.c#4 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.26 2006/11/17 16:41:03 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.28 2007/03/05 20:35:16 jhb Exp $"); #include "opt_isa.h" @@ -36,11 +36,15 @@ #include <sys/systm.h> #include <sys/bus.h> #include <sys/kernel.h> +#include <sys/lock.h> #include <sys/malloc.h> -#include <sys/lock.h> +#include <sys/module.h> #include <sys/mutex.h> #include <sys/sysctl.h> +#include <dev/pci/pcireg.h> +#include <dev/pci/pcivar.h> + #include <vm/vm.h> #include <vm/pmap.h> @@ -428,7 +432,7 @@ * Create a plain I/O APIC object. */ void * -ioapic_create(uintptr_t addr, int32_t apic_id, int intbase) +ioapic_create(vm_paddr_t addr, int32_t apic_id, int intbase) { struct ioapic *io; struct ioapic_intsrc *intpin; @@ -727,3 +731,46 @@ if (pin->io_irq < NUM_IO_INTS) intr_register_source(&pin->io_intsrc); } + +/* A simple new-bus driver to consume PCI I/O APIC devices. */ +static int +ioapic_pci_probe(device_t dev) +{ + + if (pci_get_class(dev) == PCIC_BASEPERIPH && + pci_get_subclass(dev) == PCIS_BASEPERIPH_PIC) { + switch (pci_get_progif(dev)) { + case PCIP_BASEPERIPH_PIC_IO_APIC: + device_set_desc(dev, "IO APIC"); + break; + case PCIP_BASEPERIPH_PIC_IOX_APIC: + device_set_desc(dev, "IO(x) APIC"); + break; + default: + return (ENXIO); + } + device_quiet(dev); + return (-10000); + } + return (ENXIO); +} + +static int +ioapic_pci_attach(device_t dev) +{ + + return (0); +} + +static device_method_t ioapic_pci_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, ioapic_pci_probe), + DEVMETHOD(device_attach, ioapic_pci_attach), + + { 0, 0 } +}; + +DEFINE_CLASS_0(ioapic, ioapic_pci_driver, ioapic_pci_methods, 0); + +static devclass_t ioapic_devclass; +DRIVER_MODULE(ioapic, pci, ioapic_pci_driver, ioapic_devclass, 0, 0); ==== //depot/projects/soc2006/intr_filter/amd64/amd64/local_apic.c#7 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.34 2006/12/17 06:48:39 kmacy Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.35 2007/03/05 20:35:16 jhb Exp $"); #include "opt_hwpmc_hooks.h" @@ -205,7 +205,7 @@ * Map the local APIC and setup necessary interrupt vectors. */ void -lapic_init(uintptr_t addr) +lapic_init(vm_paddr_t addr) { /* Map the local APIC and setup the spurious interrupt handler. */ ==== //depot/projects/soc2006/intr_filter/amd64/amd64/mp_machdep.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.281 2007/02/08 16:49:58 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.282 2007/03/05 21:40:10 alc Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -835,13 +835,16 @@ ncpu = mp_ncpus - 1; /* does not shootdown self */ if (ncpu < 1) return; /* no other cpus */ - mtx_assert(&smp_ipi_mtx, MA_OWNED); + if (!(read_rflags() & PSL_I)) + panic("%s: interrupts disabled", __func__); + mtx_lock_spin(&smp_ipi_mtx); smp_tlb_addr1 = addr1; smp_tlb_addr2 = addr2; atomic_store_rel_int(&smp_tlb_wait, 0); ipi_all_but_self(vector); while (smp_tlb_wait < ncpu) ia32_pause(); + mtx_unlock_spin(&smp_ipi_mtx); } static void @@ -869,7 +872,9 @@ if (ncpu < 1) return; } - mtx_assert(&smp_ipi_mtx, MA_OWNED); + if (!(read_rflags() & PSL_I)) + panic("%s: interrupts disabled", __func__); + mtx_lock_spin(&smp_ipi_mtx); smp_tlb_addr1 = addr1; smp_tlb_addr2 = addr2; atomic_store_rel_int(&smp_tlb_wait, 0); @@ -879,6 +884,7 @@ ipi_selected(mask, vector); while (smp_tlb_wait < ncpu) ia32_pause(); + mtx_unlock_spin(&smp_ipi_mtx); } void ==== //depot/projects/soc2006/intr_filter/amd64/amd64/mptable.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.237 2005/10/31 15:41:17 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.238 2007/03/05 20:35:16 jhb Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -323,7 +323,7 @@ lapic_init(DEFAULT_APIC_BASE); printf("Default Configuration %d", mpfps->config_type); } else { - lapic_init((uintptr_t)mpct->apic_address); + lapic_init(mpct->apic_address); printf("%.*s %.*s", (int)sizeof(mpct->oem_id), mpct->oem_id, (int)sizeof(mpct->product_id), mpct->product_id); } @@ -514,8 +514,8 @@ if (ioapics[apic->apic_id] != NULL) panic("%s: Double APIC ID %d", __func__, apic->apic_id); - ioapics[apic->apic_id] = ioapic_create( - (uintptr_t)apic->apic_address, apic->apic_id, -1); + ioapics[apic->apic_id] = ioapic_create(apic->apic_address, + apic->apic_id, -1); break; default: break; ==== //depot/projects/soc2006/intr_filter/amd64/amd64/pmap.c#12 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.579 2007/02/19 10:55:16 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.580 2007/03/05 21:40:10 alc Exp $"); /* * Manages physical address maps. @@ -752,18 +752,7 @@ u_int cpumask; u_int other_cpus; - if (smp_started) { - if (!(read_rflags() & PSL_I)) - panic("%s: interrupts disabled", __func__); - mtx_lock_spin(&smp_ipi_mtx); - } else - critical_enter(); - /* - * We need to disable interrupt preemption but MUST NOT have - * interrupts disabled here. - * XXX we may need to hold schedlock to get a coherent pm_active - * XXX critical sections disable interrupts again - */ + sched_pin(); if (pmap == kernel_pmap || pmap->pm_active == all_cpus) { invlpg(va); smp_invlpg(va); @@ -775,10 +764,7 @@ if (pmap->pm_active & other_cpus) smp_masked_invlpg(pmap->pm_active & other_cpus, va); } - if (smp_started) - mtx_unlock_spin(&smp_ipi_mtx); - else - critical_exit(); + sched_unpin(); } void @@ -788,18 +774,7 @@ u_int other_cpus; vm_offset_t addr; - if (smp_started) { - if (!(read_rflags() & PSL_I)) - panic("%s: interrupts disabled", __func__); - mtx_lock_spin(&smp_ipi_mtx); - } else - critical_enter(); - /* - * We need to disable interrupt preemption but MUST NOT have - * interrupts disabled here. - * XXX we may need to hold schedlock to get a coherent pm_active - * XXX critical sections disable interrupts again - */ + sched_pin(); if (pmap == kernel_pmap || pmap->pm_active == all_cpus) { for (addr = sva; addr < eva; addr += PAGE_SIZE) invlpg(addr); @@ -814,10 +789,7 @@ smp_masked_invlpg_range(pmap->pm_active & other_cpus, sva, eva); } - if (smp_started) - mtx_unlock_spin(&smp_ipi_mtx); - else - critical_exit(); + sched_unpin(); } void @@ -826,18 +798,7 @@ u_int cpumask; u_int other_cpus; - if (smp_started) { - if (!(read_rflags() & PSL_I)) - panic("%s: interrupts disabled", __func__); - mtx_lock_spin(&smp_ipi_mtx); - } else - critical_enter(); - /* - * We need to disable interrupt preemption but MUST NOT have - * interrupts disabled here. - * XXX we may need to hold schedlock to get a coherent pm_active - * XXX critical sections disable interrupts again - */ + sched_pin(); if (pmap == kernel_pmap || pmap->pm_active == all_cpus) { invltlb(); smp_invltlb(); @@ -849,34 +810,17 @@ if (pmap->pm_active & other_cpus) smp_masked_invltlb(pmap->pm_active & other_cpus); } - if (smp_started) - mtx_unlock_spin(&smp_ipi_mtx); - else - critical_exit(); + sched_unpin(); } void pmap_invalidate_cache(void) { - if (smp_started) { - if (!(read_rflags() & PSL_I)) - panic("%s: interrupts disabled", __func__); - mtx_lock_spin(&smp_ipi_mtx); - } else - critical_enter(); - /* - * We need to disable interrupt preemption but MUST NOT have - * interrupts disabled here. - * XXX we may need to hold schedlock to get a coherent pm_active - * XXX critical sections disable interrupts again - */ + sched_pin(); wbinvd(); smp_cache_flush(); - if (smp_started) - mtx_unlock_spin(&smp_ipi_mtx); - else - critical_exit(); + sched_unpin(); } #else /* !SMP */ /* ==== //depot/projects/soc2006/intr_filter/amd64/include/apicvar.h#5 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.21 2006/12/17 06:48:40 kmacy Exp $ + * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.22 2007/03/05 20:35:16 jhb Exp $ */ #ifndef _MACHINE_APICVAR_H_ @@ -180,7 +180,7 @@ void apic_free_vector(u_int vector, u_int irq); u_int apic_idt_to_irq(u_int vector); void apic_register_enumerator(struct apic_enumerator *enumerator); -void *ioapic_create(uintptr_t addr, int32_t id, int intbase); +void *ioapic_create(vm_paddr_t addr, int32_t apic_id, int intbase); int ioapic_disable_pin(void *cookie, u_int pin); int ioapic_get_vector(void *cookie, u_int pin); void ioapic_register(void *cookie); @@ -197,7 +197,7 @@ void lapic_dump(const char *str); void lapic_eoi(void); int lapic_id(void); -void lapic_init(uintptr_t addr); +void lapic_init(vm_paddr_t addr); int lapic_intr_pending(u_int vector); void lapic_ipi_raw(register_t icrlo, u_int dest); void lapic_ipi_vectored(u_int vector, int dest); ==== //depot/projects/soc2006/intr_filter/arm/xscale/ixp425/ixp425_npe.c#3 (text+ko) ==== @@ -57,7 +57,7 @@ * SUCH DAMAGE. */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_npe.c,v 1.3 2007/02/23 12:18:28 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_npe.c,v 1.5 2007/03/06 01:15:28 kevlo Exp $"); /* * Intel XScale Network Processing Engine (NPE) support. ==== //depot/projects/soc2006/intr_filter/compat/linux/linux_stats.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_stats.c,v 1.86 2006/12/04 22:38:52 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_stats.c,v 1.87 2007/03/06 07:39:12 rwatson Exp $"); #include "opt_compat.h" #include "opt_mac.h" @@ -118,7 +118,6 @@ { struct proc *p = td->td_proc; struct filedesc *fdp = p->p_fd; - struct file *fp; int fd; int temp; @@ -130,9 +129,6 @@ fd = td->td_retval[0]; td->td_retval[0] = temp; translate_fd_major_minor(td, fd, buf); - FILEDESC_LOCK(fdp); - fp = fdp->fd_ofiles[fd]; - FILEDESC_UNLOCK(fdp); fdclose(fdp, fdp->fd_ofiles[fd], fd, td); } ==== //depot/projects/soc2006/intr_filter/conf/files#15 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1180 2007/02/27 04:01:57 mjacob Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1181 2007/03/05 13:24:01 rwatson Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1325,7 +1325,6 @@ kern/init_sysent.c standard kern/ksched.c optional _kposix_priority_scheduling kern/kern_acct.c standard -kern/kern_acl.c standard kern/kern_alq.c optional alq kern/kern_clock.c standard kern/kern_condvar.c standard @@ -1455,6 +1454,7 @@ kern/uipc_socket2.c standard kern/uipc_syscalls.c standard kern/uipc_usrreq.c standard +kern/vfs_acl.c standard kern/vfs_aio.c optional vfs_aio kern/vfs_bio.c standard kern/vfs_cache.c standard ==== //depot/projects/soc2006/intr_filter/dev/acpica/acpi_thermal.c#5 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.63 2006/09/03 15:10:04 ume Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.64 2007/03/05 21:39:53 njl Exp $"); #include "opt_acpi.h" #include <sys/param.h> @@ -434,10 +434,12 @@ { int temp; ACPI_STATUS status; + static char *tmp_name = "_TMP"; ACPI_FUNCTION_NAME ("acpi_tz_get_temperature"); - status = acpi_GetInteger(sc->tz_handle, "_TMP", &temp); + /* Evaluate the thermal zone's _TMP method. */ + status = acpi_GetInteger(sc->tz_handle, tmp_name, &temp); if (ACPI_FAILURE(status)) { ACPI_VPRINT(sc->tz_dev, acpi_device_get_parent_softc(sc->tz_dev), "error fetching current temperature -- %s\n", @@ -445,6 +447,11 @@ return (FALSE); } + /* Check it for validity. */ + acpi_tz_sanity(sc, &temp, tmp_name); + if (temp == -1) + return (FALSE); + ACPI_DEBUG_PRINT((ACPI_DB_VALUES, "got %d.%dC\n", TZ_KELVTOC(temp))); sc->tz_temperature = temp; return (TRUE); @@ -646,12 +653,12 @@ /* * Sanity-check a temperature value. Assume that setpoints - * should be between 0C and 150C. + * should be between 0C and 200C. */ static void acpi_tz_sanity(struct acpi_tz_softc *sc, int *val, char *what) { - if (*val != -1 && (*val < TZ_ZEROC || *val > TZ_ZEROC + 1500)) { + if (*val != -1 && (*val < TZ_ZEROC || *val > TZ_ZEROC + 2000)) { device_printf(sc->tz_dev, "%s value is absurd, ignored (%d.%dC)\n", what, TZ_KELVTOC(*val)); *val = -1; ==== //depot/projects/soc2006/intr_filter/dev/arcmsr/arcmsr.c#8 (text+ko) ==== @@ -56,7 +56,7 @@ ** and cause g_vfs_done() read write error ****************************************************************************************** -* $FreeBSD: src/sys/dev/arcmsr/arcmsr.c,v 1.17 2007/02/23 12:18:31 piso Exp $ +* $FreeBSD: src/sys/dev/arcmsr/arcmsr.c,v 1.18 2007/03/06 01:12:15 scottl Exp $ */ #include <sys/param.h> #include <sys/systm.h> @@ -417,7 +417,12 @@ } ARCMSR_LOCK_ACQUIRE(&acb->workingQ_done_lock); if(stand_flag==1) { - atomic_subtract_int(&acb->srboutstandingcount, 1); + atomic_subtract_int(&acb->srboutstandingcount, 1); + if((acb->acb_flags & ACB_F_CAM_DEV_QFRZN) && ( + acb->srboutstandingcount < ARCMSR_RELEASE_SIMQ_LEVEL)) { + acb->acb_flags &= ~ACB_F_CAM_DEV_QFRZN; + pccb->ccb_h.status |= CAM_RELEASE_SIMQ; + } } srb->startdone=ARCMSR_SRB_DONE; srb->srb_flags=0; @@ -1303,7 +1308,8 @@ pccb->ccb_h.status |= CAM_SIM_QUEUED; if(acb->srboutstandingcount >= ARCMSR_MAX_OUTSTANDING_CMD) { pccb->ccb_h.status &= ~CAM_STATUS_MASK; - pccb->ccb_h.status |= CAM_REQUEUE_REQ; + pccb->ccb_h.status |= (CAM_REQUEUE_REQ|CAM_DEV_QFRZN); + acb->acb_flags |= ACB_F_CAM_DEV_QFRZN; arcmsr_srb_complete(srb, 0); return; } ==== //depot/projects/soc2006/intr_filter/dev/arcmsr/arcmsr.h#4 (text+ko) ==== @@ -35,7 +35,7 @@ **(INCLUDING NEGLIGENCE OR 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/arcmsr/arcmsr.h,v 1.3 2007/02/15 15:36:15 scottl Exp $ +* $FreeBSD: src/sys/dev/arcmsr/arcmsr.h,v 1.4 2007/03/06 01:12:15 scottl Exp $ */ #define ARCMSR_DRIVER_VERSION "Driver Version 1.20.00.14 2007-2-05" #define ARCMSR_SCSI_INITIATOR_ID 255 @@ -51,6 +51,7 @@ #define ARCMSR_MAX_QBUFFER 4096 /* ioctl QBUFFER */ #define ARCMSR_MAX_SG_ENTRIES 38 /* max 38*/ #define ARCMSR_MAX_ADAPTER 4 +#define ARCMSR_RELEASE_SIMQ_LEVEL 230 /* ********************************************************************* */ @@ -509,6 +510,7 @@ #define ACB_F_BUS_RESET 0x0080 #define ACB_F_IOP_INITED 0x0100 /* iop init */ #define ACB_F_MAPFREESRB_FAILD 0x0200 /* arcmsr_map_freesrb faild */ +#define ACB_F_CAM_DEV_QFRZN 0x0400 struct CommandControlBlock * psrb_pool[ARCMSR_MAX_FREESRB_NUM]; /* serial srb pointer array */ struct CommandControlBlock * srbworkingQ[ARCMSR_MAX_FREESRB_NUM]; /* working srb pointer array */ ==== //depot/projects/soc2006/intr_filter/dev/ath/if_ath.c#13 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.162 2007/02/24 23:23:29 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.164 2007/03/05 21:56:33 sam Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -414,7 +414,8 @@ error = EIO; goto bad2; } - ath_txq_init(sc, &sc->sc_mcastq, -1); /* NB: s/w q, qnum not used */ + /* NB: s/w q, qnum used only by WITNESS */ + ath_txq_init(sc, &sc->sc_mcastq, HAL_NUM_TX_QUEUES+1); /* NB: insure BK queue is the lowest priority h/w queue */ if (!ath_tx_setup(sc, WME_AC_BK, HAL_WME_AC_BK)) { if_printf(ifp, "unable to setup xmit queue for %s traffic!\n", @@ -3170,6 +3171,11 @@ if (ngood) sc->sc_lastrx = tsf; + /* NB: may want to check mgtq too */ + if ((ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0 && + !IFQ_IS_EMPTY(&ifp->if_snd)) + ath_start(ifp); + NET_UNLOCK_GIANT(); /* XXX */ #undef PA2DESC } ==== //depot/projects/soc2006/intr_filter/dev/ath/if_athvar.h#11 (text+ko) ==== @@ -33,7 +33,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. * - * $FreeBSD: src/sys/dev/ath/if_athvar.h,v 1.59 2007/02/24 23:12:58 sam Exp $ + * $FreeBSD: src/sys/dev/ath/if_athvar.h,v 1.60 2007/03/05 21:56:33 sam Exp $ */ /* @@ -150,7 +150,7 @@ #define ATH_TXQ_LOCK_INIT(_sc, _tq) do { \ snprintf((_tq)->axq_name, sizeof((_tq)->axq_name), "%s_txq%u", \ device_get_nameunit((_sc)->sc_dev), (_tq)->axq_qnum); \ - mtx_init(&(_tq)->axq_lock, (_tq)->axq_name, "ath_txq", MTX_DEF); \ + mtx_init(&(_tq)->axq_lock, (_tq)->axq_name, NULL, MTX_DEF); \ } while (0) #define ATH_TXQ_LOCK_DESTROY(_tq) mtx_destroy(&(_tq)->axq_lock) #define ATH_TXQ_LOCK(_tq) mtx_lock(&(_tq)->axq_lock) @@ -306,7 +306,7 @@ #define ATH_LOCK_INIT(_sc) \ mtx_init(&(_sc)->sc_mtx, device_get_nameunit((_sc)->sc_dev), \ - MTX_NETWORK_LOCK, MTX_DEF | MTX_RECURSE) + NULL, MTX_DEF | MTX_RECURSE) #define ATH_LOCK_DESTROY(_sc) mtx_destroy(&(_sc)->sc_mtx) #define ATH_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) #define ATH_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) @@ -317,7 +317,7 @@ #define ATH_TXBUF_LOCK_INIT(_sc) do { \ snprintf((_sc)->sc_txname, sizeof((_sc)->sc_txname), "%s_buf", \ device_get_nameunit((_sc)->sc_dev)); \ - mtx_init(&(_sc)->sc_txbuflock, (_sc)->sc_txname, "ath_buf", MTX_DEF); \ + mtx_init(&(_sc)->sc_txbuflock, (_sc)->sc_txname, NULL, MTX_DEF); \ } while (0) #define ATH_TXBUF_LOCK_DESTROY(_sc) mtx_destroy(&(_sc)->sc_txbuflock) #define ATH_TXBUF_LOCK(_sc) mtx_lock(&(_sc)->sc_txbuflock) ==== //depot/projects/soc2006/intr_filter/dev/pccbb/pccbb.c#14 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.157 2007/03/04 19:33:12 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.158 2007/03/05 05:40:24 imp Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -1239,7 +1239,7 @@ DPRINTF(("cbb_pcic_socket_disable\n")); - /* Turn off the card's interrupt and leave it in reset */ + /* Turn off the card's interrupt and leave it in reset, wait 10ms */ exca_putb(&sc->exca[0], EXCA_INTR, 0); pause("cbbP1", hz / 100); @@ -1248,7 +1248,7 @@ exca_putb(&sc->exca[0], EXCA_PWRCTL, 0); /* wait 300ms until power fails (Tpf). */ - pause("cbbP1", hz * 300 / 1000); + pause("cbbP2", hz * 300 / 1000); /* enable CSC interrupts */ exca_putb(&sc->exca[0], EXCA_INTR, EXCA_INTR_ENABLE); ==== //depot/projects/soc2006/intr_filter/dev/pci/pci.c#11 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/pci/pci.c,v 1.343 2007/02/17 16:56:39 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pci/pci.c,v 1.344 2007/03/05 16:21:59 jhb Exp $"); #include "opt_bus.h" @@ -327,7 +327,7 @@ 0, 0, }; - return maptype[mapreg & 0x0f]; + return (maptype[mapreg & 0x0f]); } /* return log2 of map size decoded for memory or port map */ @@ -624,11 +624,11 @@ KASSERT((reg & 3) == 0, ("VPD register must by 4 byte aligned")); - WREG(cfg->vpd.vpd_reg + 2, reg, 2); - while ((REG(cfg->vpd.vpd_reg + 2, 2) & 0x8000) != 0x8000) + WREG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, reg, 2); + while ((REG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, 2) & 0x8000) != 0x8000) DELAY(1); /* limit looping */ - return REG(cfg->vpd.vpd_reg + 4, 4); + return (REG(cfg->vpd.vpd_reg + PCIR_VPD_DATA, 4)); } #if 0 @@ -637,9 +637,9 @@ { KASSERT((reg & 3) == 0, ("VPD register must by 4 byte aligned")); - WREG(cfg->vpd.vpd_reg + 4, data, 4); - WREG(cfg->vpd.vpd_reg + 2, reg | 0x8000, 2); - while ((REG(cfg->vpd.vpd_reg + 2, 2) & 0x8000) == 0x8000) + WREG(cfg->vpd.vpd_reg + PCIR_VPD_DATA, data, 4); + WREG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, reg | 0x8000, 2); + while ((REG(cfg->vpd.vpd_reg + PCIR_VPD_ADDR, 2) & 0x8000) == 0x8000) DELAY(1); /* limit looping */ return; @@ -673,7 +673,7 @@ } vrs->cksum += byte; - return byte; + return (byte); } static void @@ -918,9 +918,9 @@ *identptr = cfg->vpd.vpd_ident; if (*identptr == NULL) - return ENXIO; + return (ENXIO); - return 0; + return (0); } int @@ -938,10 +938,10 @@ } if (i != cfg->vpd.vpd_rocnt) - return 0; + return (0); *vptr = NULL; - return ENXIO; + return (ENXIO); } /* @@ -3070,7 +3070,7 @@ if ((flags & RF_ACTIVE) && bus_generic_activate_resource(dev, child, type, *rid, rle->res) != 0) - return NULL; + return (NULL); return (rle->res); } } ==== //depot/projects/soc2006/intr_filter/dev/pci/pcireg.h#7 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR 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/pci/pcireg.h,v 1.58 2007/02/02 19:48:25 jhb Exp $ + * $FreeBSD: src/sys/dev/pci/pcireg.h,v 1.59 2007/03/05 16:18:31 jhb Exp $ * */ @@ -252,7 +252,13 @@ #define PCIC_SIMPLECOMM 0x07 #define PCIS_SIMPLECOMM_UART 0x00 +#define PCIP_SIMPLECOMM_UART_8250 0x00 +#define PCIP_SIMPLECOMM_UART_16450A 0x01 #define PCIP_SIMPLECOMM_UART_16550A 0x02 +#define PCIP_SIMPLECOMM_UART_16650A 0x03 +#define PCIP_SIMPLECOMM_UART_16750A 0x04 +#define PCIP_SIMPLECOMM_UART_16850A 0x05 +#define PCIP_SIMPLECOMM_UART_16950A 0x06 #define PCIS_SIMPLECOMM_PAR 0x01 #define PCIS_SIMPLECOMM_MULSER 0x02 #define PCIS_SIMPLECOMM_MODEM 0x03 @@ -260,6 +266,11 @@ #define PCIC_BASEPERIPH 0x08 #define PCIS_BASEPERIPH_PIC 0x00 +#define PCIP_BASEPERIPH_PIC_8259A 0x00 +#define PCIP_BASEPERIPH_PIC_ISA 0x01 +#define PCIP_BASEPERIPH_PIC_EISA 0x02 +#define PCIP_BASEPERIPH_PIC_IO_APIC 0x10 +#define PCIP_BASEPERIPH_PIC_IOX_APIC 0x20 #define PCIS_BASEPERIPH_DMA 0x01 #define PCIS_BASEPERIPH_TIMER 0x02 #define PCIS_BASEPERIPH_RTC 0x03 @@ -339,7 +350,6 @@ #define PCIB_BCR_DISCARD_TIMER_SERREN 0x0800 /* PCI power manangement */ - #define PCIR_POWER_CAP 0x2 #define PCIM_PCAP_SPEC 0x0007 #define PCIM_PCAP_PMEREQCLK 0x0008 @@ -386,6 +396,10 @@ #define PCIR_POWER_DATA 0x7 +/* VPD capability registers */ +#define PCIR_VPD_ADDR 0x2 +#define PCIR_VPD_DATA 0x4 + /* PCI Message Signalled Interrupts (MSI) */ #define PCIR_MSI_CTRL 0x2 #define PCIM_MSICTRL_VECTOR 0x0100 ==== //depot/projects/soc2006/intr_filter/dev/sound/pci/envy24.c#6 (text+ko) ==== @@ -35,7 +35,7 @@ #include "mixer_if.h" -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/envy24.c,v 1.8 2007/02/23 19:41:16 ariff Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/envy24.c,v 1.9 2007/03/05 07:45:38 ariff Exp $"); MALLOC_DEFINE(M_ENVY24, "envy24", "envy24 audio"); @@ -2413,15 +2413,16 @@ mixer_init(dev, &envy24mixer_class, sc); /* set channel information */ - err = pcm_register(dev, sc, 5, 2 + sc->adcn); + err = pcm_register(dev, sc, sc->dacn, sc->adcn); if (err) goto bad; - sc->chnum = 0; - for (i = 0; i < 5; i++) { + sc->chnum = ENVY24_CHAN_PLAY_DAC1; + for (i = 0; i < sc->dacn; i++) { pcm_addchan(dev, PCMDIR_PLAY, &envy24chan_class, sc); sc->chnum++; } - for (i = 0; i < 2 + sc->adcn; i++) { + sc->chnum = ENVY24_CHAN_REC_ADC1; + for (i = 0; i < sc->adcn; i++) { pcm_addchan(dev, PCMDIR_REC, &envy24chan_class, sc); sc->chnum++; } ==== //depot/projects/soc2006/intr_filter/dev/sound/pcm/ac97.c#4 (text+ko) ==== @@ -32,7 +32,7 @@ #include "mixer_if.h" -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/ac97.c,v 1.64 2006/11/26 12:24:05 ariff Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/ac97.c,v 1.65 2007/03/06 02:36:54 ariff Exp $"); MALLOC_DEFINE(M_AC97, "ac97", "ac97 codec"); @@ -538,6 +538,23 @@ static void ac97_fix_tone(struct ac97_info *codec) { + /* + * YMF chips does not indicate tone and 3D enhancement capability + * in the AC97_REG_RESET register. + */ + switch (codec->id) { + case 0x594d4800: /* YMF743 */ + case 0x594d4803: /* YMF753 */ + codec->caps |= AC97_CAP_TONE; + codec->se |= 0x04; + break; + case 0x594d4802: /* YMF752 */ + codec->se |= 0x04; + break; + default: + break; + } + /* Hide treble and bass if they don't exist */ if ((codec->caps & AC97_CAP_TONE) == 0) { bzero(&codec->mix[SOUND_MIXER_BASS], ==== //depot/projects/soc2006/intr_filter/dev/sym/sym_hipd.c#5 (text+ko) ==== @@ -56,7 +56,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/sym/sym_hipd.c,v 1.62 2007/02/23 12:18:55 piso Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/sym/sym_hipd.c,v 1.63 2007/03/05 21:21:03 thomas Exp $"); #define SYM_DRIVER_NAME "sym-1.6.5-20000902" @@ -2206,9 +2206,9 @@ }; } -/*--------------------------------------------------------------------------*/ -/*--------------------------- END OF FIRMARES -----------------------------*/ -/*--------------------------------------------------------------------------*/ +/*---------------------------------------------------------------------------*/ +/*--------------------------- END OF FIRMWARES -----------------------------*/ +/*---------------------------------------------------------------------------*/ /* * Function prototypes. ==== //depot/projects/soc2006/intr_filter/geom/eli/g_eli_ctl.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200703060945.l269jlgj016323>