Module Name:    src
Committed By:   jruoho
Date:           Wed Jun 15 03:22:40 UTC 2011

Modified Files:
        src/distrib/sets/lists/modules: md.amd64 md.i386
        src/sys/arch/x86/pci: amdtemp.c
        src/sys/modules: Makefile
Added Files:
        src/sys/modules/amdtemp: Makefile amdtemp.ioconf

Log Message:
Modularize amdtemp(4).


To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 src/distrib/sets/lists/modules/md.amd64
cvs rdiff -u -r1.24 -r1.25 src/distrib/sets/lists/modules/md.i386
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/x86/pci/amdtemp.c
cvs rdiff -u -r1.70 -r1.71 src/sys/modules/Makefile
cvs rdiff -u -r0 -r1.1 src/sys/modules/amdtemp/Makefile \
    src/sys/modules/amdtemp/amdtemp.ioconf

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/modules/md.amd64
diff -u src/distrib/sets/lists/modules/md.amd64:1.20 src/distrib/sets/lists/modules/md.amd64:1.21
--- src/distrib/sets/lists/modules/md.amd64:1.20	Thu Apr 14 15:45:27 2011
+++ src/distrib/sets/lists/modules/md.amd64	Wed Jun 15 03:22:39 2011
@@ -1,4 +1,4 @@
-# $NetBSD: md.amd64,v 1.20 2011/04/14 15:45:27 yamt Exp $
+# $NetBSD: md.amd64,v 1.21 2011/06/15 03:22:39 jruoho Exp $
 ./@MODULEDIR@/acpiacad				base-kernel-modules	kmod
 ./@MODULEDIR@/acpiacad/acpiacad.kmod		base-kernel-modules	kmod
 ./@MODULEDIR@/acpibat				base-kernel-modules	kmod
@@ -25,6 +25,8 @@
 ./@MODULEDIR@/acpiwmi/acpiwmi.kmod		base-kernel-modules	kmod
 ./@MODULEDIR@/aibs				base-kernel-modules	kmod
 ./@MODULEDIR@/aibs/aibs.kmod			base-kernel-modules	kmod
+./@MODULEDIR@/amdtemp				base-kernel-modules	kmod
+./@MODULEDIR@/amdtemp/amdtemp.kmod		base-kernel-modules	kmod
 ./@MODULEDIR@/aps				base-kernel-modules	kmod
 ./@MODULEDIR@/aps/aps.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/asus				base-kernel-modules	kmod

Index: src/distrib/sets/lists/modules/md.i386
diff -u src/distrib/sets/lists/modules/md.i386:1.24 src/distrib/sets/lists/modules/md.i386:1.25
--- src/distrib/sets/lists/modules/md.i386:1.24	Thu Apr 14 15:45:28 2011
+++ src/distrib/sets/lists/modules/md.i386	Wed Jun 15 03:22:39 2011
@@ -1,4 +1,4 @@
-# $NetBSD: md.i386,v 1.24 2011/04/14 15:45:28 yamt Exp $
+# $NetBSD: md.i386,v 1.25 2011/06/15 03:22:39 jruoho Exp $
 ./@MODULEDIR@/acpiacad				base-kernel-modules	kmod
 ./@MODULEDIR@/acpiacad/acpiacad.kmod		base-kernel-modules	kmod
 ./@MODULEDIR@/acpibat				base-kernel-modules	kmod
@@ -25,6 +25,8 @@
 ./@MODULEDIR@/acpiwmi/acpiwmi.kmod		base-kernel-modules	kmod
 ./@MODULEDIR@/aibs				base-kernel-modules	kmod
 ./@MODULEDIR@/aibs/aibs.kmod			base-kernel-modules	kmod
+./@MODULEDIR@/amdtemp				base-kernel-modules	kmod
+./@MODULEDIR@/amdtemp/amdtemp.kmod		base-kernel-modules	kmod
 ./@MODULEDIR@/aps				base-kernel-modules	kmod
 ./@MODULEDIR@/aps/aps.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/asus				base-kernel-modules	kmod

Index: src/sys/arch/x86/pci/amdtemp.c
diff -u src/sys/arch/x86/pci/amdtemp.c:1.9 src/sys/arch/x86/pci/amdtemp.c:1.10
--- src/sys/arch/x86/pci/amdtemp.c:1.9	Fri Oct 16 12:05:19 2009
+++ src/sys/arch/x86/pci/amdtemp.c	Wed Jun 15 03:22:39 2011
@@ -1,7 +1,7 @@
-/*      $NetBSD: amdtemp.c,v 1.9 2009/10/16 12:05:19 cegger Exp $ */
+/*      $NetBSD: amdtemp.c,v 1.10 2011/06/15 03:22:39 jruoho Exp $ */
 /*      $OpenBSD: kate.c,v 1.2 2008/03/27 04:52:03 cnst Exp $   */
 
-/* 
+/*
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -48,22 +48,24 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdtemp.c,v 1.9 2009/10/16 12:05:19 cegger Exp $ ");
+__KERNEL_RCSID(0, "$NetBSD: amdtemp.c,v 1.10 2011/06/15 03:22:39 jruoho Exp $ ");
 
 #include <sys/param.h>
+#include <sys/bus.h>
+#include <sys/cpu.h>
 #include <sys/systm.h>
 #include <sys/device.h>
 #include <sys/kmem.h>
-#include <dev/sysmon/sysmonvar.h>
+#include <sys/module.h>
 
-#include <sys/bus.h>
-#include <sys/cpu.h>
 #include <machine/specialreg.h>
 
 #include <dev/pci/pcireg.h>
 #include <dev/pci/pcivar.h>
 #include <dev/pci/pcidevs.h>
 
+#include <dev/sysmon/sysmonvar.h>
+
 /*
  * AMD K8:
  * http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/32559.pdf
@@ -114,7 +116,7 @@
 #define F10_TEMP_CURTEMP	(1 << 21)
 
 /*
- * Revision Guide for AMD NPT Family 0Fh Processors, 
+ * Revision Guide for AMD NPT Family 0Fh Processors,
  * Publication # 33610, Revision 3.30, February 2008
  */
 #define K8_SOCKET_F	1	/* Server */
@@ -156,6 +158,7 @@
 
 	struct sysmon_envsys *sc_sme;
 	envsys_data_t *sc_sensor;
+	size_t sc_sensor_len;
 
         char sc_rev;
         int8_t sc_numsensors;
@@ -164,8 +167,9 @@
 };
 
 
-static int amdtemp_match(device_t, cfdata_t, void *);
+static int  amdtemp_match(device_t, cfdata_t, void *);
 static void amdtemp_attach(device_t, device_t, void *);
+static int  amdtemp_detach(device_t, int);
 
 static void amdtemp_k8_init(struct amdtemp_softc *, pcireg_t);
 static void amdtemp_k8_setup_sensors(struct amdtemp_softc *, int);
@@ -175,8 +179,8 @@
 static void amdtemp_family10_setup_sensors(struct amdtemp_softc *, int);
 static void amdtemp_family10_refresh(struct sysmon_envsys *, envsys_data_t *);
 
-CFATTACH_DECL_NEW(amdtemp, sizeof(struct amdtemp_softc), 
-	amdtemp_match, amdtemp_attach, NULL, NULL);
+CFATTACH_DECL_NEW(amdtemp, sizeof(struct amdtemp_softc),
+	amdtemp_match, amdtemp_attach, amdtemp_detach, NULL);
 
 static int
 amdtemp_match(device_t parent, cfdata_t match, void *aux)
@@ -232,7 +236,6 @@
 	struct amdtemp_softc *sc = device_private(self);
 	struct pci_attach_args *pa = aux;
 	pcireg_t cpu_signature;
-	size_t len;
 	int error;
 	uint8_t i;
 
@@ -275,9 +278,9 @@
 		aprint_debug_dev(self, "Workaround enabled\n");
 
 	sc->sc_sme = sysmon_envsys_create();
-	len = sizeof(envsys_data_t) * sc->sc_numsensors;
-	sc->sc_sensor = kmem_zalloc(len, KM_NOSLEEP);
-	if (!sc->sc_sensor)
+	sc->sc_sensor_len = sizeof(envsys_data_t) * sc->sc_numsensors;
+	sc->sc_sensor = kmem_zalloc(sc->sc_sensor_len, KM_NOSLEEP);
+	if (sc->sc_sensor == NULL)
 		goto bad2;
 
 	switch (sc->sc_family) {
@@ -328,9 +331,26 @@
 	return;
 
 bad:
-	kmem_free(sc->sc_sensor, len);
+	kmem_free(sc->sc_sensor, sc->sc_sensor_len);
+	sc->sc_sensor = NULL;
+
 bad2:
 	sysmon_envsys_destroy(sc->sc_sme);
+	sc->sc_sme = NULL;
+}
+
+static int
+amdtemp_detach(device_t self, int flags)
+{
+	struct amdtemp_softc *sc = device_private(self);
+
+	if (sc->sc_sme != NULL)
+		sysmon_envsys_unregister(sc->sc_sme);
+
+	if (sc->sc_sensor != NULL)
+		kmem_free(sc->sc_sensor, sc->sc_sensor_len);
+
+	return 0;
 }
 
 static void
@@ -492,3 +512,32 @@
 	/* envsys(4) wants uK... convert from Celsius. */
 	edata->value_cur = (value * 125000) + 273150000;
 }
+
+MODULE(MODULE_CLASS_DRIVER, amdtemp, NULL);
+
+#ifdef _MODULE
+#include "ioconf.c"
+#endif
+
+static int
+amdtemp_modcmd(modcmd_t cmd, void *aux)
+{
+	int error = 0;
+
+	switch (cmd) {
+	case MODULE_CMD_INIT:
+#ifdef _MODULE
+		error = config_init_component(cfdriver_ioconf_amdtemp,
+		    cfattach_ioconf_amdtemp, cfdata_ioconf_amdtemp);
+#endif
+		return error;
+	case MODULE_CMD_FINI:
+#ifdef _MODULE
+		error = config_fini_component(cfdriver_ioconf_amdtemp,
+		    cfattach_ioconf_amdtemp, cfdata_ioconf_amdtemp);
+#endif
+		return error;
+	default:
+		return ENOTTY;
+	}
+}

Index: src/sys/modules/Makefile
diff -u src/sys/modules/Makefile:1.70 src/sys/modules/Makefile:1.71
--- src/sys/modules/Makefile:1.70	Thu Apr 14 15:45:27 2011
+++ src/sys/modules/Makefile	Wed Jun 15 03:22:40 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.70 2011/04/14 15:45:27 yamt Exp $
+#	$NetBSD: Makefile,v 1.71 2011/06/15 03:22:40 jruoho Exp $
 
 .include <bsd.own.mk>
 
@@ -89,6 +89,7 @@
 
 .if ${MACHINE_ARCH} == "i386" || \
     ${MACHINE_ARCH} == "x86_64"
+SUBDIR+=	amdtemp
 SUBDIR+=	coretemp
 SUBDIR+=	est
 SUBDIR+=	odcm

Added files:

Index: src/sys/modules/amdtemp/Makefile
diff -u /dev/null src/sys/modules/amdtemp/Makefile:1.1
--- /dev/null	Wed Jun 15 03:22:40 2011
+++ src/sys/modules/amdtemp/Makefile	Wed Jun 15 03:22:40 2011
@@ -0,0 +1,13 @@
+# $NetBSD: Makefile,v 1.1 2011/06/15 03:22:40 jruoho Exp $
+
+.include "../Makefile.inc"
+
+.PATH:	${S}/arch/x86/pci
+
+KMOD=	amdtemp
+IOCONF=	amdtemp.ioconf
+SRCS=	amdtemp.c
+
+WARNS=	4
+
+.include <bsd.kmodule.mk>
Index: src/sys/modules/amdtemp/amdtemp.ioconf
diff -u /dev/null src/sys/modules/amdtemp/amdtemp.ioconf:1.1
--- /dev/null	Wed Jun 15 03:22:40 2011
+++ src/sys/modules/amdtemp/amdtemp.ioconf	Wed Jun 15 03:22:40 2011
@@ -0,0 +1,11 @@
+# $NetBSD: amdtemp.ioconf,v 1.1 2011/06/15 03:22:40 jruoho Exp $
+
+ioconf amdtemp
+
+include "conf/files"
+include "dev/pci/files.pci"
+include "arch/x86/pci/files.pci"
+
+pseudo-root pci*
+
+amdtemp* at pci? dev ? function ?

Reply via email to