Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/hpcmips/dev Initialized variables and added error h...
details: https://anonhg.NetBSD.org/src/rev/8af843c4383c
branches: trunk
changeset: 556786:8af843c4383c
user: takemura <takemura%NetBSD.org@localhost>
date: Sat Dec 27 05:47:54 2003 +0000
description:
Initialized variables and added error handling in mq200_pllparam().
diffstat:
sys/arch/hpcmips/dev/mq200priv.h | 4 ++--
sys/arch/hpcmips/dev/mq200subr.c | 17 +++++++++++++----
2 files changed, 15 insertions(+), 6 deletions(-)
diffs (84 lines):
diff -r 593562c0e126 -r 8af843c4383c sys/arch/hpcmips/dev/mq200priv.h
--- a/sys/arch/hpcmips/dev/mq200priv.h Sat Dec 27 03:22:54 2003 +0000
+++ b/sys/arch/hpcmips/dev/mq200priv.h Sat Dec 27 05:47:54 2003 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mq200priv.h,v 1.1 2001/03/25 13:06:53 takemura Exp $ */
+/* $NetBSD: mq200priv.h,v 1.2 2003/12/27 05:47:54 takemura Exp $ */
/*-
* Copyright (c) 2001 TAKEMURA Shin
@@ -64,7 +64,7 @@
extern int mq200_crt_nparams;
extern char *mq200_clknames[];
-void mq200_pllparam(int reqout, u_int32_t *res);
+int mq200_pllparam(int reqout, u_int32_t *res);
void mq200_set_pll(struct mq200_softc *, int, int);
void mq200_setup_regctx(struct mq200_softc *sc);
void mq200_setup(struct mq200_softc *sc);
diff -r 593562c0e126 -r 8af843c4383c sys/arch/hpcmips/dev/mq200subr.c
--- a/sys/arch/hpcmips/dev/mq200subr.c Sat Dec 27 03:22:54 2003 +0000
+++ b/sys/arch/hpcmips/dev/mq200subr.c Sat Dec 27 05:47:54 2003 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mq200subr.c,v 1.4 2003/07/15 02:29:30 lukem Exp $ */
+/* $NetBSD: mq200subr.c,v 1.5 2003/12/27 05:47:54 takemura Exp $ */
/*-
* Copyright (c) 2001 TAKEMURA Shin
@@ -31,7 +31,7 @@
#ifdef _KERNEL
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mq200subr.c,v 1.4 2003/07/15 02:29:30 lukem Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mq200subr.c,v 1.5 2003/12/27 05:47:54 takemura Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -103,7 +103,7 @@
/*
* get PLL setting register value for given frequency
*/
-void
+int
mq200_pllparam(int reqout, u_int32_t *res)
{
int n, m, p, out;
@@ -111,6 +111,7 @@
int bn, bm, bp, e;
e = ref;
+ bn = 0; bp = 0; bm = 0;
for (p = 0; p <= 4; p++) {
for (n = 0; n < (1<<5); n++) {
m = (reqout * ((n + 1) << p)) / ref - 1;
@@ -129,6 +130,8 @@
}
}
}
+ if (ref <= e)
+ return (-1);
#if 0
out = ref * (bm + 1) / ((bn + 1) << bp);
@@ -139,6 +142,8 @@
*res = ((bm << MQ200_PLL_M_SHIFT) |
(bn << MQ200_PLL_N_SHIFT) |
(bp << MQ200_PLL_P_SHIFT));
+
+ return (0);
}
void
@@ -169,7 +174,11 @@
}
if (clock != 0 && clock != -1) {
/* PLL Programming */
- mq200_pllparam(clock, ¶m);
+ if (mq200_pllparam(clock, ¶m) != 0) {
+ printf("mq200: invalid clock rate: %s %d.%03dMHz\n",
+ mq200_clknames[pll], clock/1000, clock%1000);
+ return;
+ }
mq200_mod(sc, paramreg, MQ200_PLL_PARAM_MASK, param);
/* enable PLL */
mq200_on(sc, enreg, enbit);
Home |
Main Index |
Thread Index |
Old Index