Date: Mon, 14 Apr 2008 04:07:32 GMT From: Warner Losh <imp@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 140010 for review Message-ID: <200804140407.m3E47W9g037350@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=140010 Change 140010 by imp@imp_paco-paco on 2008/04/14 04:06:37 IFC @140006 Affected files ... .. //depot/projects/arm/src/sys/dev/pci/pcivar.h#14 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/hda/hdac.c#20 integrate .. //depot/projects/arm/src/sys/geom/part/g_part.c#10 integrate .. //depot/projects/arm/src/sys/geom/part/g_part.h#8 integrate .. //depot/projects/arm/src/sys/geom/part/g_part_gpt.c#6 integrate .. //depot/projects/arm/src/sys/geom/part/g_part_if.m#2 integrate .. //depot/projects/arm/src/sys/geom/part/g_part_mbr.c#4 integrate .. //depot/projects/arm/src/sys/geom/part/g_part_pc98.c#2 integrate .. //depot/projects/arm/src/sys/i386/conf/GENERIC.hints#5 integrate .. //depot/projects/arm/src/sys/i386/isa/clock.c#19 integrate .. //depot/projects/arm/src/sys/isa/atrtc.c#1 branch .. //depot/projects/arm/src/sys/kern/kern_lock.c#18 integrate .. //depot/projects/arm/src/sys/kern/subr_clock.c#6 integrate .. //depot/projects/arm/src/sys/kern/subr_witness.c#27 integrate .. //depot/projects/arm/src/sys/kern/uipc_shm.c#2 integrate .. //depot/projects/arm/src/sys/mips/compile/.cvsignore#1 branch .. //depot/projects/arm/src/sys/mips/conf/ADM5120#1 branch .. //depot/projects/arm/src/sys/mips/conf/ADM5120.hints#1 branch .. //depot/projects/arm/src/sys/mips/conf/IDT#1 branch .. //depot/projects/arm/src/sys/mips/conf/IDT.hints#1 branch .. //depot/projects/arm/src/sys/mips/conf/MALTA#1 branch .. //depot/projects/arm/src/sys/mips/conf/MALTA.hints#1 branch .. //depot/projects/arm/src/sys/mips/conf/QEMU#1 branch .. //depot/projects/arm/src/sys/mips/conf/SENTRY5#1 branch .. //depot/projects/arm/src/sys/mips/conf/SENTRY5.hints#1 branch .. //depot/projects/arm/src/sys/mips/include/_bus.h#1 branch .. //depot/projects/arm/src/sys/mips/include/_bus_octeon.h#1 branch .. //depot/projects/arm/src/sys/mips/include/_inttypes.h#1 branch .. //depot/projects/arm/src/sys/mips/include/_limits.h#1 branch .. //depot/projects/arm/src/sys/mips/include/_stdint.h#1 branch .. //depot/projects/arm/src/sys/mips/include/_types.h#1 branch .. //depot/projects/arm/src/sys/mips/include/am29lv081b.h#1 branch .. //depot/projects/arm/src/sys/mips/include/archtype.h#1 branch .. //depot/projects/arm/src/sys/mips/include/asm.h#1 branch .. //depot/projects/arm/src/sys/mips/include/asmacros.h#1 branch .. //depot/projects/arm/src/sys/mips/include/atomic.h#1 branch .. //depot/projects/arm/src/sys/mips/include/bootinfo.h#1 branch .. //depot/projects/arm/src/sys/mips/include/bswap.h#1 branch .. //depot/projects/arm/src/sys/mips/include/bus.h#1 branch .. //depot/projects/arm/src/sys/mips/include/bus_dma.h#1 branch .. //depot/projects/arm/src/sys/mips/include/bus_octeon.h#1 branch .. //depot/projects/arm/src/sys/mips/include/cache.h#1 branch .. //depot/projects/arm/src/sys/mips/include/cache_mipsNN.h#1 branch .. //depot/projects/arm/src/sys/mips/include/cache_r4k.h#1 branch .. //depot/projects/arm/src/sys/mips/include/clock.h#1 branch .. //depot/projects/arm/src/sys/mips/include/clockvar.h#1 branch .. //depot/projects/arm/src/sys/mips/include/cp0.h#1 branch .. //depot/projects/arm/src/sys/mips/include/cpu.h#1 branch .. //depot/projects/arm/src/sys/mips/include/cpufunc.h#1 branch .. //depot/projects/arm/src/sys/mips/include/cpuinfo.h#1 branch .. //depot/projects/arm/src/sys/mips/include/cpuregs.h#1 branch .. //depot/projects/arm/src/sys/mips/include/cputypes.h#1 branch .. //depot/projects/arm/src/sys/mips/include/db_machdep.h#1 branch .. //depot/projects/arm/src/sys/mips/include/defs.h#1 branch .. //depot/projects/arm/src/sys/mips/include/elf.h#1 branch .. //depot/projects/arm/src/sys/mips/include/endian.h#1 branch .. //depot/projects/arm/src/sys/mips/include/exec.h#1 branch .. //depot/projects/arm/src/sys/mips/include/float.h#1 branch .. //depot/projects/arm/src/sys/mips/include/floatingpoint.h#1 branch .. //depot/projects/arm/src/sys/mips/include/fpu.h#1 branch .. //depot/projects/arm/src/sys/mips/include/frame.h#1 branch .. //depot/projects/arm/src/sys/mips/include/gdb_machdep.h#1 branch .. //depot/projects/arm/src/sys/mips/include/hwfunc.h#1 branch .. //depot/projects/arm/src/sys/mips/include/ieee.h#1 branch .. //depot/projects/arm/src/sys/mips/include/ieeefp.h#1 branch .. //depot/projects/arm/src/sys/mips/include/in_cksum.h#1 branch .. //depot/projects/arm/src/sys/mips/include/intr.h#1 branch .. //depot/projects/arm/src/sys/mips/include/intr_machdep.h#1 branch .. //depot/projects/arm/src/sys/mips/include/iodev.h#1 branch .. //depot/projects/arm/src/sys/mips/include/kdb.h#1 branch .. //depot/projects/arm/src/sys/mips/include/limits.h#1 branch .. //depot/projects/arm/src/sys/mips/include/locore.h#1 branch .. //depot/projects/arm/src/sys/mips/include/md_var.h#1 branch .. //depot/projects/arm/src/sys/mips/include/memdev.h#1 branch .. //depot/projects/arm/src/sys/mips/include/metadata.h#1 branch .. //depot/projects/arm/src/sys/mips/include/minidump.h#1 branch .. //depot/projects/arm/src/sys/mips/include/mips_opcode.h#1 branch .. //depot/projects/arm/src/sys/mips/include/mp_watchdog.h#1 branch .. //depot/projects/arm/src/sys/mips/include/mutex.h#1 branch .. //depot/projects/arm/src/sys/mips/include/ns16550.h#1 branch .. //depot/projects/arm/src/sys/mips/include/param.h#1 branch .. //depot/projects/arm/src/sys/mips/include/pcb.h#1 branch .. //depot/projects/arm/src/sys/mips/include/pcb_ext.h#1 branch .. //depot/projects/arm/src/sys/mips/include/pci_cfgreg.h#1 branch .. //depot/projects/arm/src/sys/mips/include/pcpu.h#1 branch .. //depot/projects/arm/src/sys/mips/include/pltfm.h#1 branch .. //depot/projects/arm/src/sys/mips/include/pmap.h#1 branch .. //depot/projects/arm/src/sys/mips/include/pmc_mdep.h#1 branch .. //depot/projects/arm/src/sys/mips/include/ppireg.h#1 branch .. //depot/projects/arm/src/sys/mips/include/proc.h#1 branch .. //depot/projects/arm/src/sys/mips/include/profile.h#1 branch .. //depot/projects/arm/src/sys/mips/include/psl.h#1 branch .. //depot/projects/arm/src/sys/mips/include/pte.h#1 branch .. //depot/projects/arm/src/sys/mips/include/ptrace.h#1 branch .. //depot/projects/arm/src/sys/mips/include/queue.h#1 branch .. //depot/projects/arm/src/sys/mips/include/reg.h#1 branch .. //depot/projects/arm/src/sys/mips/include/regdef.h#1 branch .. //depot/projects/arm/src/sys/mips/include/regnum.h#1 branch .. //depot/projects/arm/src/sys/mips/include/reloc.h#1 branch .. //depot/projects/arm/src/sys/mips/include/resource.h#1 branch .. //depot/projects/arm/src/sys/mips/include/rm7000.h#1 branch .. //depot/projects/arm/src/sys/mips/include/runq.h#1 branch .. //depot/projects/arm/src/sys/mips/include/segments.h#1 branch .. //depot/projects/arm/src/sys/mips/include/setjmp.h#1 branch .. //depot/projects/arm/src/sys/mips/include/sf_buf.h#1 branch .. //depot/projects/arm/src/sys/mips/include/sigframe.h#1 branch .. //depot/projects/arm/src/sys/mips/include/signal.h#1 branch .. //depot/projects/arm/src/sys/mips/include/smp.h#1 branch .. //depot/projects/arm/src/sys/mips/include/stdarg.h#1 branch .. //depot/projects/arm/src/sys/mips/include/sysarch.h#1 branch .. //depot/projects/arm/src/sys/mips/include/timerreg.h#1 branch .. //depot/projects/arm/src/sys/mips/include/trap.h#1 branch .. //depot/projects/arm/src/sys/mips/include/ucontext.h#1 branch .. //depot/projects/arm/src/sys/mips/include/varargs.h#1 branch .. //depot/projects/arm/src/sys/mips/include/vmparam.h#1 branch .. //depot/projects/arm/src/sys/mips/mips/autoconf.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/busdma_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/cache.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/cache_mipsNN.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/copystr.S#1 branch .. //depot/projects/arm/src/sys/mips/mips/cpu.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/db_disasm.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/db_interface.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/db_trace.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/dump_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/elf_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/exception.S#1 branch .. //depot/projects/arm/src/sys/mips/mips/fp.S#1 branch .. //depot/projects/arm/src/sys/mips/mips/gdb_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/genassym.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/in_cksum.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/intr_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/locore.S#1 branch .. //depot/projects/arm/src/sys/mips/mips/machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/mainbus.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/mem.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/mips_subr.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/mp_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/nexus.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/pm_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/pmap.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/psraccess.S#1 branch .. //depot/projects/arm/src/sys/mips/mips/stack_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/support.S#1 branch .. //depot/projects/arm/src/sys/mips/mips/swtch.S#1 branch .. //depot/projects/arm/src/sys/mips/mips/tick.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/tlb.S#1 branch .. //depot/projects/arm/src/sys/mips/mips/trap.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/uio_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips/vm_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/adm5120_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/adm5120reg.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/admpci.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/console.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/files.adm5120#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/if_admsw.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/if_admswreg.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/if_admswvar.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/obio.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/obiovar.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/std.adm5120#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/uart_bus_adm5120.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/uart_cpu_adm5120.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/uart_dev_adm5120.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/adm5120/uart_dev_adm5120.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/idt/files.idt#1 branch .. //depot/projects/arm/src/sys/mips/mips32/idt/idt_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/idt/idtpci.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/idt/idtreg.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/idt/if_kr.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/idt/if_krreg.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/idt/obio.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/idt/obiovar.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/idt/std.idt#1 branch .. //depot/projects/arm/src/sys/mips/mips32/idt/uart_bus_rc32434.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/idt/uart_cpu_rc32434.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/files.malta#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/gt.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/gt_pci.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/gtreg.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/gtvar.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/malta_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/maltareg.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/obio.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/obiovar.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/std.malta#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/uart_bus_maltausart.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/uart_cpu_maltausart.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/yamon.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/malta/yamon.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/sentry5/files.sentry5#1 branch .. //depot/projects/arm/src/sys/mips/mips32/sentry5/obio.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/sentry5/obiovar.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/sentry5/s5_machdep.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/sentry5/s5reg.h#1 branch .. //depot/projects/arm/src/sys/mips/mips32/sentry5/siba_cc.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/sentry5/siba_mips.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/sentry5/siba_sdram.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/sentry5/uart_bus_sbusart.c#1 branch .. //depot/projects/arm/src/sys/mips/mips32/sentry5/uart_cpu_sbusart.c#1 branch .. //depot/projects/arm/src/sys/modules/Makefile#56 integrate .. //depot/projects/arm/src/sys/modules/k8temp/Makefile#1 branch .. //depot/projects/arm/src/sys/net/radix.c#3 integrate .. //depot/projects/arm/src/sys/net/radix.h#2 integrate .. //depot/projects/arm/src/sys/net/radix_mpath.c#1 branch .. //depot/projects/arm/src/sys/net/radix_mpath.h#1 branch .. //depot/projects/arm/src/sys/net/route.c#10 integrate .. //depot/projects/arm/src/sys/net/route.h#5 integrate .. //depot/projects/arm/src/sys/net/rtsock.c#13 integrate .. //depot/projects/arm/src/sys/netinet/in_proto.c#10 integrate .. //depot/projects/arm/src/sys/netinet/ip_output.c#29 integrate .. //depot/projects/arm/src/sys/netinet6/in6_proto.c#13 integrate .. //depot/projects/arm/src/sys/netinet6/in6_src.c#13 integrate .. //depot/projects/arm/src/sys/netinet6/nd6_nbr.c#11 integrate .. //depot/projects/arm/src/sys/pc98/cbus/clock.c#11 integrate .. //depot/projects/arm/src/sys/pc98/conf/GENERIC.hints#5 integrate .. //depot/projects/arm/src/sys/powerpc/booke/clock.c#3 integrate .. //depot/projects/arm/src/sys/powerpc/conf/MPC85XX#2 integrate .. //depot/projects/arm/src/sys/security/audit/audit.c#25 integrate .. //depot/projects/arm/src/sys/security/audit/audit_arg.c#17 integrate .. //depot/projects/arm/src/sys/security/audit/audit_bsm.c#17 integrate .. //depot/projects/arm/src/sys/security/audit/audit_bsm_klib.c#11 integrate .. //depot/projects/arm/src/sys/security/audit/audit_bsm_token.c#12 integrate .. //depot/projects/arm/src/sys/security/audit/audit_pipe.c#10 integrate .. //depot/projects/arm/src/sys/security/audit/audit_syscalls.c#19 integrate .. //depot/projects/arm/src/sys/security/audit/audit_trigger.c#7 integrate .. //depot/projects/arm/src/sys/security/audit/audit_worker.c#10 integrate .. //depot/projects/arm/src/sys/security/mac/mac_framework.h#12 integrate .. //depot/projects/arm/src/sys/security/mac/mac_internal.h#8 integrate .. //depot/projects/arm/src/sys/security/mac/mac_policy.h#9 integrate .. //depot/projects/arm/src/sys/sys/lock.h#15 integrate Differences ... ==== //depot/projects/arm/src/sys/dev/pci/pcivar.h#14 (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/pcivar.h,v 1.80 2007/09/30 11:05:15 marius Exp $ + * $FreeBSD: src/sys/dev/pci/pcivar.h,v 1.81 2008/04/12 20:26:07 phk Exp $ * */ @@ -238,7 +238,7 @@ PCI_IVAR_CACHELNSZ, PCI_IVAR_MINGNT, PCI_IVAR_MAXLAT, - PCI_IVAR_LATTIMER, + PCI_IVAR_LATTIMER }; /* ==== //depot/projects/arm/src/sys/dev/sound/pci/hda/hdac.c#20 (text+ko) ==== @@ -81,10 +81,10 @@ #include "mixer_if.h" -#define HDA_DRV_TEST_REV "20071129_0050" +#define HDA_DRV_TEST_REV "20080412_0051" #define HDA_WIDGET_PARSER_REV 1 -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.51 2007/12/13 15:48:45 ariff Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.52 2008/04/12 15:07:32 ariff Exp $"); #define HDA_BOOTVERBOSE(stmt) do { \ if (bootverbose != 0 || snd_verbose > 3) { \ @@ -102,6 +102,12 @@ #define hdac_lockassert(sc) snd_mtxassert((sc)->lock) #define hdac_lockowned(sc) mtx_owned((sc)->lock) +#undef HDAC_MSI_ENABLED +#if __FreeBSD_version >= 700026 || \ + (__FreeBSD_version < 700000 && __FreeBSD_version >= 602106) +#define HDAC_MSI_ENABLED 1 +#endif + #define HDA_FLAG_MATCH(fl, v) (((fl) & (v)) == (v)) #define HDA_DEV_MATCH(fl, v) ((fl) == (v) || \ (fl) == 0xffffffff || \ @@ -188,6 +194,7 @@ /* Dell */ #define DELL_VENDORID 0x1028 #define DELL_D820_SUBVENDOR HDA_MODEL_CONSTRUCT(DELL, 0x01cc) +#define DELL_V1500_SUBVENDOR HDA_MODEL_CONSTRUCT(DELL, 0x0228) #define DELL_I1300_SUBVENDOR HDA_MODEL_CONSTRUCT(DELL, 0x01c9) #define DELL_XPSM1210_SUBVENDOR HDA_MODEL_CONSTRUCT(DELL, 0x01d7) #define DELL_OPLX745_SUBVENDOR HDA_MODEL_CONSTRUCT(DELL, 0x01da) @@ -208,19 +215,20 @@ /* Asus */ #define ASUS_VENDORID 0x1043 -#define ASUS_M5200_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x1993) +#define ASUS_A8X_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x1153) #define ASUS_U5F_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x1263) -#define ASUS_A8JC_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x1153) -#define ASUS_P1AH2_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x81cb) +#define ASUS_W6F_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x1263) #define ASUS_A7M_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x1323) +#define ASUS_F3JC_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x1338) +#define ASUS_G2K_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x1339) #define ASUS_A7T_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x13c2) -#define ASUS_W6F_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x1263) #define ASUS_W2J_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x1971) -#define ASUS_F3JC_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x1338) +#define ASUS_M5200_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x1993) +#define ASUS_P1AH2_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x81cb) +#define ASUS_M2NPVMX_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x81cb) #define ASUS_M2V_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x81e7) +#define ASUS_P5BWD_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x81ec) #define ASUS_M2N_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x8234) -#define ASUS_M2NPVMX_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x81cb) -#define ASUS_P5BWD_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0x81ec) #define ASUS_A8NVMCSM_SUBVENDOR HDA_MODEL_CONSTRUCT(NVIDIA, 0xcb84) #define ASUS_ALL_SUBVENDOR HDA_MODEL_CONSTRUCT(ASUS, 0xffff) @@ -548,6 +556,7 @@ #define HDA_CODEC_STAC922XD HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7681) #define HDA_CODEC_STAC9227 HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7618) #define HDA_CODEC_STAC9271D HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7627) +#define HDA_CODEC_STAC9205 HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a0) #define HDA_CODEC_STACXXXX HDA_CODEC_CONSTRUCT(SIGMATEL, 0xffff) /* @@ -610,6 +619,7 @@ { HDA_CODEC_STAC922XD, "Sigmatel STAC9220D/9223D" }, { HDA_CODEC_STAC9227, "Sigmatel STAC9227" }, { HDA_CODEC_STAC9271D, "Sigmatel STAC9271D" }, + { HDA_CODEC_STAC9205, "Sigmatel STAC9205" }, { HDA_CODEC_CXVENICE, "Conexant Venice" }, { HDA_CODEC_CXWAIKIKI, "Conexant Waikiki" }, { HDA_CODEC_VT1708_8, "VIA VT1708_8" }, @@ -676,6 +686,8 @@ 0, 0, -1, 13, { 14, -1 }, -1 }, { DELL_OPLX745_SUBVENDOR, HDA_CODEC_AD1983, HDAC_HP_SWITCH_CTL, 0, 0, -1, 6, { 5, 7, -1 }, -1 }, + { DELL_V1500_SUBVENDOR, HDA_CODEC_STAC9205, HDAC_HP_SWITCH_CTRL, + 0, 0, -1, 10, { 13, -1 }, -1 }, { APPLE_MB3_SUBVENDOR, HDA_CODEC_ALC885, HDAC_HP_SWITCH_CTL, 0, 0, -1, 21, { 20, 22, -1 }, -1 }, { APPLE_INTEL_MAC, HDA_CODEC_STAC9221, HDAC_HP_SWITCH_CTRL, @@ -1560,7 +1572,7 @@ irq = &sc->irq; irq->irq_rid = 0x0; -#if __FreeBSD_version >= 602106 +#ifdef HDAC_MSI_ENABLED if ((sc->flags & HDAC_F_MSI) && (result = pci_msi_count(sc->dev)) == 1 && pci_alloc_msi(sc->dev, &result) == 0) @@ -1609,7 +1621,7 @@ if (irq->irq_res != NULL) bus_release_resource(sc->dev, SYS_RES_IRQ, irq->irq_rid, irq->irq_res); -#if __FreeBSD_version >= 602106 +#ifdef HDAC_MSI_ENABLED if ((sc->flags & HDAC_F_MSI) && irq->irq_rid == 0x1) pci_release_msi(sc->dev); #endif @@ -3811,7 +3823,7 @@ ); } -#if __FreeBSD_version >= 602106 +#ifdef HDAC_MSI_ENABLED if (resource_int_value(device_get_name(dev), device_get_unit(dev), "msi", &i) == 0 && i != 0 && pci_msi_count(dev) == 1) @@ -4201,6 +4213,8 @@ HDA_QUIRK_FORCESTEREO | HDA_QUIRK_IVREF, 0 }, { ACER_ALL_SUBVENDOR, HDA_MATCH_ALL, HDA_QUIRK_GPIO0, 0 }, + { ASUS_G2K_SUBVENDOR, HDA_CODEC_ALC660, + HDA_QUIRK_GPIO0, 0 }, { ASUS_M5200_SUBVENDOR, HDA_CODEC_ALC880, HDA_QUIRK_GPIO0, 0 }, { ASUS_A7M_SUBVENDOR, HDA_CODEC_ALC880, @@ -4211,7 +4225,7 @@ HDA_QUIRK_GPIO0, 0 }, { ASUS_U5F_SUBVENDOR, HDA_CODEC_AD1986A, HDA_QUIRK_EAPDINV, 0 }, - { ASUS_A8JC_SUBVENDOR, HDA_CODEC_AD1986A, + { ASUS_A8X_SUBVENDOR, HDA_CODEC_AD1986A, HDA_QUIRK_EAPDINV, 0 }, { ASUS_F3JC_SUBVENDOR, HDA_CODEC_ALC861, HDA_QUIRK_OVREF, 0 }, @@ -4231,6 +4245,8 @@ HDA_QUIRK_GPIO0 | HDA_QUIRK_OVREF50, 0}, { APPLE_INTEL_MAC, HDA_CODEC_STAC9221, HDA_QUIRK_GPIO0 | HDA_QUIRK_GPIO1, 0 }, + { DELL_V1500_SUBVENDOR, HDA_CODEC_STAC9205, + HDA_QUIRK_GPIO0, 0 }, { HDA_MATCH_ALL, HDA_CODEC_AD1988, HDA_QUIRK_IVREF80, HDA_QUIRK_IVREF50 | HDA_QUIRK_IVREF100 }, { HDA_MATCH_ALL, HDA_CODEC_AD1988B, @@ -4432,6 +4448,20 @@ w = hdac_widget_get(devinfo, 16); if (w != NULL) w->selconn = 1; + } else if (subvendor == ASUS_A8X_SUBVENDOR) { + /* + * This is just plain ridiculous.. There + * are several A8 series that share the same + * pci id but works differently (EAPD). + */ + w = hdac_widget_get(devinfo, 26); + if (w != NULL && w->type == + HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_PIN_COMPLEX && + (w->wclass.pin.config & + HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK) != + HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_NONE) + devinfo->function.audio.quirks &= + ~HDA_QUIRK_EAPDINV; } break; case HDA_CODEC_AD1988: @@ -4487,6 +4517,16 @@ ctl->widget->ctlflags |= SOUND_MASK_SPEAKER; } break; + case HDA_CODEC_STAC9205: + if (subvendor == DELL_V1500_SUBVENDOR) { + w = hdac_widget_get(devinfo, 29); + if (w != NULL) + w->selconn = 1; + w = hdac_widget_get(devinfo, 30); + if (w != NULL) + w->selconn = 1; + } + break; case HDA_CODEC_STAC9221: /* * Dell XPS M1210 need all DACs for each output jacks ==== //depot/projects/arm/src/sys/geom/part/g_part.c#10 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/geom/part/g_part.c,v 1.16 2008/03/23 01:31:59 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/part/g_part.c,v 1.17 2008/04/13 19:54:54 marcel Exp $"); #include <sys/param.h> #include <sys/bio.h> @@ -112,6 +112,7 @@ enum g_part_ctl { G_PART_CTL_NONE, G_PART_CTL_ADD, + G_PART_CTL_BOOTCODE, G_PART_CTL_COMMIT, G_PART_CTL_CREATE, G_PART_CTL_DELETE, @@ -514,6 +515,48 @@ } static int +g_part_ctl_bootcode(struct gctl_req *req, struct g_part_parms *gpp) +{ + struct g_geom *gp; + struct g_part_table *table; + struct sbuf *sb; + int error, sz; + + gp = gpp->gpp_geom; + G_PART_TRACE((G_T_TOPOLOGY, "%s(%s)", __func__, gp->name)); + g_topology_assert(); + + table = gp->softc; + sz = table->gpt_scheme->gps_bootcodesz; + if (sz == 0) { + error = ENODEV; + goto fail; + } + if (gpp->gpp_codesize != sz) { + error = EINVAL; + goto fail; + } + + error = G_PART_BOOTCODE(table, gpp); + if (error) + goto fail; + + /* Provide feedback if so requested. */ + if (gpp->gpp_parms & G_PART_PARM_OUTPUT) { + sb = sbuf_new(NULL, NULL, 0, SBUF_AUTOEXTEND); + sbuf_printf(sb, "%s has bootcode\n", gp->name); + sbuf_finish(sb); + gctl_set_param(req, "output", sbuf_data(sb), sbuf_len(sb) + 1); + sbuf_delete(sb); + } + return (0); + + fail: + gctl_error(req, "%d", error); + return (error); +} + +static int g_part_ctl_commit(struct gctl_req *req, struct g_part_parms *gpp) { struct g_consumer *cp; @@ -1023,7 +1066,7 @@ enum g_part_ctl ctlreq; unsigned int i, mparms, oparms, parm; int auto_commit, close_on_error; - int error, modifies; + int error, len, modifies; G_PART_TRACE((G_T_TOPOLOGY, "%s(%s,%s)", __func__, mp->name, verb)); g_topology_assert(); @@ -1041,6 +1084,12 @@ oparms |= G_PART_PARM_INDEX | G_PART_PARM_LABEL; } break; + case 'b': + if (!strcmp(verb, "bootcode")) { + ctlreq = G_PART_CTL_BOOTCODE; + mparms |= G_PART_PARM_GEOM | G_PART_PARM_BOOTCODE; + } + break; case 'c': if (!strcmp(verb, "commit")) { ctlreq = G_PART_CTL_COMMIT; @@ -1098,6 +1147,10 @@ ap = &req->arg[i]; parm = 0; switch (ap->name[0]) { + case 'b': + if (!strcmp(ap->name, "bootcode")) + parm = G_PART_PARM_BOOTCODE; + break; case 'c': if (!strcmp(ap->name, "class")) continue; @@ -1153,12 +1206,20 @@ gctl_error(req, "%d param '%s'", EINVAL, ap->name); return; } - p = gctl_get_asciiparam(req, ap->name); + if (parm == G_PART_PARM_BOOTCODE) + p = gctl_get_param(req, ap->name, &len); + else + p = gctl_get_asciiparam(req, ap->name); if (p == NULL) { gctl_error(req, "%d param '%s'", ENOATTR, ap->name); return; } switch (parm) { + case G_PART_PARM_BOOTCODE: + gpp.gpp_codeptr = p; + gpp.gpp_codesize = len; + error = 0; + break; case G_PART_PARM_ENTRIES: error = g_part_parm_uint(p, &gpp.gpp_entries); break; @@ -1240,6 +1301,9 @@ case G_PART_CTL_ADD: error = g_part_ctl_add(req, &gpp); break; + case G_PART_CTL_BOOTCODE: + error = g_part_ctl_bootcode(req, &gpp); + break; case G_PART_CTL_COMMIT: error = g_part_ctl_commit(req, &gpp); break; ==== //depot/projects/arm/src/sys/geom/part/g_part.h#8 (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/geom/part/g_part.h,v 1.8 2008/03/29 17:33:29 marcel Exp $ + * $FreeBSD: src/sys/geom/part/g_part.h,v 1.9 2008/04/13 19:54:54 marcel Exp $ */ #ifndef _GEOM_PART_H_ @@ -56,6 +56,7 @@ size_t gps_entrysz; int gps_minent; int gps_maxent; + int gps_bootcodesz; TAILQ_ENTRY(g_part_scheme) scheme_list; }; @@ -134,6 +135,7 @@ #define G_PART_PARM_START 0x0200 #define G_PART_PARM_TYPE 0x0400 #define G_PART_PARM_VERSION 0x0800 +#define G_PART_PARM_BOOTCODE 0x1000 struct g_part_parms { unsigned int gpp_parms; @@ -148,6 +150,8 @@ quad_t gpp_start; const char *gpp_type; unsigned int gpp_version; + const void *gpp_codeptr; + unsigned int gpp_codesize; }; void g_part_geometry_heads(off_t, u_int, off_t *, u_int *); ==== //depot/projects/arm/src/sys/geom/part/g_part_gpt.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/geom/part/g_part_gpt.c,v 1.6 2008/03/23 01:31:59 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/part/g_part_gpt.c,v 1.7 2008/04/13 19:54:54 marcel Exp $"); #include <sys/param.h> #include <sys/bio.h> @@ -52,6 +52,8 @@ #define EQUUID(a,b) (memcmp(a, b, sizeof(struct uuid)) == 0) +#define MBRSIZE 512 + enum gpt_elt { GPT_ELT_PRIHDR, GPT_ELT_PRITBL, @@ -70,6 +72,7 @@ struct g_part_gpt_table { struct g_part_table base; + u_char mbr[MBRSIZE]; struct gpt_hdr hdr; quad_t lba[GPT_ELT_COUNT]; enum gpt_state state[GPT_ELT_COUNT]; @@ -82,6 +85,7 @@ static int g_part_gpt_add(struct g_part_table *, struct g_part_entry *, struct g_part_parms *); +static int g_part_gpt_bootcode(struct g_part_table *, struct g_part_parms *); static int g_part_gpt_create(struct g_part_table *, struct g_part_parms *); static int g_part_gpt_destroy(struct g_part_table *, struct g_part_parms *); static int g_part_gpt_dumpto(struct g_part_table *, struct g_part_entry *); @@ -97,6 +101,7 @@ static kobj_method_t g_part_gpt_methods[] = { KOBJMETHOD(g_part_add, g_part_gpt_add), + KOBJMETHOD(g_part_bootcode, g_part_gpt_bootcode), KOBJMETHOD(g_part_create, g_part_gpt_create), KOBJMETHOD(g_part_destroy, g_part_gpt_destroy), KOBJMETHOD(g_part_dumpto, g_part_gpt_dumpto), @@ -116,6 +121,7 @@ .gps_entrysz = sizeof(struct g_part_gpt_entry), .gps_minent = 128, .gps_maxent = INT_MAX, + .gps_bootcodesz = MBRSIZE, }; G_PART_SCHEME_DECLARE(g_part_gpt); @@ -352,6 +358,16 @@ } static int +g_part_gpt_bootcode(struct g_part_table *basetable, struct g_part_parms *gpp) +{ + struct g_part_gpt_table *table; + + table = (struct g_part_gpt_table *)basetable; + bcopy(gpp->gpp_codeptr, table->mbr, DOSPARTOFF); + return (0); +} + +static int g_part_gpt_create(struct g_part_table *basetable, struct g_part_parms *gpp) { struct g_provider *pp; @@ -363,13 +379,24 @@ pp = gpp->gpp_provider; tblsz = (basetable->gpt_entries * sizeof(struct gpt_ent) + pp->sectorsize - 1) / pp->sectorsize; - if (pp->sectorsize < 512 || + if (pp->sectorsize < MBRSIZE || pp->mediasize < (3 + 2 * tblsz + basetable->gpt_entries) * pp->sectorsize) return (ENOSPC); last = (pp->mediasize / pp->sectorsize) - 1; + le16enc(table->mbr + DOSMAGICOFFSET, DOSMAGIC); + table->mbr[DOSPARTOFF + 1] = 0xff; /* shd */ + table->mbr[DOSPARTOFF + 2] = 0xff; /* ssect */ + table->mbr[DOSPARTOFF + 3] = 0xff; /* scyl */ + table->mbr[DOSPARTOFF + 4] = 0xee; /* typ */ + table->mbr[DOSPARTOFF + 5] = 0xff; /* ehd */ + table->mbr[DOSPARTOFF + 6] = 0xff; /* esect */ + table->mbr[DOSPARTOFF + 7] = 0xff; /* ecyl */ + le32enc(table->mbr + DOSPARTOFF + 8, 1); /* start */ + le32enc(table->mbr + DOSPARTOFF + 12, MIN(last, 0xffffffffLL)); + table->lba[GPT_ELT_PRIHDR] = 1; table->lba[GPT_ELT_PRITBL] = 2; table->lba[GPT_ELT_SECHDR] = last; @@ -469,7 +496,7 @@ * It's better to catch this pathological case early than behaving * pathologically later on... */ - if (pp->sectorsize < 512 || pp->mediasize < 6 * pp->sectorsize) + if (pp->sectorsize < MBRSIZE || pp->mediasize < 6 * pp->sectorsize) return (ENOSPC); /* Check that there's a MBR. */ @@ -508,11 +535,19 @@ struct g_provider *pp; struct g_part_gpt_table *table; struct g_part_gpt_entry *entry; - int index; + u_char *buf; + int error, index; table = (struct g_part_gpt_table *)basetable; pp = cp->provider; + /* Read the PMBR */ + buf = g_read_data(cp, 0, pp->sectorsize, &error); + if (buf == NULL) + return (error); + bcopy(buf, table->mbr, MBRSIZE); + g_free(buf); + /* Read the primary header and table. */ gpt_read_hdr(table, cp, GPT_ELT_PRIHDR, &prihdr); if (table->state[GPT_ELT_PRIHDR] == GPT_STATE_OK) { @@ -640,24 +675,13 @@ tlbsz = (table->hdr.hdr_entries * table->hdr.hdr_entsz + pp->sectorsize - 1) / pp->sectorsize; - if (basetable->gpt_created) { - buf = g_malloc(pp->sectorsize, M_WAITOK | M_ZERO); - le16enc(buf + DOSMAGICOFFSET, DOSMAGIC); - buf[DOSPARTOFF + 1] = 0xff; /* shd */ - buf[DOSPARTOFF + 2] = 0xff; /* ssect */ - buf[DOSPARTOFF + 3] = 0xff; /* scyl */ - buf[DOSPARTOFF + 4] = 0xee; /* typ */ - buf[DOSPARTOFF + 5] = 0xff; /* ehd */ - buf[DOSPARTOFF + 6] = 0xff; /* esect */ - buf[DOSPARTOFF + 7] = 0xff; /* ecyl */ - le32enc(buf + DOSPARTOFF + 8, 1); /* start */ - le32enc(buf + DOSPARTOFF + 12, - MIN(pp->mediasize / pp->sectorsize - 1, 0xffffffffLL)); - error = g_write_data(cp, 0, buf, pp->sectorsize); - g_free(buf); - if (error) - return (error); - } + /* Write the PMBR */ + buf = g_malloc(pp->sectorsize, M_WAITOK | M_ZERO); + bcopy(table->mbr, buf, MBRSIZE); + error = g_write_data(cp, 0, buf, pp->sectorsize); + g_free(buf); + if (error) + return (error); /* Allocate space for the header and entries. */ buf = g_malloc((tlbsz + 1) * pp->sectorsize, M_WAITOK | M_ZERO); ==== //depot/projects/arm/src/sys/geom/part/g_part_if.m#2 (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/geom/part/g_part_if.m,v 1.2 2007/02/08 04:02:56 rodrigc Exp $ +# $FreeBSD: src/sys/geom/part/g_part_if.m,v 1.3 2008/04/13 19:54:54 marcel Exp $ #include <sys/param.h> #include <sys/lock.h> @@ -47,6 +47,12 @@ struct g_part_parms *gpp; }; +# bootcode() - scheme specific processing for the bootcode verb. +METHOD int bootcode { + struct g_part_table *table; + struct g_part_parms *gpp; +}; + # create() - scheme specific processing for the create verb. METHOD int create { struct g_part_table *table; ==== //depot/projects/arm/src/sys/geom/part/g_part_mbr.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/geom/part/g_part_mbr.c,v 1.5 2008/03/23 01:31:59 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/part/g_part_mbr.c,v 1.6 2008/04/13 19:54:54 marcel Exp $"); #include <sys/param.h> #include <sys/bio.h> @@ -59,6 +59,7 @@ static int g_part_mbr_add(struct g_part_table *, struct g_part_entry *, struct g_part_parms *); +static int g_part_mbr_bootcode(struct g_part_table *, struct g_part_parms *); static int g_part_mbr_create(struct g_part_table *, struct g_part_parms *); static int g_part_mbr_destroy(struct g_part_table *, struct g_part_parms *); static int g_part_mbr_dumpto(struct g_part_table *, struct g_part_entry *); @@ -74,6 +75,7 @@ static kobj_method_t g_part_mbr_methods[] = { KOBJMETHOD(g_part_add, g_part_mbr_add), + KOBJMETHOD(g_part_bootcode, g_part_mbr_bootcode), KOBJMETHOD(g_part_create, g_part_mbr_create), KOBJMETHOD(g_part_destroy, g_part_mbr_destroy), KOBJMETHOD(g_part_dumpto, g_part_mbr_dumpto), @@ -93,6 +95,7 @@ .gps_entrysz = sizeof(struct g_part_mbr_entry), .gps_minent = NDOSPART, .gps_maxent = NDOSPART, + .gps_bootcodesz = MBRSIZE, }; G_PART_SCHEME_DECLARE(g_part_mbr); @@ -201,6 +204,16 @@ } static int +g_part_mbr_bootcode(struct g_part_table *basetable, struct g_part_parms *gpp) +{ + struct g_part_mbr_table *table; + + table = (struct g_part_mbr_table *)basetable; + bcopy(gpp->gpp_codeptr, table->mbr, DOSPARTOFF); + return (0); +} + +static int g_part_mbr_create(struct g_part_table *basetable, struct g_part_parms *gpp) { struct g_consumer *cp; ==== //depot/projects/arm/src/sys/geom/part/g_part_pc98.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/geom/part/g_part_pc98.c,v 1.1 2008/03/28 17:58:55 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/part/g_part_pc98.c,v 1.2 2008/04/13 19:54:54 marcel Exp $"); #include <sys/param.h> #include <sys/bio.h> @@ -60,6 +60,7 @@ static int g_part_pc98_add(struct g_part_table *, struct g_part_entry *, struct g_part_parms *); +static int g_part_pc98_bootcode(struct g_part_table *, struct g_part_parms *); static int g_part_pc98_create(struct g_part_table *, struct g_part_parms *); static int g_part_pc98_destroy(struct g_part_table *, struct g_part_parms *); static int g_part_pc98_dumpto(struct g_part_table *, struct g_part_entry *); @@ -75,6 +76,7 @@ static kobj_method_t g_part_pc98_methods[] = { KOBJMETHOD(g_part_add, g_part_pc98_add), + KOBJMETHOD(g_part_bootcode, g_part_pc98_bootcode), KOBJMETHOD(g_part_create, g_part_pc98_create), KOBJMETHOD(g_part_destroy, g_part_pc98_destroy), KOBJMETHOD(g_part_dumpto, g_part_pc98_dumpto), @@ -94,6 +96,7 @@ .gps_entrysz = sizeof(struct g_part_pc98_entry), .gps_minent = NDOSPART, .gps_maxent = NDOSPART, + .gps_bootcodesz = SECSIZE, }; G_PART_SCHEME_DECLARE(g_part_pc98); @@ -184,6 +187,16 @@ } static int +g_part_pc98_bootcode(struct g_part_table *basetable, struct g_part_parms *gpp) +{ + struct g_part_pc98_table *table; + + table = (struct g_part_pc98_table *)basetable; + bcopy(gpp->gpp_codeptr, table->boot, DOSMAGICOFFSET); + return (0); +} + +static int g_part_pc98_create(struct g_part_table *basetable, struct g_part_parms *gpp) { struct g_consumer *cp; ==== //depot/projects/arm/src/sys/i386/conf/GENERIC.hints#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/i386/conf/GENERIC.hints,v 1.19 2007/12/25 22:41:28 wkoszek Exp $ +# $FreeBSD: src/sys/i386/conf/GENERIC.hints,v 1.20 2008/04/12 20:46:06 phk Exp $ hint.fdc.0.at="isa" hint.fdc.0.port="0x3F0" hint.fdc.0.irq="6" @@ -74,3 +74,6 @@ hint.le.0.port="0x280" hint.le.0.irq="10" hint.le.0.drq="0" +hint.atrtc.0.at="isa" +hint.atrtc.0.port="0x70" +hint.atrtc.0.irq="8" ==== //depot/projects/arm/src/sys/i386/isa/clock.c#19 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/i386/isa/clock.c,v 1.245 2008/03/26 22:11:59 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/isa/clock.c,v 1.246 2008/04/12 20:46:06 phk Exp $"); /* * Routines to handle clock hardware. @@ -206,7 +206,6 @@ mtx_unlock_spin(&clock_lock); } - /* * This routine receives statistical clock interrupts from the RTC. * As explained above, these occur at 128 interrupts per second. @@ -396,8 +395,7 @@ */ int -rtcin(reg) - int reg; +rtcin(int reg) { u_char val; @@ -522,98 +520,6 @@ } /* - * Initialize the time of day register, based on the time base which is, e.g. - * from a filesystem. - */ -void -inittodr(time_t base) -{ - int s; - struct timespec ts; - struct clocktime ct; - - if (base) { - s = splclock(); - ts.tv_sec = base; - ts.tv_nsec = 0; - tc_setclock(&ts); - splx(s); - } - - /* Look if we have a RTC present and the time is valid */ - if (!(rtcin(RTC_STATUSD) & RTCSD_PWR)) { - printf("Invalid time in clock: check and reset the date!\n"); - return; - } - - /* wait for time update to complete */ - /* If RTCSA_TUP is zero, we have at least 244us before next update */ - s = splhigh(); - while (rtcin(RTC_STATUSA) & RTCSA_TUP) { - splx(s); - s = splhigh(); - } - ct.nsec = 0; - ct.sec = readrtc(RTC_SEC); - ct.min = readrtc(RTC_MIN); - ct.hour = readrtc(RTC_HRS); - ct.day = readrtc(RTC_DAY); - ct.dow = readrtc(RTC_WDAY) - 1; - ct.mon = readrtc(RTC_MONTH); - ct.year = readrtc(RTC_YEAR); -#ifdef USE_RTC_CENTURY - ct.year += readrtc(RTC_CENTURY) * 100; -#else - ct.year += 2000; -#endif - /* Set dow = -1 because some clocks don't set it correctly. */ - ct.dow = -1; - if (clock_ct_to_ts(&ct, &ts)) { - printf("Invalid time in clock: check and reset the date!\n"); >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804140407.m3E47W9g037350>